diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2001-11-11 14:07:37 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2001-11-11 14:07:37 (GMT) |
commit | 20efa68be43b18413cc08089211b1351687084af (patch) | |
tree | 8946066fd4bf0909efbe4d5c78757ffe917a7f9d /Demo/tix/samples | |
parent | c252e6304e305c7126d1cd440fa8885f94ed09f2 (diff) | |
download | cpython-20efa68be43b18413cc08089211b1351687084af.zip cpython-20efa68be43b18413cc08089211b1351687084af.tar.gz cpython-20efa68be43b18413cc08089211b1351687084af.tar.bz2 |
Patch #473002: Update Demo/tix tixwidgets.py et al.
Diffstat (limited to 'Demo/tix/samples')
-rwxr-xr-x | Demo/tix/samples/DirList.py | 142 | ||||
-rwxr-xr-x | Demo/tix/samples/DirTree.py | 108 | ||||
-rwxr-xr-x | Demo/tix/samples/SHList1.py | 9 | ||||
-rwxr-xr-x | Demo/tix/samples/SHList2.py | 21 |
4 files changed, 264 insertions, 16 deletions
diff --git a/Demo/tix/samples/DirList.py b/Demo/tix/samples/DirList.py new file mode 100755 index 0000000..3064768 --- /dev/null +++ b/Demo/tix/samples/DirList.py @@ -0,0 +1,142 @@ +# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- +# +# $Id$ +# +# Tix Demostration Program +# +# This sample program is structured in such a way so that it can be +# executed from the Tix demo program "widget": it must have a +# procedure called "RunSample". It should also have the "if" statment +# at the end of this file so that it can be run as a standalone +# program using tixwish. + +# This file demonstrates the use of the tixDirList widget -- you can +# use it for the user to select a directory. For example, an installation +# program can use the tixDirList widget to ask the user to select the +# installation directory for an application. +# + +import Tix, os, copy +from Tkconstants import * + +TCL_DONT_WAIT = 1<<1 +TCL_WINDOW_EVENTS = 1<<2 +TCL_FILE_EVENTS = 1<<3 +TCL_TIMER_EVENTS = 1<<4 +TCL_IDLE_EVENTS = 1<<5 +TCL_ALL_EVENTS = 0 + +def RunSample (root): + global dirlist + dirlist = DemoDirList(root) + dirlist.mainloop() + dirlist.destroy() + +class DemoDirList: + def __init__(self, w): + self.root = w + self.exit = -1 + + z = w.winfo_toplevel() + z.wm_title('Tix.DirList Widget Demo') + + # Create the tixDirList and the tixLabelEntry widgets on the on the top + # of the dialog box + + # bg = root.tk.eval('tix option get bg') + # adding bg=bg crashes Windows pythonw tk8.3.3 Python 2.1.0 + + top = Tix.Frame( w, relief=RAISED, bd=1) + + # Create the DirList widget. By default it will show the current + # directory + # + # + top.dir = Tix.DirList(top) + top.dir.hlist['width'] = 40 + + # When the user presses the ".." button, the selected directory + # is "transferred" into the entry widget + # + top.btn = Tix.Button(top, text = " >> ", pady = 0) + + # We use a LabelEntry to hold the installation directory. The user + # can choose from the DirList widget, or he can type in the directory + # manually + # + top.ent = Tix.LabelEntry(top, label="Installation Directory:", + labelside = 'top', + options = ''' + entry.width 40 + label.anchor w + ''') + + font = self.root.tk.eval('tix option get fixed_font') + # font = self.root.master.tix_option_get('fixed_font') + top.ent.entry['font'] = font + + self.dlist_dir = copy.copy(os.curdir) + # This should work setting the entry's textvariable + top.ent.entry['textvariable'] = self.dlist_dir + top.btn['command'] = lambda dir=top.dir, ent=top.ent, self=self: \ + self.copy_name(dir,ent) + + # top.ent.entry.insert(0,'tix'+`self`) + top.ent.entry.bind('<Return>', lambda self=self: self.okcmd () ) + + top.pack( expand='yes', fill='both', side=TOP) + top.dir.pack( expand=1, fill=BOTH, padx=4, pady=4, side=LEFT) + top.btn.pack( anchor='s', padx=4, pady=4, side=LEFT) + top.ent.pack( expand=1, fill=X, anchor='s', padx=4, pady=4, side=LEFT) + + # Use a ButtonBox to hold the buttons. + # + box = Tix.ButtonBox (w, orientation='horizontal') + box.add ('ok', text='Ok', underline=0, width=6, + command = lambda self=self: self.okcmd () ) + box.add ('cancel', text='Cancel', underline=0, width=6, + command = lambda self=self: self.quitcmd () ) + + box.pack( anchor='s', fill='x', side=BOTTOM) + z.wm_protocol("WM_DELETE_WINDOW", lambda self=self: self.quitcmd()) + + def copy_name (self, dir, ent): + # This should work as it is the entry's textvariable + self.dlist_dir = dir.cget('value') + # but it isn't so I'll do it manually + ent.entry.delete(0,'end') + ent.entry.insert(0, self.dlist_dir) + + def okcmd (self): + # tixDemo:Status "You have selected the directory" + $self.dlist_dir + + self.quitcmd() + + def quitcmd (self): + # self.root.destroy() + self.exit = 0 + + def mainloop(self): + while self.exit < 0: + self.root.tk.dooneevent(TCL_ALL_EVENTS) + # self.root.tk.dooneevent(TCL_DONT_WAIT) + + def destroy (self): + self.root.destroy() + +# This "if" statement makes it possible to run this script file inside or +# outside of the main demo program "widget". +# +if __name__== '__main__' : + import tkMessageBox, traceback + + try: + root=Tix.Tk() + RunSample(root) + except: + t, v, tb = sys.exc_info() + text = "Error running the demo script:\n" + for line in traceback.format_exception(t,v,tb): + text = text + line + '\n' + d = tkMessageBox.showerror ( 'Tix Demo Error', text) + diff --git a/Demo/tix/samples/DirTree.py b/Demo/tix/samples/DirTree.py new file mode 100755 index 0000000..7bf813c --- /dev/null +++ b/Demo/tix/samples/DirTree.py @@ -0,0 +1,108 @@ +# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- +# +# $Id$ +# +# Tix Demostration Program +# +# This sample program is structured in such a way so that it can be +# executed from the Tix demo program "widget": it must have a +# procedure called "RunSample". It should also have the "if" statment +# at the end of this file so that it can be run as a standalone +# program using tixwish. + +# This file demonstrates the use of the tixDirTree widget -- you can +# use it for the user to select a directory. For example, an installation +# program can use the tixDirTree widget to ask the user to select the +# installation directory for an application. +# + +import Tix, os, copy +from Tkconstants import * + +def RunSample (w): + DemoDirTree(w) + +class DemoDirTree: + def __init__(self, w): + self.root = w + + z = w.winfo_toplevel() + z.wm_title('Tix.DirTree Widget Demo') + + # Create the tixDirTree and the tixLabelEntry widgets on the on the top + # of the dialog box + + # bg = root.tk.eval('tix option get bg') + # adding bg=bg crashes Windows pythonw tk8.3.3 Python 2.1.0 + + top = Tix.Frame( w, relief=RAISED, bd=1) + + # Create the DirTree widget. By default it will show the current + # directory + # + # + top.dir = Tix.DirTree(top) + top.dir.hlist['width'] = 40 + + # When the user presses the ".." button, the selected directory + # is "transferred" into the entry widget + # + top.btn = Tix.Button(top, text = " >> ", pady = 0) + + # We use a LabelEntry to hold the installation directory. The user + # can choose from the DirTree widget, or he can type in the directory + # manually + # + top.ent = Tix.LabelEntry(top, label="Installation Directory:", + labelside = 'top', + options = ''' + entry.width 40 + label.anchor w + ''') + + self.dlist_dir = copy.copy(os.curdir) + top.ent.entry['textvariable'] = self.dlist_dir + top.btn['command'] = lambda dir=top.dir, ent=top.ent, self=self: \ + self.copy_name(dir,ent) + + top.ent.entry.bind('<Return>', lambda self=self: self.okcmd () ) + + top.pack( expand='yes', fill='both', side=TOP) + top.dir.pack( expand=1, fill=BOTH, padx=4, pady=4, side=LEFT) + top.btn.pack( anchor='s', padx=4, pady=4, side=LEFT) + top.ent.pack( expand=1, fill=X, anchor='s', padx=4, pady=4, side=LEFT) + + # Use a ButtonBox to hold the buttons. + # + box = Tix.ButtonBox (w, orientation='horizontal') + box.add ('ok', text='Ok', underline=0, width=6, + command = lambda self=self: self.okcmd () ) + box.add ('cancel', text='Cancel', underline=0, width=6, + command = lambda self=self: self.quitcmd () ) + + box.pack( anchor='s', fill='x', side=BOTTOM) + + def copy_name (self, dir, ent): + # This should work as it is the entry's textvariable + self.dlist_dir = dir.cget('value') + # but it isn't so I'll do it manually + ent.entry.delete(0,'end') + ent.entry.insert(0, self.dlist_dir) + + def okcmd (self): + # tixDemo:Status "You have selected the directory" + $self.dlist_dir + + self.quitcmd() + + def quitcmd (self): + self.root.destroy() + +# This "if" statement makes it possible to run this script file inside or +# outside of the main demo program "widget". +# +if __name__== '__main__' : + root=Tix.Tk() + RunSample(root) + root.mainloop() + root.destroy() + diff --git a/Demo/tix/samples/SHList1.py b/Demo/tix/samples/SHList1.py index 5122bbc..f4294ee 100755 --- a/Demo/tix/samples/SHList1.py +++ b/Demo/tix/samples/SHList1.py @@ -1,4 +1,4 @@ -#!/usr/local/bin/python +# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id$ # @@ -57,7 +57,7 @@ def RunSample (w) : for boss,name in bosses : if count : f=Tix.Frame(hlist, name='sep%d' % count, height=2, width=150, - bd=2, relief=Tix.SUNKEN, bg=hlist['bg'] ) + bd=2, relief=Tix.SUNKEN ) hlist.add_child( itemtype=Tix.WINDOW, window=f, state=Tix.DISABLED ) @@ -89,10 +89,10 @@ def RunSample (w) : # box= Tix.ButtonBox(top, orientation=Tix.HORIZONTAL ) box.add( 'ok', text='Ok', underline=0, width=6, - command = lambda w=w: w.destroy() ) + command = lambda w=w: w.quit() ) box.add( 'cancel', text='Cancel', underline=0, width=6, - command = lambda w=w: w.destroy() ) + command = lambda w=w: w.quit() ) box.pack( side=Tix.BOTTOM, fill=Tix.X) top.pack( side=Tix.TOP, fill=Tix.BOTH, expand=1 ) @@ -105,3 +105,4 @@ if __name__== '__main__' : root=Tix.Tk() RunSample(root) root.mainloop() + root.destroy() diff --git a/Demo/tix/samples/SHList2.py b/Demo/tix/samples/SHList2.py index e1a7a7c..db24511 100755 --- a/Demo/tix/samples/SHList2.py +++ b/Demo/tix/samples/SHList2.py @@ -1,4 +1,4 @@ -#!/usr/local/bin/python +# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id$ # @@ -43,7 +43,7 @@ def RunSample (w) : # First some styles for the headers style={} - style['header'] = Tix.DisplayStyle(Tix.TEXT, fg='black', refwindow=top, + style['header'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top, anchor=Tix.CENTER, padx=8, pady=2, font = boldfont ) hlist.header_create(0, itemtype=Tix.TEXT, text='Name', @@ -78,17 +78,13 @@ def RunSample (w) : ('chuck', 'jeff', 'Chuck McLean', 'Cleaner') ] - style['mgr_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top, - fg='#202060', selectforeground = '#202060', font = boldfont ) + style['mgr_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top) - style['mgr_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8, refwindow=top, - fg='#202060', selectforeground='#202060' ) + style['mgr_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8, refwindow=top) - style['empl_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top, - fg='#602020', selectforeground = '#602020', font = boldfont ) + style['empl_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top) - style['empl_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8, refwindow=top, - fg='#602020', selectforeground = '#602020' ) + style['empl_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8, refwindow=top) # Let configure the appearance of the HList subwidget # @@ -130,10 +126,10 @@ def RunSample (w) : # box= Tix.ButtonBox(top, orientation=Tix.HORIZONTAL ) box.add( 'ok', text='Ok', underline=0, width=6, - command = lambda w=w: w.destroy() ) + command = lambda w=w: w.quit() ) box.add( 'cancel', text='Cancel', underline=0, width=6, - command = lambda w=w: w.destroy() ) + command = lambda w=w: w.quit() ) box.pack( side=Tix.BOTTOM, fill=Tix.X) top.pack( side=Tix.TOP, fill=Tix.BOTH, expand=1 ) @@ -146,3 +142,4 @@ if __name__== '__main__' : root=Tix.Tk() RunSample(root) root.mainloop() + root.destroy() |