# states.tcl --
#
# This demonstration script creates a listbox widget that displays
# the names of the 50 states in the United States of America.

##if {![info exists widgetDemo]} {
##    error "This script should be run from the \"widget\" demo."
##}
assert 'widgetDemo' in globals(), \
'This script should be run from the "widget" demo.'

##package require Tk
from tkinter import *

##set w .states
##catch {destroy $w}
##toplevel $w
##wm title $w "Listbox Demonstration (50 states)"
##wm iconname $w "states"
##positionWindow $w
demo_name = 'states'
if demo_name in globals()['demo_name']:
    globals()['demo_name'][demo_name].destroy()
w = globals()['demo_name'][demo_name] = Toplevel()
w.wm_title('Listbox Demonstration (50 states)')
w.wm_iconname('states')
positionWindow(w)

##label $w.msg -font $font -wraplength 4i -justify left -text "A listbox containing the 50 states is displayed below, along with a scrollbar.  You can scan the list either using the scrollbar or by scanning.  To scan, press button 2 in the widget and drag up or down."
##pack $w.msg -side top
msg = Label(w, font=font_, wraplength='4i', justify='left', text="A listbox containing the 50 states is displayed below, along with a scrollbar.  You can scan the list either using the scrollbar or by scanning.  To scan, press button 2 in the widget and drag up or down.")
msg.pack(side='top')

## See Code / Dismiss buttons
##set btns [addSeeDismiss $w.buttons $w]
##pack $btns -side bottom -fill x
btns = addSeeDismiss(ttk.Frame(w), demo_name)
btns.pack(side='bottom', fill='x')

##frame $w.frame -borderwidth .5c
##pack $w.frame -side top -expand yes -fill y
frame = Frame(w, borderwidth='.5c')
frame.pack(side='top', expand='yes', fill='y')

##scrollbar $w.frame.scroll -command "$w.frame.list yview"
##listbox $w.frame.list -yscroll "$w.frame.scroll set" -setgrid 1 -height 12
##pack $w.frame.scroll -side right -fill y
##pack $w.frame.list -side left -expand 1 -fill both
scroll = Scrollbar(frame)
list_ = Listbox(frame, yscroll=scroll.set, setgrid=1, height=12)
scroll['command'] = list_.yview
scroll.pack(side='right', fill='y')
list_.pack(side='left', expand=1, fill='both')

##$w.frame.list insert 0 Alabama Alaska Arizona Arkansas California \
##    Colorado Connecticut Delaware Florida Georgia Hawaii Idaho Illinois \
##    Indiana Iowa Kansas Kentucky Louisiana Maine Maryland \
##    Massachusetts Michigan Minnesota Mississippi Missouri \
##    Montana Nebraska Nevada "New Hampshire" "New Jersey" "New Mexico" \
##    "New York" "North Carolina" "North Dakota" \
##    Ohio Oklahoma Oregon Pennsylvania "Rhode Island" \
##    "South Carolina" "South Dakota" \
##    Tennessee Texas Utah Vermont Virginia Washington \
##    "West Virginia" Wisconsin Wyoming
list_.insert(0, 'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
    'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
    'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
    'Maine Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi',
    'Missouri', 'Montana', 'Nebraska', 'Nevada', "New Hampshire", "New Jersey",
    "New Mexico", "New York", "North Carolina", "North Dakota", 'Ohio',
    'Oklahoma', 'Oregon', 'Pennsylvania', "Rhode Island", "South Carolina",
    "South Dakota", 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia',
    'Washington', "West Virginia", 'Wisconsin', 'Wyoming')

