figenc

[RADIOACTIVE] rsa and symmetric key encryption scripts and executables
git clone git://git.figbert.com/figenc.git
Log | Files | Refs | README

optMenu.tcl (1586B)


      1 # optMenu.tcl --
      2 #
      3 # This file defines the procedure tk_optionMenu, which creates
      4 # an option button and its associated menu.
      5 #
      6 # Copyright (c) 1994 The Regents of the University of California.
      7 # Copyright (c) 1994 Sun Microsystems, Inc.
      8 #
      9 # See the file "license.terms" for information on usage and redistribution
     10 # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
     11 #
     12 
     13 # ::tk_optionMenu --
     14 # This procedure creates an option button named $w and an associated
     15 # menu.  Together they provide the functionality of Motif option menus:
     16 # they can be used to select one of many values, and the current value
     17 # appears in the global variable varName, as well as in the text of
     18 # the option menubutton.  The name of the menu is returned as the
     19 # procedure's result, so that the caller can use it to change configuration
     20 # options on the menu or otherwise manipulate it.
     21 #
     22 # Arguments:
     23 # w -			The name to use for the menubutton.
     24 # varName -		Global variable to hold the currently selected value.
     25 # firstValue -		First of legal values for option (must be >= 1).
     26 # args -		Any number of additional values.
     27 
     28 proc ::tk_optionMenu {w varName firstValue args} {
     29     upvar #0 $varName var
     30 
     31     if {![info exists var]} {
     32 	set var $firstValue
     33     }
     34     menubutton $w -textvariable $varName -indicatoron 1 -menu $w.menu \
     35 	    -relief raised -highlightthickness 1 -anchor c \
     36 	    -direction flush
     37     menu $w.menu -tearoff 0
     38     $w.menu add radiobutton -label $firstValue -variable $varName
     39     foreach i $args {
     40     	$w.menu add radiobutton -label $i -variable $varName
     41     }
     42     return $w.menu
     43 }