File: ts_optmenu.tcl

package info (click to toggle)
ts 9902p1-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 2,252 kB
  • ctags: 1,271
  • sloc: tcl: 5,638; sh: 129; makefile: 40
file content (25 lines) | stat: -rw-r--r-- 720 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# ts_optMenu.tcl
#
# like tk_optionMenu, but with another layout and callback
# callback is: function value

proc ts_optionMenu {w varName callback firstValue args} {
  upvar #0 $varName var
  upvar #0 $callback funct

  if ![info exists var] {
    set var $firstValue
  }
  menubutton $w -textvariable $varName -indicatoron 1 -menu $w.menu \
    -relief raised -bd 1 -takefocus 1
  menu $w.menu -tearoff 0
  $w.menu add radiobutton -label $firstValue -variable $varName -command \
    "$callback"
  foreach i $args {
    $w.menu add radiobutton -label $i -variable $varName \
      -command "$callback"
  }
  bind $w <FocusIn> [bind Menubutton <Enter>]
  bind $w <FocusOut> [bind Menubutton <Leave>]
  return $w.menu
}