[Python-checkins] CVS: python/dist/src/Demo/tix/samples DirList.py,NONE,1.1 DirTree.py,NONE,1.1 SHList1.py,1.1,1.2 SHList2.py,1.1,1.2

Martin v. L?wis loewis@users.sourceforge.net
Sun, 11 Nov 2001 06:07:39 -0800


Update of /cvsroot/python/python/dist/src/Demo/tix/samples
In directory usw-pr-cvs1:/tmp/cvs-serv28070/samples

Modified Files:
	SHList1.py SHList2.py 
Added Files:
	DirList.py DirTree.py 
Log Message:
Patch #473002: Update Demo/tix tixwidgets.py et al.


--- NEW FILE: DirList.py ---
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
#	$Id: DirList.py,v 1.1 2001/11/11 14:07:37 loewis Exp $
#
# 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)


--- NEW FILE: DirTree.py ---
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
#	$Id: DirTree.py,v 1.1 2001/11/11 14:07:37 loewis Exp $
#
# 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()


Index: SHList1.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Demo/tix/samples/SHList1.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** SHList1.py	2001/03/21 07:42:07	1.1
--- SHList1.py	2001/11/11 14:07:37	1.2
***************
*** 1,3 ****
! #!/usr/local/bin/python
  # 
  # $Id$
--- 1,3 ----
! # -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
  # 
  # $Id$
***************
*** 58,62 ****
  	if count :
  	    f=Tix.Frame(hlist, name='sep%d' % count, height=2, width=150,
! 		bd=2, relief=Tix.SUNKEN, bg=hlist['bg'] )
  
  	    hlist.add_child( itemtype=Tix.WINDOW, 
--- 58,62 ----
  	if count :
  	    f=Tix.Frame(hlist, name='sep%d' % count, height=2, width=150,
! 		bd=2, relief=Tix.SUNKEN )
  
  	    hlist.add_child( itemtype=Tix.WINDOW, 
***************
*** 90,97 ****
      box= Tix.ButtonBox(top, orientation=Tix.HORIZONTAL )
      box.add( 'ok',  text='Ok', underline=0,  width=6,
! 	command = lambda w=w:  w.destroy() )
  
      box.add( 'cancel', text='Cancel', underline=0, width=6,
! 	command = lambda w=w:  w.destroy() )
  
      box.pack( side=Tix.BOTTOM, fill=Tix.X)
--- 90,97 ----
      box= Tix.ButtonBox(top, orientation=Tix.HORIZONTAL )
      box.add( 'ok',  text='Ok', underline=0,  width=6,
! 	command = lambda w=w:  w.quit() )
  
      box.add( 'cancel', text='Cancel', underline=0, width=6,
! 	command = lambda w=w:  w.quit() )
  
      box.pack( side=Tix.BOTTOM, fill=Tix.X)
***************
*** 106,107 ****
--- 106,108 ----
      RunSample(root)
      root.mainloop()
+     root.destroy()

Index: SHList2.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Demo/tix/samples/SHList2.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** SHList2.py	2001/03/21 07:42:07	1.1
--- SHList2.py	2001/11/11 14:07:37	1.2
***************
*** 1,3 ****
! #!/usr/local/bin/python
  # 
  # $Id$
--- 1,3 ----
! # -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
  # 
  # $Id$
***************
*** 44,48 ****
      # First some styles for the headers
      style={}
!     style['header'] = Tix.DisplayStyle(Tix.TEXT, fg='black', refwindow=top,
  	anchor=Tix.CENTER, padx=8, pady=2, font = boldfont )
  
--- 44,48 ----
      # First some styles for the headers
      style={}
!     style['header'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top,
  	anchor=Tix.CENTER, padx=8, pady=2, font = boldfont )
  
***************
*** 79,93 ****
      ]
  
!     style['mgr_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top,
! 	fg='#202060', selectforeground = '#202060', font = boldfont )
  
!     style['mgr_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8,  refwindow=top,
! 	fg='#202060', selectforeground='#202060' )
  
!     style['empl_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top,
! 	fg='#602020', selectforeground = '#602020', font = boldfont )
  
!     style['empl_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8,  refwindow=top,
! 	fg='#602020', selectforeground = '#602020' )
  
      # Let configure the appearance of the HList subwidget 
--- 79,89 ----
      ]
  
!     style['mgr_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top)
  
!     style['mgr_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8,  refwindow=top)
  
!     style['empl_name'] = Tix.DisplayStyle(Tix.TEXT, refwindow=top)
  
!     style['empl_posn'] = Tix.DisplayStyle(Tix.TEXT, padx=8,  refwindow=top)
  
      # Let configure the appearance of the HList subwidget 
***************
*** 131,138 ****
      box= Tix.ButtonBox(top, orientation=Tix.HORIZONTAL )
      box.add( 'ok',  text='Ok', underline=0,  width=6,
! 	command = lambda w=w: w.destroy() )
  
      box.add( 'cancel', text='Cancel', underline=0, width=6,
! 	command = lambda w=w: w.destroy() )
  
      box.pack( side=Tix.BOTTOM, fill=Tix.X)
--- 127,134 ----
      box= Tix.ButtonBox(top, orientation=Tix.HORIZONTAL )
      box.add( 'ok',  text='Ok', underline=0,  width=6,
! 	command = lambda w=w: w.quit() )
  
      box.add( 'cancel', text='Cancel', underline=0, width=6,
! 	command = lambda w=w: w.quit() )
  
      box.pack( side=Tix.BOTTOM, fill=Tix.X)
***************
*** 147,148 ****
--- 143,145 ----
      RunSample(root)
      root.mainloop()
+     root.destroy()