Its possible to use Ctrl-F to launch an interactive search of entries contained within a tree or list view. Prior to any search, however, the column needs to be preselected. This mornings coding session has fixed a couple of issues within the gnocl core modules to enable this process to be done interactively under Tcl control. A single click on a cell in an view can now result in the column being preselected and highlighted. The following example script shows how its done. Get the nightly build for all the updates.
# test-me.tcl
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
package require Gnocl
set chn2indic:mappings(conjuncts) {
阿呵 āha
阿訶 āha
爍鉢 śva
悉吉利 skri
室佛 śva
地利 dhri
穆帝 mukta
佛囉 pra
帝利 tre
}
#---------------
# view and edit specific lists
#---------------
#
proc chn2indix:view:call_back {w c} {
set last [$w cget -searchColumn]
$w columnConfigure $last -background white
$w columnConfigure $c -background grey
$w configure -searchColumn $c
# force window refresh, Gtk+ has some internal issues here!
if {$last != $c} {
[gnocl::winfo toplevel $w ] grabFocus
}
}
#---------------
# view and edit specific lists
#---------------
#
proc chn2indix:view { set } {
global chn2indic:mappings
set vbox [gnocl::vBox]
set tbar [gnocl::toolBar]
set lst [gnocl::list -types {string string} -baseFont {Sans 14} -data {0} ]
set hbox [gnocl::hBox ]
set but(1) [gnocl::button -text Accept]
set but(2) [gnocl::button -text Cancel]
set stat [gnocl::statusBar]
# add toolbar widgets
$tbar add item -text "%#New"
$lst columnConfigure 1 -editable 1 -background grey
$lst configure -onSelectionChanged {puts "%p"} -searchColumn 1
# atttempt to highlight selected column
$lst configure -onButtonRelease {
set col [lindex [%w coordsToPath %x %y] 1]
chn2indix:view:call_back %w $col
}
$vbox add $tbar -fill {1 0} -expand 0
$vbox add $lst -fill {1 1} -expand 1
$hbox add $but(2) -align right -fill {0 1} -expand 0
$hbox add $but(1) -align right -fill {0 1} -expand 0
$vbox add $hbox -fill {1 0} -expand 0 -align right
$vbox add $stat -fill {1 0} -expand 0
# populate the list
set i 0
foreach {a b} [set chn2indic:mappings($set) ] {
$lst add [list $a $b] -singleRow 1
incr i
}
$stat push "$i items in the current list."
gnocl::window -child $vbox -width 200 -height 400 -x 950 -y 200
}
chn2indix:view conjuncts
# test-me.tcl
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
package require Gnocl
set chn2indic:mappings(conjuncts) {
阿呵 āha
阿訶 āha
爍鉢 śva
悉吉利 skri
室佛 śva
地利 dhri
穆帝 mukta
佛囉 pra
帝利 tre
}
#---------------
# view and edit specific lists
#---------------
#
proc chn2indix:view:call_back {w c} {
set last [$w cget -searchColumn]
$w columnConfigure $last -background white
$w columnConfigure $c -background grey
$w configure -searchColumn $c
# force window refresh, Gtk+ has some internal issues here!
if {$last != $c} {
[gnocl::winfo toplevel $w ] grabFocus
}
}
#---------------
# view and edit specific lists
#---------------
#
proc chn2indix:view { set } {
global chn2indic:mappings
set vbox [gnocl::vBox]
set tbar [gnocl::toolBar]
set lst [gnocl::list -types {string string} -baseFont {Sans 14} -data {0} ]
set hbox [gnocl::hBox ]
set but(1) [gnocl::button -text Accept]
set but(2) [gnocl::button -text Cancel]
set stat [gnocl::statusBar]
# add toolbar widgets
$tbar add item -text "%#New"
$lst columnConfigure 1 -editable 1 -background grey
$lst configure -onSelectionChanged {puts "%p"} -searchColumn 1
# atttempt to highlight selected column
$lst configure -onButtonRelease {
set col [lindex [%w coordsToPath %x %y] 1]
chn2indix:view:call_back %w $col
}
$vbox add $tbar -fill {1 0} -expand 0
$vbox add $lst -fill {1 1} -expand 1
$hbox add $but(2) -align right -fill {0 1} -expand 0
$hbox add $but(1) -align right -fill {0 1} -expand 0
$vbox add $hbox -fill {1 0} -expand 0 -align right
$vbox add $stat -fill {1 0} -expand 0
# populate the list
set i 0
foreach {a b} [set chn2indic:mappings($set) ] {
$lst add [list $a $b] -singleRow 1
incr i
}
$stat push "$i items in the current list."
gnocl::window -child $vbox -width 200 -height 400 -x 950 -y 200
}
chn2indix:view conjuncts
Comments