+
+
+# Report dimensions
+#puts [winfo vrootwidth .]
+#puts [winfo vrootheight .]
+
+wm title . {Hourglass sitetool}
+#wm geometry . 600x400
+
+## Tell embedding newlisp to (exit)
+bind . <Destroy> {puts {newLISP: (exit)}}
+
+set count 3
+
+proc tooltipOn {w name} {
+ if {![winfo exist .balloon]} {
+ toplevel .balloon
+ wm overrideredirect .balloon 1
+ label .balloon.l -foreground blue -background lightyellow \
+ -highlightthick 0 -relief solid -borderwidth 1 \
+ -font {sanserif} -textvariable balloon_text \
+ -justify left -wrap 480 -padx 10
+ pack .balloon.l
+ }
+ global desc
+ set ::balloon_text $desc($name)
+ set x [expr {[winfo rootx $w]+10}]
+ set y [expr {[winfo rooty $w]+[winfo height $w]+5}]
+ set g [format +%d+%d $x $y]
+ # This is probably overdoing it, but better too much than too little
+ wm geometry .balloon $g
+ wm deiconify .balloon
+ wm geometry .balloon $g
+ raise .balloon
+ after idle "[list wm geometry .balloon $g]; raise .balloon"
+}
+
+proc tooltipOff {} {
+ if {[winfo exist .balloon]} {
+ wm withdraw .balloon
+ }
+}
+
+proc setting {name defval} {
+ global count;
+ incr count;
+ set wname .fr.settings.name$count ;
+ set wvalue .fr.settings.value$count ;
+ set weq .fr.settings.eq$count ;
+ label $wname -text "$name" -font sanserif;
+ label $weq -text { };
+ text $wvalue -height 1 -wrap none -padx 4 -font sanserif -width 30;
+ $wvalue insert end "$defval";
+ grid $wname -row $count -column 0;
+ grid $weq -row $count -column 1;
+ grid $wvalue -row $count -column 2;
+ #pack .fr.settings ; #grid $me -row $count -column 0 -sticky w;
+ bind $wname <Enter> [list tooltipOn $wname $name]
+ bind $wname <Leave> {tooltipOff}
+}
+
+frame .fr
+frame .fr.settings
+grid columnconfigure .fr.settings 0 -weight 1 -uniform A;
+
+setting {listener.net} {192.168.255}
+setting {listener.ports} {80 443 1080}
+setting {listener.activity.dir} {activity}
+setting {listener.tap} {hourglass}
+
+setting {control.action} {ipset-control.lsp}
+setting {control.dat} {control.dat}
+setting {control.net} {10.0.0.0/24}
+setting {control.extra.dat} {control-extra.dat}
+setting {control.usage.dat} {usage.dat}
+setting {control.usage.tmp} {.usage.dat}
+setting {control.activity.gap} {10}
+setting {control.activity.clip} {1000}
+
+setting {ipset.bin} {/usr/sbin/ipset}
+setting {ipset.table} {TIMO}
+
+setting {wui.port} {1070}
+setting {wui.passwd} {htpasswd}
+
+button .fr.exit -text "exit" -command {exit}
+pack .fr.settings
+pack .fr.exit -pady 4
+grid .fr -column 0 -row 0 -sticky w -padx {10 4} -pady {12 0}