| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | # -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # $Id$ | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | # Tix.py -- Tix widget wrappers. | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | #       For Tix, see http://tix.sourceforge.net | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  | #       - Sudhir Shenoy (sshenoy@gol.com), Dec. 1995. | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | #         based on an idea of Jean-Marc Lugrin (lugrin@ms.com) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # NOTE: In order to minimize changes to Tkinter.py, some of the code here | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  | #       (TixWidget.__init__) has been taken from Tkinter (Widget.__init__) | 
					
						
							|  |  |  | #       and will break if there are major changes in Tkinter. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # The Tix widgets are represented by a class hierarchy in python with proper | 
					
						
							|  |  |  | # inheritance of base classes. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # As a result after creating a 'w = StdButtonBox', I can write | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  | #              w.ok['text'] = 'Who Cares' | 
					
						
							|  |  |  | #    or              w.ok['bg'] = w['bg'] | 
					
						
							|  |  |  | # or even       w.ok.invoke() | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # etc. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Compare the demo tixwidgets.py to the original Tcl program and you will | 
					
						
							|  |  |  | # appreciate the advantages. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from Tkinter import * | 
					
						
							|  |  |  | from Tkinter import _flatten, _cnfmerge, _default_root | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # WARNING - TkVersion is a limited precision floating point number | 
					
						
							|  |  |  | if TkVersion < 3.999: | 
					
						
							|  |  |  |     raise ImportError, "This version of Tix.py requires Tk 4.0 or higher" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import _tkinter # If this fails your Python may not be configured for Tk | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Some more constants (for consistency with Tkinter) | 
					
						
							|  |  |  | WINDOW = 'window' | 
					
						
							|  |  |  | TEXT = 'text' | 
					
						
							|  |  |  | STATUS = 'status' | 
					
						
							|  |  |  | IMMEDIATE = 'immediate' | 
					
						
							|  |  |  | IMAGE = 'image' | 
					
						
							|  |  |  | IMAGETEXT = 'imagetext' | 
					
						
							|  |  |  | BALLOON = 'balloon' | 
					
						
							|  |  |  | AUTO = 'auto' | 
					
						
							|  |  |  | ACROSSTOP = 'acrosstop' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  | # Some constants used by Tkinter dooneevent() | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # BEWARE - this is implemented by copying some code from the Widget class | 
					
						
							|  |  |  | #          in Tkinter (to override Widget initialization) and is therefore | 
					
						
							|  |  |  | #          liable to break. | 
					
						
							|  |  |  | import Tkinter, os | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Could probably add this to Tkinter.Misc | 
					
						
							|  |  |  | class tixCommand: | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |     """The tix commands provide access to miscellaneous  elements
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     of  Tix's  internal state and the Tix application context. | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |     Most of the information manipulated by these  commands pertains | 
					
						
							|  |  |  |     to  the  application  as a whole, or to a screen or | 
					
						
							|  |  |  |     display, rather than to a particular window. | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     This is a mixin class, assumed to be mixed to Tkinter.Tk | 
					
						
							|  |  |  |     that supports the self.tk.call method. | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     def tix_addbitmapdir(self, directory): | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         """Tix maintains a list of directories under which
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         the  tix_getimage  and tix_getbitmap commands will | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         search for image files. The standard bitmap  directory | 
					
						
							|  |  |  |         is $TIX_LIBRARY/bitmaps. The addbitmapdir command | 
					
						
							|  |  |  |         adds directory into this list. By  using  this | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         command, the  image  files  of an applications can | 
					
						
							|  |  |  |         also be located using the tix_getimage or tix_getbitmap | 
					
						
							|  |  |  |         command. | 
					
						
							|  |  |  |         """
 | 
					
						
							|  |  |  |         return self.tk.call('tix', 'addbitmapdir', directory) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tix_cget(self, option): | 
					
						
							|  |  |  |         """Returns  the  current  value  of the configuration
 | 
					
						
							|  |  |  |         option given by option. Option may be  any  of  the | 
					
						
							|  |  |  |         options described in the CONFIGURATION OPTIONS section. | 
					
						
							|  |  |  |         """
 | 
					
						
							|  |  |  |         return self.tk.call('tix', 'cget', option) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tix_configure(self, cnf=None, **kw): | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         """Query or modify the configuration options of the Tix application
 | 
					
						
							|  |  |  |         context. If no option is specified, returns a dictionary all of the | 
					
						
							|  |  |  |         available options.  If option is specified with no value, then the | 
					
						
							|  |  |  |         command returns a list describing the one named option (this list | 
					
						
							|  |  |  |         will be identical to the corresponding sublist of the value | 
					
						
							|  |  |  |         returned if no option is specified).  If one or more option-value | 
					
						
							|  |  |  |         pairs are specified, then the command modifies the given option(s) | 
					
						
							|  |  |  |         to have the given value(s); in this case the command returns an | 
					
						
							|  |  |  |         empty string. Option may be any of the configuration options. | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         """
 | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         # Copied from Tkinter.py | 
					
						
							|  |  |  |         if kw: | 
					
						
							|  |  |  |             cnf = _cnfmerge((cnf, kw)) | 
					
						
							|  |  |  |         elif cnf: | 
					
						
							|  |  |  |             cnf = _cnfmerge(cnf) | 
					
						
							|  |  |  |         if cnf is None: | 
					
						
							|  |  |  |             cnf = {} | 
					
						
							|  |  |  |             for x in self.tk.split(self.tk.call('tix', 'configure')): | 
					
						
							|  |  |  |                 cnf[x[0][1:]] = (x[0][1:],) + x[1:] | 
					
						
							|  |  |  |             return cnf | 
					
						
							|  |  |  |         if isinstance(cnf, StringType): | 
					
						
							|  |  |  |             x = self.tk.split(self.tk.call('tix', 'configure', '-'+cnf)) | 
					
						
							|  |  |  |             return (x[0][1:],) + x[1:] | 
					
						
							|  |  |  |         return self.tk.call(('tix', 'configure') + self._options(cnf)) | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def tix_filedialog(self, dlgclass=None): | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         """Returns the file selection dialog that may be shared among
 | 
					
						
							|  |  |  |         different calls from this application.  This command will create a | 
					
						
							|  |  |  |         file selection dialog widget when it is called the first time. This | 
					
						
							|  |  |  |         dialog will be returned by all subsequent calls to tix_filedialog. | 
					
						
							|  |  |  |         An optional dlgclass parameter can be passed to specified what type | 
					
						
							|  |  |  |         of file selection dialog widget is desired. Possible options are | 
					
						
							|  |  |  |         tix FileSelectDialog or tixExFileSelectDialog. | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         """
 | 
					
						
							|  |  |  |         if dlgclass is not None: | 
					
						
							|  |  |  |             return self.tk.call('tix', 'filedialog', dlgclass) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return self.tk.call('tix', 'filedialog') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tix_getbitmap(self, name): | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         """Locates a bitmap file of the name name.xpm or name in one of the
 | 
					
						
							|  |  |  |         bitmap directories (see the tix_addbitmapdir command above).  By | 
					
						
							|  |  |  |         using tix_getbitmap, you can avoid hard coding the pathnames of the | 
					
						
							|  |  |  |         bitmap files in your application. When successful, it returns the | 
					
						
							|  |  |  |         complete pathname of the bitmap file, prefixed with the character | 
					
						
							|  |  |  |         '@'.  The returned value can be used to configure the -bitmap | 
					
						
							|  |  |  |         option of the TK and Tix widgets. | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         """
 | 
					
						
							|  |  |  |         return self.tk.call('tix', 'getbitmap', name) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tix_getimage(self, name): | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         """Locates an image file of the name name.xpm, name.xbm or name.ppm
 | 
					
						
							|  |  |  |         in one of the bitmap directories (see the addbitmapdir command | 
					
						
							|  |  |  |         above). If more than one file with the same name (but different | 
					
						
							|  |  |  |         extensions) exist, then the image type is chosen according to the | 
					
						
							|  |  |  |         depth of the X display: xbm images are chosen on monochrome | 
					
						
							|  |  |  |         displays and color images are chosen on color displays. By using | 
					
						
							|  |  |  |         tix_ getimage, you can advoid hard coding the pathnames of the | 
					
						
							|  |  |  |         image files in your application. When successful, this command | 
					
						
							|  |  |  |         returns the name of the newly created image, which can be used to | 
					
						
							|  |  |  |         configure the -image option of the Tk and Tix widgets. | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         """
 | 
					
						
							|  |  |  |         return self.tk.call('tix', 'getimage', name) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tix_option_get(self, name): | 
					
						
							|  |  |  |         """Gets  the options  manitained  by  the  Tix
 | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         scheme mechanism. Available options include: | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             active_bg       active_fg      bg | 
					
						
							|  |  |  |             bold_font       dark1_bg       dark1_fg | 
					
						
							|  |  |  |             dark2_bg        dark2_fg       disabled_fg | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |             fg              fixed_font     font | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |             inactive_bg     inactive_fg    input1_bg | 
					
						
							|  |  |  |             input2_bg       italic_font    light1_bg | 
					
						
							|  |  |  |             light1_fg       light2_bg      light2_fg | 
					
						
							|  |  |  |             menu_font       output1_bg     output2_bg | 
					
						
							|  |  |  |             select_bg       select_fg      selector | 
					
						
							|  |  |  |             """
 | 
					
						
							|  |  |  |         # could use self.tk.globalgetvar('tixOption', name) | 
					
						
							|  |  |  |         return self.tk.call('tix', 'option', 'get', name) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tix_resetoptions(self, newScheme, newFontSet, newScmPrio=None): | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |         """Resets the scheme and fontset of the Tix application to
 | 
					
						
							|  |  |  |         newScheme and newFontSet, respectively.  This affects only those | 
					
						
							|  |  |  |         widgets created after this call. Therefore, it is best to call the | 
					
						
							|  |  |  |         resetoptions command before the creation of any widgets in a Tix | 
					
						
							|  |  |  |         application. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         The optional parameter newScmPrio can be given to reset the | 
					
						
							|  |  |  |         priority level of the Tk options set by the Tix schemes. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Because of the way Tk handles the X option database, after Tix has | 
					
						
							|  |  |  |         been has imported and inited, it is not possible to reset the color | 
					
						
							|  |  |  |         schemes and font sets using the tix config command.  Instead, the | 
					
						
							|  |  |  |         tix_resetoptions command must be used. | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         """
 | 
					
						
							|  |  |  |         if newScmPrio is not None: | 
					
						
							|  |  |  |             return self.tk.call('tix', 'resetoptions', newScheme, newFontSet, newScmPrio) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return self.tk.call('tix', 'resetoptions', newScheme, newFontSet) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Tk(Tkinter.Tk, tixCommand): | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     """Toplevel widget of Tix which represents mostly the main window
 | 
					
						
							|  |  |  |     of an application. It has an associated Tcl interpreter."""
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     def __init__(self, screenName=None, baseName=None, className='Tix'): | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |         Tkinter.Tk.__init__(self, screenName, baseName, className) | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         tixlib = os.environ.get('TIX_LIBRARY') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         self.tk.eval('global auto_path; lappend auto_path [file dir [info nameof]]') | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         if tixlib is not None: | 
					
						
							|  |  |  |             self.tk.eval('global auto_path; lappend auto_path {%s}' % tixlib) | 
					
						
							|  |  |  |             self.tk.eval('global tcl_pkgPath; lappend tcl_pkgPath {%s}' % tixlib) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |         # Load Tix - this should work dynamically or statically | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  |         # If it's static, tcl/tix8.1/pkgIndex.tcl should have | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         #               'load {} Tix' | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  |         # If it's dynamic under Unix, tcl/tix8.1/pkgIndex.tcl should have | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         #               'load libtix8.1.8.3.so Tix' | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         self.tk.eval('package require Tix') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  |     def destroy(self): | 
					
						
							|  |  |  |         # For safety, remove an delete_window binding before destroy | 
					
						
							|  |  |  |         self.protocol("WM_DELETE_WINDOW", "") | 
					
						
							|  |  |  |         Tkinter.Tk.destroy(self) | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # The Tix 'tixForm' geometry manager | 
					
						
							|  |  |  | class Form: | 
					
						
							|  |  |  |     """The Tix Form geometry manager
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Widgets can be arranged by specifying attachments to other widgets. | 
					
						
							|  |  |  |     See Tix documentation for complete details"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def config(self, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call('tixForm', self._w, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     form = config | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __setitem__(self, key, value): | 
					
						
							| 
									
										
										
										
											2001-08-13 14:12:35 +00:00
										 |  |  |         Form.form(self, {key: value}) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def check(self): | 
					
						
							|  |  |  |         return self.tk.call('tixForm', 'check', self._w) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def forget(self): | 
					
						
							|  |  |  |         self.tk.call('tixForm', 'forget', self._w) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def grid(self, xsize=0, ysize=0): | 
					
						
							|  |  |  |         if (not xsize) and (not ysize): | 
					
						
							|  |  |  |             x = self.tk.call('tixForm', 'grid', self._w) | 
					
						
							|  |  |  |             y = self.tk.splitlist(x) | 
					
						
							|  |  |  |             z = () | 
					
						
							|  |  |  |             for x in y: | 
					
						
							|  |  |  |                 z = z + (self.tk.getint(x),) | 
					
						
							|  |  |  |             return z | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         return self.tk.call('tixForm', 'grid', self._w, xsize, ysize) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info(self, option=None): | 
					
						
							|  |  |  |         if not option: | 
					
						
							|  |  |  |             return self.tk.call('tixForm', 'info', self._w) | 
					
						
							|  |  |  |         if option[0] != '-': | 
					
						
							|  |  |  |             option = '-' + option | 
					
						
							|  |  |  |         return self.tk.call('tixForm', 'info', self._w, option) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def slaves(self): | 
					
						
							|  |  |  |         return map(self._nametowidget, | 
					
						
							|  |  |  |                    self.tk.splitlist( | 
					
						
							|  |  |  |                        self.tk.call( | 
					
						
							|  |  |  |                        'tixForm', 'slaves', self._w))) | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | Tkinter.Widget.__bases__ = Tkinter.Widget.__bases__ + (Form,) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | class TixWidget(Tkinter.Widget): | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     """A TixWidget class is used to package all (or most) Tix widgets.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Widget initialization is extended in two ways: | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |        1) It is possible to give a list of options which must be part of | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |        the creation command (so called Tix 'static' options). These cannot be | 
					
						
							|  |  |  |        given as a 'config' command later. | 
					
						
							|  |  |  |        2) It is possible to give the name of an existing TK widget. These are | 
					
						
							|  |  |  |        child widgets created automatically by a Tix mega-widget. The Tk call | 
					
						
							|  |  |  |        to create these widgets is therefore bypassed in TixWidget.__init__ | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Both options are for use by subclasses only. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     def __init__ (self, master=None, widgetName=None, | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |                 static_options=None, cnf={}, kw={}): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         # Merge keywords and dictionary arguments | 
					
						
							|  |  |  |         if kw: | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |             cnf = _cnfmerge((cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         else: | 
					
						
							|  |  |  |             cnf = _cnfmerge(cnf) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # Move static options into extra. static_options must be | 
					
						
							|  |  |  |         # a list of keywords (or None). | 
					
						
							|  |  |  |         extra=() | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # 'options' is always a static option | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if static_options: | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |             static_options.append('options') | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             static_options = ['options'] | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |         for k,v in cnf.items()[:]: | 
					
						
							|  |  |  |             if k in static_options: | 
					
						
							|  |  |  |                 extra = extra + ('-' + k, v) | 
					
						
							|  |  |  |                 del cnf[k] | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         self.widgetName = widgetName | 
					
						
							|  |  |  |         Widget._setup(self, master, cnf) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # If widgetName is None, this is a dummy creation call where the | 
					
						
							|  |  |  |         # corresponding Tk widget has already been created by Tix | 
					
						
							|  |  |  |         if widgetName: | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |             self.tk.call(widgetName, self._w, *extra) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # Non-static options - to be done via a 'config' command | 
					
						
							|  |  |  |         if cnf: | 
					
						
							|  |  |  |             Widget.config(self, cnf) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # Dictionary to hold subwidget names for easier access. We can't | 
					
						
							|  |  |  |         # use the children list because the public Tix names may not be the | 
					
						
							|  |  |  |         # same as the pathname component | 
					
						
							|  |  |  |         self.subwidget_list = {} | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # We set up an attribute access function so that it is possible to | 
					
						
							|  |  |  |     # do w.ok['text'] = 'Hello' rather than w.subwidget('ok')['text'] = 'Hello' | 
					
						
							|  |  |  |     # when w is a StdButtonBox. | 
					
						
							|  |  |  |     # We can even do w.ok.invoke() because w.ok is subclassed from the | 
					
						
							|  |  |  |     # Button class if you go through the proper constructors | 
					
						
							|  |  |  |     def __getattr__(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if self.subwidget_list.has_key(name): | 
					
						
							|  |  |  |             return self.subwidget_list[name] | 
					
						
							|  |  |  |         raise AttributeError, name | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def set_silent(self, value): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Set a variable without calling its action routine""" | 
					
						
							|  |  |  |         self.tk.call('tixSetSilent', self._w, value) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def subwidget(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Return the named subwidget (which must have been created by
 | 
					
						
							|  |  |  |         the sub-class)."""
 | 
					
						
							|  |  |  |         n = self._subwidget_name(name) | 
					
						
							|  |  |  |         if not n: | 
					
						
							|  |  |  |             raise TclError, "Subwidget " + name + " not child of " + self._name | 
					
						
							|  |  |  |         # Remove header of name and leading dot | 
					
						
							|  |  |  |         n = n[len(self._w)+1:] | 
					
						
							|  |  |  |         return self._nametowidget(n) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def subwidgets_all(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Return all subwidgets.""" | 
					
						
							|  |  |  |         names = self._subwidget_names() | 
					
						
							|  |  |  |         if not names: | 
					
						
							|  |  |  |             return [] | 
					
						
							|  |  |  |         retlist = [] | 
					
						
							|  |  |  |         for name in names: | 
					
						
							|  |  |  |             name = name[len(self._w)+1:] | 
					
						
							|  |  |  |             try: | 
					
						
							|  |  |  |                 retlist.append(self._nametowidget(name)) | 
					
						
							|  |  |  |             except: | 
					
						
							|  |  |  |                 # some of the widgets are unknown e.g. border in LabelFrame | 
					
						
							|  |  |  |                 pass | 
					
						
							|  |  |  |         return retlist | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _subwidget_name(self,name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Get a subwidget name (returns a String, not a Widget !)""" | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             return self.tk.call(self._w, 'subwidget', name) | 
					
						
							|  |  |  |         except TclError: | 
					
						
							|  |  |  |             return None | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _subwidget_names(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Return the name of all subwidgets.""" | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             x = self.tk.call(self._w, 'subwidgets', '-all') | 
					
						
							|  |  |  |             return self.tk.split(x) | 
					
						
							|  |  |  |         except TclError: | 
					
						
							|  |  |  |             return None | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def config_all(self, option, value): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Set configuration options for all subwidgets (and self).""" | 
					
						
							|  |  |  |         if option == '': | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         elif not isinstance(option, StringType): | 
					
						
							| 
									
										
										
										
											2004-02-12 17:35:32 +00:00
										 |  |  |             option = repr(option) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if not isinstance(value, StringType): | 
					
						
							| 
									
										
										
										
											2004-02-12 17:35:32 +00:00
										 |  |  |             value = repr(value) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         names = self._subwidget_names() | 
					
						
							|  |  |  |         for name in names: | 
					
						
							|  |  |  |             self.tk.call(name, 'configure', '-' + option, value) | 
					
						
							| 
									
										
										
										
											2002-12-10 02:18:49 +00:00
										 |  |  |     # These are missing from Tkinter | 
					
						
							|  |  |  |     def image_create(self, imgtype, cnf={}, master=None, **kw): | 
					
						
							|  |  |  |         if not master: | 
					
						
							|  |  |  |             master = Tkinter._default_root | 
					
						
							|  |  |  |             if not master: | 
					
						
							|  |  |  |                 raise RuntimeError, 'Too early to create image' | 
					
						
							|  |  |  |         if kw and cnf: cnf = _cnfmerge((cnf, kw)) | 
					
						
							|  |  |  |         elif kw: cnf = kw | 
					
						
							|  |  |  |         options = () | 
					
						
							|  |  |  |         for k, v in cnf.items(): | 
					
						
							|  |  |  |             if callable(v): | 
					
						
							|  |  |  |                 v = self._register(v) | 
					
						
							|  |  |  |             options = options + ('-'+k, v) | 
					
						
							|  |  |  |         return master.tk.call(('image', 'create', imgtype,) + options) | 
					
						
							|  |  |  |     def image_delete(self, imgname): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             self.tk.call('image', 'delete', imgname) | 
					
						
							|  |  |  |         except TclError: | 
					
						
							|  |  |  |             # May happen if the root was destroyed | 
					
						
							|  |  |  |             pass | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Subwidgets are child widgets created automatically by mega-widgets. | 
					
						
							|  |  |  | # In python, we have to create these subwidgets manually to mirror their | 
					
						
							|  |  |  | # existence in Tk/Tix. | 
					
						
							|  |  |  | class TixSubWidget(TixWidget): | 
					
						
							|  |  |  |     """Subwidget class.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     This is used to mirror child widgets automatically created | 
					
						
							|  |  |  |     by Tix/Tk as part of a mega-widget in Python (which is not informed | 
					
						
							|  |  |  |     of this)"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master, name, | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |                destroy_physically=1, check_intermediate=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if check_intermediate: | 
					
						
							|  |  |  |             path = master._subwidget_name(name) | 
					
						
							|  |  |  |             try: | 
					
						
							|  |  |  |                 path = path[len(master._w)+1:] | 
					
						
							| 
									
										
										
										
											2002-05-31 20:51:31 +00:00
										 |  |  |                 plist = path.split('.') | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |             except: | 
					
						
							|  |  |  |                 plist = [] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (not check_intermediate) or len(plist) < 2: | 
					
						
							|  |  |  |             # immediate descendant | 
					
						
							|  |  |  |             TixWidget.__init__(self, master, None, None, {'name' : name}) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             # Ensure that the intermediate widgets exist | 
					
						
							|  |  |  |             parent = master | 
					
						
							|  |  |  |             for i in range(len(plist) - 1): | 
					
						
							| 
									
										
										
										
											2002-05-31 20:51:31 +00:00
										 |  |  |                 n = '.'.join(plist[:i+1]) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |                 try: | 
					
						
							|  |  |  |                     w = master._nametowidget(n) | 
					
						
							|  |  |  |                     parent = w | 
					
						
							|  |  |  |                 except KeyError: | 
					
						
							|  |  |  |                     # Create the intermediate widget | 
					
						
							|  |  |  |                     parent = TixSubWidget(parent, plist[i], | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                                           destroy_physically=0, | 
					
						
							|  |  |  |                                           check_intermediate=0) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |             TixWidget.__init__(self, parent, None, None, {'name' : name}) | 
					
						
							|  |  |  |         self.destroy_physically = destroy_physically | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def destroy(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         # For some widgets e.g., a NoteBook, when we call destructors, | 
					
						
							|  |  |  |         # we must be careful not to destroy the frame widget since this | 
					
						
							|  |  |  |         # also destroys the parent NoteBook thus leading to an exception | 
					
						
							|  |  |  |         # in Tkinter when it finally calls Tcl to destroy the NoteBook | 
					
						
							|  |  |  |         for c in self.children.values(): c.destroy() | 
					
						
							|  |  |  |         if self.master.children.has_key(self._name): | 
					
						
							|  |  |  |             del self.master.children[self._name] | 
					
						
							|  |  |  |         if self.master.subwidget_list.has_key(self._name): | 
					
						
							|  |  |  |             del self.master.subwidget_list[self._name] | 
					
						
							|  |  |  |         if self.destroy_physically: | 
					
						
							|  |  |  |             # This is bypassed only for a few widgets | 
					
						
							|  |  |  |             self.tk.call('destroy', self._w) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Useful func. to split Tcl lists and return as a dict. From Tkinter.py | 
					
						
							|  |  |  | def _lst2dict(lst): | 
					
						
							|  |  |  |     dict = {} | 
					
						
							|  |  |  |     for x in lst: | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         dict[x[0][1:]] = (x[0][1:],) + x[1:] | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     return dict | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Useful class to create a display style - later shared by many items. | 
					
						
							|  |  |  | # Contributed by Steffen Kremser | 
					
						
							|  |  |  | class DisplayStyle: | 
					
						
							|  |  |  |     """DisplayStyle - handle configuration options shared by
 | 
					
						
							|  |  |  |     (multiple) Display Items"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, itemtype, cnf={}, **kw ): | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         master = _default_root              # global from Tkinter | 
					
						
							|  |  |  |         if not master and cnf.has_key('refwindow'): master=cnf['refwindow'] | 
					
						
							|  |  |  |         elif not master and kw.has_key('refwindow'):  master= kw['refwindow'] | 
					
						
							|  |  |  |         elif not master: raise RuntimeError, "Too early to create display style: no root window" | 
					
						
							|  |  |  |         self.tk = master.tk | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.stylename = self.tk.call('tixDisplayStyle', itemtype, | 
					
						
							|  |  |  |                             *self._options(cnf,kw) ) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __str__(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.stylename | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def _options(self, cnf, kw ): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if kw and cnf: | 
					
						
							|  |  |  |             cnf = _cnfmerge((cnf, kw)) | 
					
						
							|  |  |  |         elif kw: | 
					
						
							|  |  |  |             cnf = kw | 
					
						
							|  |  |  |         opts = () | 
					
						
							|  |  |  |         for k, v in cnf.items(): | 
					
						
							|  |  |  |             opts = opts + ('-'+k, v) | 
					
						
							|  |  |  |         return opts | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def delete(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self.stylename, 'delete') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __setitem__(self,key,value): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self.stylename, 'configure', '-%s'%key, value) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def config(self, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return _lst2dict( | 
					
						
							|  |  |  |             self.tk.split( | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |             self.tk.call( | 
					
						
							|  |  |  |                   self.stylename, 'configure', *self._options(cnf,kw)))) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __getitem__(self,key): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self.stylename, 'cget', '-%s'%key) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ###################################################### | 
					
						
							|  |  |  | ### The Tix Widget classes - in alphabetical order ### | 
					
						
							|  |  |  | ###################################################### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Balloon(TixWidget): | 
					
						
							|  |  |  |     """Balloon help widget.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							| 
									
										
										
										
											2001-12-13 04:53:07 +00:00
										 |  |  |     label           Label | 
					
						
							|  |  |  |     message         Message"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixShell | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2001-11-25 14:50:56 +00:00
										 |  |  |         # static seem to be -installcolormap -initwait -statusbar -cursor | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         static = ['options', 'installcolormap', 'initwait', 'statusbar', | 
					
						
							|  |  |  |                   'cursor'] | 
					
						
							|  |  |  |         TixWidget.__init__(self, master, 'tixBalloon', static, cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['label'] = _dummyLabel(self, 'label', | 
					
						
							|  |  |  |                                                    destroy_physically=0) | 
					
						
							|  |  |  |         self.subwidget_list['message'] = _dummyLabel(self, 'message', | 
					
						
							|  |  |  |                                                      destroy_physically=0) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def bind_widget(self, widget, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Bind balloon widget to another.
 | 
					
						
							|  |  |  |         One balloon widget may be bound to several widgets at the same time"""
 | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'bind', widget._w, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def unbind_widget(self, widget): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'unbind', widget._w) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ButtonBox(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """ButtonBox - A container for pushbuttons.
 | 
					
						
							|  |  |  |     Subwidgets are the buttons added with the add method. | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixButtonBox', | 
					
						
							|  |  |  |                            ['orientation', 'options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add(self, name, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         """Add a button with given name to box.""" | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         btn = self.tk.call(self._w, 'add', name, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list[name] = _dummyButton(self, name) | 
					
						
							|  |  |  |         return btn | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def invoke(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if self.subwidget_list.has_key(name): | 
					
						
							|  |  |  |             self.tk.call(self._w, 'invoke', name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ComboBox(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """ComboBox - an Entry field with a dropdown menu. The user can select a
 | 
					
						
							|  |  |  |     choice by either typing in the entry subwdget or selecting from the | 
					
						
							|  |  |  |     listbox subwidget. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							|  |  |  |     entry       Entry | 
					
						
							|  |  |  |     arrow       Button | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     slistbox    ScrolledListBox | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |     tick        Button | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     cross       Button : present if created with the fancy option"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixLabelWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__ (self, master=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixComboBox', | 
					
						
							|  |  |  |                            ['editable', 'dropdown', 'fancy', 'options'], | 
					
						
							|  |  |  |                            cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['label'] = _dummyLabel(self, 'label') | 
					
						
							|  |  |  |         self.subwidget_list['entry'] = _dummyEntry(self, 'entry') | 
					
						
							|  |  |  |         self.subwidget_list['arrow'] = _dummyButton(self, 'arrow') | 
					
						
							|  |  |  |         self.subwidget_list['slistbox'] = _dummyScrolledListBox(self, | 
					
						
							|  |  |  |                                                                 'slistbox') | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             self.subwidget_list['tick'] = _dummyButton(self, 'tick') | 
					
						
							|  |  |  |             self.subwidget_list['cross'] = _dummyButton(self, 'cross') | 
					
						
							|  |  |  |         except TypeError: | 
					
						
							|  |  |  |             # unavailable when -fancy not specified | 
					
						
							|  |  |  |             pass | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-10 02:18:49 +00:00
										 |  |  |     # align | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def add_history(self, str): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'addhistory', str) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def append_history(self, str): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'appendhistory', str) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def insert(self, index, str): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'insert', index, str) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def pick(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'pick', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Control(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """Control - An entry field with value change arrows.  The user can
 | 
					
						
							|  |  |  |     adjust the value by pressing the two arrow buttons or by entering | 
					
						
							|  |  |  |     the value directly into the entry. The new value will be checked | 
					
						
							|  |  |  |     against the user-defined upper and lower limits. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							|  |  |  |     incr       Button | 
					
						
							|  |  |  |     decr       Button | 
					
						
							|  |  |  |     entry       Entry | 
					
						
							|  |  |  |     label       Label"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixLabelWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__ (self, master=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixControl', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['incr'] = _dummyButton(self, 'incr') | 
					
						
							|  |  |  |         self.subwidget_list['decr'] = _dummyButton(self, 'decr') | 
					
						
							|  |  |  |         self.subwidget_list['label'] = _dummyLabel(self, 'label') | 
					
						
							|  |  |  |         self.subwidget_list['entry'] = _dummyEntry(self, 'entry') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def decrement(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'decr') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def increment(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'incr') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def invoke(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'invoke') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def update(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'update') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class DirList(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """DirList - displays a list view of a directory, its previous
 | 
					
						
							|  |  |  |     directories and its sub-directories. The user can choose one of | 
					
						
							|  |  |  |     the directories displayed in the list or change to another directory. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							|  |  |  |     hlist       HList | 
					
						
							|  |  |  |     hsb              Scrollbar | 
					
						
							|  |  |  |     vsb              Scrollbar"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledHList | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixDirList', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def chdir(self, dir): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'chdir', dir) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class DirTree(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """DirTree - Directory Listing in a hierarchical view.
 | 
					
						
							|  |  |  |     Displays a tree view of a directory, its previous directories and its | 
					
						
							|  |  |  |     sub-directories. The user can choose one of the directories displayed | 
					
						
							|  |  |  |     in the list or change to another directory. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |     hlist           HList | 
					
						
							|  |  |  |     hsb             Scrollbar | 
					
						
							|  |  |  |     vsb             Scrollbar"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledHList | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixDirTree', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def chdir(self, dir): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'chdir', dir) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | class DirSelectBox(TixWidget): | 
					
						
							|  |  |  |     """DirSelectBox - Motif style file select box.
 | 
					
						
							|  |  |  |     It is generally used for | 
					
						
							|  |  |  |     the user to choose a file. FileSelectBox stores the files mostly | 
					
						
							|  |  |  |     recently selected into a ComboBox widget so that they can be quickly | 
					
						
							|  |  |  |     selected again. | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							|  |  |  |     selection       ComboBox | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |     filter          ComboBox | 
					
						
							|  |  |  |     dirlist         ScrolledListBox | 
					
						
							|  |  |  |     filelist        ScrolledListBox"""
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixDirSelectBox', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['dirlist'] = _dummyDirList(self, 'dirlist') | 
					
						
							|  |  |  |         self.subwidget_list['dircbx'] = _dummyFileComboBox(self, 'dircbx') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class ExFileSelectBox(TixWidget): | 
					
						
							|  |  |  |     """ExFileSelectBox - MS Windows style file select box.
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     It provides an convenient method for the user to select files. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							|  |  |  |     cancel       Button | 
					
						
							|  |  |  |     ok              Button | 
					
						
							|  |  |  |     hidden       Checkbutton | 
					
						
							|  |  |  |     types       ComboBox | 
					
						
							|  |  |  |     dir              ComboBox | 
					
						
							|  |  |  |     file       ComboBox | 
					
						
							|  |  |  |     dirlist       ScrolledListBox | 
					
						
							|  |  |  |     filelist       ScrolledListBox"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixExFileSelectBox', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['cancel'] = _dummyButton(self, 'cancel') | 
					
						
							|  |  |  |         self.subwidget_list['ok'] = _dummyButton(self, 'ok') | 
					
						
							|  |  |  |         self.subwidget_list['hidden'] = _dummyCheckbutton(self, 'hidden') | 
					
						
							|  |  |  |         self.subwidget_list['types'] = _dummyComboBox(self, 'types') | 
					
						
							|  |  |  |         self.subwidget_list['dir'] = _dummyComboBox(self, 'dir') | 
					
						
							|  |  |  |         self.subwidget_list['dirlist'] = _dummyDirList(self, 'dirlist') | 
					
						
							|  |  |  |         self.subwidget_list['file'] = _dummyComboBox(self, 'file') | 
					
						
							|  |  |  |         self.subwidget_list['filelist'] = _dummyScrolledListBox(self, 'filelist') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def filter(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'filter') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def invoke(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'invoke') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Should inherit from a Dialog class | 
					
						
							|  |  |  | class DirSelectDialog(TixWidget): | 
					
						
							|  |  |  |     """The DirSelectDialog widget presents the directories in the file
 | 
					
						
							|  |  |  |     system in a dialog window. The user can use this dialog window to | 
					
						
							|  |  |  |     navigate through the file system to select the desired directory. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     dirbox       DirSelectDialog"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixDialogShell | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixDirSelectDialog', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['dirbox'] = _dummyDirSelectBox(self, 'dirbox') | 
					
						
							|  |  |  |         # cancel and ok buttons are missing | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     def popup(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'popup') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def popdown(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'popdown') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Should inherit from a Dialog class | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class ExFileSelectDialog(TixWidget): | 
					
						
							|  |  |  |     """ExFileSelectDialog - MS Windows style file select dialog.
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     It provides an convenient method for the user to select files. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     fsbox       ExFileSelectBox"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixDialogShell | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixExFileSelectDialog', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['fsbox'] = _dummyExFileSelectBox(self, 'fsbox') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def popup(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'popup') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def popdown(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'popdown') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class FileSelectBox(TixWidget): | 
					
						
							|  |  |  |     """ExFileSelectBox - Motif style file select box.
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     It is generally used for | 
					
						
							|  |  |  |     the user to choose a file. FileSelectBox stores the files mostly | 
					
						
							|  |  |  |     recently selected into a ComboBox widget so that they can be quickly | 
					
						
							|  |  |  |     selected again. | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							|  |  |  |     selection       ComboBox | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |     filter          ComboBox | 
					
						
							|  |  |  |     dirlist         ScrolledListBox | 
					
						
							|  |  |  |     filelist        ScrolledListBox"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixFileSelectBox', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['dirlist'] = _dummyScrolledListBox(self, 'dirlist') | 
					
						
							|  |  |  |         self.subwidget_list['filelist'] = _dummyScrolledListBox(self, 'filelist') | 
					
						
							|  |  |  |         self.subwidget_list['filter'] = _dummyComboBox(self, 'filter') | 
					
						
							|  |  |  |         self.subwidget_list['selection'] = _dummyComboBox(self, 'selection') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     def apply_filter(self):              # name of subwidget is same as command | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'filter') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def invoke(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'invoke') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | # Should inherit from a Dialog class | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class FileSelectDialog(TixWidget): | 
					
						
							|  |  |  |     """FileSelectDialog - Motif style file select dialog.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     btns       StdButtonBox | 
					
						
							|  |  |  |     fsbox       FileSelectBox"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixStdDialogShell | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixFileSelectDialog', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['btns'] = _dummyStdButtonBox(self, 'btns') | 
					
						
							|  |  |  |         self.subwidget_list['fsbox'] = _dummyFileSelectBox(self, 'fsbox') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def popup(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'popup') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def popdown(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'popdown') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class FileEntry(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """FileEntry - Entry field with button that invokes a FileSelectDialog.
 | 
					
						
							|  |  |  |     The user can type in the filename manually. Alternatively, the user can | 
					
						
							|  |  |  |     press the button widget that sits next to the entry, which will bring | 
					
						
							|  |  |  |     up a file selection dialog. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     button       Button | 
					
						
							|  |  |  |     entry       Entry"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixLabelWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixFileEntry', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['dialogtype', 'options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['button'] = _dummyButton(self, 'button') | 
					
						
							|  |  |  |         self.subwidget_list['entry'] = _dummyEntry(self, 'entry') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def invoke(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'invoke') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def file_dialog(self): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         # FIXME: return python object | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         pass | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class HList(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """HList - Hierarchy display  widget can be used to display any data
 | 
					
						
							|  |  |  |     that have a hierarchical structure, for example, file system directory | 
					
						
							|  |  |  |     trees. The list entries are indented and connected by branch lines | 
					
						
							|  |  |  |     according to their places in the hierachy. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Subwidgets - None"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixHList', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['columns', 'options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add(self, entry, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         return self.tk.call(self._w, 'add', entry, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add_child(self, parent=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if not parent: | 
					
						
							|  |  |  |             parent = '' | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         return self.tk.call( | 
					
						
							|  |  |  |                      self._w, 'addchild', parent, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def anchor_set(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'anchor', 'set', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def anchor_clear(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'anchor', 'clear') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def column_width(self, col=0, width=None, chars=None): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if not chars: | 
					
						
							|  |  |  |             return self.tk.call(self._w, 'column', 'width', col, width) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return self.tk.call(self._w, 'column', 'width', col, | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                                 '-char', chars) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def delete_all(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'delete', 'all') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def delete_entry(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'delete', 'entry', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def delete_offsprings(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'delete', 'offsprings', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def delete_siblings(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'delete', 'siblings', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dragsite_set(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dragsite', 'set', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dragsite_clear(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dragsite', 'clear') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dropsite_set(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dropsite', 'set', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dropsite_clear(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dropsite', 'clear') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def header_create(self, col, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'header', 'create', col, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def header_configure(self, col, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if cnf is None: | 
					
						
							|  |  |  |             return _lst2dict( | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                 self.tk.split( | 
					
						
							|  |  |  |                 self.tk.call(self._w, 'header', 'configure', col))) | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'header', 'configure', col, | 
					
						
							|  |  |  |                      *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def header_cget(self,  col, opt): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'header', 'cget', col, opt) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def header_exists(self,  col): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'header', 'exists', col) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def header_delete(self, col): | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         self.tk.call(self._w, 'header', 'delete', col) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def header_size(self, col): | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         return self.tk.call(self._w, 'header', 'size', col) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def hide_entry(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'hide', 'entry', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def indicator_create(self, entry, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call( | 
					
						
							|  |  |  |               self._w, 'indicator', 'create', entry, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def indicator_configure(self, entry, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if cnf is None: | 
					
						
							|  |  |  |             return _lst2dict( | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                 self.tk.split( | 
					
						
							|  |  |  |                 self.tk.call(self._w, 'indicator', 'configure', entry))) | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call( | 
					
						
							|  |  |  |               self._w, 'indicator', 'configure', entry, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def indicator_cget(self,  entry, opt): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'indicator', 'cget', entry, opt) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def indicator_exists(self,  entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call (self._w, 'indicator', 'exists', entry) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def indicator_delete(self, entry): | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         self.tk.call(self._w, 'indicator', 'delete', entry) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def indicator_size(self, entry): | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |         return self.tk.call(self._w, 'indicator', 'size', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_anchor(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'anchor') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_children(self, entry=None): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         c = self.tk.call(self._w, 'info', 'children', entry) | 
					
						
							|  |  |  |         return self.tk.splitlist(c) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_data(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'data', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_exists(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'exists', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_hidden(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'hidden', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_next(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'next', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_parent(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'parent', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_prev(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'prev', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_selection(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         c = self.tk.call(self._w, 'info', 'selection') | 
					
						
							|  |  |  |         return self.tk.splitlist(c) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-09 11:50:55 +00:00
										 |  |  |     def item_cget(self, entry, col, opt): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'item', 'cget', entry, col, opt) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def item_configure(self, entry, col, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if cnf is None: | 
					
						
							|  |  |  |             return _lst2dict( | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                 self.tk.split( | 
					
						
							|  |  |  |                 self.tk.call(self._w, 'item', 'configure', entry, col))) | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'item', 'configure', entry, col, | 
					
						
							|  |  |  |               *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def item_create(self, entry, col, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call( | 
					
						
							|  |  |  |               self._w, 'item', 'create', entry, col, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def item_exists(self, entry, col): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'item', 'exists', entry, col) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def item_delete(self, entry, col): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'item', 'delete', entry, col) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-03-21 15:26:44 +00:00
										 |  |  |     def entrycget(self, entry, opt): | 
					
						
							|  |  |  |         return self.tk.call(self._w, 'entrycget', entry, opt) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def entryconfigure(self, entry, cnf={}, **kw): | 
					
						
							|  |  |  |         if cnf is None: | 
					
						
							|  |  |  |             return _lst2dict( | 
					
						
							|  |  |  |                 self.tk.split( | 
					
						
							|  |  |  |                 self.tk.call(self._w, 'entryconfigure', entry))) | 
					
						
							|  |  |  |         self.tk.call(self._w, 'entryconfigure', entry, | 
					
						
							|  |  |  |               *self._options(cnf, kw)) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def nearest(self, y): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'nearest', y) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def see(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'see', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def selection_clear(self, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'selection', 'clear', *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def selection_includes(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'selection', 'includes', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def selection_set(self, first, last=None): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'selection', 'set', first, last) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def show_entry(self, entry): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'show', 'entry', entry) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def xview(self, *args): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'xview', *args) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def yview(self, *args): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'yview', *args) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class InputOnly(TixWidget): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     """InputOnly - Invisible widget. Unix only.
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Subwidgets - None"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixInputOnly', None, cnf, kw) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class LabelEntry(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """LabelEntry - Entry field with label. Packages an entry widget
 | 
					
						
							|  |  |  |     and a label into one mega widget. It can beused be used to simplify | 
					
						
							|  |  |  |     the creation of ``entry-form'' type of interface. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     label       Label | 
					
						
							|  |  |  |     entry       Entry"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixLabelEntry', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['labelside','options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['label'] = _dummyLabel(self, 'label') | 
					
						
							|  |  |  |         self.subwidget_list['entry'] = _dummyEntry(self, 'entry') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class LabelFrame(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """LabelFrame - Labelled Frame container. Packages a frame widget
 | 
					
						
							|  |  |  |     and a label into one mega widget. To create widgets inside a | 
					
						
							|  |  |  |     LabelFrame widget, one creates the new widgets relative to the | 
					
						
							|  |  |  |     frame subwidget and manage them inside the frame subwidget. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     label       Label | 
					
						
							|  |  |  |     frame       Frame"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixLabelFrame', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['labelside','options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['label'] = _dummyLabel(self, 'label') | 
					
						
							|  |  |  |         self.subwidget_list['frame'] = _dummyFrame(self, 'frame') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ListNoteBook(TixWidget): | 
					
						
							|  |  |  |     """A ListNoteBook widget is very similar to the TixNoteBook widget:
 | 
					
						
							|  |  |  |     it can be used to display many windows in a limited space using a | 
					
						
							|  |  |  |     notebook metaphor. The notebook is divided into a stack of pages | 
					
						
							|  |  |  |     (windows). At one time only one of these pages can be shown. | 
					
						
							|  |  |  |     The user can navigate through these pages by | 
					
						
							|  |  |  |     choosing the name of the desired page in the hlist subwidget."""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixListNoteBook', ['options'], cnf, kw) | 
					
						
							|  |  |  |         # Is this necessary? It's not an exposed subwidget in Tix. | 
					
						
							|  |  |  |         self.subwidget_list['pane'] = _dummyPanedWindow(self, 'pane', | 
					
						
							|  |  |  |                                                         destroy_physically=0) | 
					
						
							|  |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['shlist'] = _dummyScrolledHList(self, 'shlist') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add(self, name, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'add', name, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list[name] = TixSubWidget(self, name) | 
					
						
							|  |  |  |         return self.subwidget_list[name] | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-09-19 08:12:55 +00:00
										 |  |  |     def page(self, name): | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |         return self.subwidget(name) | 
					
						
							| 
									
										
										
										
											2002-09-19 08:12:55 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def pages(self): | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |         # Can't call subwidgets_all directly because we don't want .nbframe | 
					
						
							|  |  |  |         names = self.tk.split(self.tk.call(self._w, 'pages')) | 
					
						
							|  |  |  |         ret = [] | 
					
						
							|  |  |  |         for x in names: | 
					
						
							|  |  |  |             ret.append(self.subwidget(x)) | 
					
						
							|  |  |  |         return ret | 
					
						
							| 
									
										
										
										
											2002-09-19 08:12:55 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     def raise_page(self, name):              # raise is a python keyword | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'raise', name) | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Meter(TixWidget): | 
					
						
							|  |  |  |     """The Meter widget can be used to show the progress of a background
 | 
					
						
							|  |  |  |     job which may take a long time to execute. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixMeter', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class NoteBook(TixWidget): | 
					
						
							|  |  |  |     """NoteBook - Multi-page container widget (tabbed notebook metaphor).
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     nbframe       NoteBookFrame | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     <pages>       page widgets added dynamically with the add method"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self,master,'tixNoteBook', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['nbframe'] = TixSubWidget(self, 'nbframe', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                                                       destroy_physically=0) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add(self, name, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'add', name, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list[name] = TixSubWidget(self, name) | 
					
						
							|  |  |  |         return self.subwidget_list[name] | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def delete(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'delete', name) | 
					
						
							|  |  |  |         self.subwidget_list[name].destroy() | 
					
						
							|  |  |  |         del self.subwidget_list[name] | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def page(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.subwidget(name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def pages(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         # Can't call subwidgets_all directly because we don't want .nbframe | 
					
						
							|  |  |  |         names = self.tk.split(self.tk.call(self._w, 'pages')) | 
					
						
							|  |  |  |         ret = [] | 
					
						
							|  |  |  |         for x in names: | 
					
						
							|  |  |  |             ret.append(self.subwidget(x)) | 
					
						
							|  |  |  |         return ret | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     def raise_page(self, name):              # raise is a python keyword | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'raise', name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def raised(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'raised') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class NoteBookFrame(TixWidget): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: This is dangerous to expose to be called on its own. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class OptionMenu(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """OptionMenu - creates a menu button of options.
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidget       Class | 
					
						
							|  |  |  |     ---------       ----- | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |     menubutton      Menubutton | 
					
						
							|  |  |  |     menu            Menu"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixOptionMenu', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['menubutton'] = _dummyMenubutton(self, 'menubutton') | 
					
						
							|  |  |  |         self.subwidget_list['menu'] = _dummyMenu(self, 'menu') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add_command(self, name, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'add', 'command', name, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add_separator(self, name, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'add', 'separator', name, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def delete(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'delete', name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def disable(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'disable', name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def enable(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'enable', name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class PanedWindow(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """PanedWindow - Multi-pane container widget
 | 
					
						
							|  |  |  |     allows the user to interactively manipulate the sizes of several | 
					
						
							|  |  |  |     panes. The panes can be arranged either vertically or horizontally.The | 
					
						
							|  |  |  |     user changes the sizes of the panes by dragging the resize handle | 
					
						
							|  |  |  |     between two panes. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     <panes>       g/p widgets added dynamically with the add method."""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixPanedWindow', ['orientation', 'options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |     # add delete forget panecget paneconfigure panes setsize | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def add(self, name, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'add', name, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list[name] = TixSubWidget(self, name, | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                                                  check_intermediate=0) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.subwidget_list[name] | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |     def delete(self, name): | 
					
						
							|  |  |  |         self.tk.call(self._w, 'delete', name) | 
					
						
							|  |  |  |         self.subwidget_list[name].destroy() | 
					
						
							|  |  |  |         del self.subwidget_list[name] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def forget(self, name): | 
					
						
							|  |  |  |         self.tk.call(self._w, 'forget', name) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def panecget(self,  entry, opt): | 
					
						
							|  |  |  |         return self.tk.call(self._w, 'panecget', entry, opt) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def paneconfigure(self, entry, cnf={}, **kw): | 
					
						
							|  |  |  |         if cnf is None: | 
					
						
							|  |  |  |             return _lst2dict( | 
					
						
							|  |  |  |                 self.tk.split( | 
					
						
							|  |  |  |                 self.tk.call(self._w, 'paneconfigure', entry))) | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'paneconfigure', entry, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def panes(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         names = self.tk.call(self._w, 'panes') | 
					
						
							|  |  |  |         ret = [] | 
					
						
							|  |  |  |         for x in names: | 
					
						
							|  |  |  |             ret.append(self.subwidget(x)) | 
					
						
							|  |  |  |         return ret | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class PopupMenu(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """PopupMenu widget can be used as a replacement of the tk_popup command.
 | 
					
						
							|  |  |  |     The advantage of the Tix PopupMenu widget is it requires less application | 
					
						
							|  |  |  |     code to manipulate. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 17:24:49 +00:00
										 |  |  |     Subwidgets       Class | 
					
						
							|  |  |  |     ----------       ----- | 
					
						
							|  |  |  |     menubutton       Menubutton | 
					
						
							|  |  |  |     menu       Menu"""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixShell | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixPopupMenu', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['menubutton'] = _dummyMenubutton(self, 'menubutton') | 
					
						
							|  |  |  |         self.subwidget_list['menu'] = _dummyMenu(self, 'menu') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def bind_widget(self, widget): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'bind', widget._w) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def unbind_widget(self, widget): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'unbind', widget._w) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def post_widget(self, widget, x, y): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'post', widget._w, x, y) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ResizeHandle(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """Internal widget to draw resize handles on Scrolled widgets.""" | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         # There seems to be a Tix bug rejecting the configure method | 
					
						
							|  |  |  |         # Let's try making the flags -static | 
					
						
							|  |  |  |         flags = ['options', 'command', 'cursorfg', 'cursorbg', | 
					
						
							|  |  |  |                  'handlesize', 'hintcolor', 'hintwidth', | 
					
						
							|  |  |  |                  'x', 'y'] | 
					
						
							|  |  |  |         # In fact, x y height width are configurable | 
					
						
							|  |  |  |         TixWidget.__init__(self, master, 'tixResizeHandle', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            flags, cnf, kw) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def attach_widget(self, widget): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'attachwidget', widget._w) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-25 14:50:56 +00:00
										 |  |  |     def detach_widget(self, widget): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'detachwidget', widget._w) | 
					
						
							| 
									
										
										
										
											2001-11-25 14:50:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def hide(self, widget): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'hide', widget._w) | 
					
						
							| 
									
										
										
										
											2001-11-25 14:50:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def show(self, widget): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'show', widget._w) | 
					
						
							| 
									
										
										
										
											2001-11-25 14:50:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class ScrolledHList(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """ScrolledHList - HList with automatic scrollbars.""" | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixScrolledHList', ['options'], | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ScrolledListBox(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """ScrolledListBox - Listbox with automatic scrollbars.""" | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixScrolledListBox', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['listbox'] = _dummyListbox(self, 'listbox') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ScrolledText(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """ScrolledText - Text with automatic scrollbars.""" | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixScrolledText', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['text'] = _dummyText(self, 'text') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ScrolledTList(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """ScrolledTList - TList with automatic scrollbars.""" | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixScrolledTList', ['options'], | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['tlist'] = _dummyTList(self, 'tlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ScrolledWindow(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """ScrolledWindow - Window with automatic scrollbars.""" | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixScrolledWindow', ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['window'] = _dummyFrame(self, 'window') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Select(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """Select - Container of button subwidgets. It can be used to provide
 | 
					
						
							|  |  |  |     radio-box or check-box style of selection options for the user. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     Subwidgets are buttons added dynamically using the add method."""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixLabelWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixSelect', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['allowzero', 'radio', 'orientation', 'labelside', | 
					
						
							|  |  |  |                             'options'], | 
					
						
							|  |  |  |                            cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['label'] = _dummyLabel(self, 'label') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def add(self, name, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'add', name, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list[name] = _dummyButton(self, name) | 
					
						
							|  |  |  |         return self.subwidget_list[name] | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def invoke(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'invoke', name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  | class Shell(TixWidget): | 
					
						
							|  |  |  |     """Toplevel window.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Subwidgets - None"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							|  |  |  |         TixWidget.__init__(self, master, 'tixShell', ['options', 'title'], cnf, kw) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DialogShell(TixWidget): | 
					
						
							|  |  |  |     """Toplevel window, with popup popdown and center methods.
 | 
					
						
							|  |  |  |     It tells the window manager that it is a dialog window and should be | 
					
						
							|  |  |  |     treated specially. The exact treatment depends on the treatment of | 
					
						
							|  |  |  |     the window manager. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Subwidgets - None"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit from  Shell | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							|  |  |  |         TixWidget.__init__(self, master, | 
					
						
							|  |  |  |                            'tixDialogShell', | 
					
						
							|  |  |  |                            ['options', 'title', 'mapped', | 
					
						
							|  |  |  |                             'minheight', 'minwidth', | 
					
						
							|  |  |  |                             'parent', 'transient'], cnf, kw) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def popdown(self): | 
					
						
							|  |  |  |         self.tk.call(self._w, 'popdown') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def popup(self): | 
					
						
							|  |  |  |         self.tk.call(self._w, 'popup') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def center(self): | 
					
						
							|  |  |  |         self.tk.call(self._w, 'center') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class StdButtonBox(TixWidget): | 
					
						
							|  |  |  |     """StdButtonBox - Standard Button Box (OK, Apply, Cancel and Help) """ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, master=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixStdButtonBox', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['orientation', 'options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['ok'] = _dummyButton(self, 'ok') | 
					
						
							|  |  |  |         self.subwidget_list['apply'] = _dummyButton(self, 'apply') | 
					
						
							|  |  |  |         self.subwidget_list['cancel'] = _dummyButton(self, 'cancel') | 
					
						
							|  |  |  |         self.subwidget_list['help'] = _dummyButton(self, 'help') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def invoke(self, name): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         if self.subwidget_list.has_key(name): | 
					
						
							|  |  |  |             self.tk.call(self._w, 'invoke', name) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class TList(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """TList - Hierarchy display widget which can be
 | 
					
						
							|  |  |  |     used to display data in a tabular format. The list entries of a TList | 
					
						
							|  |  |  |     widget are similar to the entries in the Tk listbox widget. The main | 
					
						
							|  |  |  |     differences are (1) the TList widget can display the list entries in a | 
					
						
							|  |  |  |     two dimensional format and (2) you can use graphical images as well as | 
					
						
							|  |  |  |     multiple colors and fonts for the list entries. | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Subwidgets - None"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__ (self,master=None,cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixTList', ['options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def active_set(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'active', 'set', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def active_clear(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'active', 'clear') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def anchor_set(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'anchor', 'set', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def anchor_clear(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'anchor', 'clear') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def delete(self, from_, to=None): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'delete', from_, to) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dragsite_set(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dragsite', 'set', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dragsite_clear(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dragsite', 'clear') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dropsite_set(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dropsite', 'set', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def dropsite_clear(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'dropsite', 'clear') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def insert(self, index, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'insert', index, *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_active(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'active') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_anchor(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'anchor') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_down(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'down', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_left(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'left', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_right(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'right', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_selection(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         c = self.tk.call(self._w, 'info', 'selection') | 
					
						
							|  |  |  |         return self.tk.splitlist(c) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_size(self): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'size') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def info_up(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'info', 'up', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def nearest(self, x, y): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'nearest', x, y) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def see(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'see', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def selection_clear(self, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'selection', 'clear', *self._options(cnf, kw)) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def selection_includes(self, index): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'selection', 'includes', index) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def selection_set(self, first, last=None): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'selection', 'set', first, last) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def xview(self, *args): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'xview', *args) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def yview(self, *args): | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |         self.tk.call(self._w, 'yview', *args) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Tree(TixWidget): | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     """Tree - The tixTree widget can be used to display hierachical
 | 
					
						
							|  |  |  |     data in a tree form. The user can adjust | 
					
						
							|  |  |  |     the view of the tree by opening or closing parts of the tree."""
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     def __init__(self, master=None, cnf={}, **kw): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixWidget.__init__(self, master, 'tixTree', | 
					
						
							| 
									
										
										
										
											2002-11-14 02:43:40 +00:00
										 |  |  |                            ['options'], cnf, kw) | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def autosetmode(self): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''This command calls the setmode method for all the entries in this
 | 
					
						
							|  |  |  |      Tree widget: if an entry has no child entries, its mode is set to | 
					
						
							|  |  |  |      none. Otherwise, if the entry has any hidden child entries, its mode is | 
					
						
							|  |  |  |      set to open; otherwise its mode is set to close.'''
 | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'autosetmode') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def close(self, entrypath): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Close the entry given by entryPath if its mode is close.''' | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'close', entrypath) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def getmode(self, entrypath): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Returns the current mode of the entry given by entryPath.''' | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         return self.tk.call(self._w, 'getmode', entrypath) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def open(self, entrypath): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Open the entry given by entryPath if its mode is open.''' | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'open', entrypath) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def setmode(self, entrypath, mode='none'): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''This command is used to indicate whether the entry given by
 | 
					
						
							|  |  |  |      entryPath has children entries and whether the children are visible. mode | 
					
						
							|  |  |  |      must be one of open, close or none. If mode is set to open, a (+) | 
					
						
							|  |  |  |      indicator is drawn next the the entry. If mode is set to close, a (-) | 
					
						
							|  |  |  |      indicator is drawn next the the entry. If mode is set to none, no | 
					
						
							|  |  |  |      indicators will be drawn for this entry. The default mode is none. The | 
					
						
							|  |  |  |      open mode indicates the entry has hidden children and this entry can be | 
					
						
							|  |  |  |      opened by the user. The close mode indicates that all the children of the | 
					
						
							|  |  |  |      entry are now visible and the entry can be closed by the user.'''
 | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.tk.call(self._w, 'setmode', entrypath, mode) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Could try subclassing Tree for CheckList - would need another arg to init | 
					
						
							|  |  |  | class CheckList(TixWidget): | 
					
						
							|  |  |  |     """The CheckList widget
 | 
					
						
							|  |  |  |     displays a list of items to be selected by the user. CheckList acts | 
					
						
							|  |  |  |     similarly to the Tk checkbutton or radiobutton widgets, except it is | 
					
						
							|  |  |  |     capable of handling many more items than checkbuttons or radiobuttons. | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixTree | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     def __init__(self, master=None, cnf={}, **kw): | 
					
						
							|  |  |  |         TixWidget.__init__(self, master, 'tixCheckList', | 
					
						
							|  |  |  |                            ['options'], cnf, kw) | 
					
						
							|  |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     def autosetmode(self): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''This command calls the setmode method for all the entries in this
 | 
					
						
							|  |  |  |      Tree widget: if an entry has no child entries, its mode is set to | 
					
						
							|  |  |  |      none. Otherwise, if the entry has any hidden child entries, its mode is | 
					
						
							|  |  |  |      set to open; otherwise its mode is set to close.'''
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         self.tk.call(self._w, 'autosetmode') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def close(self, entrypath): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Close the entry given by entryPath if its mode is close.''' | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         self.tk.call(self._w, 'close', entrypath) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def getmode(self, entrypath): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Returns the current mode of the entry given by entryPath.''' | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         return self.tk.call(self._w, 'getmode', entrypath) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def open(self, entrypath): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Open the entry given by entryPath if its mode is open.''' | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         self.tk.call(self._w, 'open', entrypath) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def getselection(self, mode='on'): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Returns a list of items whose status matches status. If status is
 | 
					
						
							|  |  |  |      not specified, the list of items in the "on" status will be returned. | 
					
						
							|  |  |  |      Mode can be on, off, default'''
 | 
					
						
							|  |  |  |         c = self.tk.split(self.tk.call(self._w, 'getselection', mode)) | 
					
						
							|  |  |  |         return self.tk.splitlist(c) | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def getstatus(self, entrypath): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Returns the current status of entryPath.''' | 
					
						
							|  |  |  |         return self.tk.call(self._w, 'getstatus', entrypath) | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def setstatus(self, entrypath, mode='on'): | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |         '''Sets the status of entryPath to be status. A bitmap will be
 | 
					
						
							|  |  |  |      displayed next to the entry its status is on, off or default.'''
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |         self.tk.call(self._w, 'setstatus', entrypath, mode) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | ########################################################################### | 
					
						
							|  |  |  | ### The subclassing below is used to instantiate the subwidgets in each ### | 
					
						
							|  |  |  | ### mega widget. This allows us to access their methods directly.       ### | 
					
						
							|  |  |  | ########################################################################### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class _dummyButton(Button, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyCheckbutton(Checkbutton, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyEntry(Entry, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyFrame(Frame, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyLabel(Label, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyListbox(Listbox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyMenu(Menu, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyMenubutton(Menubutton, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyScrollbar(Scrollbar, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyText(Text, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyScrolledListBox(ScrolledListBox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['listbox'] = _dummyListbox(self, 'listbox') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyHList(HList, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | class _dummyScrolledHList(ScrolledHList, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class _dummyTList(TList, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyComboBox(ComboBox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, ['fancy',destroy_physically]) | 
					
						
							|  |  |  |         self.subwidget_list['label'] = _dummyLabel(self, 'label') | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['entry'] = _dummyEntry(self, 'entry') | 
					
						
							|  |  |  |         self.subwidget_list['arrow'] = _dummyButton(self, 'arrow') | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         self.subwidget_list['slistbox'] = _dummyScrolledListBox(self, | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  |                                                                 'slistbox') | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             self.subwidget_list['tick'] = _dummyButton(self, 'tick') | 
					
						
							|  |  |  |             #cross Button : present if created with the fancy option | 
					
						
							|  |  |  |             self.subwidget_list['cross'] = _dummyButton(self, 'cross') | 
					
						
							|  |  |  |         except TypeError: | 
					
						
							|  |  |  |             # unavailable when -fancy not specified | 
					
						
							|  |  |  |             pass | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyDirList(DirList, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['hlist'] = _dummyHList(self, 'hlist') | 
					
						
							|  |  |  |         self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb') | 
					
						
							|  |  |  |         self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | class _dummyDirSelectBox(DirSelectBox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['dirlist'] = _dummyDirList(self, 'dirlist') | 
					
						
							|  |  |  |         self.subwidget_list['dircbx'] = _dummyFileComboBox(self, 'dircbx') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class _dummyExFileSelectBox(ExFileSelectBox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['cancel'] = _dummyButton(self, 'cancel') | 
					
						
							|  |  |  |         self.subwidget_list['ok'] = _dummyButton(self, 'ok') | 
					
						
							|  |  |  |         self.subwidget_list['hidden'] = _dummyCheckbutton(self, 'hidden') | 
					
						
							|  |  |  |         self.subwidget_list['types'] = _dummyComboBox(self, 'types') | 
					
						
							|  |  |  |         self.subwidget_list['dir'] = _dummyComboBox(self, 'dir') | 
					
						
							|  |  |  |         self.subwidget_list['dirlist'] = _dummyScrolledListBox(self, 'dirlist') | 
					
						
							|  |  |  |         self.subwidget_list['file'] = _dummyComboBox(self, 'file') | 
					
						
							|  |  |  |         self.subwidget_list['filelist'] = _dummyScrolledListBox(self, 'filelist') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyFileSelectBox(FileSelectBox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['dirlist'] = _dummyScrolledListBox(self, 'dirlist') | 
					
						
							|  |  |  |         self.subwidget_list['filelist'] = _dummyScrolledListBox(self, 'filelist') | 
					
						
							|  |  |  |         self.subwidget_list['filter'] = _dummyComboBox(self, 'filter') | 
					
						
							|  |  |  |         self.subwidget_list['selection'] = _dummyComboBox(self, 'selection') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | class _dummyFileComboBox(ComboBox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['dircbx'] = _dummyComboBox(self, 'dircbx') | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | class _dummyStdButtonBox(StdButtonBox, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							|  |  |  |         self.subwidget_list['ok'] = _dummyButton(self, 'ok') | 
					
						
							|  |  |  |         self.subwidget_list['apply'] = _dummyButton(self, 'apply') | 
					
						
							|  |  |  |         self.subwidget_list['cancel'] = _dummyButton(self, 'cancel') | 
					
						
							|  |  |  |         self.subwidget_list['help'] = _dummyButton(self, 'help') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _dummyNoteBookFrame(NoteBookFrame, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=0): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-09-19 08:12:55 +00:00
										 |  |  | class _dummyPanedWindow(PanedWindow, TixSubWidget): | 
					
						
							|  |  |  |     def __init__(self, master, name, destroy_physically=1): | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |         TixSubWidget.__init__(self, master, name, destroy_physically) | 
					
						
							| 
									
										
										
										
											2002-09-19 08:12:55 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | ######################## | 
					
						
							|  |  |  | ### Utility Routines ### | 
					
						
							|  |  |  | ######################## | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  | #mike Should tixDestroy be exposed as a wrapper? - but not for widgets. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | def OptionName(widget): | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  |     '''Returns the qualified path name for the widget. Normally used to set
 | 
					
						
							|  |  |  |     default options for subwidgets. See tixwidgets.py'''
 | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     return widget.tk.call('tixOptionName', widget._w) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Called with a dictionary argument of the form | 
					
						
							|  |  |  | # {'*.c':'C source files', '*.txt':'Text Files', '*':'All files'} | 
					
						
							|  |  |  | # returns a string which can be used to configure the fsbox file types | 
					
						
							|  |  |  | # in an ExFileSelectBox. i.e., | 
					
						
							|  |  |  | # '{{*} {* - All files}} {{*.c} {*.c - C source files}} {{*.txt} {*.txt - Text Files}}' | 
					
						
							|  |  |  | def FileTypeList(dict): | 
					
						
							|  |  |  |     s = '' | 
					
						
							|  |  |  |     for type in dict.keys(): | 
					
						
							| 
									
										
										
										
											2002-03-28 16:26:40 +00:00
										 |  |  |         s = s + '{{' + type + '} {' + type + ' - ' + dict[type] + '}} ' | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     return s | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | # Still to be done: | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  | # tixIconView | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  | class CObjView(TixWidget): | 
					
						
							|  |  |  |     """This file implements the Canvas Object View widget. This is a base
 | 
					
						
							|  |  |  |     class of IconView. It implements automatic placement/adjustment of the | 
					
						
							|  |  |  |     scrollbars according to the canvas objects inside the canvas subwidget. | 
					
						
							|  |  |  |     The scrollbars are adjusted so that the canvas is just large enough | 
					
						
							|  |  |  |     to see all the objects. | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							|  |  |  |     pass | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-30 23:52:01 +00:00
										 |  |  | class Grid(TixWidget): | 
					
						
							|  |  |  |     '''The Tix Grid command creates a new window  and makes it into a
 | 
					
						
							|  |  |  |     tixGrid widget. Additional options, may be specified on the command | 
					
						
							|  |  |  |     line or in the option database to configure aspects such as its cursor | 
					
						
							|  |  |  |     and relief. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     A Grid widget displays its contents in a two dimensional grid of cells. | 
					
						
							|  |  |  |     Each cell may contain one Tix display item, which may be in text, | 
					
						
							|  |  |  |     graphics or other formats. See the DisplayStyle class for more information | 
					
						
							|  |  |  |     about Tix display items. Individual cells, or groups of cells, can be | 
					
						
							|  |  |  |     formatted with a wide range of attributes, such as its color, relief and | 
					
						
							|  |  |  |     border. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Subwidgets - None'''
 | 
					
						
							|  |  |  |     pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # def anchor option ?args ...? | 
					
						
							|  |  |  |     # def bdtype | 
					
						
							|  |  |  |     # def delete dim from ?to? | 
					
						
							|  |  |  |     # def edit apply | 
					
						
							|  |  |  |     # def edit set x y | 
					
						
							|  |  |  |     # def entrycget x y option | 
					
						
							|  |  |  |     # def entryconfigure x y ?option? ?value option value ...? | 
					
						
							|  |  |  |     # def format | 
					
						
							|  |  |  |     # def index | 
					
						
							|  |  |  |     # def move dim from to offset | 
					
						
							|  |  |  |     # def set x y ?-itemtype type? ?option value...? | 
					
						
							|  |  |  |     # def size dim index ?option value ...? | 
					
						
							|  |  |  |     # def unset x y | 
					
						
							|  |  |  |     # def xview | 
					
						
							|  |  |  |     # def yview | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-12-06 10:33:45 +00:00
										 |  |  | class ScrolledGrid(TixWidget): | 
					
						
							|  |  |  |     '''Scrolled Grid widgets''' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # FIXME: It should inherit -superclass tixScrolledWidget | 
					
						
							| 
									
										
										
										
											2001-11-02 23:48:20 +00:00
										 |  |  |     pass |