home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / tclMotif-1.4 / examples / progDH4.3 < prev    next >
Encoding:
Text File  |  1995-06-29  |  3.2 KB  |  121 lines

  1.  
  2. # Dan Hellers program 4.3, p 99
  3. # show pixmaps, allow them to change colour, file selection to
  4. # change bitmaps. When doing this, use pixmaps in eg
  5. # /usr/lib/X11/bitmaps
  6.  
  7. global pixmap
  8.  
  9. set pixmap xlogo32
  10.  
  11. xtAppInitialize
  12.  
  13. xmMainWindow .main managed -scrollBarDisplayPolicy as_needed \
  14.         -scrollingPolicy automatic
  15. # mainWindow .main
  16. xmLabel .main.label managed -labelType pixmap -labelPixmap $pixmap
  17.  
  18. # I am not supporting simple menu functions, so do this the long way
  19.  
  20. # top menu bar
  21. xmMenuBar .main.menuBar managed
  22. xmCascadeButton .main.menuBar.file managed \
  23.     -labelString File \
  24.     -mnemonic F
  25. xmCascadeButton .main.menuBar.edit managed \
  26.     -labelString Edit \
  27.     -mnemonic E
  28. xmCascadeButton .main.menuBar.help managed \
  29.      -labelString Help \
  30.     -mnemonic H
  31.  
  32. # file pulldown
  33. xmPulldownMenu .main.menuBar.fileMenu
  34. xmPushButton .main.menuBar.fileMenu.new managed \
  35.     -labelString "New..." \
  36.     -mnemonic N
  37. xmPushButton .main.menuBar.fileMenu.quit managed \
  38.      -labelString Quit \
  39.     -mnemonic Q
  40. .main.menuBar.file setValues -subMenuId .main.menuBar.fileMenu
  41.  
  42. # callbacks for file menu
  43. .main.menuBar.fileMenu.quit activateCallback "exit 0"
  44. .main.menuBar.fileMenu.new  activateCallback fileDialog
  45.  
  46. # edit pulldown
  47. xmPulldownMenu .main.menuBar.editMenu
  48. xmToggleButton .main.menuBar.editMenu.black managed \
  49.     -labelString Black \
  50.     -mnemonic k
  51. xmToggleButton .main.menuBar.editMenu.red managed \
  52.     -labelString Red \
  53.     -mnemonic R
  54. xmToggleButton .main.menuBar.editMenu.green managed\
  55.     -labelString Green \
  56.     -mnemonic G
  57. xmToggleButton .main.menuBar.editMenu.blue managed \
  58.     -labelString Blue \
  59.     -mnemonic B
  60.  
  61. # .main.menuBar.editMenu.black setValues -set True
  62. .main.menuBar.edit setValues -subMenuId .main.menuBar.editMenu
  63.  
  64. # callbacks for edit menu
  65. # note we use disarm rather than armed, because changed value
  66. # not set till then
  67. .main.menuBar.editMenu.black disarmCallback "change_colour black"
  68. .main.menuBar.editMenu.red   disarmCallback "change_colour red"
  69. .main.menuBar.editMenu.green disarmCallback "change_colour green"
  70. .main.menuBar.editMenu.blue  disarmCallback "change_colour blue"
  71.  
  72. .main.menuBar.editMenu setValues -radioBehavior True \
  73.                  -radioAlwaysOne True
  74.  
  75. # help pulldown
  76. xmPulldownMenu .main.menuBar.helpMenu managed
  77. xmPushButton .main.menuBar.helpMenu.help managed \
  78.     -labelString Help \
  79.     -mnemonic H
  80. .main.menuBar.help setValues -subMenuId .main.menuBar.helpMenu
  81.  
  82. .main.menuBar setValues -menuHelpWidget .main.menuBar.help
  83.  
  84. .main setValues -workWindow .main.label \
  85.         -menuBar .main.menuBar
  86.  
  87. proc change_colour {colour} {
  88.     global isSet
  89.     global pixmap
  90.  
  91.     .main.menuBar.editMenu.$colour getValues -set isSet
  92.     if {$isSet == "true"} {
  93.     .main.label setValues -foreground $colour
  94.     .main.label setValues -labelPixmap $pixmap
  95.     }
  96. }
  97.  
  98. proc fileDialog {} {
  99.     # does this command already exist - else create it
  100.     if {[llength [info commands .fileDialog]] > 0} {
  101.     .fileDialog manageChild
  102.     } else {
  103.     xmFileSelectionDialog .fileDialog managed
  104.     .fileDialog okCallback load_pixmap
  105.     .fileDialog cancelCallback ".fileDialog unmanageChild"
  106.     }
  107. }
  108.  
  109. proc load_pixmap {} {
  110.     global selection
  111.     global pixmap
  112.  
  113.     .fileDialog getValues -dirSpec selection
  114.     .main.label setValues -labelPixmap $selection
  115.     set pixmap $selection
  116. }
  117.  
  118. . realizeWidget
  119. . mainLoop
  120.  
  121.