Bwidget Source Code
Artifact [be9de574f0]
Not logged in

Artifact be9de574f04e10b8b039f53e8736f516213d191d:

Ticket change [be9de574f0] - New ticket [fcb66a43ef] When trying to use "Widget::theme 1" the SpinBox widget fails.. by anonymous 2016-08-23 19:21:17.
D 2016-08-23T19:21:17.231
J assignee nobody
J closer nobody
J cmimetype text/plain
J comment There\sis\sanother\stile\srelated\sproblem\sfor\sthe\s"SpinBox"\swidget.\r\n\r\nPls.\ssee\sfollowing\ssource\scode,\sfor\sa\squick\shack\sto\sremove\sthe\serror\s(maybe\sthis\sis\snot\sfully\sbackward\scompatible).\r\n\r\nWould\sbe\sglad,\sif\sthis\sget's\sfixed.\r\nWith\skind\sregards,\r\n\s\sJohann\sOberdorfer\r\n\r\n#\sspinbox.tcl\s--\r\n#\r\n#\tBWidget\sSpinBox\simplementation.\r\n#\r\n#\sCopyright\s(c)\s1999\sby\sUnifix\r\n#\sCopyright\s(c)\s2000\sby\sAjuba\sSolutions\r\n#\sAll\srights\sreserved.\r\n#\s\r\n#\sRCS:\s@(#)\s$Id:\sspinbox.tcl,v\s1.12\s2003/10/20\s21:23:52\sdamonc\sExp\s$\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sIndex\sof\scommands:\r\n#\s\s\s\s\s-\sSpinBox::create\r\n#\s\s\s\s\s-\sSpinBox::configure\r\n#\s\s\s\s\s-\sSpinBox::cget\r\n#\s\s\s\s\s-\sSpinBox::setvalue\r\n#\s\s\s\s\s-\sSpinBox::_destroy\r\n#\s\s\s\s\s-\sSpinBox::_modify_value\r\n#\s\s\s\s\s-\sSpinBox::_test_options\r\n#\s-----------------------------------------------------------------------------\r\n\r\nnamespace\seval\sSpinBox\s{\r\n\s\s\s\sWidget::define\sSpinBox\sspinbox\sEntry\sArrowButton\r\n\r\n\s\s\s\sWidget::tkinclude\sSpinBox\sframe\s:cmd\s\\\r\n\t\s\s\s\sinclude\s{-background\s-borderwidth\s-bg\s-bd\s-relief}\s\\\r\n\t\s\s\s\sinitialize\s{-relief\ssunken\s-borderwidth\s2}\r\n\r\n\s\s\s\sWidget::bwinclude\sSpinBox\sEntry\s.e\s\\\r\n\s\s\s\s\s\s\s\sremove\s{-relief\s-bd\s-borderwidth\s-fg\s-bg}\s\\\r\n\s\s\s\s\s\s\s\srename\s{-foreground\s-entryfg\s-background\s-entrybg}\r\n\r\n\s\s\s\sWidget::declare\sSpinBox\s{\r\n\s\s\s\s\s\s\s\s{-range\s\s\s\s\s\s\s\s\s\sString\s""\s\s0}\r\n\s\s\s\s\s\s\s\s{-values\s\s\s\s\s\s\s\s\sString\s""\s\s0}\r\n\s\s\s\s\s\s\s\s{-modifycmd\s\s\s\s\s\sString\s""\s\s0}\r\n\s\s\s\s\s\s\s\s{-repeatdelay\s\s\s\sInt\s\s\s\s400\s0\s{%d\s>=\s0}}\r\n\s\s\s\s\s\s\s\s{-repeatinterval\sInt\s\s\s\s100\s0\s{%d\s>=\s0}}\r\n\t{-foreground\s\s\s\s\sTkResource\sblack\s0\s{button}}\r\n\s\s\s\s}\r\n\r\n\s\s\s\sWidget::addmap\sSpinBox\s""\s:cmd\s{-background\s{}}\r\n\s\s\s\sWidget::addmap\sSpinBox\sArrowButton\s.arrup\s{\r\n\s\s\s\s\s\s\s\s-foreground\s{}\s-background\s{}\s-state\s{}\s\\\r\n\t\t-repeatinterval\s{}\s-repeatdelay\s{}\r\n\s\s\s\s}\r\n\s\s\s\sWidget::addmap\sSpinBox\sArrowButton\s.arrdn\s{\r\n\s\s\s\s\s\s\s\s-foreground\s{}\s-background\s{}\s-state\s{}\s\\\r\n\t\t-repeatinterval\s{}\s-repeatdelay\s{}\r\n\s\s\s\s}\r\n\r\n\s\s\s\s::bind\sSpinBox\s<FocusIn>\s[list\safter\sidle\s{BWidget::refocus\s%W\s%W.e}]\r\n\s\s\s\s::bind\sSpinBox\s<Destroy>\s[list\sSpinBox::_destroy\s%W]\r\n\r\n\s\s\s\svariable\s_widget\r\n}\r\n\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::create\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::create\s{\spath\sargs\s}\s{\r\n\s\s\s\sarray\sset\smaps\s[list\sSpinBox\s{}\s:cmd\s{}\s.e\s{}\s.arrup\s{}\s.arrdn\s{}]\r\n\s\s\s\sarray\sset\smaps\s[Widget::parseArgs\sSpinBox\s$args]\r\n\s\s\s\seval\s[list\sframe\s$path]\s$maps(:cmd)\s\\\r\n\t[list\s-highlightthickness\s0\s-takefocus\s0\s-class\sSpinBox]\r\n\s\s\s\sWidget::initFromODB\sSpinBox\s$path\s$maps(SpinBox)\r\n\r\n\s\s\s\sset\sentry\s[eval\s[list\sEntry::create\s$path.e]\s$maps(.e)]\r\n\s\s\s\sbindtags\s$path.e\s[linsert\s[bindtags\s$path.e]\s1\sSpinBoxEntry]\r\n\r\n\s\s\s\sset\sfarr\s\s\s[frame\s$path.farr\s-relief\sflat\s-bd\s0\s-highlightthickness\s0]\r\n\s\s\s\sset\sheight\s[expr\s{[winfo\sreqheight\s$path.e]/2-2}]\r\n\s\s\s\sset\swidth\s\s11\r\n\s\s\s\sset\sarrup\s\s[eval\s[list\sArrowButton::create\s$path.arrup\s-dir\stop]\s\\\r\n\t\s\s\s\s$maps(.arrup)\s\\\r\n\t\t\s\s\s\s[list\s-highlightthickness\s0\s-borderwidth\s1\s-takefocus\s0\s\\\r\n\t\t\t\s-type\sbutton\s-width\s$width\s-height\s$height\s\\\r\n\t\t\t\s-armcommand\s\s\s\s[list\sSpinBox::_modify_value\s$path\snext\sarm]\s\\\r\n\t\t\t\s-disarmcommand\s[list\sSpinBox::_modify_value\s$path\snext\sdisarm]]]\r\n\s\s\s\sset\sarrdn\s\s[eval\s[list\sArrowButton::create\s$path.arrdn\s-dir\sbottom]\s\\\r\n\t\s\s\s\s$maps(.arrdn)\s\\\r\n\t\t\s\s\s\s[list\s-highlightthickness\s0\s-borderwidth\s1\s-takefocus\s0\s\\\r\n\t\t\t\s-type\sbutton\s-width\s$width\s-height\s$height\s\\\r\n\t\t\t\s-armcommand\s\s\s\s[list\sSpinBox::_modify_value\s$path\sprevious\sarm]\s\\\r\n\t\t\t\s-disarmcommand\s[list\sSpinBox::_modify_value\s$path\sprevious\sdisarm]]]\r\n\r\n\s\s\s\s#\s---\supdate\sSpinBox\svalue\s---\r\n\s\s\s\s_test_options\s$path\r\n\s\s\s\sset\sval\s[Entry::cget\s$path.e\s-text]\r\n\s\s\s\sif\s{\s[string\sequal\s$val\s""]\s}\s{\r\n\tEntry::configure\s$path.e\s-text\s$::SpinBox::_widget($path,curval)\r\n\s\s\s\s}\selse\s{\r\n\tset\s::SpinBox::_widget($path,curval)\s$val\r\n\s\s\s\s}\r\n\r\n\s\s\s\sgrid\s$arrup\s-in\s$farr\s-column\s0\s-row\s0\s-sticky\snsew\r\n\s\s\s\sgrid\s$arrdn\s-in\s$farr\s-column\s0\s-row\s2\s-sticky\snsew\r\n\s\s\s\sgrid\srowconfigure\s$farr\s0\s-weight\s1\r\n\s\s\s\sgrid\srowconfigure\s$farr\s2\s-weight\s1\r\n\r\n\s\s\s\spack\s$farr\s\s-side\sright\s-fill\sy\r\n\s\s\s\spack\s$entry\s-side\sleft\s\s-fill\sboth\s-expand\syes\r\n\r\n\s\s\s\s::bind\s$entry\s<Key-Up>\s\s\s\s[list\sSpinBox::_modify_value\s$path\snext\sactivate]\r\n\s\s\s\s::bind\s$entry\s<Key-Down>\s\s[list\sSpinBox::_modify_value\s$path\sprevious\sactivate]\r\n\s\s\s\s::bind\s$entry\s<Key-Prior>\s[list\sSpinBox::_modify_value\s$path\slast\sactivate]\r\n\s\s\s\s::bind\s$entry\s<Key-Next>\s\s[list\sSpinBox::_modify_value\s$path\sfirst\sactivate]\r\n\r\n\s\s\s\s::bind\s$farr\s<Configure>\s{grid\srowconfigure\s%W\s1\s-minsize\s[expr\s{%h%%2}]}\r\n\r\n\s\s\s\sreturn\s[Widget::create\sSpinBox\s$path]\r\n}\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::configure\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::configure\s{\spath\sargs\s}\s{\r\n\s\s\s\sset\sres\s[Widget::configure\s$path\s$args]\r\n\s\s\s\sif\s{\s[Widget::hasChangedX\s$path\s-values]\s||\r\n\s\s\s\s\s\s\s\s\s[Widget::hasChangedX\s$path\s-range]\s}\s{\r\n\s\s\s\s\s\s\s\s_test_options\s$path\r\n\s\s\s\s}\r\n\s\s\s\sreturn\s$res\r\n}\r\n\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::cget\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::cget\s{\spath\soption\s}\s{\r\n\s\s\s\sreturn\s[Widget::cget\s$path\s$option]\r\n}\r\n\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::setvalue\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::setvalue\s{\spath\sindex\s}\s{\r\n\s\s\s\svariable\s_widget\r\n\r\n\s\s\s\sset\svalues\s[Widget::getMegawidgetOption\s$path\s-values]\r\n\s\s\s\sset\svalue\s\s[Entry::cget\s$path.e\s-text]\r\n\s\s\s\s\r\n\s\s\s\sif\s{\s[llength\s$values]\s}\s{\r\n\s\s\s\s\s\s\s\s#\s---\s-values\sSpinBox\s---\r\n\s\s\s\s\s\s\s\sswitch\s--\s$index\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\snext\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[set\sidx\s[lsearch\s$values\s$value]]\s!=\s-1\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sincr\sidx\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selseif\s{\s[set\sidx\s[lsearch\s$values\s"$value*"]]\s==\s-1\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\sidx\s[lsearch\s$values\s$_widget($path,curval)]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\sprevious\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[set\sidx\s[lsearch\s$values\s$value]]\s!=\s-1\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sincr\sidx\s-1\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selseif\s{\s[set\sidx\s[lsearch\s$values\s"$value*"]]\s==\s-1\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\sidx\s[lsearch\s$values\s$_widget($path,curval)]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\sfirst\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\sidx\s0\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\slast\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\sidx\s[expr\s{[llength\s$values]-1}]\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\sdefault\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[string\sindex\s$index\s0]\s==\s"@"\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\sidx\s[string\srange\s$index\s1\send]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[catch\s{string\scompare\s[expr\s{int($idx)}]\s$idx}\sres]\s||\s$res\s!=\s0\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s-code\serror\s"bad\sindex\s\\"$index\\""\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selse\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s-code\serror\s"bad\sindex\s\\"$index\\""\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\sif\s{\s$idx\s>=\s0\s&&\s$idx\s<\s[llength\s$values]\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s[lindex\s$values\s$idx]\r\n\s\s\s\s\s\s\s\s}\selse\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sreturn\s0\r\n\s\s\s\s\s\s\s\s}\r\n\s\s\s\s}\selse\s{\r\n\s\s\s\s\s\s\s\s#\s---\s-range\sSpinBox\s---\r\n\tforeach\s{vmin\svmax\sincr}\s[Widget::getMegawidgetOption\s$path\s-range]\s{\r\n\t\s\s\s\sbreak\r\n\t}\r\n\t#\sAllow\szero\spadding\son\sthe\svalue;\sstrip\sit\sout\sfor\scalculation\sby\r\n\t#\sscanning\sthe\svalue\sinto\sa\sfloating\spoint\snumber.\r\n\tscan\s$value\s%f\svalue\r\n\s\s\s\s\s\s\s\sswitch\s--\s$index\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\snext\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[catch\s{expr\s{double($value-$vmin)/$incr}}\sidx]\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$_widget($path,curval)\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selse\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s[expr\s{$vmin+(round($idx)+1)*$incr}]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s$newval\s<\s$vmin\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$vmin\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selseif\s{\s$newval\s>\s$vmax\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$vmax\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\sprevious\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[catch\s{expr\s{double($value-$vmin)/$incr}}\sidx]\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$_widget($path,curval)\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selse\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s[expr\s{$vmin+(round($idx)-1)*$incr}]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s$newval\s<\s$vmin\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$vmin\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selseif\s{\s$newval\s>\s$vmax\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$vmax\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\sfirst\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$vmin\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\slast\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s$vmax\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\sdefault\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[string\sindex\s$index\s0]\s==\s"@"\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\sidx\s[string\srange\s$index\s1\send]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s[catch\s{string\scompare\s[expr\s{int($idx)}]\s$idx}\sres]\s||\s$res\s!=\s0\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s-code\serror\s"bad\sindex\s\\"$index\\""\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\snewval\s[expr\s{$vmin+int($idx)*$incr}]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s{\s$newval\s<\s$vmin\s||\s$newval\s>\s$vmax\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s0\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selse\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s-code\serror\s"bad\sindex\s\\"$index\\""\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s}\r\n\s\s\s\s}\r\n\s\s\s\sset\s_widget($path,curval)\s$newval\r\n\s\s\s\sEntry::configure\s$path.e\s-text\s$newval\r\n\s\s\s\sreturn\s1\r\n}\r\n\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::getvalue\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::getvalue\s{\spath\s}\s{\r\n\s\s\s\svariable\s_widget\r\n\r\n\s\s\s\sset\svalues\s[Widget::getMegawidgetOption\s$path\s-values]\r\n\s\s\s\sset\svalue\s\s[Entry::cget\s$path.e\s-text]\r\n\r\n\s\s\s\sif\s{\s[llength\s$values]\s}\s{\r\n\s\s\s\s\s\s\s\s#\s---\s-values\sSpinBox\s---\r\n\s\s\s\s\s\s\s\sreturn\s\s[lsearch\s$values\s$value]\r\n\s\s\s\s}\selse\s{\r\n\tforeach\s{vmin\svmax\sincr}\s[Widget::getMegawidgetOption\s$path\s-range]\s{\r\n\t\s\s\s\sbreak\r\n\t}\r\n\s\s\s\s\s\s\s\sif\s{\s![catch\s{expr\s{double($value-$vmin)/$incr}}\sidx]\s&&\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s$idx\s==\sint($idx)\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sreturn\s[expr\s{int($idx)}]\r\n\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\sreturn\s-1\r\n\s\s\s\s}\r\n}\r\n\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::bind\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::bind\s{\spath\sargs\s}\s{\r\n\s\s\s\sreturn\s[eval\s[list\s::bind\s$path.e]\s$args]\r\n}\r\n\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::_modify_value\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::_modify_value\s{\spath\sdirection\sreason\s}\s{\r\n\s\s\s\sif\s{\s$reason\s==\s"arm"\s||\s$reason\s==\s"activate"\s}\s{\r\n\s\s\s\s\s\s\s\sSpinBox::setvalue\s$path\s$direction\r\n\s\s\s\s}\r\n\s\s\s\sif\s{\s($reason\s==\s"disarm"\s||\s$reason\s==\s"activate")\s&&\r\n\s\s\s\s\s\s\s\s\s[set\scmd\s[Widget::getMegawidgetOption\s$path\s-modifycmd]]\s!=\s""\s}\s{\r\n\s\s\s\s\s\s\s\suplevel\s\\#0\s$cmd\r\n\s\s\s\s}\r\n}\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::_test_options\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::_test_options\s{\spath\s}\s{\r\n\s\s\s\sset\svalues\s[Widget::getMegawidgetOption\s$path\s-values]\r\n\s\s\s\sif\s{\s[llength\s$values]\s}\s{\r\n\s\s\s\s\s\s\s\sset\s::SpinBox::_widget($path,curval)\s[lindex\s$values\s0]\r\n\s\s\s\s}\selse\s{\r\n\tforeach\s{vmin\svmax\sincr}\s[Widget::getMegawidgetOption\s$path\s-range]\s{\r\n\t\s\s\s\sbreak\r\n\t}\r\n\tset\supdate\s0\r\n\s\s\s\s\s\s\s\sif\s{\s[catch\s{expr\s{int($vmin)}}]\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sset\svmin\s0\r\n\t\s\s\s\sset\supdate\s1\r\n\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\sif\s{\s[catch\s{expr\s{$vmax<$vmin}}\sres]\s||\s$res\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sset\svmax\s$vmin\r\n\t\s\s\s\sset\supdate\s1\r\n\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\sif\s{\s[catch\s{expr\s{$incr<0}}\sres]\s||\s$res\s}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sset\sincr\s1\r\n\t\s\s\s\sset\supdate\s1\r\n\s\s\s\s\s\s\s\s}\r\n\t#\sOnly\sdo\sthe\sset\sback\s(which\sis\sexpensive)\sif\swe\schanged\sa\svalue\r\n\tif\s{\s$update\s}\s{\r\n\t\s\s\s\sWidget::setMegawidgetOption\s$path\s-range\s[list\s$vmin\s$vmax\s$incr]\r\n\t}\r\n\s\s\s\s\s\s\s\sset\s::SpinBox::_widget($path,curval)\s$vmin\r\n\s\s\s\s}\r\n}\r\n\r\n\r\n#\s-----------------------------------------------------------------------------\r\n#\s\sCommand\sSpinBox::_destroy\r\n#\s-----------------------------------------------------------------------------\r\nproc\sSpinBox::_destroy\s{\spath\s}\s{\r\n\s\s\s\svariable\s_widget\r\n\r\n\s\s\s\sunset\s_widget($path,curval)\r\n\s\s\s\sWidget::destroy\s$path\r\n}
J foundin 1.9.10
J is_private 0
J login anonymous
J priority 5\sMedium
J private_contact f75db2b2e0daed8a015467f70380a582a0c11109
J resolution None
J severity Minor
J status Open
J submitter anonymous
J subsystem (unused)
J title When\strying\sto\suse\s"Widget::theme\s1"\sthe\sSpinBox\swidget\sfails.
J type Bug
K fcb66a43ef60659ca402675d2fecac96b2a447fa
U anonymous
Z 65eb6af75f606043adba13d266deba2f