SILENT KILLERPanel

Current Path: > > lib64 > > tcl8.6 > Tix8.4.3


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //lib64//tcl8.6/Tix8.4.3

NameTypeSizeLast ModifiedActions
bitmaps Directory - -
html Directory - -
pref Directory - -
Balloon.tcl File 13285 bytes October 22 2019 12:47:10.
BtnBox.tcl File 2671 bytes October 22 2019 12:47:10.
CObjView.tcl File 7738 bytes October 22 2019 12:47:10.
ChkList.tcl File 5087 bytes October 22 2019 12:47:10.
ComboBox.tcl File 36271 bytes October 22 2019 12:47:10.
Compat.tcl File 870 bytes October 22 2019 12:47:10.
Console.tcl File 15311 bytes October 22 2019 12:47:10.
Control.tcl File 12402 bytes October 22 2019 12:47:10.
DefSchm.tcl File 3013 bytes October 22 2019 12:47:10.
DialogS.tcl File 4296 bytes October 22 2019 12:47:10.
DirBox.tcl File 5425 bytes October 22 2019 12:47:10.
DirDlg.tcl File 2206 bytes October 22 2019 12:47:10.
DirList.tcl File 7064 bytes October 22 2019 12:47:10.
DirTree.tcl File 8972 bytes October 22 2019 12:47:10.
DragDrop.tcl File 4025 bytes October 22 2019 12:47:10.
DtlList.tcl File 1002 bytes October 22 2019 12:47:10.
EFileBox.tcl File 11390 bytes October 22 2019 12:47:10.
EFileDlg.tcl File 1718 bytes October 22 2019 12:47:10.
Event.tcl File 5231 bytes October 22 2019 12:47:10.
FileBox.tcl File 14336 bytes October 22 2019 12:47:10.
FileCbx.tcl File 2483 bytes October 22 2019 12:47:10.
FileDlg.tcl File 2185 bytes October 22 2019 12:47:10.
FileEnt.tcl File 7319 bytes October 22 2019 12:47:10.
FloatEnt.tcl File 3176 bytes October 22 2019 12:47:10.
Grid.tcl File 21665 bytes October 22 2019 12:47:10.
HList.tcl File 18148 bytes October 22 2019 12:47:10.
HListDD.tcl File 4500 bytes October 22 2019 12:47:10.
IconView.tcl File 6110 bytes October 22 2019 12:47:10.
Init.tcl File 6199 bytes October 22 2019 12:47:10.
LabEntry.tcl File 2143 bytes October 22 2019 12:47:10.
LabFrame.tcl File 1181 bytes October 22 2019 12:47:10.
LabWidg.tcl File 3951 bytes October 22 2019 12:47:10.
ListNBk.tcl File 3581 bytes October 22 2019 12:47:10.
Meter.tcl File 3114 bytes October 22 2019 12:47:10.
MultView.tcl File 3704 bytes October 22 2019 12:47:10.
NoteBook.tcl File 6160 bytes October 22 2019 12:47:10.
OldUtil.tcl File 3056 bytes October 22 2019 12:47:10.
OptMenu.tcl File 9392 bytes October 22 2019 12:47:10.
PanedWin.tcl File 28347 bytes October 22 2019 12:47:10.
PopMenu.tcl File 5500 bytes October 22 2019 12:47:10.
Primitiv.tcl File 10527 bytes October 22 2019 12:47:10.
README.txt File 987 bytes October 22 2019 12:47:10.
ResizeH.tcl File 13247 bytes October 22 2019 12:47:10.
SGrid.tcl File 5935 bytes October 22 2019 12:47:10.
SHList.tcl File 3793 bytes October 22 2019 12:47:10.
SListBox.tcl File 7138 bytes October 22 2019 12:47:10.
STList.tcl File 2428 bytes October 22 2019 12:47:10.
SText.tcl File 3163 bytes October 22 2019 12:47:10.
SWidget.tcl File 9748 bytes October 22 2019 12:47:10.
SWindow.tcl File 6908 bytes October 22 2019 12:47:10.
Select.tcl File 7204 bytes October 22 2019 12:47:10.
Shell.tcl File 1082 bytes October 22 2019 12:47:10.
SimpDlg.tcl File 1157 bytes October 22 2019 12:47:10.
StackWin.tcl File 1992 bytes October 22 2019 12:47:10.
StatBar.tcl File 1339 bytes October 22 2019 12:47:10.
StdBBox.tcl File 1656 bytes October 22 2019 12:47:10.
StdShell.tcl File 1173 bytes October 22 2019 12:47:10.
TList.tcl File 18009 bytes October 22 2019 12:47:10.
Tix.tcl File 9737 bytes October 22 2019 12:47:10.
Tree.tcl File 4679 bytes October 22 2019 12:47:10.
Utils.tcl File 10788 bytes October 22 2019 12:47:10.
VResize.tcl File 5069 bytes October 22 2019 12:47:10.
VStack.tcl File 9651 bytes October 22 2019 12:47:10.
VTree.tcl File 4410 bytes October 22 2019 12:47:10.
Variable.tcl File 2563 bytes October 22 2019 12:47:10.
WInfo.tcl File 965 bytes October 22 2019 12:47:10.
fs.tcl File 3995 bytes October 22 2019 12:47:10.
libTix.so File 349488 bytes October 22 2019 12:47:11.
license.terms File 2828 bytes October 22 2019 12:47:10.
pkgIndex.tcl File 122 bytes October 22 2019 12:47:10.

