home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / worddoccon.tcl < prev    next >
Text File  |  1997-11-04  |  4KB  |  158 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)worddoccon.tcl    /main/titanic/7
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)worddoccon.tcl    /main/titanic/7   4 Nov 1997 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class WordDocConGen : {Object} {
  16.     method destructor
  17.     constructor
  18.     method generate
  19.     method genComponent
  20.     method getText
  21.     method genPicture
  22.     method section
  23.     attribute section
  24.     attribute word
  25.     attribute _section
  26. }
  27.  
  28. method WordDocConGen::destructor {this} {
  29.     set ref [$this _section]
  30.     if {$ref != ""} {
  31.         $ref _contentsGenerator ""
  32.     }
  33.     # Start destructor user section
  34.     # End destructor user section
  35. }
  36.  
  37. constructor WordDocConGen {class this name section} {
  38.  
  39.     set this [Object::constructor $class $this $name]
  40.     $this section $section
  41.     return $this
  42. }
  43.  
  44. method WordDocConGen::generate {this} {
  45.  
  46.     set w [[[docTool document] editor] wordObj]
  47.     $this word $w
  48.     if [catch {
  49.         # copy the initial contents if available
  50.         set dest [[$this section] docLocation]
  51.         $w FileOpen $dest
  52.         $w EditSelectAll
  53.         $w EditClear
  54.         if {[$w ViewMasterDocument] == 0} {
  55.             error "document not in 'Master Document View'"
  56.         }
  57.         set title [[$this section] uiName]
  58.         $w SetDocumentProperty Title 0 "$title" 0
  59.         
  60.         set indentLevel [[$this section] indentation]
  61.         $w FormatStyle $OTStyles(OTHdg$indentLevel)
  62.         $w chkInsert [[$this section] uiName]
  63.         $w InsertPara
  64.         $w FormatStyle $OTStyles(OTBodyText)
  65.  
  66.         set inSubdoc 0
  67.         set subLevel 0
  68.  
  69.         foreach sect [[$this section] getTree] {
  70.             set level [$sect indentation]
  71.             set name  [$sect uiName]
  72.             set type  [$sect type]
  73.             set class [$sect operationClass]
  74.             if {$inSubdoc} {
  75.                 # Check for end of subdoc
  76.                 if {$level <= $subLevel} {
  77.                     set inSubdoc 0
  78.                     set subLevel 0
  79.                 }
  80.             }
  81.  
  82.             if {!$inSubdoc} {
  83.                 # Check if the section is
  84.                 # manipulatable. If so then skip
  85.                 # this section and all it's underlying sections.
  86.                 if {$class == "manipulate"} {
  87.                     # In subdocument
  88.                     set inSubdoc 1
  89.                     set subLevel $level
  90.                     $w InsertSubdocument [$sect docLocation]
  91.                     $w EndOfDocument
  92.                 } else {
  93.                     # Generate contents for this section
  94.                     $this genComponent $sect
  95.                 }
  96.                 $w FileSaveAs
  97.             }
  98.         }
  99.         $w FileSaveAs
  100.     } msg] {
  101.         wmtkerror "Word Automation Error: $msg"
  102.     }
  103. }
  104.  
  105. method WordDocConGen::genComponent {this section} {
  106.     case [$section docType] {
  107.         {Wmf} {$this genPicture $section}
  108.         {default} { $this getText $section}
  109.     }
  110. }
  111.  
  112. method WordDocConGen::getText {this section} {
  113.     set w [$this word]
  114.     set indentLevel [$section indentation]
  115.     $w FormatStyle $OTStyles(OTHdg$indentLevel)
  116.     $w chkInsert [$section docTitle]
  117.     $w InsertPara
  118.     $w FormatStyle $OTStyles(OTBodyText)
  119.     set file [$section docLocation]
  120.     $w InsertFile $file = 0.0 1.0
  121.     $w InsertPara
  122.     $w FileSaveAs
  123. }
  124.  
  125. method WordDocConGen::genPicture {this section} {
  126.     set w [$this word]
  127.     set indentLevel [$section indentation]
  128.     $w FormatStyle $OTStyles(OTHdg$indentLevel)
  129.     $w chkInsert [$section docTitle]
  130.     $w InsertPara
  131.     $w FormatStyle $OTStyles(OTBodyText)
  132.     $w InsertPicture [$section docLocation] 2
  133.     # go to previous graphic
  134.     $w EditGoto g-1
  135.     $w CharRight 1 1
  136.     $w EndOfDocument
  137.     $w InsertPara
  138.     $w FileSaveAs
  139. }
  140.  
  141. # Do not delete this line -- regeneration end marker
  142.  
  143. method WordDocConGen::section {this args} {
  144.     if {$args == ""} {
  145.         return [$this _section]
  146.     }
  147.     set ref [$this _section]
  148.     if {$ref != ""} {
  149.         $ref _contentsGenerator ""
  150.     }
  151.     set obj [lindex $args 0]
  152.     if {$obj != ""} {
  153.         $obj _contentsGenerator $this
  154.     }
  155.     $this _section $obj
  156. }
  157.  
  158.