home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / roundtripd.tcl < prev    next >
Text File  |  1997-08-27  |  5KB  |  182 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)roundtripd.tcl    /main/titanic/6
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)roundtripd.tcl    /main/titanic/6   27 Aug 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 RoundtripDlg : {TemplateDialog} {
  16.     constructor
  17.     method destructor
  18.     method qaFinished
  19.     method qaDataArrived
  20.     method sendAnswer
  21.     method handleYes
  22.     method handleNo
  23.     method handleDefaultToAll
  24.     method handleStop
  25.     method setButtonsSensitivity
  26.     method popUp
  27.     attribute qa
  28.     attribute command
  29.     attribute answerDefaultToAll
  30.     attribute defaultAnswer
  31. }
  32.  
  33. constructor RoundtripDlg {class this name} {
  34.     set this [TemplateDialog::constructor $class $this $name]
  35.     $this command ""
  36.     $this answerDefaultToAll 0
  37.     $this defaultAnswer ""
  38.     # Start constructor user section
  39.  
  40.     $this qa [QAServer new \
  41.         -mode BLOCK \
  42.         -finished "$this qaFinished" \
  43.         -dataArrived "$this qaDataArrived"]
  44.  
  45.     $this config \
  46.         -title "Roundtrip Selected Files" \
  47.         -modal yes \
  48.         -helpPressed {.main helpOnName roundtripEngineer}
  49.  
  50.     interface NamedGroup $this.grp {
  51.         label "Interactive Roundtrip Session" 
  52.         DlgColumn dc {
  53.             MultiLineText out {
  54.                 editable false
  55.                 columnCount 60
  56.                 rowCount 15
  57.             }
  58.             DlgColumn dc {
  59.                 sizeEqual yes
  60.                 verStretchFactor 0
  61.                 DlgRow yesNoRow {
  62.                     sizeEqual yes
  63.                     verStretchFactor 0
  64.                     PushButton yesButton {
  65.                         sensitive no
  66.                         label "Yes"
  67.                     }
  68.                     PushButton noButton {
  69.                         sensitive no
  70.                         label "No"
  71.                     }
  72.                     PushButton defaultAllButton {
  73.                         sensitive no
  74.                         label "Default To All"
  75.                     }
  76.                     PushButton stopButton {
  77.                         sensitive no
  78.                         label "Stop"
  79.                     }
  80.                 }
  81.             }
  82.         }
  83.     }
  84.  
  85.     $this.grp.dc.out font [m4_var get M4_font -context desk]
  86.  
  87.     set buttons $this.grp.dc.dc.yesNoRow
  88.     $buttons.yesButton activated "$this handleYes"
  89.     $buttons.noButton activated "$this handleNo"
  90.     $buttons.defaultAllButton activated "$this handleDefaultToAll"
  91.     $buttons.stopButton activated "$this handleStop"
  92.  
  93.     $this okSensitive no
  94.     $this delCancelButton
  95.  
  96.     # End constructor user section
  97.     return $this
  98. }
  99.  
  100. method RoundtripDlg::destructor {this} {
  101.     # Start destructor user section
  102.     # End destructor user section
  103. }
  104.  
  105. method RoundtripDlg::qaFinished {this} {
  106.     $this setButtonsSensitivity no
  107.     $this okSensitive yes
  108. }
  109.  
  110. method RoundtripDlg::qaDataArrived {this} {
  111.     set data [[$this qa] data]
  112.     if [regexp -nocase {(.*)QUESTION ((YES)|(NO)) (.*)$} $data matchVar \
  113.             pre yesNo yesTxt noTxt quest] {
  114.         $this.grp.dc.out appendText $pre
  115.         $this.grp.dc.out appendText "$quest "
  116.         $this defaultAnswer $yesNo
  117.         if [$this answerDefaultToAll] {
  118.             $this sendAnswer [cap $yesNo]
  119.         } else {
  120.             $this setButtonsSensitivity yes
  121.         }
  122.     } else {
  123.         $this.grp.dc.out appendText $data
  124.     }
  125. }
  126.  
  127. method RoundtripDlg::sendAnswer {this answer} {
  128.     if {$tcl_platform(platform) == "windows"} {
  129.         # Need to echo the answer ourselves
  130.         $this.grp.dc.out appendText "${answer}\n"
  131.     }
  132.     puts [[$this qa] chan] $answer
  133. }
  134.  
  135. method RoundtripDlg::handleYes {this} {
  136.     $this sendAnswer "Yes"
  137.     $this setButtonsSensitivity no
  138. }
  139.  
  140. method RoundtripDlg::handleNo {this} {
  141.     $this sendAnswer "No"
  142.     $this setButtonsSensitivity no
  143. }
  144.  
  145. method RoundtripDlg::handleDefaultToAll {this} {
  146.     $this sendAnswer [cap [$this defaultAnswer]]
  147.     $this answerDefaultToAll 1
  148.     $this setButtonsSensitivity no
  149. }
  150.  
  151. method RoundtripDlg::handleStop {this} {
  152.     $this sendAnswer "Stop"
  153.     $this setButtonsSensitivity no
  154. }
  155.  
  156. method RoundtripDlg::setButtonsSensitivity {this value} {
  157.     set buttons $this.grp.dc.dc.yesNoRow
  158.     $buttons.yesButton sensitive $value
  159.     $buttons.noButton sensitive $value
  160.     $buttons.defaultAllButton sensitive $value
  161.     $buttons.stopButton sensitive $value
  162. }
  163.  
  164. method RoundtripDlg::popUp {this} {
  165.     # (re)initialize data; note that the following is already taken care
  166.     # off at this point:
  167.     #    $this setButtonsSensitivity no
  168.     #
  169.     $this.grp.dc.out text ""
  170.     $this answerDefaultToAll 0
  171.     $this okSensitive no
  172.     [$this qa] command [$this command]
  173.  
  174.     # popUp the dialog en start a QA session
  175.     #
  176.     $this TemplateDialog::popUp
  177.     [$this qa] execute
  178. }
  179.  
  180. # Do not delete this line -- regeneration end marker
  181.  
  182.