chiark / gitweb /
remove obsolete program
[chiark-tcl-applet.git] / applet.tcl
index 66d1a81251e26ae700dc02f056bacd57d5fe2b93..777a45d4dc7cb207b7cee31539b433fdaffb63ef 100644 (file)
@@ -41,6 +41,13 @@ package require tktray
 #    menus, when an item is selected, call
 #      applet::msel
 #
+# Debug:
+# 
+#    Caller may call
+#       applet::setup-debug ON-DEBUG
+#    which will result in calls to [concat ON-DEBUG [list MESSAGE]]
+#    (or ON-DEBUG may be "" in which case messages are discarded)
+#
 # Icon:
 #
 #  Caller should call:
@@ -71,11 +78,23 @@ wm withdraw .
 tktray::icon .i -class example
 .i configure -docked 1
 
-fconfigure stdout -buffering line
+fconfigure stdout -buffering none
+fconfigure stderr -buffering none
 
 
 namespace eval applet {
 
+variable debug {}
+
+proc debug {m} {
+    variable debug
+    if {![llength debug]} return
+    uplevel #0 $debug [list $m]
+}
+
+proc setup-debug {d} {
+    variable debug $d
+}
 
 # used by both menus and tooltips
 variable posted 0
@@ -91,15 +110,15 @@ proc menubuttonpressed {b x y} {
     variable posted
     tooltip-cancel
     if {$posted == $b} {
-       puts "unpost $posted toggle"
+       debug "unpost $posted toggle"
        .m$posted unpost
        set posted 0
     } elseif {[winfo exists .m$b]} {
        if {$posted} {
            .m$posted unpost
-           puts "unpost $posted other"
+           debug "unpost $posted other"
        }
-       puts "post $b"
+       debug "post $b"
        set posted $b
        .m$b post $x $y
     }
@@ -192,7 +211,7 @@ variable subwindow_on_ready
 
 proc subwindow-need-recreate {} {
     variable innerwindow_after
-puts "IW-EVENT"
+    debug "IW-EVENT"
     if {[info exists innerwindow_after]} return
     set innerwindow_after [after idle applet::innerwindow-resetup]
 }
@@ -205,8 +224,7 @@ proc innerwindow-resetup {} {
     variable subwindow_border_width
     unset innerwindow_after
 
-puts RESETUP
-
+    debug RESETUP
 
     if {![winfo exists .i.i]} return
     destroy [frame .i.i.make-exist]
@@ -216,19 +234,8 @@ puts RESETUP
 
     frame .i.i.b -background darkblue -bd 1
     pack .i.i.b -fill both -side left -expand 1
-#
-    global inner_lastw inner_lasth
-    #set w [winfo width .i.i]
-#    set w [winfo width .i.i]
-#    set h [winfo height .i.i]
-
-#    if {$w != $inner_lastw || $h != $inner_lasth} {
-#      set inner_lastw $w
-#      set inner_lasth $h
-#      innerwindow-ph-dummy configure -width $w -height 2
 
     uplevel #0 $subwindow_on_ready
-#    }
 }
 
 proc setup-subwindow {w border_colour border_width on_destroying on_ready} {
@@ -236,10 +243,6 @@ proc setup-subwindow {w border_colour border_width on_destroying on_ready} {
        variable subwindow_$v [set $v]
     }
 
-    global inner_lastw inner_lasth
-    set inner_lastw -2
-    set inner_lasth -2
-
     image create photo applet::innerwindow-ph-dummy -width $w -height 2
     .i configure -image applet::innerwindow-ph-dummy
 
@@ -263,7 +266,7 @@ proc setup-subproc {w border_colour border_width get_cmdline} {
 
 proc subproc-destroying {} {
     variable subproc
-    puts "DESTROYING $subproc"
+    debug "DESTROYING $subproc"
 
     catch { destroy .i.i.b.c }
 
@@ -276,7 +279,7 @@ proc subproc-destroying {} {
 
 proc subproc-ready {} {
     variable subproc
-    puts "READY $subproc"
+    debug "READY $subproc"
 
     frame .i.i.b.c -container 1 -background orange
     pack .i.i.b.c -fill both -side left -expand 1
@@ -292,7 +295,7 @@ proc subproc-ready {} {
            error "unexpected state $subproc"
        }
     }
-    puts "READY-done $subproc"
+    debug "READY-done $subproc"
 }
 
 proc run-child {} {
@@ -303,14 +306,14 @@ proc run-child {} {
     set id [winfo id .i.i.b.c]
     set cmd [uplevel #0 [concat [list $subproc_get_cmdline] $id]]
 
-    puts "RUN-CHILD $subproc"
+    debug "RUN-CHILD $subproc"
     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"
+       debug stderr "crashing repeatedly, quitting $ratelimit"
        exit 127
     }
 
@@ -318,11 +321,11 @@ proc run-child {} {
     set subproc [subproc::fork applet::child-died {
        execl [lindex $cmd 0] [lrange $cmd 1 end]
     }]
-    puts "FORKED $subproc"
+    debug "FORKED $subproc"
 }
 
 proc child-died {how how2} {
-    puts "DIED $how $how2"
+    debug "DIED $how $how2"
     variable subproc
     switch -exact $subproc {
        old {