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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)wd97doccon.tcl    /main/titanic/3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)wd97doccon.tcl    /main/titanic/3   4 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class Wd97DocConGen : {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 Wd97DocConGen::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 Wd97DocConGen {class this name section} {
  38.     set this [Object::constructor $class $this $name]
  39.     $this section $section
  40.     return $this
  41. }
  42.  
  43. method Wd97DocConGen::generate {this} {
  44.     if [catch {
  45.         set app [[[docTool document] editor] app]
  46.         set docs [$app property Documents]
  47.         set dest [[$this section] docLocation]
  48.         # open file
  49.         set d [$docs Open $dest]
  50.         # set in Master Document View
  51.         set activeWindow [$d property ActiveWindow]
  52.         set view [$activeWindow property View]
  53.         $view property Type 5
  54.         # expand sub documents
  55.         set subDocs [$d property SubDocuments]
  56.         $subDocs property Expanded true
  57.         # delete current contents
  58.         set cnt [$d property Content]
  59.         $cnt Select
  60.         $cnt Delete
  61.  
  62.         set indentLevel [[$this section] indentation]
  63.         $cnt InsertAfter [[$this section] uiName]
  64.         $cnt property Style $OTStyles(OTHdg$indentLevel)
  65.         $cnt InsertParagraphAfter
  66.         $cnt Collapse 0
  67.  
  68.         set inSubdoc 0
  69.         set subLevel 0
  70.  
  71.         foreach sect [[$this section] getTree] {
  72.             set level [$sect indentation]
  73.             set name  [$sect uiName]
  74.             set type  [$sect type]
  75.             set class [$sect operationClass]
  76.             if {$inSubdoc} {
  77.                 # Check for end of subdoc
  78.                 if {$level <= $subLevel} {
  79.                     set inSubdoc 0
  80.                     set subLevel 0
  81.                 }
  82.             }
  83.  
  84.             if {!$inSubdoc} {
  85.                 # Check if the section is
  86.                 # manipulatable. If so then skip
  87.                 # this section and all it's underlying sections.
  88.                 if {$class == "manipulate"} {
  89.                     # In subdocument
  90.                     set inSubdoc 1
  91.                     set subLevel $level
  92.                     $cnt Collapse 0
  93.                     $cnt Select
  94.                     $subDocs AddFromFile [$sect docLocation]
  95.                 } else {
  96.                     # Generate contents for this section
  97.                     $this genComponent $sect
  98.                 }
  99.             }
  100.         }
  101.         $d Close -1
  102.     } msg] {
  103.         wmtkerror "Word Automation Error: $msg"
  104.     }
  105. }
  106.  
  107. method Wd97DocConGen::genComponent {this section} {
  108.     case [$section docType] {
  109.         {Emf} {$this genPicture $section}
  110.         {default} { $this getText $section}
  111.     }
  112. }
  113.  
  114. method Wd97DocConGen::getText {this section} {
  115.     set app [[[docTool document] editor] app]
  116.     set d [$app property ActiveDocument]
  117.     set cnt [$d Range]
  118.     $cnt Collapse 0
  119.     set indentLevel [$section indentation]
  120.     $cnt property Style $OTStyles(OTHdg$indentLevel)
  121.     $cnt InsertAfter [$section docTitle]
  122.     $cnt InsertParagraphAfter
  123.     $cnt Collapse 0
  124.     $cnt property Style $OTStyles(OTBodyText)
  125.     $cnt Select
  126.     set file [$section docLocation]
  127.     $cnt InsertFile $file "" 0.0 1.0 0.0
  128.     $cnt InsertParagraphAfter
  129.     $cnt Collapse 0
  130.     $d SaveAs
  131. }
  132.  
  133. method Wd97DocConGen::genPicture {this section} {
  134.     set app [[[docTool document] editor] app]
  135.     set d [$app property ActiveDocument]
  136.     set cnt [$d Range]
  137.     $cnt Collapse 0
  138.     set indentLevel [$section indentation]
  139.     $cnt property Style $OTStyles(OTHdg$indentLevel)
  140.     $cnt InsertAfter [$section docTitle]
  141.     $cnt InsertParagraphAfter
  142.     $cnt Collapse 0
  143.     $cnt Select
  144.     set sh [$d property InlineShapes]
  145.     $sh AddPicture [$section docLocation] true true $cnt
  146.     set cnt [$d Range]
  147.     $cnt Collapse 0
  148.     $cnt InsertParagraphAfter
  149.     $cnt Collapse 0
  150.     $d SaveAs
  151. }
  152.  
  153. # Do not delete this line -- regeneration end marker
  154.  
  155. method Wd97DocConGen::section {this args} {
  156.     if {$args == ""} {
  157.         return [$this _section]
  158.     }
  159.     set ref [$this _section]
  160.     if {$ref != ""} {
  161.         $ref _contentsGenerator ""
  162.     }
  163.     set obj [lindex $args 0]
  164.     if {$obj != ""} {
  165.         $obj _contentsGenerator $this
  166.     }
  167.     $this _section $obj
  168. }
  169.  
  170.