diff options
author | treectrl <treectrl> | 2006-11-30 02:41:38 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2006-11-30 02:41:38 (GMT) |
commit | 6137f8797b9b058e0cf9b93cf6b8708e42aeacde (patch) | |
tree | 070b759f6072777ee68617b37ff65e0ee3443948 /demos/mailwasher.tcl | |
parent | 122faf94880ff4751e845ca4adabb4a3c6646ce2 (diff) | |
download | tktreectrl-6137f8797b9b058e0cf9b93cf6b8708e42aeacde.zip tktreectrl-6137f8797b9b058e0cf9b93cf6b8708e42aeacde.tar.gz tktreectrl-6137f8797b9b058e0cf9b93cf6b8708e42aeacde.tar.bz2 |
Whitespace police.
Diffstat (limited to 'demos/mailwasher.tcl')
-rw-r--r-- | demos/mailwasher.tcl | 370 |
1 files changed, 185 insertions, 185 deletions
diff --git a/demos/mailwasher.tcl b/demos/mailwasher.tcl index d87b506..74d379b 100644 --- a/demos/mailwasher.tcl +++ b/demos/mailwasher.tcl @@ -1,206 +1,206 @@ -# RCS: @(#) $Id: mailwasher.tcl,v 1.16 2006/11/23 22:24:56 treectrl Exp $ +# RCS: @(#) $Id: mailwasher.tcl,v 1.17 2006/11/30 02:41:38 treectrl Exp $ # # Demo: MailWasher # proc DemoMailWasher {} { - set T [DemoList] - - InitPics *checked - - set height [font metrics [$T cget -font] -linespace] - if {$height < 18} { - set height 18 - } - - # - # Configure the treectrl widget - # - - $T configure -showroot no -showrootbutton no -showbuttons no \ - -showlines no -itemheight $height -selectmode browse \ - -xscrollincrement 20 - - # - # Create columns - # - - set pad 4 - $T column create -text Delete -textpadx $pad -justify center -tags delete - $T column create -text Bounce -textpadx $pad -justify center -tags bounce - $T column create -text Status -width 80 -textpadx $pad -tags status - $T column create -text Size -width 40 -textpadx $pad -justify right -tags size - $T column create -text From -width 140 -textpadx $pad -tags from - $T column create -text Subject -width 240 -textpadx $pad -tags subject - $T column create -text Received -textpadx $pad -arrow up -tags received - $T column create -text Attachments -textpadx $pad -tags attachments - - $T state define CHECK - - # - # Create elements - # - - $T element create border rect -open nw -outline gray -outlinewidth 1 \ - -fill [list $::SystemHighlight {selected}] - $T element create imgCheck image -image {checked CHECK unchecked {}} - $T element create txtAny text \ - -fill [list $::SystemHighlightText {selected}] -lines 1 - $T element create txtNone text -text "none" \ - -fill [list $::SystemHighlightText {selected}] -lines 1 - $T element create txtYes text -text "yes" \ - -fill [list $::SystemHighlightText {selected}] -lines 1 - $T element create txtNormal text -text "Normal" \ - -fill [list $::SystemHighlightText {selected} #006800 {}] -lines 1 - $T element create txtPossSpam text -text "Possible Spam" \ - -fill [list $::SystemHighlightText {selected} #787800 {}] -lines 1 - $T element create txtProbSpam text -text "Probably Spam" \ - -fill [list $::SystemHighlightText {selected} #FF9000 {}] -lines 1 - $T element create txtBlacklist text -text "Blacklisted" \ - -fill [list $::SystemHighlightText {selected} #FF5800 {}] -lines 1 - - # - # Create styles using the elements - # - - set S [$T style create styCheck] - $T style elements $S [list border imgCheck] + set T [DemoList] + + InitPics *checked + + set height [font metrics [$T cget -font] -linespace] + if {$height < 18} { + set height 18 + } + + # + # Configure the treectrl widget + # + + $T configure -showroot no -showrootbutton no -showbuttons no \ + -showlines no -itemheight $height -selectmode browse \ + -xscrollincrement 20 + + # + # Create columns + # + + set pad 4 + $T column create -text Delete -textpadx $pad -justify center -tags delete + $T column create -text Bounce -textpadx $pad -justify center -tags bounce + $T column create -text Status -width 80 -textpadx $pad -tags status + $T column create -text Size -width 40 -textpadx $pad -justify right -tags size + $T column create -text From -width 140 -textpadx $pad -tags from + $T column create -text Subject -width 240 -textpadx $pad -tags subject + $T column create -text Received -textpadx $pad -arrow up -tags received + $T column create -text Attachments -textpadx $pad -tags attachments + + $T state define CHECK + + # + # Create elements + # + + $T element create border rect -open nw -outline gray -outlinewidth 1 \ + -fill [list $::SystemHighlight {selected}] + $T element create imgCheck image -image {checked CHECK unchecked {}} + $T element create txtAny text \ + -fill [list $::SystemHighlightText {selected}] -lines 1 + $T element create txtNone text -text "none" \ + -fill [list $::SystemHighlightText {selected}] -lines 1 + $T element create txtYes text -text "yes" \ + -fill [list $::SystemHighlightText {selected}] -lines 1 + $T element create txtNormal text -text "Normal" \ + -fill [list $::SystemHighlightText {selected} #006800 {}] -lines 1 + $T element create txtPossSpam text -text "Possible Spam" \ + -fill [list $::SystemHighlightText {selected} #787800 {}] -lines 1 + $T element create txtProbSpam text -text "Probably Spam" \ + -fill [list $::SystemHighlightText {selected} #FF9000 {}] -lines 1 + $T element create txtBlacklist text -text "Blacklisted" \ + -fill [list $::SystemHighlightText {selected} #FF5800 {}] -lines 1 + + # + # Create styles using the elements + # + + set S [$T style create styCheck] + $T style elements $S [list border imgCheck] + $T style layout $S border -detach yes -iexpand xy + $T style layout $S imgCheck -expand news + + set pad 4 + + foreach name {Any None Yes Normal PossSpam ProbSpam Blacklist} { + set S [$T style create sty$name] + $T style elements $S [list border txt$name] $T style layout $S border -detach yes -iexpand xy - $T style layout $S imgCheck -expand news - - set pad 4 - - foreach name {Any None Yes Normal PossSpam ProbSpam Blacklist} { - set S [$T style create sty$name] - $T style elements $S [list border txt$name] - $T style layout $S border -detach yes -iexpand xy - $T style layout $S txt$name -padx $pad -squeeze x -expand ns + $T style layout $S txt$name -padx $pad -squeeze x -expand ns + } + + # + # Create items and assign styles + # + + for {set i 0} {$i < 1} {incr i} { + foreach {from subject} { + baldy@spammer.com "Your hair is thinning" + flat@spammer.com "Your breasts are too small" + tiny@spammer.com "Your penis is too small" + dumbass@spammer.com "You are not very smart" + bankrobber@spammer.com "You need more money" + loser@spammer.com "You need better friends" + gossip@spammer.com "Find out what your coworkers think about you" + whoami@spammer.com "Find out what you think about yourself" + downsized@spammer.com "You need a better job" + poorhouse@spammer.com "Your mortgage is a joke" + spam4ever@spammer.com "You need more spam" + } { + set item [$T item create] + set status [lindex [list styNormal styPossSpam styProbSpam styBlacklist] [expr int(rand() * 4)]] + set delete [expr int(rand() * 2)] + set bounce [expr int(rand() * 2)] + set attachments [lindex [list styNone styYes] [expr int(rand() * 2)]] + $T item style set $item delete styCheck bounce styCheck \ + status $status size styAny \ + from styAny subject styAny received styAny \ + attachments $attachments + if {$delete} { + $T item state forcolumn $item delete CHECK + } + if {$bounce} { + $T item state forcolumn $item bounce CHECK + } + set bytes [expr {512 + int(rand() * 1024 * 12)}] + set size [expr {$bytes / 1024 + 1}]KB + set seconds [expr {[clock seconds] - int(rand() * 100000)}] + set received [clock format $seconds -format "%d/%m/%y %I:%M %p"] + $T item text $item size $size from $from subject $subject received $received + $T item lastchild root $item } - - # - # Create items and assign styles - # - - for {set i 0} {$i < 1} {incr i} { - foreach {from subject} { - baldy@spammer.com "Your hair is thinning" - flat@spammer.com "Your breasts are too small" - tiny@spammer.com "Your penis is too small" - dumbass@spammer.com "You are not very smart" - bankrobber@spammer.com "You need more money" - loser@spammer.com "You need better friends" - gossip@spammer.com "Find out what your coworkers think about you" - whoami@spammer.com "Find out what you think about yourself" - downsized@spammer.com "You need a better job" - poorhouse@spammer.com "Your mortgage is a joke" - spam4ever@spammer.com "You need more spam" - } { - set item [$T item create] - set status [lindex [list styNormal styPossSpam styProbSpam styBlacklist] [expr int(rand() * 4)]] - set delete [expr int(rand() * 2)] - set bounce [expr int(rand() * 2)] - set attachments [lindex [list styNone styYes] [expr int(rand() * 2)]] - $T item style set $item delete styCheck bounce styCheck \ - status $status size styAny \ - from styAny subject styAny received styAny \ - attachments $attachments - if {$delete} { - $T item state forcolumn $item delete CHECK - } - if {$bounce} { - $T item state forcolumn $item bounce CHECK - } - set bytes [expr {512 + int(rand() * 1024 * 12)}] - set size [expr {$bytes / 1024 + 1}]KB - set seconds [expr {[clock seconds] - int(rand() * 100000)}] - set received [clock format $seconds -format "%d/%m/%y %I:%M %p"] - $T item text $item size $size from $from subject $subject received $received - $T item lastchild root $item - } + } + if 0 { + $T notify bind MailWasher <Button1-ElementPress-imgOn> { + %T item style set %I %C styOff } - if 0 { - $T notify bind MailWasher <Button1-ElementPress-imgOn> { - %T item style set %I %C styOff - } - $T notify bind MailWasher <Button1-ElementPress-imgOff> { - %T item style set %I %C styOn - } + $T notify bind MailWasher <Button1-ElementPress-imgOff> { + %T item style set %I %C styOn } - - set ::SortColumn received - $T notify bind $T <Header-invoke> { - if {[%T column compare %C == $SortColumn]} { - if {[%T column cget $SortColumn -arrow] eq "down"} { - set order -increasing - set arrow up - } else { - set order -decreasing - set arrow down - } - } else { - if {[%T column cget $SortColumn -arrow] eq "down"} { - set order -decreasing - set arrow down - } else { - set order -increasing - set arrow up - } - %T column configure $SortColumn -arrow none - set SortColumn %C - } - %T column configure %C -arrow $arrow - switch [%T column cget %C -tags] { - bounce - - delete { - %T item sort root $order -column %C -command [list CompareOnOff %T %C] -column subject -dictionary - } - status { - %T item sort root $order -column %C -dictionary - } - from { - %T item sort root $order -column %C -dictionary -column subject -dictionary - } - subject { - %T item sort root $order -column %C -dictionary - } - size { - %T item sort root $order -column %C -dictionary -column subject -dictionary - } - received { - %T item sort root $order -column %C -dictionary -column subject -dictionary - } - attachments { - %T item sort root $order -column %C -dictionary -column subject -dictionary - } - } + } + + set ::SortColumn received + $T notify bind $T <Header-invoke> { + if {[%T column compare %C == $SortColumn]} { + if {[%T column cget $SortColumn -arrow] eq "down"} { + set order -increasing + set arrow up + } else { + set order -decreasing + set arrow down + } + } else { + if {[%T column cget $SortColumn -arrow] eq "down"} { + set order -decreasing + set arrow down + } else { + set order -increasing + set arrow up + } + %T column configure $SortColumn -arrow none + set SortColumn %C } - - bind DemoMailWasher <ButtonPress-1> { - set id [%W identify %x %y] - if {$id eq ""} { - } elseif {[lindex $id 0] eq "header"} { - } else { - lassign $id what item where arg1 arg2 arg3 - if {$where eq "column"} { - if {[%W column tag expr $arg1 {delete || bounce}]} { - %W item state forcolumn $item $arg1 ~CHECK + %T column configure %C -arrow $arrow + switch [%T column cget %C -tags] { + bounce - + delete { + %T item sort root $order -column %C -command [list CompareOnOff %T %C] -column subject -dictionary + } + status { + %T item sort root $order -column %C -dictionary + } + from { + %T item sort root $order -column %C -dictionary -column subject -dictionary + } + subject { + %T item sort root $order -column %C -dictionary + } + size { + %T item sort root $order -column %C -dictionary -column subject -dictionary + } + received { + %T item sort root $order -column %C -dictionary -column subject -dictionary + } + attachments { + %T item sort root $order -column %C -dictionary -column subject -dictionary + } + } + } + + bind DemoMailWasher <ButtonPress-1> { + set id [%W identify %x %y] + if {$id eq ""} { + } elseif {[lindex $id 0] eq "header"} { + } else { + lassign $id what item where arg1 arg2 arg3 + if {$where eq "column"} { + if {[%W column tag expr $arg1 {delete || bounce}]} { + %W item state forcolumn $item $arg1 ~CHECK # return -code break - } - } } + } } + } - bindtags $T [list $T DemoMailWasher TreeCtrl [winfo toplevel $T] all] + bindtags $T [list $T DemoMailWasher TreeCtrl [winfo toplevel $T] all] - return + return } proc CompareOnOff {T C item1 item2} { - set s1 [$T item state forcolumn $item1 $C] - set s2 [$T item state forcolumn $item2 $C] - if {$s1 eq $s2} { return 0 } - if {[lsearch -exact $s1 CHECK] == -1} { return -1 } - return 1 + set s1 [$T item state forcolumn $item1 $C] + set s2 [$T item state forcolumn $item2 $C] + if {$s1 eq $s2} { return 0 } + if {[lsearch -exact $s1 CHECK] == -1} { return -1 } + return 1 } |