"" "\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" "" ""