/usr/share/amsn/utils/pixmapmenu/menushell.tcl is in amsn-data 0.98.9-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | snit::widgetadaptor menushell {
option -postcommand
delegate option * to menu
delegate method * to menu except { post unpost }
component menu
constructor { args } {
installhull using toplevel -class Menu -borderwidth 0 -highlightthickness 0 -padx 0 -pady 0 -relief flat
wm withdraw $self
wm transient $self [winfo parent $self]
wm overrideredirect $self 1
install menu using pixmapmenu $self.m -type normal
pack $menu -expand true -fill both
bindtags $self "Menu . all"
$self configurelist $args
}
method post { x y } {
eval $options(-postcommand)
if { [expr {$x + [$self cget -width]}] > [winfo screenwidth $self] } {
set x [expr {[winfo screenwidth $self] - [$self cget -width]}]
}
if { [expr {$y + [$self cget -height]}] > [winfo screenheight $self] } {
set y [expr {[winfo screenheight $self] - [$self cget -height]}]
}
wm geometry $self +${x}+${y}
wm deiconify $self
raise $self
}
method unpost { } {
$self postcascade none
wm withdraw $self
}
}
snit::widgetadaptor menubar {
delegate option * to menu
delegate method * to menu
component menu
constructor { args } {
installhull using frame -class Menu -borderwidth 0 -highlightthickness 0 -padx 0 -pady 0 -relief flat
install menu using pixmapmenu $self.m -orient horizontal -type menubar
pack $menu -expand true -fill both
bindtags $self "Menu . all"
}
}
snit::widgetadaptor menubut {
option -type -default menubutton -readonly yes
delegate option * to hull
constructor { args } {
installhull using tk_menubutton
$self configurelist $args
}
}
proc OptionMenu { w var args } {
#puts $args
menubutton $w -menu $w.menu -relief raised -textvariable $var
menu $w.menu
foreach val $args {
$w.menu add radiobutton -indicatoron 0 -label $val -variable $var -value $val
puts $val
}
return $w.menu
}
|