"" "\ecCProgram Flow:\ecA"
for "for {set i 0} {$i < \p} {incr i 1} {\r\r}\P" " for"
if "if {\p} {\r\r}\P" " if"
elif "elsif {\p} {\r\r}\P" " elif"
else "else {\r\p}\r\P" " else"
foreach "foreach val $\plist {\r\r}\P" " foreach list"
foreacha "foreach {key value} [array get $\parray] {\r\r}\P" " foreach array"
foreachm "foreach {key val} $\plist val2 $list2 {\r\r}\P" " foreach multiple"
while "while {\p} {\r\r}\P" " while"
switch "switch -exact -- $var\p {\r exp1 {\r\r}\rexp2 {\r\r}\rdefault {\r\r}\r}" " switch"
proc "proc \p { args } {\rglobal var\r\r}\P" " proc"
ifcatch "if { [ catch { \p } ] } {\r}\P" " ifcatch"
"" ""
"" "\ecCFile Processing:\ecA "
openw "set out [open \pfile.ext w 0600]\r puts $out \"Hello\"\rclose $out\P" " openw"
openr "if [catch {open $filename r} infh] {\rputs stderr \"Cannot open $filename: $infh\"\rexit\r} else {\r#file operations\r}" " openr"
whilef "while {[gets $infh line] >= 0} {\r # Process line\r\p\r}\rclose $infh\P" " whilef"
"" ""
"" "\ecCTkWidgets:\ecA "
tkOK "tk_messageBox -title \"Info!\p\" -icon info -message \"message ...\" -type ok\P" " messageBox OK"
tkYesNO "set answer [tk_messageBox -title \"\pQuestion!\" -message \"Really delete ?\" -type yesno -icon question]\rif { $answer } {\r# so delete \r} else { \r# do no\r}\P" " messageBox YesNo"
button "pack [button .\p -text text -command {}] -side left -padx 5" " button"
frame "pack [frame .\p] -side top -fill both -expand yes" " frame"
label "pack [label .\p -text text] -side top -fill x -expand no" " label"
lframe "pack [labelframe .\p -text text] -side top -expand yes -fill both" " labelframe"
panedv "pack [panedwindow .pan\p -orient vertical] -side top -expand yes -fill both -pady 2 -padx 2\r.pan.w1 configure -height 100\r.pan.w2 configure -height 100 \r.pan add .pan.w1 .pan.w2\r\P" " panedwindow --"
panedh "pack [panedwindow .pan\p -orient horizontal] -side left -expand yes -fill both -pady 2 -padx 2\r.pan.w1 configure -width 100\r.pan.w2 configure -width 100\r.pan add .pan.w1 .pan.w2\r\P" " panedwindow |"
pack "pack [\p] -side top -expand yes -fill both -pady 1 -padx 1\P" " pack"
spinbox "pack [spinbox .\p -width 8 -from 1 -to 10 -increment 1] -side left -fill x -expand no\P" " spinbox"
tkdir "set dir [tk_chooseDirectory -initialdir \p$var(lastdir)]\r if {![string equal $dir \"\"]} {\r cd $dir\r set var(lastdir) $dir\r foreach file [lsort [glob -nocomplain *]] {\r # do something with file\r }\r }\r" " tk_chooseDirectory"
tkgof "set types {\r {{Text Files} {.txt} }\r {{All Files} * }\r}\rset filename [tk_getOpenFile -filetypes $types]\rif {$filename != \"\"} {\r # Open the file ...\r\p\r}\P" " tk_getOpenFile"
tkgsf "set types {\r {{Text Files} {.txt} }\r {{All Files} * }\r}\runset -nocomplain savefile\rset savefile [tk_getSaveFile -filetypes $types]\rif {$savefile != \"\"} {\r # Save the file ...\r\p\r}\P" " tk_getSaveFile"
"" ""
"" "\ecCTixWidgets:\ecA "
getimage "set img(folder) [tix getimage folder]" " getimage"
tixBalloon "set gui(bal) [tixBalloon .bal]\r# Add balloon binding\r$gui(bal) bind .\pwidget -msg \"This is a widget\"" " tixBalloon"
tixButtonBox "pack [tixButtonBox .\p -orientation horizontal] -side top -expand no -anchor nw\rset gui(bb) .?\r$gui(bb) add yes -text \" yes \"\r $gui(bb) add no -text \" no \"\P" " tixButtonBox"
tixCheckList "pack [tixCheckList .\p -radio true] -side top -fill x -expand no\r $gui(cl) subwidget hlist add yes -itemtype imagetext -text yes\r $gui(cl) subwidget hlist add no -itemtype imagetext -text no\r" " tixCheckList"
tixComboBox "pack [tixComboBox .\p -label labeltext: -editable true] -side top -fill x -expand no" " tixComboBox"
tixDisplayStyle "set style(\pbeige) [tixDisplayStyle imagetext -background \"beige\"]\P" " tixDisplayStyle"
tixLabelEntry "pack [tixLabelEntry .\p -label text] -side left -fill x -expand no" " tixLabelEntry"
tixMeter "pack [tixMeter .\p -text progress] -side left -fill x -expand no -padx 2" " tixMeter"
tixNoteBook "tixNoteBook .nb\p\r.nb add book1 -label book1 -underline 0\r.nb add book2 -label book2 -underline 0\rset gui(frame-book1) [.nb subwidget book1]\rset gui(frame-book2) [.nb subwidget book2]" " tixNoteBook"
tixOM "pack [tixOptionMenu .\p -label blah: \\\r -variable variable \\\r -options { label.width 19 \r label.anchor e \r menubutton.width 15 \r}] -side left \r . add command blah1 -label blah1\P" " tixOptionMenu"
tixSelect "pack [tixSelect .\p -allowzero false -radio true -label \"text:\"\]-side top -expand no -anchor nw\rset gui(sel) .import.cbheader\r$gui(sel) add yes -text \" yes \" $gui(sel) add no -text \" no \"\r $gui(sel) configure -value yes\P" " tixSelect"
tixTree "pack [tixTree .\p -width 200 -command tree_on_click -opencmd {tree_on_open 1}\\\r-closecmd {tree_on_open 0} -options { hlist.columns 2 }]-side left -fill both -expand yes\r\P" " tixTree"
tixTreeFunc "proc tree_on_open {openvar index} {\r global gui img\p\r set hlist [$gui(tree) subwidget hlist] \r foreach child [$hlist info children $index] {\r if {$openvar == 1} { \r $hlist show entry $child \r $hlist entryconfigure [$hlist info parent $child] -image $img(openfolder)\r } else {\r $hlist hide entry $child\r $hlist entryconfigure [$hlist info parent $child] -image $img(folder)\r }\r }\r}\P" " tixTreeFunc"
tixScrolledText "pack [tixScrolledText .\p -width 200 -heigth 200] -side top -fill both -expand yes\r .path subwidget text configure -wrap none\P" " tixScrolledText"
tixScrolledListbox "pack [tixScrolledListbox .\p -width 200\P] -side top -fill y -expand yes" " tixScrolledListbox"
"" ""
"" "\ecCBWidgets:\ecA "
bwab "pack [ArrowButton .ab\p -helptext helptext -dir top|bottom|left|right -command command] -side left\P" " ArrowButton"
bwbt "pack [Button .bt\p -text text -helptext helptext -command exit] -side left\P" " Button"
bwbb "set bbox [ButtonBox .bbox\p -spacing 0 -padx 1 -pady 1]\r$bbox add -image [Bitmap::get new] \\\r -highlightthickness 0 -takefocus 0 -relief link -borderwidth 1 -padx 1 -pady 1 \\\r -helptext new\r$bbox add -image [Bitmap::get open] \\\r -highlightthickness 0 -takefocus 0 -relief link -borderwidth 1 -padx 1 -pady 1 \\\r -helptext save\r$bbox add -image [Bitmap::get save] \\\r -highlightthickness 0 -takefocus 0 -relief link -borderwidth 1 -padx 1 -pady 1 \\\r -helptext save\rpack $bbox -side left -anchor w\P" " ButtonBox"
bwcb "pack [ComboBox .cb\p -editable true -helptext helptext -width 100 -textvariable $var -values {1 2 3} -command {}] -side top -fill x -expand yes\r.cb setvalue first\P " " ComboBox"
bwdl "Dialog .dlg -title titletext -parent . -default 0 -cancel 1 -modal local\r.dlg add -name ok\r.dlg add -name cancel\rset frame [.dlg getframe]\rpack [message $frame.m -text {A Message}]\r.dlg draw\r" " Dialog"
bwen "set var textvar\r pack [Entry .en\p -helptext helptext -textvariable var] -side left\P" " Entry"
bwlb "pack [Label .lb\p -text text -helptext helptext] -side left\P" " Label"
bwle "set var text\r pack [LabelEntry .le\p -label labeltext -helptext helptext -textvariable var] -side left\P" " LabelEntry"
bwlb "pack [ListBox .lb] -side left -expand both -fill yes\r .lb insert end folder -text text -image [Bitmap::get folder] -indent 10" " ListBox"
bwlf "pack [LabelFrame .lf -text label -helptext helptext -side top -relief groove -bd 3] -fill both -expand 1\rset frame [.lf getframe]\rpack [Button $frame.b -text blah] -anchor c" " LabelFrame"
bwmf "MainFrame .mf -textvariable tvar -separator both\rpack .mf -fill both -expand 1\rset frame1 [.mf addtoolbar]\rset bbox [ButtonBox $frame1.bbox -spacing 0 -padx 1 -pady 1]\rpack $bbox -side left -anchor w\r.mf addindicator -text indicat" " MainFrame"
bwnb "pack [NoteBook .nb\p -side top -width 150 -height 50] -fill both\r.nb insert end page1 -text page1\rset gui(nbp1) [.nb getframe page1]\r pack [button $gui(nbp1).btn -text text]\r .nb raise [.nb page 0]\P" " NoteBook"
bwpw "pack [PanedWindow .pw -side left(--)|top(I) -pad 0] -fill both -expand true\r set pane1 [.pw add -weight 1]\r pack [listbox $pane1.lb -bg white -height 20] -anchor c\r $pane1.lb insert end ball\r set pane2 [.pw add -weight 1]\r set pane3 [.pw add -weight 1]" " PanedWindow"
bwpm "button .b1 -text p1 -command {.pm raise page1} -width 20\r button .b2 -text p2 -command {.pm raise page2} -width 20\r button .b3 -text p3 -command {.pm raise page3} -width 20PagesManager .pm\pm -width 100 -height 50\r grid .b1 .b2 .b3\r grid .pm - -\r set p1 [.pm add page1]\r set p2 [.pm add page2]\r set p3 [.pm add page3]\r pack [label $p1.l -text inside1 -bd 50]\r pack [label $p2.l -text inside2 -bd 50]\r pack [label $p3.l -text inside3 -bd 50]\r .pm raise page1\P" " PagesManager"
pwpd "set login hello\rset passwd 12345\rPasswdDlg .pd -title Login -loginlabel Login -passwdlabel Password \\\r -command exit -logintextvariable login -passwdtextvariable passwd" " PasswdDlg"
bwpb "pack [ProgressBar .pb\p -maximum 100 -variable var] -side left\r set var 15\P" " ProgressBar"
bwpd "set mesg Message...\rProgressDlg .pd -title Progress -maximum 20 -variable pvar -stop Stop -textvariable mesg -command exit\rset pvar 5" " ProgressDlg"
bwsw "pack [ScrolledWindow .sw\p -scrollbar both -auto none]\rset frame [.sw getframe]\rpack [text $frame.text -width 50 -height 50] -fill both -expand 1\r.sw setwidget $frame.text\P" " ScrolledWindow"
bwsf "ScrollableFrame .sf\p -yscrollcommand {.y set} -xscrollcommand {.x set} -width 140 -height 50\rscrollbar .y -command {.sf yview}\rscrollbar .x -orient horizontal -command {.sf xview}\rgrid .sf .y -sticky ns\rgrid .x -sticky we\rset frame [.sf getframe]\rfor {set i 0} {$i < 10} {incr i} {\r pack [LabelEntry $frame.$i -label text$i] -side top\r}" " ScrollableFrame"
bwsp "pack [Separator .sp\p -orient horizontal] -pady 10 -fill x\P" " Separator"
bwscd "set color [SelectColor .sc -title \"Select Color ...\" -type dialog]" " SelectColor Dialog"
bwscmb "set cvar #ffffff\r pack [SelectColor .sc -title Color -variable cvar -type menubutton]" " SelectColor Menubutton"
bwsfd "SelectFont .sf -title \"Select Font ...\" -sampletext \"foobar\" -type dialog" " SelectFont Dialog"
bwsfd "pack [SelectFont .sf -type toolbar]" " SelectFont Toolbar"
bwsb "pack [SpinBox .sb\p -label text -helptext helptext -range {1 10 1}]" " SpinBox"
bwtf "pack [TitleFrame .tf\p -text labeltext: -side left] -fill both -expand 1\rset frame [.tf getframe]\rpack [Button $frame.b -text buttontext] -anchor c" " TitleFrame"
bwtr "pack [Tree .tree\p -opencmd \"tree_change 1\" -closecmd \"tree_change 0\"]\r.tree insert end root fold1 -text fold1 -image [Bitmap::get openfold] -open 1\r.tree insert end fold1 item1 -text item1 -image [Bitmap::get file]\r.tree bindText <1> tree_click\rproc tree_click {node} {\r global var\r .tree selection set $node\r set var [.tree selection get]\r}\rproc tree_change {idx node} {\r .tree itemconfigure $node -image [Bitmap::get [lindex {folder openfold} $idx]]\r}\p" " Tree"
Msg "MessageDlg .md -title \"Info !\" -icon info -message \"\pNothing selected\" -type ok\P" " MessageDlg"
Dlg " Dialog .dlg -title \pmytitle -parent . -default 0 -cancel 1 -modal local\r .dlg add -name ok\r .dlg add -name cancel\r set frame [.dlg getframe]\rpack [message $frame.m -text mymessage]\r.dlg draw\P" " BWidgetDlg"
"" ""
"" "\ecCRegex:\ecA "
regexp "regexp \p-switches? {exp} $string matchVar? subMatchVar?\P" " regexp"
regsub "regsub \p-switches? {exp} $string subSpec varName\P" " regsub"
"" ""
"" "\ecCLists:\ecA "
concat "set \plist [concat $list1 $list2]\P" " concat"
join "set \pstring [join $list { }]\P" " join"
lappend "lappend listVar\p $x $y\P" " lappend"
list "set \plist [list $x $y $z]\P" " list"
lindex "set \pval [lindex $list end]\P" " lindex"
linsert "set \plist [linsert $list 0 val1 val2]\P" " linsert"
llength " set \plength [llength $list]\P" " llength"
lreplace "set \plist [ldelete $list value]\P" " lreplace"
lreplacep "proc ldelete { list value } {\r# deleting a item by value\r set ix [lsearch -exact $list $value]\r if {$ix >= 0} {\r return [lreplace $list $ix $ix]\r } else {\r return $list\r }\r}\r" " ldelete proc"
lsearch "set \phits [lsearch $list sval*]\P" " lsearch"
lsort "set \plist [lsort -ascii|integer|real|dictionary -index 0 $list]\P" " lsort"
split "set \plist [split $string { }]\P" " split"
lrange "set \plist [lrange $list 3 end]\P" " lrange"
"" ""
"" "\ecCScope:\ecA "
global "global var" " global"
upvar "upvar 1 $\pnamespace::var nvar\P" " upvar"
uplevel "uplevel 1 \$cmd" " uplevel"
"" ""
"" "\ecCArrays:\ecA "
arrex "array exists \parr\P" " array exists"
arrget "array get \parr pattern?\P" " array get"
arrnam "array names \parr pattern?\P" " array names"
arrset "array set \parr $list\P" " array set"
arrsize "array size \parr\P" " array size"
"" ""