title = 'Pmw.ScrolledField demonstration'

# Import Pmw from this directory tree.
import sys
sys.path[:0] = ['../../..']

import Tkinter
import Pmw

class Demo:
    def __init__(self, parent):
	# Create and pack the ScrolledField.
	self._field = Pmw.ScrolledField(parent, entry_width = 30,
		entry_relief='groove', labelpos = 'n',
	        label_text = 'Scroll the field using the\nmiddle mouse button')
	self._field.pack(fill = 'x', expand = 1, padx = 10, pady = 10)

	# Create and pack a button to change the ScrolledField.
	self._button = Tkinter.Button(parent, text = 'Change field',
	        command = self.execute)
	self._button.pack(padx = 10, pady = 10)

	self._index = 0
	self.execute()

    def execute(self):
	self._field.configure(text = lines[self._index % len(lines)])
	self._index = self._index + 1

lines = (
  'Alice was beginning to get very tired of sitting by her sister',
  'on the bank, and of having nothing to do:  once or twice she had',
  'peeped into the book her sister was reading, but it had no',
  'pictures or conversations in it, "and what is the use of a book,"',
  'thought Alice "without pictures or conversation?"',
  'Alice\'s Adventures in Wonderland',
  'Lewis Carroll',
)

######################################################################

# Create demo in root window for testing.
if __name__ == '__main__':
    root = Tkinter.Tk()
    Pmw.initialise(root)
    root.title(title)

    exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
    exitButton.pack(side = 'bottom')
    widget = Demo(root)
    root.mainloop()
