home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / editoropti.tcl < prev    next >
Text File  |  1997-02-12  |  6KB  |  216 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)editoropti.tcl    /main/hindenburg/4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)editoropti.tcl    /main/hindenburg/4   12 Feb 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "tooloption.tcl"
  15.  
  16. Class EditorOptions : {ToolOptions} {
  17.     constructor
  18.     method destructor
  19.     method scaleFont
  20.     method zoomOut
  21.     method zoomIn
  22.     method normalFont
  23.     method annotationFont
  24.     method boldFont
  25.     method foreground
  26.     method background
  27.     method selectionColor
  28.     method grid
  29.     method printOptions
  30.     method initialFold
  31. }
  32.  
  33. constructor EditorOptions {class this name} {
  34.     set this [ToolOptions::constructor $class $this $name]
  35.     # Start constructor user section
  36.     # End constructor user section
  37.     return $this
  38. }
  39.  
  40. method EditorOptions::destructor {this} {
  41.     # Start destructor user section
  42.     # End destructor user section
  43.     $this ToolOptions::destructor
  44. }
  45.  
  46. method EditorOptions::scaleFont {this font factor} {
  47.     set sep1 [string first "-" $font]
  48.     if {$sep1 != -1} {
  49.         set head [string range $font 0 $sep1]
  50.         set tail [string range $font [incr sep1] end]
  51.         set sep2 [string first "-" $tail]
  52.         if {$sep2 != -1} {
  53.             append head [string range $tail 0 $sep2]
  54.             set size [string range $tail [incr sep2] end]
  55.             return [format %s%.0f $head [expr $size * $factor]]
  56.         }
  57.     }
  58.     return $font
  59. }
  60.  
  61. method EditorOptions::zoomOut {this} {
  62.     .main zoom 0.75
  63.     set scale [[.main editorArea] scale]
  64.     if {[m4_var get M4_zoom] != $scale} {
  65.     catch {m4_var set M4_zoom $scale}
  66.     }
  67. }
  68.  
  69. method EditorOptions::zoomIn {this} {
  70.     .main zoom 1.333333333333
  71.     set scale [[.main editorArea] scale]
  72.     if {[m4_var get M4_zoom] != $scale} {
  73.     catch {m4_var set M4_zoom $scale}
  74.     }
  75. }
  76.  
  77. method EditorOptions::normalFont {this} {
  78.     busy {
  79.     uplevel #0 require udefontcho.tcl
  80.     set scale [[.main editorArea] scale]
  81.     set scaledFont [$this scaleFont [m4_var get M4_font -context ude] $scale]
  82.     UdeFontChooser new .main.normalFont \
  83.         -options $this \
  84.         -title "Normal Font" \
  85.         -orgFont "$scaledFont" \
  86.         -value "$scaledFont" \
  87.         -cancelPressed {%this delete} \
  88.         -okPressed {
  89.         set scale [expr 1 / [[.main editorArea] scale]]
  90.         set scaledFont [[%this options] scaleFont [%this value] $scale]
  91.         if {[%this orgFont] != "$scaledFont"} {
  92.             [.main editorArea] normalFontSpec "$scaledFont"
  93.             catch {m4_var set M4_font "$scaledFont" -context ude}
  94.         }
  95.         %this delete
  96.         }
  97.     }
  98.     .main.normalFont popUp
  99. }
  100.  
  101. method EditorOptions::annotationFont {this} {
  102.     busy {
  103.     uplevel #0 require udefontcho.tcl
  104.     set scale [[.main editorArea] scale]
  105.     set scaledFont [$this scaleFont [m4_var get M4_font_annotation -context ude] $scale]
  106.     UdeFontChooser new .main.annotationFont \
  107.         -options $this \
  108.         -title "Annotation Font" \
  109.         -orgFont "$scaledFont" \
  110.         -value "$scaledFont" \
  111.         -cancelPressed {%this delete} \
  112.         -okPressed {
  113.         set scale [expr 1 / [[.main editorArea] scale]]
  114.         set scaledFont [[%this options] scaleFont [%this value] $scale]
  115.         if {[%this orgFont] != "$scaledFont"} {
  116.             [.main editorArea] annotationFontSpec "$scaledFont"
  117.             catch {m4_var set M4_font_annotation "$scaledFont" -context ude}
  118.         }
  119.         %this delete
  120.         }
  121.     }
  122.     .main.annotationFont popUp
  123. }
  124.  
  125. method EditorOptions::boldFont {this} {
  126.     busy {
  127.     uplevel #0 require udefontcho.tcl
  128.     set scale [[.main editorArea] scale]
  129.     set scaledFont [$this scaleFont [m4_var get M4_font_bold -context ude] $scale]
  130.     UdeFontChooser new .main.boldFont \
  131.         -options $this \
  132.         -title "Bold Font" \
  133.         -orgFont "$scaledFont" \
  134.         -value "$scaledFont" \
  135.         -cancelPressed {%this delete} \
  136.         -okPressed {
  137.         set scale [expr 1 / [[.main editorArea] scale]]
  138.         set scaledFont [[%this options] scaleFont [%this value] $scale]
  139.         if {[%this orgFont] != "$scaledFont"} {
  140.             [.main editorArea] boldFontSpec "$scaledFont"
  141.             catch {m4_var set M4_font_bold "$scaledFont" -context ude}
  142.         }
  143.         %this delete
  144.         }
  145.     }
  146.     .main.boldFont popUp
  147. }
  148.  
  149. method EditorOptions::foreground {this} {
  150.     uplevel #0 require udecolorch.tcl
  151.     UdeColorChooser new .main.fg \
  152.     -options $this \
  153.     -title "Foreground" \
  154.     -value [m4_var get M4_fg -context ude] \
  155.     -cancelPressed {%this delete} \
  156.     -okPressed {
  157.         if {[m4_var get M4_fg -context ude] != [%this value]} {
  158.         [.main editorArea] areaForeground [%this value]
  159.         catch {m4_var set M4_fg [%this value] -context ude}
  160.         }
  161.         %this delete
  162.     }
  163.     .main.fg popUp
  164. }
  165.  
  166. method EditorOptions::background {this} {
  167.     uplevel #0 require udecolorch.tcl
  168.     UdeColorChooser new .main.bg \
  169.     -options $this \
  170.     -title "Background" \
  171.     -value [m4_var get M4_bg -context ude] \
  172.     -cancelPressed {%this delete} \
  173.     -okPressed {
  174.         if {[m4_var get M4_bg -context ude] != [%this value]} {
  175.         [.main editorArea] areaBackground [%this value]
  176.         catch {m4_var set M4_bg [%this value] -context ude}
  177.         }
  178.         %this delete
  179.     }
  180.     .main.bg popUp
  181. }
  182.  
  183. method EditorOptions::selectionColor {this} {
  184.     uplevel #0 require udecolorch.tcl
  185.     UdeColorChooser new .main.selColor \
  186.     -options $this \
  187.     -title "Selection Color" \
  188.     -value [m4_var get M4_sel_color -context ude] \
  189.     -cancelPressed {%this delete} \
  190.     -okPressed {
  191.         if {[m4_var get M4_sel_color -context ude] != [%this value]} {
  192.         [.main editorArea] areaSelectionColor [%this value]
  193.         catch {m4_var set M4_sel_color [%this value] -context ude}
  194.         }
  195.         %this delete
  196.     }
  197.     .main.selColor popUp
  198. }
  199.  
  200. method EditorOptions::grid {this} {
  201.     uplevel #0 require griddialog.tcl
  202.     GridDialog new .main.grid -area [.main editorArea]
  203.     .main.grid popUp
  204. }
  205.  
  206. method EditorOptions::printOptions {this} {
  207.     .main popUpPrintOptions
  208. }
  209.  
  210. method EditorOptions::initialFold {this} {
  211.     m4_var set M4_initial_fold [[.main menuBar].options.menu.initialfold state]
  212. }
  213.  
  214. # Do not delete this line -- regeneration end marker
  215.  
  216.