Reading File: //lib64//tcl8.6/Tix8.4.3/OptMenu.tcl

# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
#	$Id: OptMenu.tcl,v 1.3 2001/12/09 05:04:02 idiscovery Exp $
#
# OptMenu.tcl --
#
#	This file implements the TixOptionMenu widget.
#
# Copyright (c) 1993-1999 Ioi Kim Lam.
# Copyright (c) 2000-2001 Tix Project Group.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#


tixWidgetClass tixOptionMenu {
    -classname TixOptionMenu
    -superclass tixLabelWidget
    -method {
	add delete disable enable entrycget entryconfigure entries
    }
    -flag {
	-command -disablecallback -dynamicgeometry -value -variable
	-validatecmd -state
    }
    -forcecall {
	-variable -state
    }
    -configspec {
	{-command command Command ""}
	{-disablecallback disableCallback DisableCallback 0 tixVerifyBoolean}
	{-dynamicgeometry dynamicGeometry DynamicGeometry 0 tixVerifyBoolean}
	{-state state State normal}
	{-value value Value ""}
	{-validatecmd validateCmd ValidateCmd ""}
	{-variable variable Variable ""}
    }
    -default {
	{.highlightThickness			0}
	{.takeFocus				0}
	{.frame.menubutton.relief		raised}
	{.frame.menubutton.borderWidth		2}
	{.frame.menubutton.anchor		w}
	{.frame.menubutton.highlightThickness	2}
	{.frame.menubutton.takeFocus		1}
    }
}

proc tixOptionMenu:InitWidgetRec {w} {
    upvar #0 $w data

    tixChainMethod $w InitWidgetRec
 
    set data(nItems)	0
    set data(items)     ""
    set data(posted)	0
    set data(varInited)	0
    set data(maxWidth)  0
}

proc tixOptionMenu:ConstructFramedWidget {w frame} {
    upvar #0 $w data

    tixChainMethod $w ConstructFramedWidget $frame

    set data(w:menubutton) [menubutton $frame.menubutton -indicatoron 1]
    set data(w:menu)       [menu $frame.menubutton.menu -tearoff 0]
    pack $data(w:menubutton) -side left -expand yes -fill both

    $data(w:menubutton) config -menu $data(w:menu)

    bind $data(w:menubutton) <Up>   [bind Menubutton <space>]
    bind $data(w:menubutton) <Down> [bind Menubutton <space>]

    tixSetMegaWidget $data(w:menubutton) $w
}

