home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / tcl / xf2.3-p / xf2 / xf2.3 / additionals / Barchart next >
Encoding:
Text File  |  1993-11-20  |  43.0 KB  |  1,076 lines

  1. # Program: xf
  2. # Description: handle barchart widgets
  3. #
  4. # $Header: Barchart[2.3] Wed Mar 10 11:57:15 1993 garfield@garfield frozen $
  5.  
  6. global xfDefaultConf
  7. set xfDefaultConf(barchart) 5
  8.  
  9. ##########
  10. # Procedure: XFAdd.Barchart
  11. # Description: add a barchart
  12. # Arguments: xfW - the widget
  13. #            xfName - a optional name
  14. #            xfType - add or config
  15. # Returns: none
  16. # Sideeffects: none
  17. ##########
  18. proc XFAdd.Barchart {xfW xfName xfType} {
  19.   global xfStatus
  20.  
  21.   XFEditSetStatus "Inserting Barchart..."
  22.   set xfName [XFMiscGetUniqueName $xfName barchart]
  23.   if {"$xfStatus(path)" == "."} {
  24.     if {"$xfType" == "add"} {
  25.       if {[catch "barchart .$xfName" xfResult]} {
  26.         XFProcError "$xfResult"
  27.         XFEditSetStatus "Inserting Barchart...aborted"
  28.         return
  29.       }
  30.     } {
  31.       if {[catch "barchart .$xfName" xfResult]} {
  32.         XFProcError "$xfResult"
  33.         XFEditSetStatus "Inserting Barchart...aborted"
  34.         return
  35.       }
  36.     }
  37.  
  38.     XFMiscPositionWidget .$xfName
  39.     XFMiscBindWidgetTree .$xfName
  40.   } {
  41.     if {"$xfType" == "add"} {
  42.       if {[catch "barchart $xfStatus(path).$xfName" xfResult]} {
  43.         XFProcError "$xfResult"
  44.         XFEditSetStatus "Inserting Barchart...aborted"
  45.         return
  46.       }
  47.     } {
  48.       if {[catch "barchart $xfStatus(path).$xfName" xfResult]} {
  49.         XFProcError "$xfResult"
  50.         XFEditSetStatus "Inserting Barchart...aborted"
  51.         return
  52.       }
  53.     }
  54.  
  55.     XFMiscPositionWidget $xfStatus(path).$xfName
  56.     XFMiscBindWidgetTree $xfStatus(path).$xfName
  57.   }
  58.  
  59.   incr xfStatus(elementCounter)
  60.   XFEditSetPath $xfStatus(path)
  61.   XFEditSetStatus "Inserting Barchart...done"
  62. }
  63.  
  64. ##########
  65. # Procedure: XFConfig.Barchart4
  66. # Description: configure a barchart
  67. # Arguments: xfW - the widget
  68. #            xfType - config type (add config)
  69. #            xfClass - the class we configure
  70. #            xfLeader - the leading window
  71. # Returns: none
  72. # Sideeffects: none
  73. ##########
  74. proc XFConfig.Barchart4 {xfW xfType xfClass {xfLeader ""}} {
  75.   global xfMisc
  76.   global xfStatus
  77.  
  78.   if {"$xfType" == "add"} {
  79.     set xfName barchart$xfStatus(elementCounter)
  80.   } {
  81.     set xfName [XFMiscPathName $xfW]
  82.   }
  83.   XFEditSetStatus "Calling parameter setting for Barchart..."
  84.  
  85.   # build widget structure
  86.   XFTmpltToplevel .xf${xfClass}Config4 400x650 \
  87.     "Barchart parameters:[XFMiscPathTail $xfW]" $xfLeader
  88.  
  89.   XFElementInit $xfW .xf${xfClass}Config4 $xfType $xfClass \
  90.     XFBarchartSetBarchart4 parameters $xfName 4
  91.   XFElementColor $xfW .xf${xfClass}Config4 $xfType $xfClass bg \
  92.     background Background "Background" XFBarchartSetBarchart4
  93.   XFElementScale $xfW .xf${xfClass}Config4 $xfType $xfClass borderwidth \
  94.     borderWidth BorderWidth "Border width" "pixels" 40 \
  95.     XFBarchartSetBarchart4
  96.   XFElementFont $xfW .xf${xfClass}Config4 $xfType $xfClass \
  97.     font font Font "Font" XFBarchartSetBarchart4
  98.   XFElementColor $xfW .xf${xfClass}Config4 $xfType $xfClass fg \
  99.     foreground Foreground "Foreground" XFBarchartSetBarchart4
  100.   XFElementGeometry $xfW .xf${xfClass}Config4 $xfType $xfClass \
  101.     XFBarchartSetBarchart4
  102.   XFElementScaleDouble $xfW .xf${xfClass}Config4 $xfType \
  103.     $xfClass lpos "Legend position" "X" "Y" \
  104.       [winfo screenwidth .] [winfo screenheight .]
  105.   XFElementBoolean $xfW .xf${xfClass}Config4 $xfType $xfClass showlegend \
  106.     "Show legend" XFBarchartSetBarchart4
  107.   XFElementText $xfW .xf${xfClass}Config4 $xfType $xfClass title \
  108.     title Title "Title" XFBarchartSetBarchart4
  109.   XFElementText $xfW .xf${xfClass}Config4 $xfType $xfClass xlabel \
  110.     xlabel Label "X label" XFBarchartSetBarchart4
  111.   XFElementScale $xfW .xf${xfClass}Config4 $xfType $xfClass xrotation \
  112.     xrotation Rotation "X rotation" "degree" 360 XFBarchartSetBarchart4
  113.   XFElementText $xfW .xf${xfClass}Config4 $xfType $xfClass ylabel \
  114.     ylabel Label "Y label" XFBarchartSetBarchart4
  115.   XFElementBoolean $xfW .xf${xfClass}Config4 $xfType $xfClass ylogscale \
  116.     "Y log scale" XFBarchartSetBarchart4
  117.   XFElementScale $xfW .xf${xfClass}Config4 $xfType $xfClass ysubticks \
  118.     ysubticks SubTicks "Y sub ticks" "" 50 XFBarchartSetBarchart4
  119.   XFElementScale $xfW .xf${xfClass}Config4 $xfType $xfClass ystepsize \
  120.     ystepsize StepSize "Y step size" "" 100 XFBarchartSetBarchart4
  121.  
  122.   if {"$xfType" != "add"} {
  123.     set xfTmpVal [string trim [lindex [$xfW configure -legendposition] 4] @]
  124.     if {[string first , $xfTmpVal] >= 0} {
  125.       .xf${xfClass}Config4.params1.params2.lpos.lpos1.lpos1 set \
  126.         [string range $xfTmpVal 0 [expr [string first , $xfTmpVal]-1]]
  127.       .xf${xfClass}Config4.params1.params2.lpos.lpos2.lpos2 set \
  128.         [string range $xfTmpVal [expr [string first , $xfTmpVal]+1] end]
  129.     }
  130.   }
  131.  
  132.   XFMiscSetResource .xf${xfClass}Config4.params1.params2.lpos.lpos1.lpos1 \
  133.     command "XFBarchartSetBarchart4 $xfW 0 $xfClass"
  134.   XFMiscSetResource .xf${xfClass}Config4.params1.params2.lpos.lpos2.lpos2 \
  135.     command "XFBarchartSetBarchart4 $xfW 0 $xfClass"
  136.  
  137.   # save current parameter
  138.   XFElementSave $xfW $xfClass {background borderwidth font foreground geometry legendpos showlegend title xlabel xrotation ylabel ylogscale ysubticks ystepsize}
  139.  
  140.   # packing
  141.   pack append .xf${xfClass}Config4.params1 \
  142.               .xf${xfClass}Config4.params1.params2 {left fill expand}
  143.   pack append .xf${xfClass}Config4 \
  144.               .xf${xfClass}Config4.pathname {top fill frame center} \
  145.               .xf${xfClass}Config4.leave {bottom fill} \
  146.               .xf${xfClass}Config4.additional {bottom fill} \
  147.               .xf${xfClass}Config4.params1 {top fill expand}
  148.  
  149.   XFBindFormConnect .xf${xfClass}Config4.params1.params2 \
  150.     "XFBarchartSetBarchart4 $xfW 0 $xfClass"
  151.  
  152.   XFEditSetStatus "Calling parameter setting for Barchart...done"
  153. }
  154.  
  155. ##########
  156. # Procedure: XFConfig.Barchart5
  157. # Description: configure a barchart
  158. # Arguments: xfW - the widget
  159. #            xfType - config type (add config)
  160. #            xfClass - the class we configure
  161. #            xfLeader - the leading window
  162. # Returns: none
  163. # Sideeffects: none
  164. ##########
  165. proc XFConfig.Barchart5 {xfW xfType xfClass {xfLeader ""}} {
  166.   global tkVersion
  167.   global xfBind
  168.   global xfMisc
  169.   global xfStatus
  170.  
  171.   set xfMisc(BarchartCurrentType) "<line>"
  172.   set xfMisc(BarchartAnchor) "n"
  173.  
  174.   set xfName [XFMiscPathName $xfW]
  175.   XFEditSetStatus "Calling parameter setting for Barchart..."
  176.  
  177.   # build widget structure
  178.   XFTmpltToplevel .xf${xfClass}Config5 400x550 \
  179.     "Barchart parameters:[XFMiscPathTail $xfW]" $xfLeader
  180.  
  181.   XFElementInit $xfW .xf${xfClass}Config5 $xfType $xfClass \
  182.     XFBarchartSetBarchart5 parameters $xfName 5
  183.  
  184.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1 0
  185.  
  186.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1.elements 0
  187.  
  188.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1.elements.elem1 0
  189.  
  190.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 0
  191.  
  192.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1.children 0
  193.  
  194.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.commands 0
  195.  
  196.   menubutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries \
  197.     -text {Barchart entry:} \
  198.     -underline 0 \
  199.     -menu ".xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m"
  200.  
  201.   menu .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m
  202.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m \
  203.     add radiobutton \
  204.       -label {Bar} \
  205.       -variable xfMisc(BarchartCurrentType) \
  206.       -value "<bar>" \
  207.       -underline 0 \
  208.       -command "XFBarchartSetItems bar $xfClass"
  209.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m \
  210.     add radiobutton \
  211.       -label {Tag} \
  212.       -variable xfMisc(BarchartCurrentType) \
  213.       -value "<tag>" \
  214.       -underline 0 \
  215.       -command "XFBarchartSetItems tag $xfClass"
  216.  
  217.   label \
  218.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.message1 \
  219.       -anchor w \
  220.       -text {Bar}
  221.   
  222.   button .xf${xfClass}Config5.params1.params2.commands.insert \
  223.     -text {Insert item} \
  224.     -command "XFBarchartInsertItem $xfW $xfClass"
  225.  
  226.   button .xf${xfClass}Config5.params1.params2.commands.modify \
  227.     -text {Modify item} \
  228.     -command "XFBarchartModifyItem $xfW $xfClass"
  229.  
  230.   button .xf${xfClass}Config5.params1.params2.commands.delete \
  231.     -text {Delete item} \
  232.     -command "XFBarchartDeleteItem $xfW $xfClass"
  233.  
  234.   XFTmpltLabledEntry \
  235.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  236.       tag "Item name:"
  237.  
  238.   XFTmpltFrame \
  239.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor 0
  240.  
  241.   label .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.message1 \
  242.     -relief raised \
  243.     -text {Anchor:}
  244.  
  245.   XFTmpltFrame \
  246.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor 0
  247.  
  248.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1 0
  249.  
  250.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2 0
  251.  
  252.   XFTmpltFrame .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3 0
  253.  
  254.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.nw \
  255.     -anchor w \
  256.     -text {NW} \
  257.     -variable xfMisc(BarchartAnchor) \
  258.     -command ""
  259.  
  260.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.w \
  261.     -anchor w \
  262.     -text {W} \
  263.     -variable xfMisc(BarchartAnchor) \
  264.     -command ""
  265.  
  266.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.sw \
  267.     -anchor w \
  268.     -text {SW} \
  269.     -variable xfMisc(BarchartAnchor) \
  270.     -command ""
  271.  
  272.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.n \
  273.     -anchor w \
  274.     -text {N} \
  275.     -variable xfMisc(BarchartAnchor) \
  276.     -command ""
  277.  
  278.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.c \
  279.     -anchor w \
  280.     -text {C} \
  281.     -variable xfMisc(BarchartAnchor) \
  282.     -command ""
  283.  
  284.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.s \
  285.     -anchor w \
  286.     -text {S} \
  287.     -variable xfMisc(BarchartAnchor) \
  288.     -command ""
  289.  
  290.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.ne \
  291.     -anchor w \
  292.     -text {NE} \
  293.     -variable xfMisc(BarchartAnchor) \
  294.     -command ""
  295.  
  296.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.e \
  297.     -anchor w \
  298.     -text {E} \
  299.     -variable xfMisc(BarchartAnchor) \
  300.     -command ""
  301.  
  302.   radiobutton .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.se \
  303.     -anchor w \
  304.     -text {SE} \
  305.     -variable xfMisc(BarchartAnchor) \
  306.     -command ""
  307.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.c select
  308.  
  309.   XFTmpltLabledEntry \
  310.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  311.       bg "Background:"
  312.  
  313.   XFTmpltLabledEntry \
  314.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  315.       name "Bar name:"
  316.  
  317.   XFTmpltLabledEntry \
  318.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  319.       bitmap "Bitmap:"
  320.  
  321.   XFTmpltLabledEntry \
  322.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  323.       font "Font:"
  324.  
  325.   XFTmpltLabledEntry \
  326.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  327.       fg "Foreground:"
  328.  
  329.   XFTmpltLabledEntry \
  330.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  331.       label "Label:"
  332.  
  333.   XFTmpltScale \
  334.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  335.       linewidth "Line width:" "" 50
  336.  
  337.   XFTmpltLabledEntry \
  338.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  339.       posx "X position:"
  340.  
  341.   XFTmpltLabledEntry \
  342.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  343.       posy "Y position:"
  344.  
  345.   XFTmpltScale \
  346.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  347.       rotate "Rotation:" "" 360
  348.  
  349.   XFTmpltLabledEntry \
  350.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  351.       stipple "Stipple:"
  352.  
  353.   label \
  354.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.message6 \
  355.       -relief raised \
  356.       -text {Text:}
  357.  
  358.   XFTmpltText .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 text
  359.   XFMiscSetTextHeight \
  360.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.text.text 5
  361.  
  362.   label \
  363.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.message4 \
  364.       -relief raised \
  365.       -text {Y data:}
  366.  
  367.   XFTmpltText .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 ydata
  368.   XFMiscSetTextHeight \
  369.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.ydata.ydata 5
  370.  
  371.   label .xf${xfClass}Config5.params1.params2.frame1.children.message1 \
  372.     -text {Items:}
  373.  
  374.   XFTmpltListbox .xf${xfClass}Config5.params1.params2.frame1.children items
  375.  
  376.   .xf${xfClass}Config5.leave.ok configure \
  377.     -command "
  378.       XFMiscSetSymbolicName $xfW \
  379.         \[.xf${xfClass}Config5.params1.params2.symname.symname get\]
  380.       destroy .xf${xfClass}Config5"
  381.  
  382.   .xf${xfClass}Config5.leave.apply configure \
  383.     -command ""
  384.  
  385.   .xf${xfClass}Config5.leave.applyperm configure \
  386.     -command ""
  387.  
  388.   .xf${xfClass}Config5.leave.cancel configure \
  389.     -command "destroy .xf${xfClass}Config5"
  390.  
  391.   XFBarchartReadBarchart $xfW $xfClass
  392.  
  393.   case [lindex [.xf${xfClass}Config5.params1.params2.frame1.elements.elem1.message1 config -text] 4] in {
  394.     {Tag} {
  395.       .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m invoke 1
  396.     }
  397.     {default} {
  398.       .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m invoke 0
  399.     }
  400.   }
  401.  
  402.   XFBarchartSetItem $xfW $xfClass
  403.  
  404.   if {$tkVersion >= 3.0} {
  405.     tk_menuBar .xf${xfClass}Config5.params1.params2.frame1.elements.elem1 \
  406.                .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries
  407.   } {
  408.     tk_menus .xf${xfClass}Config5 \
  409.              .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries
  410.   }
  411.  
  412.   # bindings
  413.   bind .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg $xfBind(configure) \
  414.     "XFProcColorBox background .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg"
  415.  
  416.   bind .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap $xfBind(configure) \
  417.     "XFProcFSBoxPixmap .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap"
  418.  
  419.   bind .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font.font $xfBind(configure) \
  420.     "XFProcFontBox font .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font.font"
  421.  
  422.   bind .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg $xfBind(configure) \
  423.     "XFProcColorBox foreground .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg"
  424.  
  425.   bind .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple $xfBind(configure) \
  426.     "XFProcFSBoxPixmap .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple"
  427.  
  428.   bind .xf${xfClass}Config5.params1.params2.frame1.children.items.items $xfBind(select1) "
  429.     XFBindSelectOne %W %y
  430.     XFBarchartSetItem $xfW $xfClass"
  431.   bind .xf${xfClass}Config5.params1.params2.frame1.children.items.items <ButtonPress-1> "
  432.     XFBindSelectOne %W %y
  433.     XFBarchartSetItem $xfW $xfClass"
  434.   bind .xf${xfClass}Config5.params1.params2.frame1.children.items.items <Button1-Motion> "
  435.     XFBindSelectOne %W %y
  436.     XFBarchartSetItem $xfW $xfClass"
  437.   bind .xf${xfClass}Config5.params1.params2.frame1.children.items.items <Shift-ButtonPress-1> "
  438.     XFBindSelectOne %W %y
  439.     XFBarchartSetItem $xfW $xfClass"
  440.   bind .xf${xfClass}Config5.params1.params2.frame1.children.items.items <Shift-Button1-Motion> "
  441.     XFBindSelectOne %W %y
  442.     XFBarchartSetItem $xfW $xfClass"
  443.  
  444.   # packing
  445.   pack append .xf${xfClass}Config5.params1.params2.commands \
  446.               .xf${xfClass}Config5.params1.params2.commands.insert {left fill expand} \
  447.               .xf${xfClass}Config5.params1.params2.commands.modify {left fill expand} \
  448.               .xf${xfClass}Config5.params1.params2.commands.delete {left fill expand}
  449.  
  450.   pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem1 \
  451.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries {left fillx} \
  452.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.message1 {left fillx expand}
  453.  
  454.   pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1 \
  455.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.nw {top fillx} \
  456.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.w {top fillx} \
  457.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.sw {top fillx}
  458.  
  459.   pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2 \
  460.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.n {top fillx} \
  461.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.c {top fillx} \
  462.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.s {top fillx}
  463.  
  464.   pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3 \
  465.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.ne {top fillx} \
  466.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.e {top fillx} \
  467.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.se {top fillx}
  468.  
  469.   pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor \
  470.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1 {left frame center} \
  471.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2 {left frame center} \
  472.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3 {left frame center}
  473.  
  474.   pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor \
  475.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.message1 {left frame center} \
  476.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor {left frame center}
  477.  
  478.   pack append .xf${xfClass}Config5.params1.params2.frame1.elements \
  479.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem1 {top fill} \
  480.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 {top fill expand}
  481.  
  482.   pack append .xf${xfClass}Config5.params1.params2.frame1.children \
  483.               .xf${xfClass}Config5.params1.params2.frame1.children.message1 {top frame center} \
  484.               .xf${xfClass}Config5.params1.params2.frame1.children.items {left fill expand}
  485.  
  486.   place .xf${xfClass}Config5.params1.params2.frame1.elements \
  487.     -in .xf${xfClass}Config5.params1.params2.frame1 \
  488.     -relx 0 \
  489.     -rely 0 \
  490.     -relheight 1.0 \
  491.     -relwidth 0.5
  492.  
  493.   place .xf${xfClass}Config5.params1.params2.frame1.children \
  494.     -in .xf${xfClass}Config5.params1.params2.frame1 \
  495.     -relx 0.5 \
  496.     -rely 0 \
  497.     -relheight 1.0 \
  498.     -relwidth 0.5
  499.  
  500.   pack append .xf${xfClass}Config5.params1.params2 \
  501.               .xf${xfClass}Config5.params1.params2.frame1 {top fill expand} \
  502.               .xf${xfClass}Config5.params1.params2.commands {top fill}
  503.  
  504.   pack append .xf${xfClass}Config5.params1 \
  505.               .xf${xfClass}Config5.params1.params2 {left fill expand}
  506.   pack append .xf${xfClass}Config5 \
  507.               .xf${xfClass}Config5.pathname {top fill frame center} \
  508.               .xf${xfClass}Config5.leave {bottom fill} \
  509.               .xf${xfClass}Config5.additional {bottom fill} \
  510.               .xf${xfClass}Config5.params1 {top fill expand}
  511.  
  512.   XFBindFormConnect .xf${xfClass}Config5.params1.params2.frame1.elements.elem2
  513.  
  514.   XFEditSetStatus "Calling parameter setting for Barchart...done"
  515. }
  516.  
  517. ##########
  518. # Procedure: XFSaveSpecial.Barchart
  519. # Description: save barchart
  520. # Arguments: xfW - the widget
  521. # Returns: none
  522. # Sideeffects: none
  523. ##########
  524. proc XFSaveSpecial.Barchart {xfW} {
  525.  
  526.   set xfResult "\n  # build barchart items $xfW\n"
  527.   foreach xfCounter [$xfW names] {
  528. #FIX
  529. #    case [$xfW type $xfCounter] in {
  530. #      {bar} {
  531.         append xfResult "  $xfW insert \{$xfCounter\}"
  532.         foreach xfOptions [$xfW barconfigure $xfCounter] {
  533.           # only handle options with 5 items per option entry
  534.           if {[llength $xfOptions] == 5} {
  535.             if {"[lindex $xfOptions 3]" != "[lindex $xfOptions 4]"} {
  536.               append xfResult " \\\n    [lindex $xfOptions 0] {[lindex $xfOptions 4]}"
  537.             }
  538.           }
  539.         }
  540. #      }
  541. #    }
  542.     append xfResult "\n"
  543.   }
  544.   return $xfResult
  545. }
  546.  
  547. ##########
  548. # Procedure: XFBarchartDeleteItem
  549. # Description: delete item from barchart
  550. # Arguments: xfW - the widget
  551. #            xfClass - the class we configure
  552. # Returns: none
  553. # Sideeffects: none
  554. ##########
  555. proc XFBarchartDeleteItem {xfW xfClass} {
  556.  
  557.   set xfCurSelected \
  558.     [.xf${xfClass}Config5.params1.params2.frame1.children.items.items curselection]
  559.   if {$xfCurSelected >= 0} {
  560.     set xfTag \
  561.       "[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]"
  562.     if {[lindex [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 0] == "<tag>"} {
  563.       catch "$xfW untag \{$xfTag\}"
  564.     } {
  565.       catch "$xfW delete \{$xfTag\}"
  566.     }
  567.  
  568.     set xfCounter 0
  569.     set xfLast \
  570.       [.xf${xfClass}Config5.params1.params2.frame1.children.items.items size]
  571.     if {"$xfLast" == "none"} {
  572.       set xfLast -1
  573.     }
  574.     while {$xfCounter < $xfLast} {
  575.       if {"$xfTag" == "[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCounter] 1 end]"} {
  576.         .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  577.           delete $xfCounter
  578.       }
  579.       incr xfCounter 1
  580.     }
  581.   }
  582. }
  583.  
  584. ##########
  585. # Procedure: XFBarchartInsertItem
  586. # Description: insert item into barchart
  587. # Arguments: xfW - the widget
  588. #            xfClass - the class we configure
  589. #            xfIndex - the target location in the graph
  590. # Returns: none
  591. # Sideeffects: none
  592. ##########
  593. proc XFBarchartInsertItem {xfW xfClass {xfIndex ""}} {
  594.   global xfMisc
  595.  
  596.   if {"$xfIndex" == ""} {
  597.     set xfIndex end
  598.   }
  599.   set xfTag ""
  600.   set xfTagName \
  601.     [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.tag.tag get]
  602.   set xfCounter 0
  603.   if {[lsearch [$xfW names] "$xfTagName"] >= 0} {
  604.     XFProcError "There already exists an item named:\n$xfTagName"
  605.   } {
  606.     if {"$xfTagName" != ""} {
  607.       case $xfMisc(BarchartCurrentType) in {
  608.         {<tag*} {
  609.           if {[catch "$xfW newtag \{$xfTagName\} \
  610.                 [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posx.posx get] \
  611.                 [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posy.posy get]" xfResult]} {
  612.             XFProcError "$xfResult"
  613.             return
  614.           } {
  615.             XFBarchartSetBarchart5 $xfW "$xfTagName" <tag> 1 $xfClass
  616.           }
  617.         }
  618.         {default} {
  619.           $xfW insert "$xfTagName"
  620.           XFBarchartSetBarchart5 $xfW "$xfTagName" <bar> 1 $xfClass
  621.         }
  622.       }
  623.       .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  624.         insert end "$xfMisc(BarchartCurrentType) $xfTagName"
  625.       .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  626.         select from $xfIndex 
  627.       .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  628.         select to $xfIndex 
  629.     }
  630.   }
  631. }
  632.  
  633. ##########
  634. # Procedure: XFBarchartModifyItem
  635. # Description: modify item in graph
  636. # Arguments: xfW - the widget
  637. #            xfClass - the class we configure
  638. # Returns: none
  639. # Sideeffects: none
  640. ##########
  641. proc XFBarchartModifyItem {xfW xfClass} {
  642.  
  643.   set xfCurSelected \
  644.     [.xf${xfClass}Config5.params1.params2.frame1.children.items.items curselection]
  645.   if {$xfCurSelected >= 0} {
  646.     XFBarchartSetBarchart5 $xfW \
  647.       "[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]" \
  648.       [lindex [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 0] 1 $xfClass
  649.     .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  650.       select from $xfCurSelected
  651.     .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  652.       select to $xfCurSelected
  653.   }
  654. }
  655.  
  656. ##########
  657. # Procedure: XFBarchartReadBarchart
  658. # Description: read current barchart, and insert it into the lists
  659. # Arguments: xfW - the widget we configure 
  660. #            xfClass - the class we configure
  661. # Returns: none
  662. # Sideeffects: none
  663. ##########
  664. proc XFBarchartReadBarchart {xfW xfClass} {
  665.  
  666.   foreach xfCounter [$xfW names] {
  667.     .xf${xfClass}Config5.params1.params2.frame1.children.items.items insert end "<bar> $xfCounter"
  668.   }
  669.   if {[.xf${xfClass}Config5.params1.params2.frame1.children.items.items size] > 0} {
  670.     .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  671.       select from 0
  672.     .xf${xfClass}Config5.params1.params2.frame1.children.items.items \
  673.       select to 0
  674.     XFBarchartSetItem $xfW $xfClass
  675.   }
  676. }
  677.  
  678. ##########
  679. # Procedure: XFBarchartSetItem
  680. # Description: set item fields to values from currently selected item
  681. # Arguments: xfW - the widget
  682. #            xfClass - the class we configure
  683. # Returns: none
  684. # Sideeffects: none
  685. ##########
  686. proc XFBarchartSetItem {xfW xfClass} {
  687.   global xfMisc
  688.  
  689.   set xfCurSelected \
  690.     [.xf${xfClass}Config5.params1.params2.frame1.children.items.items curselection]
  691.   if {$xfCurSelected >= 0} {
  692.     case [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] in {
  693.       {<tag*} {
  694.         set xfMisc(BarchartCurrentType) "<tag>"
  695.         .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m \
  696.           entryconfigure 1 -state active
  697.         XFBarchartSetItems tag $xfClass
  698.         .xf${xfClass}Config5.leave.apply configure \
  699.           -command "
  700.             XFBarchartSetBarchart5 $xfW \{[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]\} <tag> 1 $xfClass"
  701.         .xf${xfClass}Config5.leave.applyperm configure \
  702.           -command "
  703.             XFBarchartSetBarchart5 $xfW \{[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]\} <tag> 0 $xfClass"
  704.       }
  705.       {default} {
  706.         set xfMisc(BarchartCurrentType) "<bar>"
  707.         .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.entries.m \
  708.           entryconfigure 0 -state active
  709.         XFBarchartSetItems bar $xfClass
  710.         .xf${xfClass}Config5.leave.apply configure \
  711.           -command "
  712.             XFBarchartSetBarchart5 $xfW \{[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]\} <bar> 1 $xfClass"
  713.         .xf${xfClass}Config5.leave.applyperm configure \
  714.           -command "
  715.             XFBarchartSetBarchart5 $xfW \{[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]\} <bar> 0 $xfClass"
  716.       }
  717.     }
  718.  
  719.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.tag.tag \
  720.       insert 0 \
  721.         "[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]"
  722.     if {[catch "$xfW barconfigure \{[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]\}" xfResources]} {
  723.       catch "$xfW tagconfigure \{[lrange [.xf${xfClass}Config5.params1.params2.frame1.children.items.items get $xfCurSelected] 1 end]\}" xfResources
  724.     }
  725.     foreach xfCounter $xfResources {
  726.       # only handle options with 5 items per option entry
  727.       if {[llength $xfCounter] == 5} {
  728.         case [lindex $xfCounter 0] in {
  729.           {-anchor} {
  730.             case [lindex $xfCounter 4] in {
  731.               {nw} {
  732.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.nw select
  733.               }
  734.               {w} {
  735.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.w select
  736.               }
  737.               {sw} {
  738.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f1.sw select
  739.               }
  740.               {n} {
  741.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.n select
  742.               }
  743.               {c} {
  744.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.c select
  745.               }
  746.               {s} {
  747.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.s select
  748.               }
  749.               {ne} {
  750.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.ne select
  751.               }
  752.               {e} {
  753.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.e select
  754.               }
  755.               {se} {
  756.                 .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f3.se select
  757.               }
  758.             }
  759.           }
  760.           {-background} {
  761.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg \
  762.               delete 0 end
  763.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg \
  764.               insert 0 [lindex $xfCounter 4]
  765.           }
  766.           {-bar} {
  767.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.name.name \
  768.               delete 0 end
  769.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.name.name \
  770.               insert 0 [lindex $xfCounter 4]
  771.           }
  772.           {-bitmap} {
  773.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap \
  774.               delete 0 end
  775.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap \
  776.               insert 0 [lindex $xfCounter 4]
  777.           }
  778.           {-font} {
  779.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font.font \
  780.               delete 0 end
  781.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font.font \
  782.               insert 0 [lindex $xfCounter 4]
  783.           }
  784.           {-foreground} {
  785.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg \
  786.               delete 0 end
  787.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg \
  788.               insert 0 [lindex $xfCounter 4]
  789.           }
  790.           {-label} {
  791.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.label.label \
  792.               delete 0 end
  793.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.label.label \
  794.               insert 0 [lindex $xfCounter 4]
  795.           }
  796.           {-rotation} {
  797.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.rotate.rotate \
  798.               set [lindex $xfCounter 4]
  799.           }
  800.           {-stipple} {
  801.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple \
  802.               delete 0 end
  803.             .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple \
  804.               insert 0 [lindex $xfCounter 4]
  805.           }
  806.           {-text} {
  807.             XFMiscSetText \
  808.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.text.text \
  809.                 [lindex $xfCounter 4]
  810.           }
  811.           {-ydata} {
  812.             XFMiscSetText \
  813.               .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.ydata.ydata \
  814.                 [lindex $xfCounter 4]
  815.           }
  816.         }
  817.       }
  818.     }
  819.   }
  820. }
  821.  
  822. ##########
  823. # Procedure: XFBarchartSetItems
  824. # Description: set item fields for currently selected widget
  825. # Arguments: xfType - the type we want to edit
  826. #            xfClass - the class we configure
  827. # Returns: none
  828. # Sideeffects: none
  829. ##########
  830. proc XFBarchartSetItems {xfType xfClass} {
  831.  
  832.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.tag
  833.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor
  834.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg
  835.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.name
  836.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap
  837.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font
  838.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg
  839.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.label
  840.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posx
  841.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posy
  842.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.rotate
  843.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple
  844.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.message6
  845.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.text
  846.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.message4
  847.   pack unpack .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.ydata
  848.  
  849.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.tag.tag \
  850.     delete 0 end
  851.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor.anchor.f2.c \
  852.     select
  853.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg \
  854.     delete 0 end
  855.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.name.name \
  856.     delete 0 end
  857.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap \
  858.     delete 0 end
  859.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font.font \
  860.     delete 0 end
  861.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg \
  862.     delete 0 end
  863.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.label.label \
  864.     delete 0 end
  865.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posx.posx \
  866.     delete 0 end
  867.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posy.posy \
  868.     delete 0 end
  869.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.rotate.rotate \
  870.     set 0
  871.   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple \
  872.     delete 0 end
  873.   XFMiscSetText \
  874.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.text.text
  875.   XFMiscSetText \
  876.     .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.ydata.ydata
  877.  
  878.   case $xfType in {
  879.     {tag} {
  880.       .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.message1 \
  881.         configure -text "Tag"
  882.  
  883.       pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  884.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.tag {top fillx} \
  885.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.anchor {top fillx} \
  886.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg {top fillx} \
  887.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap {top fillx} \
  888.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font {top fillx} \
  889.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg {top fillx} \
  890.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.name {top fillx} \
  891.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posx {top fillx} \
  892.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.posy {top fillx} \
  893.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.rotate {top fillx} \
  894.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.message6 {top fillx} \
  895.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.text {top fillx}
  896.     }
  897.     {default} {
  898.       .xf${xfClass}Config5.params1.params2.frame1.elements.elem1.message1 \
  899.         configure -text "Bar"
  900.  
  901.       pack append .xf${xfClass}Config5.params1.params2.frame1.elements.elem2 \
  902.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.tag {top fillx} \
  903.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg {top fillx} \
  904.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg {top fillx} \
  905.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.label {top fillx} \
  906.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple {top fillx} \
  907.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.message4 {top fillx} \
  908.                   .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.ydata {top fillx} \
  909.     }
  910.   }
  911.   XFBindFormConnect .xf${xfClass}Config5.params1.params2.frame1.elements.elem2
  912. }
  913.  
  914. ##########
  915. # Procedure: XFBarchartSetBarchart4
  916. # Description: set barchart parameters
  917. # Arguments: xfW - the widget
  918. #            xfType - the type of setting (1 = set always, 0 = set
  919. #                     only if permanent apply is on)
  920. #            xfClass - the class we configure
  921. #            xfParam1 - ignored parameter
  922. # Returns: none
  923. # Sideeffects: none
  924. ##########
  925. proc XFBarchartSetBarchart4 {xfW xfType xfClass {xfParam1 ""}} {
  926.   global xfConf
  927.   global xfMisc
  928.  
  929.   if {$xfType == 0 && !$xfConf(applyParameters)} {
  930.     return
  931.   }
  932.   if {"[info commands $xfW]" == ""} {
  933.     return
  934.   }
  935.   XFMiscSetSymbolicName $xfW \
  936.     [.xf${xfClass}Config4.params1.params2.symname.symname get]
  937.  
  938.   XFMiscSetResource $xfW background \
  939.     [.xf${xfClass}Config4.params1.params2.bg.bg get]
  940.   XFMiscSetResource $xfW borderwidth \
  941.     [.xf${xfClass}Config4.params1.params2.borderwidth.borderwidth get]
  942.   XFMiscSetResource $xfW font \
  943.     [.xf${xfClass}Config4.params1.params2.font.font get]
  944.   XFMiscSetResource $xfW foreground \
  945.     [.xf${xfClass}Config4.params1.params2.fg.fg get]
  946.   if {[.xf${xfClass}Config4.params1.params2.geo.geo1.geo1 get] > 0 &&
  947.       [.xf${xfClass}Config4.params1.params2.geo.geo2.geo2 get] > 0} {
  948.     XFMiscSetResource $xfW geometry \
  949.       "[.xf${xfClass}Config4.params1.params2.geo.geo1.geo1 get]x[.xf${xfClass}Config4.params1.params2.geo.geo2.geo2 get]"
  950.   }
  951.   if {[.xf${xfClass}Config4.params1.params2.lpos.lpos1.lpos1 get] > 0 &&
  952.       [.xf${xfClass}Config4.params1.params2.lpos.lpos2.lpos2 get] > 0} {
  953.     XFMiscSetResource $xfW legendposition \
  954.       "@[.xf${xfClass}Config4.params1.params2.lpos.lpos1.lpos1 get],[.xf${xfClass}Config4.params1.params2.lpos.lpos2.lpos2 get]"
  955.   }
  956.   XFMiscSetResource $xfW showlegend $xfMisc(showlegend)
  957.   XFMiscSetResource $xfW title \
  958.     [.xf${xfClass}Config4.params1.params2.title.title get]
  959.   XFMiscSetResource $xfW xlabel \
  960.     [.xf${xfClass}Config4.params1.params2.xlabel.xlabel get]
  961.   XFMiscSetResource $xfW xrotation \
  962.     [.xf${xfClass}Config4.params1.params2.xrotation.xrotation get]
  963.   XFMiscSetResource $xfW ylabel \
  964.     [.xf${xfClass}Config4.params1.params2.ylabel.ylabel get]
  965.   XFMiscSetResource $xfW ylog $xfMisc(ylogscale)
  966.   XFMiscSetResource $xfW ystepsize \
  967.     [.xf${xfClass}Config4.params1.params2.ystepsize.ystepsize get]
  968.   XFMiscSetResource $xfW ysubticks \
  969.     [.xf${xfClass}Config4.params1.params2.ysubticks.ysubticks get]
  970. }
  971.  
  972. ##########
  973. # Procedure: XFBarchartSetBarchart5
  974. # Description: set barchart parameters
  975. # Arguments: xfW - the widget
  976. #            xfTag - the tag we modify
  977. #            xfTagType - the type of the tag we modify
  978. #            xfType - the type of setting (1 = set always, 0 = set
  979. #                     only if permanent apply is on)
  980. #            xfClass - the class we configure
  981. #            xfParam1 - ignored parameter
  982. # Returns: none
  983. # Sideeffects: none
  984. ##########
  985. proc XFBarchartSetBarchart5 {xfW xfTag xfTagType xfType xfClass {xfParam1 ""}} {
  986.   global xfConf
  987.   global xfMisc
  988.  
  989.   if {$xfType == 0 && !$xfConf(applyParameters)} {
  990.     return
  991.   }
  992.   if {"[info commands $xfW]" == ""} {
  993.     return
  994.   }
  995.   XFMiscSetSymbolicName $xfW \
  996.     [.xf${xfClass}Config5.params1.params2.symname.symname get]
  997.  
  998.   case $xfTagType in {
  999.     {<tag>} {
  1000.       catch "$xfW tagconfigure \{$xfTag\} -anchor $xfMisc(BarchartAnchor)"
  1001.       if {"[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg get]" != ""} {
  1002.         catch "$xfW tagconfigure \{$xfTag\} \
  1003.           -background \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg get]\}"
  1004.       }
  1005.       if {"[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap get]" != ""} {
  1006.         if {"[string index [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap get] 0]" == "@"} {
  1007.           catch "$xfW tagconfigure \{$xfTag\} -bitmap \
  1008.             \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap get]\}"
  1009.         } {
  1010.           if {[file exists [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap get]]} {
  1011.             catch "$xfW tagconfigure \{$xfTag\} -bitmap \
  1012.               \{@[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap get]\}"
  1013.           } {
  1014.             catch "$xfW tagconfigure \{$xfTag\} -bitmap \
  1015.               \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bitmap.bitmap get]\}"
  1016.           }
  1017.         }
  1018.       } {
  1019.         catch "$xfW tagconfigure \{$xfTag\} -bitmap {}"
  1020.       }
  1021.       if {"[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font.font get]" != ""} {
  1022.         catch "$xfW tagconfigure \{$xfTag\} \
  1023.           -font \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.font.font get]\}"
  1024.       }
  1025.       if {"[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg get]" != ""} {
  1026.         catch "$xfW tagconfigure \{$xfTag\} \
  1027.           -foreground \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg get]\}"
  1028.       }
  1029.       catch "$xfW tagconfigure \{$xfTag\} \
  1030.         -bar \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.name.name get]\}"
  1031.       catch "$xfW tagconfigure \{$xfTag\} \
  1032.         -rotation [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.rotate.rotate get]"
  1033.       if {"[XFMiscGetText .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.text.text]" != ""} {
  1034.         catch "$xfW tagconfigure \{$xfTag\} \
  1035.           -text \{[XFMiscGetText .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.text.text]\}"
  1036.       }
  1037.     }
  1038.     {default} {
  1039.       if {"[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg get]" != ""} {
  1040.         catch "$xfW barconfigure \{$xfTag\} \
  1041.           -background \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.bg.bg get]\}"
  1042.       }
  1043.       if {"[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple get]" != ""} {
  1044.         if {"[string index [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple get] 0]" == "@"} {
  1045.           catch "$xfW barconfigure \{$xfTag\} -stipple \
  1046.             \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple get]\}"
  1047.         } {
  1048.           if {[file exists [.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple get]]} {
  1049.             catch "$xfW barconfigure \{$xfTag\} -stipple \
  1050.               \{@[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple get]\}"
  1051.           } {
  1052.             catch "$xfW barconfigure \{$xfTag\} -stipple \
  1053.               \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.stipple.stipple get]\}"
  1054.           }
  1055.         }
  1056.       } {
  1057.         catch "$xfW barconfigure \{$xfTag\} -stipple {}"
  1058.       }
  1059.       if {"[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg get]" != ""} {
  1060.         catch "$xfW barconfigure \{$xfTag\} \
  1061.           -foreground \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.fg.fg get]\}"
  1062.       }
  1063.       catch "$xfW barconfigure \{$xfTag\} \
  1064.         -label \{[.xf${xfClass}Config5.params1.params2.frame1.elements.elem2.label.label get]\}"
  1065.       set xfYData [string trim [XFMiscGetText .xf${xfClass}Config5.params1.params2.frame1.elements.elem2.ydata.ydata]]
  1066.       if {"$xfYData]" != ""} {
  1067.         catch "$xfW barconfigure \{$xfTag\} \
  1068.           -ydata \{$xfYData\}"
  1069.       }
  1070.     }
  1071.   }
  1072. }
  1073.  
  1074. # eof
  1075.  
  1076.