addes sitetool
[rrq/hourglass.git] / sitetool / sitetool.tcl
1
2
3 # Report dimensions
4 #puts [winfo vrootwidth .]
5 #puts [winfo vrootheight .]
6
7 wm title . {Hourglass sitetool}
8 #wm geometry . 600x400
9
10 ## Tell embedding newlisp to (exit) 
11 bind . <Destroy> {puts {newLISP: (exit)}}
12
13 set count 3
14
15 proc tooltipOn {w name} {
16     if {![winfo exist .balloon]} {
17         toplevel .balloon
18         wm overrideredirect .balloon 1
19         label .balloon.l -foreground blue -background lightyellow \
20             -highlightthick 0 -relief solid -borderwidth 1 \
21             -font {sanserif} -textvariable balloon_text \
22             -justify left -wrap 480 -padx 10
23         pack .balloon.l
24     }
25     global desc
26     set ::balloon_text $desc($name)
27     set x [expr {[winfo rootx $w]+10}]
28     set y [expr {[winfo rooty $w]+[winfo height $w]+5}]
29     set g [format +%d+%d $x $y]
30     # This is probably overdoing it, but better too much than too little
31     wm geometry .balloon $g
32     wm deiconify .balloon
33     wm geometry .balloon $g
34     raise .balloon
35     after idle "[list wm geometry .balloon $g]; raise .balloon"
36 }
37
38 proc tooltipOff {} {
39     if {[winfo exist .balloon]} {
40         wm withdraw .balloon
41     }
42 }
43
44 proc setting {name defval} {
45     global count;
46     incr count;
47     set wname .fr.settings.name$count ;
48     set wvalue .fr.settings.value$count ;
49     set weq .fr.settings.eq$count ;
50     label $wname -text "$name" -font sanserif;
51     label $weq -text { };
52     text $wvalue -height 1 -wrap none -padx 4 -font sanserif -width 30;
53     $wvalue insert end "$defval";
54     grid $wname -row $count -column 0;
55     grid $weq -row $count -column 1;
56     grid $wvalue -row $count -column 2;
57     #pack .fr.settings ; #grid $me -row $count -column 0 -sticky w;
58     bind $wname <Enter> [list tooltipOn $wname $name]
59     bind $wname <Leave> {tooltipOff}
60 }
61
62 frame .fr
63 frame .fr.settings 
64 grid columnconfigure .fr.settings 0 -weight 1 -uniform A;
65
66 setting {listener.net} {192.168.255}
67 setting {listener.ports} {80 443 1080}
68 setting {listener.activity.dir} {activity}
69 setting {listener.tap} {hourglass}
70
71 setting {control.action} {ipset-control.lsp}
72 setting {control.dat} {control.dat}
73 setting {control.net} {10.0.0.0/24}
74 setting {control.extra.dat} {control-extra.dat}
75 setting {control.usage.dat} {usage.dat}
76 setting {control.usage.tmp} {.usage.dat}
77 setting {control.activity.gap} {10}
78 setting {control.activity.clip} {1000}
79
80 setting {ipset.bin} {/usr/sbin/ipset}
81 setting {ipset.table} {TIMO}
82
83 setting {wui.port} {1070}
84 setting {wui.passwd} {htpasswd}
85
86 button .fr.exit -text "exit" -command {exit}
87 pack .fr.settings
88 pack .fr.exit -pady 4
89 grid .fr -column 0 -row 0 -sticky w -padx {10 4} -pady {12 0}