# -------------------------------------------------------------
# ComboBox_history.tcl
# Written by William J Giddings, 2005
# -------------------------------------------------------------
#
# Purpose:
# --------
# To provide history for the BWidget ComboBox.
#
# Note:
# -----
# * This is not achieved by manipulating the BWidget code but by
# simply providing a suitable procedure to be called when the
# entry subwidget is validated.
# * New validated entries are placed at the top of the displayed list.
# * Duplicate entries will not be added.
#
# Use:
# ---------------
# ComboBox .cmb -values {str1 str2..} -command _h
#
# -------------------------------------------------------------
# -------------------------------------------------------------
# a simple handler, no args required
# -------------------------------------------------------------
proc cmb_history {} {
set w [winfo parent [focus]]
set a [$w get]
set b [$w list get 0 end]
#check to see if value already there..
if { [lsearch -exact $b $a] == -1} {
$w list insert 0 $a
}
}
proc show {args} {
cmb_history
puts $args
}
# -------------------------------------------------------------
# the ubiquitous demo!
# -------------------------------------------------------------
proc demo {} {
package require BWidget
pack [ComboBox .cmb -values {{She sells} {sea shells} {by the} {sea shore} } -command _h]
}
demoSee also Enhancing BWidget

