[brlcad-commits] SF.net SVN: brlcad:[48176] brlcad/trunk/src/tclscripts/boteditor
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <n_...@us...> - 2011-12-28 22:07:55
|
Revision: 48176 http://brlcad.svn.sourceforge.net/brlcad/?rev=48176&view=rev Author: n_reed Date: 2011-12-28 22:07:48 +0000 (Wed, 28 Dec 2011) Log Message: ----------- allow setting bot mode and orientation from gui Modified Paths: -------------- brlcad/trunk/src/tclscripts/boteditor/botEditor.tcl brlcad/trunk/src/tclscripts/boteditor/botPropertyBox.tcl Modified: brlcad/trunk/src/tclscripts/boteditor/botEditor.tcl =================================================================== --- brlcad/trunk/src/tclscripts/boteditor/botEditor.tcl 2011-12-28 18:32:05 UTC (rev 48175) +++ brlcad/trunk/src/tclscripts/boteditor/botEditor.tcl 2011-12-28 22:07:48 UTC (rev 48176) @@ -255,6 +255,7 @@ set _ $prefix + proc ::adjust {args} {eval $BotEditor::_ adjust $args} proc ::bb {args} {eval $BotEditor::_ bb $args} proc ::bot {args} {eval $BotEditor::_ bot $args} proc ::bot_condense {args} {eval $BotEditor::_ bot_condense $args} Modified: brlcad/trunk/src/tclscripts/boteditor/botPropertyBox.tcl =================================================================== --- brlcad/trunk/src/tclscripts/boteditor/botPropertyBox.tcl 2011-12-28 18:32:05 UTC (rev 48175) +++ brlcad/trunk/src/tclscripts/boteditor/botPropertyBox.tcl 2011-12-28 22:07:48 UTC (rev 48176) @@ -16,10 +16,6 @@ constructor {bot args} {} public { - common TYPE_SURFACE 1 - common TYPE_VOLUME 2 - common TYPE_PLATE 3 - method update {bot} } @@ -42,7 +38,7 @@ # add tab panes to container frame itk_component add tpane { - TypePane $itk_component(main).typePane $bot + PropertiesPane $itk_component(main).propertiesPane $bot } {} itk_component add gpane { GeometryPane $itk_component(main).geometryPane $bot @@ -59,7 +55,7 @@ -text Geometry \ -sticky nw $itk_component(nb) add $itk_component(tpane) \ - -text Type \ + -text Properties \ -sticky nw } @@ -74,71 +70,92 @@ set ::${itk_interior}Radio [bot get type $bot] } -::itcl::class TypePane { +::itcl::class PropertiesPane { inherit itk::Widget - constructor {bot args} { - eval itk_initialize $args + constructor {bot args} {} - # make container frame - itk_component add main { - ttk::frame $itk_interior.typePaneFrame - } {} + public { + method updateMode {} + method updateOrientation {} + } - # add layout frames to container frame - itk_component add cframe { - ttk::frame $itk_component(main).contentFrame \ - -padding 5 - } {} - itk_component add sframe { - ttk::frame $itk_component(main).springFrame - } {} + private { + variable bot + } +} - # add radio widgets to content frame - set ::${itk_interior}Radio 0 - itk_component add surfRadio { - ttk::radiobutton $itk_component(cframe).surfaceRadio \ - -text Surface \ - -value $BotPropertyBox::TYPE_SURFACE \ - -variable ::${itk_interior}Radio - } {} - itk_component add volRadio { - ttk::radiobutton $itk_component(cframe).volumeRadio \ - -text Volume \ - -value $BotPropertyBox::TYPE_VOLUME \ - -variable ${itk_interior}Radio - } {} - itk_component add plateRadio { - ttk::radiobutton $itk_component(cframe).plateRadio \ - -text Plate \ - -value $BotPropertyBox::TYPE_PLATE \ - -variable ${itk_interior}Radio - } {} +::itcl::body PropertiesPane::constructor {b args} { + eval itk_initialize $args - # select appropriate radio - set ::${itk_interior}Radio [bot get type $bot] - - # disabling for now - $itk_component(surfRadio) configure -state disabled - $itk_component(volRadio) configure -state disabled - $itk_component(plateRadio) configure -state disabled + set bot $b - # display container frame - pack $itk_component(main) -expand yes -fill both + # make container frame + itk_component add main { + ttk::frame $itk_interior.propertiesPaneFrame + } {} - # display layout frames in container frame - grid $itk_component(cframe) -row 0 -column 0 - grid $itk_component(sframe) -row 1 -column 0 -sticky news - grid rowconfigure $itk_component(main) 1 -weight 1 - grid columnconfigure $itk_component(main) 0 -weight 1 + # add layout frames to container frame + itk_component add cframe { + ttk::frame $itk_component(main).contentFrame \ + -padding 5 + } {} + itk_component add sframe { + ttk::frame $itk_component(main).springFrame + } {} - # display widgets in content frame - no expansion - grid $itk_component(surfRadio) -row 0 -column 0 -sticky nw - grid $itk_component(volRadio) -row 1 -column 0 -sticky nw - grid $itk_component(plateRadio) -row 2 -column 0 -sticky nw - } + # add mode combo box and label + itk_component add modeLabel { + ttk::label $itk_component(cframe).modeLabel -text { Mode } + } {} + itk_component add modeCombo { + ttk::combobox $itk_component(cframe).modeCombo \ + -values {Surface Volume Plate {Plate No Cos}} \ + -state readonly + } {} + + # keep bot's mode synced with combo selection + $itk_component(modeCombo) current [expr [bot get type $bot] - 1] + bind $itk_component(modeCombo) <<ComboboxSelected>> "$this updateMode" + + # add orientation combo box and label + itk_component add orientLabel { + ttk::label $itk_component(cframe).orientLabel -text { Orientation } + } {} + itk_component add orientCombo { + ttk::combobox $itk_component(cframe).orientCombo \ + -values {Unoriented {CCW (RH)} {CW (LH)}} \ + -state readonly + } {} + + # keep bot's orientation synced with combo selection + $itk_component(orientCombo) current [expr [bot get orientation $bot] - 1] + bind $itk_component(orientCombo) <<ComboboxSelected>> "$this updateOrientation" + + # display container frame + pack $itk_component(main) -expand yes -fill both + + # display layout frames in container frame + grid $itk_component(cframe) -row 0 -column 0 + grid $itk_component(sframe) -row 1 -column 0 -sticky news + grid rowconfigure $itk_component(main) 1 -weight 1 + grid columnconfigure $itk_component(main) 0 -weight 1 + + # display widgets in content frame + grid $itk_component(modeLabel) -row 0 -column 0 -sticky ne -pady 2 + grid $itk_component(modeCombo) -row 0 -column 1 -sticky nw -pady 2 + grid $itk_component(orientLabel) -row 1 -column 0 -sticky ne -pady 2 + grid $itk_component(orientCombo) -row 1 -column 1 -sticky nw -pady 2 } +::itcl::body PropertiesPane::updateMode {} { + adjust $bot mode [expr [$itk_component(modeCombo) current] + 1] +} + +::itcl::body PropertiesPane::updateOrientation {} { + adjust $bot orient [expr [$itk_component(orientCombo) current] + 1] +} + ::itcl::class GeometryPane { inherit itk::Widget This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |