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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)asciiprint.tcl    /main/titanic/3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)asciiprint.tcl    /main/titanic/3   19 Nov 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. require "wmt_util.tcl"
  13. # End user added include file section
  14.  
  15.  
  16. Class AsciiPrinterDlg : {TemplateDialog} {
  17.     method destructor
  18.     constructor
  19.     method handleCancel
  20.     method handleHelp
  21.     method handleOk
  22.     method length
  23.     method lengthModified
  24.     attribute llenPrev
  25.     attribute plenPrev
  26.     attribute cmdField
  27.     attribute llenField
  28.     attribute plenField
  29.     attribute options
  30. }
  31.  
  32. method AsciiPrinterDlg::destructor {this} {
  33.     # Start destructor user section
  34.     # End destructor user section
  35. }
  36.  
  37. constructor AsciiPrinterDlg {class this name} {
  38.     set this [TemplateDialog::constructor $class $this $name]
  39.  
  40.     interface DlgColumn $this.top {
  41.     NamedGroup printer {
  42.         label "Text Printer"
  43.         mnemonic "A"
  44.         DlgColumn prView {
  45.         Label cmdLabel {
  46.             text "Printer Command"
  47.         }
  48.         SingleLineText cmdField {}
  49.         Label llenLabel {
  50.             text "Line Length"
  51.         }
  52.         IntField llenField {}
  53.         Label plenLabel {
  54.             text "Page Length"
  55.         }
  56.         IntField plenField {}
  57.         }
  58.     }
  59.     }
  60.     $this config \
  61.     -modal yes \
  62.     -autoPopDown no \
  63.     -title "Printer Setup" \
  64.     -cmdField $this.top.printer.prView.cmdField \
  65.     -llenField $this.top.printer.prView.llenField \
  66.     -plenField $this.top.printer.prView.plenField \
  67.     -okPressed "$this handleOk" \
  68.     -cancelPressed "$this handleCancel" \
  69.     -helpPressed "$this handleHelp"
  70.  
  71.     [$this cmdField] text [m4_var get M4_a_printer]
  72.     $this length l [m4_var get M4_a_printer_llen]
  73.     $this length p [m4_var get M4_a_printer_plen]
  74.     [$this llenField] textModified "$this lengthModified l"
  75.     [$this plenField] textModified "$this lengthModified p"
  76.  
  77.     return $this
  78. }
  79.  
  80. method AsciiPrinterDlg::handleCancel {this} {
  81.     $this delete
  82. }
  83.  
  84. method AsciiPrinterDlg::handleHelp {this} {
  85.     if [catch {[getParent $this] helpOnName [nt_get_type $this]}] {
  86.     showHelp GEN/m_prsu.html#dialogbox
  87.     }
  88. }
  89.  
  90. method AsciiPrinterDlg::handleOk {this} {
  91.     set options [$this options]
  92.     set dim ""
  93.     if {[$this length l] <= 0} {
  94.     set dim l
  95.     } elseif {[$this length p] <= 0} {
  96.     set dim p
  97.     }
  98.     if {"$dim" != ""} {
  99.     set fieldName [$this.top.printer.prView.${dim}lenLabel text]
  100.     wmtkerror "$fieldName must be a positive value"
  101.     return
  102.     }
  103.     if {"[m4_var get M4_a_printer]" != "[[$this cmdField] text]"} {
  104.     catch {m4_var set M4_a_printer [[$this cmdField] text]}
  105.     }
  106.     if {[m4_var get M4_a_printer_llen] != [$this length l]} {
  107.     catch {m4_var set M4_a_printer_llen [$this length l]}
  108.     }
  109.     if {[m4_var get M4_a_printer_plen] != [$this length p]} {
  110.     catch {m4_var set M4_a_printer_plen [$this length p]}
  111.     }
  112.     $this popDown
  113.     $this delete
  114. }
  115.  
  116. method AsciiPrinterDlg::length {this dim {num ,}} {
  117.     if {$num == ","} {
  118.         return [[$this ${dim}lenField] intValue]
  119.     }
  120.     [$this ${dim}lenField] intValue $num
  121.     $this ${dim}lenPrev $num
  122. }
  123.  
  124. method AsciiPrinterDlg::lengthModified {this dim} {
  125.     if {[$this length $dim] >= 0} {
  126.     $this ${dim}lenPrev [[$this ${dim}lenField] text]
  127.     } else {
  128.     set cursorIndex [[$this ${dim}lenField] cursorIndex]
  129.     [$this ${dim}lenField] text [$this ${dim}lenPrev]
  130.     [$this ${dim}lenField] cursorIndex [expr $cursorIndex - 1]
  131.     }
  132. }
  133.  
  134. # Do not delete this line -- regeneration end marker
  135.  
  136.