proc tixOptionMenu:SetBindings {w} {
    upvar #0 $w data

    tixChainMethod $w SetBindings
}

#----------------------------------------------------------------------
# Private methods
#----------------------------------------------------------------------
proc tixOptionMenu:Invoke {w name} {
    upvar #0 $w data

    if {"$data(-state)" == "normal"} {
	tixOptionMenu:SetValue $w $name
    }
}

proc tixOptionMenu:SetValue {w value {noUpdate 0}} {
    upvar #0 $w data

    if {$data(-validatecmd) != ""} {
	set value [tixEvalCmdBinding $w $data(-validatecmd) "" $value]
    }

    set name $value

    if {$name == "" || [info exists data(varInited)]} {
	# variable may contain a bogus value
	if {![info exists data($name,index)]} {
	    set data(-value) ""
	    tixVariable:UpdateVariable $w
	    $data(w:menubutton) config -text ""
	    return
	}
    }

    if {[info exists data($name,index)]} {
       $data(w:menubutton) config -text $data($name,label)

       set data(-value) $value

       if {! $noUpdate} {
	   tixVariable:UpdateVariable $w
       }

       if {$data(-command) != "" && !$data(-disablecallback)} {
	   if {![info exists data(varInited)]} {
	       set bind(specs) ""
	       tixEvalCmdBinding $w $data(-command) bind $value
	   }
       }
    } else {
	error "item \"$value\" does not exist"
    }
}

proc tixOptionMenu:SetMaxWidth {w} {
    upvar #0 $w data

    foreach name $data(items) {
	set len [string length $data($name,label)]
	if {$data(maxWidth) < $len} {
	    set data(maxWidth) $len
	}
    }

    if {$data(maxWidth) > 0} {
	$data(w:menubutton) config -width $data(maxWidth)
    }
}

#----------------------------------------------------------------------
# Configuration
#----------------------------------------------------------------------
proc tixOptionMenu:config-state {w value} {
    upvar #0 $w data

    if {![info exists data(w:label)]} {
	return
    }

    if {$value == "normal"} {
	catch {
	    $data(w:label) config -fg \
		[$data(w:menubutton) cget -foreground]
	}
	$data(w:menubutton) config -state $value
    } else {
	catch {
	    $data(w:label) config -fg \
		[$data(w:menubutton) cget -disabledforeground]
	}
	$data(w:menubutton) config -state $value
    }
}

proc tixOptionMenu:config-value {w value} {
    upvar #0 $w data

    tixOptionMenu:SetValue $w $value

    # This will tell the Intrinsics: "Please use this value"
    # because "value" might be altered by SetValues
    #
    return $data(-value)
}

proc tixOptionMenu:config-variable {w arg} {
    upvar #0 $w data

    if {[tixVariable:ConfigVariable $w $arg]} {
       # The value of data(-value) is changed if tixVariable:ConfigVariable 
       # returns true
       tixOptionMenu:SetValue $w $data(-value) 1
    }
    catch {
	unset data(varInited)
    }
    set data(-variable) $arg
}

#----------------------------------------------------------------------
# Public Methdos
#----------------------------------------------------------------------
proc tixOptionMenu:add {w type name args} {
    upvar #0 $w data

    if {[info exists data($name,index)]} {
	error "item $name already exists in the option menu $w"
    }

    case $type {
	"command" {
	    set validOptions {
		-command -label
	    }
	    set opt(-command)		""
	    set opt(-label)		$name

	    tixHandleOptions -nounknown opt $validOptions $args

	    if {$opt(-command)	!= ""} {
		error "option -command cannot be specified"
	    }

	    # Create a new item inside the menu
	    #
	    eval $data(w:menu) add command $args \
		[list -label $opt(-label) \
		-command "tixOptionMenu:Invoke $w \{$name\}"]
	    set index $data(nItems)

	    # Store info about this item
	    #
	    set data($index,name) $name
	    set data($name,type) cmd
	    set data($name,label) $opt(-label)
	    set data($name,index) $index

	    if {$index == 0} {
		$data(w:menubutton) config -text $data($name,label)
		tixOptionMenu:SetValue $w $name
	    }

	    incr data(nItems)
	    lappend data(items) $name

	    if $data(-dynamicgeometry) {
		tixOptionMenu:SetMaxWidth $w
	    }
	}
	"separator" {
	    $data(w:menu) add separator

	    set index $data(nItems)
	    # Store info about this item
	    #
	    set data($index,name) $name
	    set data($name,type) sep
	    set data($name,label) ""
	    set data($name,index) $index

	    incr data(nItems)
	    lappend data(items) $name
	}
	default {
	    error "only types \"separator\" and \"command\" are allowed"
	}
    }

    return ""
}

