Posted to tcl by evilotto at Thu Sep 12 18:23:09 GMT 2013view raw
- namespace eval ::synevent {
- proc notify {var} {
- incr ::synevent::$var
- }
- # repeatedly notify a handle at N ms intervals
- proc notify-interval {var interval} {
- incr ::synevent::$var
- after $interval [namespace code [info level 0]]
- }
- proc evHandler {script var var2 op} {
- after idle $script
- }
- proc on {var script} {
- set inf [trace vinfo ::synevent::$var]
- foreach t $inf {
- trace vdelete ::synevent::$var [lindex $t 0] [lindex $t 1]
- }
- set ::synevent::$var 0
- if {$script != ""} {
- set scriptcall [uplevel namespace code [list $script]]
- trace variable ::synevent::$var w [list ::synevent::evHandler $scriptcall]
- }
- }
- namespace export on notify notify-interval
- }
- namespace import ::synevent::*
- package provide synevent 0.2