#!/usr/bin/wish8.4 -f
# -*- Tcl -*-
+# usage:
+# xbatmon-simple-tray
+
source applet.tcl
source subproc.tcl
-#----- menu -----
+applet::setup-debug puts
foreach b {1 3} {
applet::setup-button-menu $b
applet::setup-tooltip { puts VIS } { puts INVIS }
applet::tooltip-set "line\nanother"
-fconfigure stdout -buffering line
-
-set status none
-
-proc destroying {} {
- global status
- puts "DESTROYING $status"
- switch -exact $status {
- none { }
- old { }
- default { kill $status; set status old }
- }
-}
-
-proc ready {} {
- global status
- puts "READY $status"
- switch -exact $status {
- none {
- run-child
- }
- old {
- # wait for it to die
- }
- default {
- error "unexpected state $status"
- }
- }
- puts "READY-done $status"
-}
-
-set ratelimit 0
-
-proc run-child {} {
- global status ratelimit
-
- puts "RUN-CHILD $status"
- set now [clock seconds]
- lappend ratelimit $now
- while {[lindex $ratelimit 0] < {$now - 10}} {
- set ratelimit [lrange $ratelimit 1 end]
- }
- if {[llength $ratelimit] > 10} {
- puts stderr "crashing repeatedly, quitting $ratelimit"
- exit 127
- }
-
- set status none
- set status [subproc::fork child-died {
- execl xacpi-simple [list -into [winfo id .i.i.b.c]]
- }]
- puts "FORKED $status"
-}
-
-proc child-died {how how2} {
- puts "DIED $how $how2"
- global status
- switch -exact $status {
- old {
- set status none
- run-child
- }
- default {
- set status none
- innerwindow-resetup-required "child died"
- }
- }
+proc cmdline {id orientation} {
+ global argv
+ return [concat $argv $id]
}
-applet::setup-subwindow 40 destroying ready
+applet::setup-subproc cmdline