proc tixOptionMenu:delete {w item} {
    upvar #0 $w data

    if {![info exists data($item,index)]} {
	error "item $item does not exist in $w"
    }

    # Rehash the item list
    set newItems ""
    set oldIndex 0
    set newIndex 0
    foreach name $data(items) {
	if {$item == $name} {
	    unset data($name,label)
	    unset data($name,index)
	    unset data($name,type)
	    $data(w:menu) delete $oldIndex
	} else {
	    set data($name,index)    $newIndex
	    set data($newIndex,name) $name
	    incr newIndex
	    lappend newItems $name
	}
	incr oldIndex
    }
    incr oldIndex -1; unset data($oldIndex,name)
    set data(nItems) $newIndex
    set data(items) $newItems

    if {$data(-value) == $item} {
	set newVal ""
	foreach item $data(items) {
	    if {$data($item,type) == "cmd"} {
		set newVal $item
	    }
	}
	tixOptionMenu:SetValue $w $newVal
    }

    return ""
}


proc tixOptionMenu:disable {w item} {
    upvar #0 $w data

    if {![info exists data($item,index)]} {
	error "item $item does not exist in $w"
    } else {
	catch {$data(w:menu) entryconfig $data($item,index) -state disabled}
    }
}

proc tixOptionMenu:enable {w item} {
    upvar #0 $w data

    if {![info exists data($item,index)]} {
	error "item $item does not exist in $w"
    } else {
	catch {$data(w:menu) entryconfig $data($item,index) -state normal}
    }
}

proc tixOptionMenu:entryconfigure {w item args} {
    upvar #0 $w data

    if {![info exists data($item,index)]} {
	error "item $item does not exist in $w"
    } else {
	return [eval $data(w:menu) entryconfig $data($item,index) $args]
    }
}

proc tixOptionMenu:entrycget {w item arg} {
    upvar #0 $w data

    if {![info exists data($item,index)]} {
	error "item $item does not exist in $w"
    } else {
	return [$data(w:menu) entrycget $data($item,index) $arg]
    }
}

proc tixOptionMenu:entries {w} {
    upvar #0 $w data

    return $data(items)
}


proc tixOptionMenu:Destructor {w} {

    tixVariable:DeleteVariable $w

    # Chain this to the superclass
    #
    tixChainMethod $w Destructor
}

#----------------------------------------------------------------------
# Obsolete
# These have been replaced by new commands in Tk 4.0
#
proc tixOptionMenu:Post {w} {
    upvar #0 $w data

    set rootx [winfo rootx $data(w:frame)]
    set rooty [winfo rooty $data(w:frame)]

    # adjust for the border of the menu and frame
    #
    incr rootx [lindex [$data(w:menu)  config -border] 4]
    incr rooty [lindex [$data(w:frame) config -border] 4]
    incr rooty [lindex [$data(w:menu)  config -border] 4]

    set value $data(-value)
    set y [$data(w:menu) yposition $data($value,index)]

    $data(w:menu) post $rootx [expr $rooty - $y]
    $data(w:menu) activate $data($value,index)
    grab -global $data(w:menubutton)
    set data(posted) 1
}

SILENT KILLER Tool