mirror of
https://github.com/python/cpython.git
synced 2025-10-21 22:22:48 +00:00
Patch #471120: Improved doc strings and new wrappers.
This commit is contained in:
parent
06b1d21e7d
commit
b7b3260128
2 changed files with 387 additions and 45 deletions
|
@ -1,11 +1,13 @@
|
||||||
|
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
|
||||||
#
|
#
|
||||||
# $Id$
|
# $Id$
|
||||||
#
|
#
|
||||||
# Tix.py -- Tix widget wrappers, part of PyTix.
|
# Tix.py -- Tix widget wrappers.
|
||||||
|
#
|
||||||
|
# For Tix, see http://tix.sourceforge.net
|
||||||
#
|
#
|
||||||
# - Sudhir Shenoy (sshenoy@gol.com), Dec. 1995.
|
# - Sudhir Shenoy (sshenoy@gol.com), Dec. 1995.
|
||||||
# based on an idea (and a little code !!) of Jean-Marc Lugrin
|
# based on an idea of Jean-Marc Lugrin (lugrin@ms.com)
|
||||||
# (lugrin@ms.com)
|
|
||||||
#
|
#
|
||||||
# NOTE: In order to minimize changes to Tkinter.py, some of the code here
|
# NOTE: In order to minimize changes to Tkinter.py, some of the code here
|
||||||
# (TixWidget.__init__) has been taken from Tkinter (Widget.__init__)
|
# (TixWidget.__init__) has been taken from Tkinter (Widget.__init__)
|
||||||
|
@ -51,20 +53,161 @@ ACROSSTOP = 'acrosstop'
|
||||||
# in Tkinter (to override Widget initialization) and is therefore
|
# in Tkinter (to override Widget initialization) and is therefore
|
||||||
# liable to break.
|
# liable to break.
|
||||||
import Tkinter, os
|
import Tkinter, os
|
||||||
class Tk(Tkinter.Tk):
|
|
||||||
|
# Could probably add this to Tkinter.Misc
|
||||||
|
class tixCommand:
|
||||||
|
"""The tix command provides access to miscellaneous elements
|
||||||
|
of Tix's internal state and the Tix application context.
|
||||||
|
Most of the information manipulated by this command per
|
||||||
|
tains to the application as a whole, or to a screen or
|
||||||
|
display, rather than to a particular window. The command
|
||||||
|
can take any of a number of different forms depending on
|
||||||
|
the option argument.
|
||||||
|
|
||||||
|
This is a mixin class, assumed to be mixed to Tkinter.Tk
|
||||||
|
that supports the self.tk.call method.
|
||||||
|
"""
|
||||||
|
def tix_addbitmapdir(self, directory):
|
||||||
|
"""Tix maintains a list of directory under which which
|
||||||
|
the tix_getimage and tix_getbitmap commands will
|
||||||
|
search for image files. The standard bitmap direc
|
||||||
|
tory is $TIX_LIBRARY/bitmaps. The addbitmapdir com
|
||||||
|
mand adds directory into this list. By using this
|
||||||
|
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):
|
||||||
|
"""Query or modify the configuration options of the
|
||||||
|
Tix application context. If no option is specified,
|
||||||
|
returns a list describing all of the available
|
||||||
|
options (see Tk_ConfigureInfo for information on
|
||||||
|
the format of this list). 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 options
|
||||||
|
described in the CONFIGURATION OPTIONS section.
|
||||||
|
"""
|
||||||
|
return apply(self.tk.call, ('tix', configure) +
|
||||||
|
self._options(cnf,kw) )
|
||||||
|
|
||||||
|
def tix_filedialog(self, dlgclass=None):
|
||||||
|
"""Returns the file selection dialog that may be
|
||||||
|
shared among different modules of 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'.
|
||||||
|
"""
|
||||||
|
if dlgclass is not None:
|
||||||
|
return self.tk.call('tix', 'filedialog', dlgclass)
|
||||||
|
else:
|
||||||
|
return self.tk.call('tix', 'filedialog')
|
||||||
|
|
||||||
|
def tix_getbitmap(self, name):
|
||||||
|
"""Locates a bitmap file of the name name.xpm or name
|
||||||
|
in one of the bitmap directories (self, see the
|
||||||
|
tix_addbitmapdir command above). By using tix_getbitmap,
|
||||||
|
you can advoid 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.
|
||||||
|
"""
|
||||||
|
return self.tk.call('tix', 'getbitmap', name)
|
||||||
|
|
||||||
|
def tix_getimage(self, name):
|
||||||
|
"""Locates an image file of the name name.xpm,
|
||||||
|
name.xbm or name.ppm in one of the bitmap directo
|
||||||
|
ries (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 getim
|
||||||
|
age, you can advoid hard coding the pathnames of
|
||||||
|
the image files in your application. When success
|
||||||
|
ful, 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.
|
||||||
|
"""
|
||||||
|
return self.tk.call('tix', 'getimage', name)
|
||||||
|
|
||||||
|
def tix_option_get(self, name):
|
||||||
|
"""Gets the options manitained by the Tix
|
||||||
|
scheme mechanism. Available options are:
|
||||||
|
|
||||||
|
active_bg active_fg bg
|
||||||
|
bold_font dark1_bg dark1_fg
|
||||||
|
dark2_bg dark2_fg disabled_fg
|
||||||
|
fg fixed_font font
|
||||||
|
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):
|
||||||
|
"""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 resetop
|
||||||
|
tions 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
|
||||||
|
tixwish has started up, 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.
|
||||||
|
"""
|
||||||
|
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):
|
||||||
"""Toplevel widget of Tix which represents mostly the main window
|
"""Toplevel widget of Tix which represents mostly the main window
|
||||||
of an application. It has an associated Tcl interpreter."""
|
of an application. It has an associated Tcl interpreter."""
|
||||||
def __init__(self, screenName=None, baseName=None, className='Tk'):
|
def __init__(self, screenName=None, baseName=None, className='Tix'):
|
||||||
Tkinter.Tk.__init__(self, screenName, baseName, className)
|
Tkinter.Tk.__init__(self, screenName, baseName, className)
|
||||||
tixlib = os.environ.get('TIX_LIBRARY')
|
tixlib = os.environ.get('TIX_LIBRARY')
|
||||||
|
self.tk.eval('global auto_path; lappend auto_path [file dir [info nameof]]')
|
||||||
if tixlib is not None:
|
if tixlib is not None:
|
||||||
self.tk.eval('global auto_path; lappend auto_path {%s}' % tixlib)
|
self.tk.eval('global auto_path; lappend auto_path {%s}' % tixlib)
|
||||||
self.tk.eval('global tcl_pkgPath; lappend tcl_pkgPath {%s}' % tixlib)
|
self.tk.eval('global tcl_pkgPath; lappend tcl_pkgPath {%s}' % tixlib)
|
||||||
# Load Tix - this should work dynamically or statically
|
# Load Tix - this should work dynamically or statically
|
||||||
# If it's static, lib/tix8.1/pkgIndex.tcl should have 'load {} Tix'
|
# If it's static, lib/tix8.1/pkgIndex.tcl should have
|
||||||
# If it's dynamic, it should have 'load libtix8.1.8.2.so Tix'
|
# 'load {} Tix'
|
||||||
|
# If it's dynamic, lib/tix8.1/pkgIndex.tcl should have
|
||||||
|
# 'load libtix8.1.8.3.so Tix'
|
||||||
self.tk.eval('package require Tix')
|
self.tk.eval('package require Tix')
|
||||||
|
|
||||||
|
|
||||||
# The Tix 'tixForm' geometry manager
|
# The Tix 'tixForm' geometry manager
|
||||||
class Form:
|
class Form:
|
||||||
"""The Tix Form geometry manager
|
"""The Tix Form geometry manager
|
||||||
|
@ -108,15 +251,17 @@ class Form:
|
||||||
self.tk.splitlist(
|
self.tk.splitlist(
|
||||||
self.tk.call(
|
self.tk.call(
|
||||||
'tixForm', 'slaves', self._w)))
|
'tixForm', 'slaves', self._w)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Tkinter.Widget.__bases__ = Tkinter.Widget.__bases__ + (Form,)
|
Tkinter.Widget.__bases__ = Tkinter.Widget.__bases__ + (Form,)
|
||||||
|
|
||||||
class TixWidget(Widget):
|
class TixWidget(Tkinter.Widget):
|
||||||
"""A TixWidget class is used to package all (or most) Tix widgets.
|
"""A TixWidget class is used to package all (or most) Tix widgets.
|
||||||
|
|
||||||
Widget initialization is extended in two ways:
|
Widget initialization is extended in two ways:
|
||||||
1) It is possible to give a list of options which must be part of
|
1) It is possible to give a list of options which must be part of
|
||||||
the creation command (so called Tix 'static' options). These cannot be
|
the creation command (so called Tix 'static' options). These cannot be
|
||||||
given as a 'config' command later.
|
given as a 'config' command later.
|
||||||
2) It is possible to give the name of an existing TK widget. These are
|
2) It is possible to give the name of an existing TK widget. These are
|
||||||
|
@ -169,13 +314,13 @@ class TixWidget(Widget):
|
||||||
return self.subwidget_list[name]
|
return self.subwidget_list[name]
|
||||||
raise AttributeError, name
|
raise AttributeError, name
|
||||||
|
|
||||||
# Set a variable without calling its action routine
|
|
||||||
def set_silent(self, value):
|
def set_silent(self, value):
|
||||||
|
"""Set a variable without calling its action routine"""
|
||||||
self.tk.call('tixSetSilent', self._w, value)
|
self.tk.call('tixSetSilent', self._w, value)
|
||||||
|
|
||||||
# Return the named subwidget (which must have been created by
|
|
||||||
# the sub-class).
|
|
||||||
def subwidget(self, name):
|
def subwidget(self, name):
|
||||||
|
"""Return the named subwidget (which must have been created by
|
||||||
|
the sub-class)."""
|
||||||
n = self._subwidget_name(name)
|
n = self._subwidget_name(name)
|
||||||
if not n:
|
if not n:
|
||||||
raise TclError, "Subwidget " + name + " not child of " + self._name
|
raise TclError, "Subwidget " + name + " not child of " + self._name
|
||||||
|
@ -183,8 +328,8 @@ class TixWidget(Widget):
|
||||||
n = n[len(self._w)+1:]
|
n = n[len(self._w)+1:]
|
||||||
return self._nametowidget(n)
|
return self._nametowidget(n)
|
||||||
|
|
||||||
# Return all subwidgets
|
|
||||||
def subwidgets_all(self):
|
def subwidgets_all(self):
|
||||||
|
"""Return all subwidgets."""
|
||||||
names = self._subwidget_names()
|
names = self._subwidget_names()
|
||||||
if not names:
|
if not names:
|
||||||
return []
|
return []
|
||||||
|
@ -198,23 +343,23 @@ class TixWidget(Widget):
|
||||||
pass
|
pass
|
||||||
return retlist
|
return retlist
|
||||||
|
|
||||||
# Get a subwidget name (returns a String, not a Widget !)
|
|
||||||
def _subwidget_name(self,name):
|
def _subwidget_name(self,name):
|
||||||
|
"""Get a subwidget name (returns a String, not a Widget !)"""
|
||||||
try:
|
try:
|
||||||
return self.tk.call(self._w, 'subwidget', name)
|
return self.tk.call(self._w, 'subwidget', name)
|
||||||
except TclError:
|
except TclError:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# Return the name of all subwidgets
|
|
||||||
def _subwidget_names(self):
|
def _subwidget_names(self):
|
||||||
|
"""Return the name of all subwidgets."""
|
||||||
try:
|
try:
|
||||||
x = self.tk.call(self._w, 'subwidgets', '-all')
|
x = self.tk.call(self._w, 'subwidgets', '-all')
|
||||||
return self.tk.split(x)
|
return self.tk.split(x)
|
||||||
except TclError:
|
except TclError:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# Set configuration options for all subwidgets (and self)
|
|
||||||
def config_all(self, option, value):
|
def config_all(self, option, value):
|
||||||
|
"""Set configuration options for all subwidgets (and self)."""
|
||||||
if option == '':
|
if option == '':
|
||||||
return
|
return
|
||||||
elif type(option) != type(''):
|
elif type(option) != type(''):
|
||||||
|
@ -360,7 +505,9 @@ class Balloon(TixWidget):
|
||||||
self.tk.call(self._w, 'unbind', widget._w)
|
self.tk.call(self._w, 'unbind', widget._w)
|
||||||
|
|
||||||
class ButtonBox(TixWidget):
|
class ButtonBox(TixWidget):
|
||||||
"""ButtonBox - A container for pushbuttons"""
|
"""ButtonBox - A container for pushbuttons.
|
||||||
|
Subwidgets are the buttons added with the add method.
|
||||||
|
"""
|
||||||
def __init__(self, master=None, cnf={}, **kw):
|
def __init__(self, master=None, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixButtonBox',
|
TixWidget.__init__(self, master, 'tixButtonBox',
|
||||||
['orientation', 'options'], cnf, kw)
|
['orientation', 'options'], cnf, kw)
|
||||||
|
@ -378,15 +525,17 @@ class ButtonBox(TixWidget):
|
||||||
self.tk.call(self._w, 'invoke', name)
|
self.tk.call(self._w, 'invoke', name)
|
||||||
|
|
||||||
class ComboBox(TixWidget):
|
class ComboBox(TixWidget):
|
||||||
"""ComboBox - an Entry field with a dropdown menu
|
"""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.
|
||||||
|
|
||||||
Subwidget Class
|
Subwidget Class
|
||||||
--------- -----
|
--------- -----
|
||||||
entry Entry
|
entry Entry
|
||||||
arrow Button
|
arrow Button
|
||||||
slistbox ScrolledListBox
|
slistbox ScrolledListBox
|
||||||
tick Button }
|
tick Button
|
||||||
cross Button } present if created with the fancy option"""
|
cross Button : present if created with the fancy option"""
|
||||||
|
|
||||||
def __init__ (self, master=None, cnf={}, **kw):
|
def __init__ (self, master=None, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixComboBox',
|
TixWidget.__init__(self, master, 'tixComboBox',
|
||||||
|
@ -417,7 +566,10 @@ class ComboBox(TixWidget):
|
||||||
self.tk.call(self._w, 'pick', index)
|
self.tk.call(self._w, 'pick', index)
|
||||||
|
|
||||||
class Control(TixWidget):
|
class Control(TixWidget):
|
||||||
"""Control - An entry field with value change arrows.
|
"""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.
|
||||||
|
|
||||||
Subwidget Class
|
Subwidget Class
|
||||||
--------- -----
|
--------- -----
|
||||||
|
@ -446,7 +598,9 @@ class Control(TixWidget):
|
||||||
self.tk.call(self._w, 'update')
|
self.tk.call(self._w, 'update')
|
||||||
|
|
||||||
class DirList(TixWidget):
|
class DirList(TixWidget):
|
||||||
"""DirList - Directory Listing.
|
"""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.
|
||||||
|
|
||||||
Subwidget Class
|
Subwidget Class
|
||||||
--------- -----
|
--------- -----
|
||||||
|
@ -464,7 +618,10 @@ class DirList(TixWidget):
|
||||||
self.tk.call(self._w, 'chdir', dir)
|
self.tk.call(self._w, 'chdir', dir)
|
||||||
|
|
||||||
class DirTree(TixWidget):
|
class DirTree(TixWidget):
|
||||||
"""DirList - Directory Listing in a hierarchical view.
|
"""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.
|
||||||
|
|
||||||
Subwidget Class
|
Subwidget Class
|
||||||
--------- -----
|
--------- -----
|
||||||
|
@ -481,8 +638,28 @@ class DirTree(TixWidget):
|
||||||
def chdir(self, dir):
|
def chdir(self, dir):
|
||||||
self.tk.call(self._w, 'chdir', dir)
|
self.tk.call(self._w, 'chdir', dir)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Subwidget Class
|
||||||
|
--------- -----
|
||||||
|
selection ComboBox
|
||||||
|
filter ComboBox
|
||||||
|
dirlist ScrolledListBox
|
||||||
|
filelist ScrolledListBox"""
|
||||||
|
|
||||||
|
def __init__(self, master, cnf={}, **kw):
|
||||||
|
TixWidget.__init__(self, master, 'tixDirSelectBox', ['options'], cnf, kw)
|
||||||
|
self.subwidget_list['dirlist'] = _dummyDirList(self, 'dirlist')
|
||||||
|
self.subwidget_list['dircbx'] = _dummyFileComboBox(self, 'dircbx')
|
||||||
|
|
||||||
class ExFileSelectBox(TixWidget):
|
class ExFileSelectBox(TixWidget):
|
||||||
"""ExFileSelectBox - MS Windows style file select box.
|
"""ExFileSelectBox - MS Windows style file select box.
|
||||||
|
It provides an convenient method for the user to select files.
|
||||||
|
|
||||||
Subwidget Class
|
Subwidget Class
|
||||||
--------- -----
|
--------- -----
|
||||||
|
@ -512,8 +689,34 @@ class ExFileSelectBox(TixWidget):
|
||||||
def invoke(self):
|
def invoke(self):
|
||||||
self.tk.call(self._w, 'invoke')
|
self.tk.call(self._w, 'invoke')
|
||||||
|
|
||||||
|
|
||||||
|
# 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"""
|
||||||
|
|
||||||
|
def __init__(self, master, cnf={}, **kw):
|
||||||
|
TixWidget.__init__(self, master, 'tixDirSelectDialog',
|
||||||
|
['options'], cnf, kw)
|
||||||
|
self.subwidget_list['dirbox'] = _dummyDirSelectBox(self, 'dirbox')
|
||||||
|
# cancel and ok buttons are missing
|
||||||
|
|
||||||
|
def popup(self):
|
||||||
|
self.tk.call(self._w, 'popup')
|
||||||
|
|
||||||
|
def popdown(self):
|
||||||
|
self.tk.call(self._w, 'popdown')
|
||||||
|
|
||||||
|
|
||||||
|
# Should inherit from a Dialog class
|
||||||
class ExFileSelectDialog(TixWidget):
|
class ExFileSelectDialog(TixWidget):
|
||||||
"""ExFileSelectDialog - MS Windows style file select dialog.
|
"""ExFileSelectDialog - MS Windows style file select dialog.
|
||||||
|
It provides an convenient method for the user to select files.
|
||||||
|
|
||||||
Subwidgets Class
|
Subwidgets Class
|
||||||
---------- -----
|
---------- -----
|
||||||
|
@ -532,7 +735,11 @@ class ExFileSelectDialog(TixWidget):
|
||||||
|
|
||||||
class FileSelectBox(TixWidget):
|
class FileSelectBox(TixWidget):
|
||||||
"""ExFileSelectBox - Motif style file select box.
|
"""ExFileSelectBox - 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.
|
||||||
|
|
||||||
Subwidget Class
|
Subwidget Class
|
||||||
--------- -----
|
--------- -----
|
||||||
selection ComboBox
|
selection ComboBox
|
||||||
|
@ -553,6 +760,7 @@ class FileSelectBox(TixWidget):
|
||||||
def invoke(self):
|
def invoke(self):
|
||||||
self.tk.call(self._w, 'invoke')
|
self.tk.call(self._w, 'invoke')
|
||||||
|
|
||||||
|
# Should inherit from a Dialog class
|
||||||
class FileSelectDialog(TixWidget):
|
class FileSelectDialog(TixWidget):
|
||||||
"""FileSelectDialog - Motif style file select dialog.
|
"""FileSelectDialog - Motif style file select dialog.
|
||||||
|
|
||||||
|
@ -574,7 +782,10 @@ class FileSelectDialog(TixWidget):
|
||||||
self.tk.call(self._w, 'popdown')
|
self.tk.call(self._w, 'popdown')
|
||||||
|
|
||||||
class FileEntry(TixWidget):
|
class FileEntry(TixWidget):
|
||||||
"""FileEntry - Entry field with button that invokes a FileSelectDialog
|
"""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.
|
||||||
|
|
||||||
Subwidgets Class
|
Subwidgets Class
|
||||||
---------- -----
|
---------- -----
|
||||||
|
@ -595,7 +806,10 @@ class FileEntry(TixWidget):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class HList(TixWidget):
|
class HList(TixWidget):
|
||||||
"""HList - Hierarchy display.
|
"""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.
|
||||||
|
|
||||||
Subwidgets - None"""
|
Subwidgets - None"""
|
||||||
|
|
||||||
|
@ -785,7 +999,9 @@ class InputOnly(TixWidget):
|
||||||
TixWidget.__init__(self, master, 'tixInputOnly', None, cnf, kw)
|
TixWidget.__init__(self, master, 'tixInputOnly', None, cnf, kw)
|
||||||
|
|
||||||
class LabelEntry(TixWidget):
|
class LabelEntry(TixWidget):
|
||||||
"""LabelEntry - Entry field with label.
|
"""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.
|
||||||
|
|
||||||
Subwidgets Class
|
Subwidgets Class
|
||||||
---------- -----
|
---------- -----
|
||||||
|
@ -799,7 +1015,10 @@ class LabelEntry(TixWidget):
|
||||||
self.subwidget_list['entry'] = _dummyEntry(self, 'entry')
|
self.subwidget_list['entry'] = _dummyEntry(self, 'entry')
|
||||||
|
|
||||||
class LabelFrame(TixWidget):
|
class LabelFrame(TixWidget):
|
||||||
"""LabelFrame - Labelled Frame container.
|
"""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.
|
||||||
|
|
||||||
Subwidgets Class
|
Subwidgets Class
|
||||||
---------- -----
|
---------- -----
|
||||||
|
@ -812,13 +1031,46 @@ class LabelFrame(TixWidget):
|
||||||
self.subwidget_list['label'] = _dummyLabel(self, 'label')
|
self.subwidget_list['label'] = _dummyLabel(self, 'label')
|
||||||
self.subwidget_list['frame'] = _dummyFrame(self, 'frame')
|
self.subwidget_list['frame'] = _dummyFrame(self, 'frame')
|
||||||
|
|
||||||
|
|
||||||
|
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):
|
||||||
|
TixWidget.__init__(self, master, 'tixDirList', ['options'], cnf, kw)
|
||||||
|
self.subwidget_list['hlist'] = _dummyHList(self, 'hlist')
|
||||||
|
self.subwidget_list['shlist'] = _dummyScrolledHList(self, 'vsb')
|
||||||
|
|
||||||
|
|
||||||
|
def add(self, name, cnf={}, **kw):
|
||||||
|
apply(self.tk.call,
|
||||||
|
(self._w, 'add', name) + self._options(cnf, kw))
|
||||||
|
self.subwidget_list[name] = TixSubWidget(self, name)
|
||||||
|
return self.subwidget_list[name]
|
||||||
|
|
||||||
|
def raise_page(self, name): # raise is a python keyword
|
||||||
|
self.tk.call(self._w, 'raise', name)
|
||||||
|
|
||||||
|
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):
|
||||||
|
TixWidget.__init__(self, master, 'tixMeter',
|
||||||
|
['options'], cnf, kw)
|
||||||
|
|
||||||
class NoteBook(TixWidget):
|
class NoteBook(TixWidget):
|
||||||
"""NoteBook - Multi-page container widget (tabbed notebook metaphor).
|
"""NoteBook - Multi-page container widget (tabbed notebook metaphor).
|
||||||
|
|
||||||
Subwidgets Class
|
Subwidgets Class
|
||||||
---------- -----
|
---------- -----
|
||||||
nbframe NoteBookFrame
|
nbframe NoteBookFrame
|
||||||
<pages> g/p widgets added dynamically"""
|
<pages> page widgets added dynamically with the add method"""
|
||||||
|
|
||||||
def __init__ (self,master=None,cnf={}, **kw):
|
def __init__ (self,master=None,cnf={}, **kw):
|
||||||
TixWidget.__init__(self,master,'tixNoteBook', ['options'], cnf, kw)
|
TixWidget.__init__(self,master,'tixNoteBook', ['options'], cnf, kw)
|
||||||
|
@ -856,7 +1108,7 @@ class NoteBookFrame(TixWidget):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class OptionMenu(TixWidget):
|
class OptionMenu(TixWidget):
|
||||||
"""OptionMenu - Option menu widget.
|
"""OptionMenu - creates a menu button of options.
|
||||||
|
|
||||||
Subwidget Class
|
Subwidget Class
|
||||||
--------- -----
|
--------- -----
|
||||||
|
@ -886,11 +1138,15 @@ class OptionMenu(TixWidget):
|
||||||
self.tk.call(self._w, 'enable', name)
|
self.tk.call(self._w, 'enable', name)
|
||||||
|
|
||||||
class PanedWindow(TixWidget):
|
class PanedWindow(TixWidget):
|
||||||
"""PanedWindow - Multi-pane container widget. Panes are resizable.
|
"""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.
|
||||||
|
|
||||||
Subwidgets Class
|
Subwidgets Class
|
||||||
---------- -----
|
---------- -----
|
||||||
<panes> g/p widgets added dynamically"""
|
<panes> g/p widgets added dynamically with the add method."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixPanedWindow', ['orientation', 'options'], cnf, kw)
|
TixWidget.__init__(self, master, 'tixPanedWindow', ['orientation', 'options'], cnf, kw)
|
||||||
|
@ -910,7 +1166,10 @@ class PanedWindow(TixWidget):
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
class PopupMenu(TixWidget):
|
class PopupMenu(TixWidget):
|
||||||
"""PopupMenu widget.
|
"""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.
|
||||||
|
|
||||||
|
|
||||||
Subwidgets Class
|
Subwidgets Class
|
||||||
---------- -----
|
---------- -----
|
||||||
|
@ -932,7 +1191,7 @@ class PopupMenu(TixWidget):
|
||||||
self.tk.call(self._w, 'post', widget._w, x, y)
|
self.tk.call(self._w, 'post', widget._w, x, y)
|
||||||
|
|
||||||
class ResizeHandle(TixWidget):
|
class ResizeHandle(TixWidget):
|
||||||
"""Incomplete - no documentation in Tix for this !!!"""
|
"""Internal widget to draw resize handles on Scrolled widgets."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixResizeHandle',
|
TixWidget.__init__(self, master, 'tixResizeHandle',
|
||||||
|
@ -942,7 +1201,7 @@ class ResizeHandle(TixWidget):
|
||||||
self.tk.call(self._w, 'attachwidget', widget._w)
|
self.tk.call(self._w, 'attachwidget', widget._w)
|
||||||
|
|
||||||
class ScrolledHList(TixWidget):
|
class ScrolledHList(TixWidget):
|
||||||
"""ScrolledHList - HList with scrollbars."""
|
"""ScrolledHList - HList with automatic scrollbars."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixScrolledHList', ['options'],
|
TixWidget.__init__(self, master, 'tixScrolledHList', ['options'],
|
||||||
|
@ -952,7 +1211,7 @@ class ScrolledHList(TixWidget):
|
||||||
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
||||||
|
|
||||||
class ScrolledListBox(TixWidget):
|
class ScrolledListBox(TixWidget):
|
||||||
"""ScrolledListBox - Listbox with scrollbars."""
|
"""ScrolledListBox - Listbox with automatic scrollbars."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixScrolledListBox', ['options'], cnf, kw)
|
TixWidget.__init__(self, master, 'tixScrolledListBox', ['options'], cnf, kw)
|
||||||
|
@ -961,7 +1220,7 @@ class ScrolledListBox(TixWidget):
|
||||||
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
||||||
|
|
||||||
class ScrolledText(TixWidget):
|
class ScrolledText(TixWidget):
|
||||||
"""ScrolledText - Text with scrollbars."""
|
"""ScrolledText - Text with automatic scrollbars."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixScrolledText', ['options'], cnf, kw)
|
TixWidget.__init__(self, master, 'tixScrolledText', ['options'], cnf, kw)
|
||||||
|
@ -970,7 +1229,7 @@ class ScrolledText(TixWidget):
|
||||||
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
||||||
|
|
||||||
class ScrolledTList(TixWidget):
|
class ScrolledTList(TixWidget):
|
||||||
"""ScrolledTList - TList with scrollbars."""
|
"""ScrolledTList - TList with automatic scrollbars."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixScrolledTList', ['options'],
|
TixWidget.__init__(self, master, 'tixScrolledTList', ['options'],
|
||||||
|
@ -980,7 +1239,7 @@ class ScrolledTList(TixWidget):
|
||||||
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
||||||
|
|
||||||
class ScrolledWindow(TixWidget):
|
class ScrolledWindow(TixWidget):
|
||||||
"""ScrolledWindow - Window with scrollbars."""
|
"""ScrolledWindow - Window with automatic scrollbars."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixScrolledWindow', ['options'], cnf, kw)
|
TixWidget.__init__(self, master, 'tixScrolledWindow', ['options'], cnf, kw)
|
||||||
|
@ -989,9 +1248,10 @@ class ScrolledWindow(TixWidget):
|
||||||
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
||||||
|
|
||||||
class Select(TixWidget):
|
class Select(TixWidget):
|
||||||
"""Select - Container for buttons. Can enforce radio buttons etc.
|
"""Select - Container of button subwidgets. It can be used to provide
|
||||||
|
radio-box or check-box style of selection options for the user.
|
||||||
|
|
||||||
Subwidgets are buttons added dynamically"""
|
Subwidgets are buttons added dynamically using the add method."""
|
||||||
|
|
||||||
def __init__(self, master, cnf={}, **kw):
|
def __init__(self, master, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixSelect',
|
TixWidget.__init__(self, master, 'tixSelect',
|
||||||
|
@ -1025,7 +1285,12 @@ class StdButtonBox(TixWidget):
|
||||||
self.tk.call(self._w, 'invoke', name)
|
self.tk.call(self._w, 'invoke', name)
|
||||||
|
|
||||||
class TList(TixWidget):
|
class TList(TixWidget):
|
||||||
"""TList - Hierarchy display.
|
"""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.
|
||||||
|
|
||||||
Subwidgets - None"""
|
Subwidgets - None"""
|
||||||
|
|
||||||
|
@ -1111,7 +1376,9 @@ class TList(TixWidget):
|
||||||
apply(self.tk.call, (self._w, 'yview') + args)
|
apply(self.tk.call, (self._w, 'yview') + args)
|
||||||
|
|
||||||
class Tree(TixWidget):
|
class Tree(TixWidget):
|
||||||
"""Tree - The tixTree widget (general purpose DirList like widget)"""
|
"""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."""
|
||||||
|
|
||||||
def __init__(self, master=None, cnf={}, **kw):
|
def __init__(self, master=None, cnf={}, **kw):
|
||||||
TixWidget.__init__(self, master, 'tixTree',
|
TixWidget.__init__(self, master, 'tixTree',
|
||||||
|
@ -1135,6 +1402,45 @@ class Tree(TixWidget):
|
||||||
def setmode(self, entrypath, mode='none'):
|
def setmode(self, entrypath, mode='none'):
|
||||||
self.tk.call(self._w, 'setmode', entrypath, mode)
|
self.tk.call(self._w, 'setmode', entrypath, mode)
|
||||||
|
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
"""
|
||||||
|
|
||||||
|
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')
|
||||||
|
|
||||||
|
def autosetmode(self):
|
||||||
|
self.tk.call(self._w, 'autosetmode')
|
||||||
|
|
||||||
|
def close(self, entrypath):
|
||||||
|
self.tk.call(self._w, 'close', entrypath)
|
||||||
|
|
||||||
|
def getmode(self, entrypath):
|
||||||
|
return self.tk.call(self._w, 'getmode', entrypath)
|
||||||
|
|
||||||
|
def open(self, entrypath):
|
||||||
|
self.tk.call(self._w, 'open', entrypath)
|
||||||
|
|
||||||
|
def getselection(self, mode='on'):
|
||||||
|
'''Mode can be on, off, default'''
|
||||||
|
self.tk.call(self._w, 'getselection', mode)
|
||||||
|
|
||||||
|
def getstatus(self, entrypath):
|
||||||
|
self.tk.call(self._w, 'getstatus', entrypath)
|
||||||
|
|
||||||
|
def setstatus(self, entrypath, mode='on'):
|
||||||
|
self.tk.call(self._w, 'setstatus', entrypath, mode)
|
||||||
|
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
### The subclassing below is used to instantiate the subwidgets in each ###
|
### The subclassing below is used to instantiate the subwidgets in each ###
|
||||||
### mega widget. This allows us to access their methods directly. ###
|
### mega widget. This allows us to access their methods directly. ###
|
||||||
|
@ -1191,6 +1497,13 @@ class _dummyHList(HList, TixSubWidget):
|
||||||
def __init__(self, master, name, destroy_physically=1):
|
def __init__(self, master, name, destroy_physically=1):
|
||||||
TixSubWidget.__init__(self, master, name, destroy_physically)
|
TixSubWidget.__init__(self, master, name, destroy_physically)
|
||||||
|
|
||||||
|
class _dummyScrolledHList(ScrolledHList, TixSubWidget):
|
||||||
|
def __init__(self, master, name, destroy_physically=1):
|
||||||
|
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')
|
||||||
|
|
||||||
class _dummyTList(TList, TixSubWidget):
|
class _dummyTList(TList, TixSubWidget):
|
||||||
def __init__(self, master, name, destroy_physically=1):
|
def __init__(self, master, name, destroy_physically=1):
|
||||||
TixSubWidget.__init__(self, master, name, destroy_physically)
|
TixSubWidget.__init__(self, master, name, destroy_physically)
|
||||||
|
@ -1200,8 +1513,11 @@ class _dummyComboBox(ComboBox, TixSubWidget):
|
||||||
TixSubWidget.__init__(self, master, name, destroy_physically)
|
TixSubWidget.__init__(self, master, name, destroy_physically)
|
||||||
self.subwidget_list['entry'] = _dummyEntry(self, 'entry')
|
self.subwidget_list['entry'] = _dummyEntry(self, 'entry')
|
||||||
self.subwidget_list['arrow'] = _dummyButton(self, 'arrow')
|
self.subwidget_list['arrow'] = _dummyButton(self, 'arrow')
|
||||||
|
# I'm not sure about this destroy_physically=0 in all cases;
|
||||||
|
# it may depend on if -dropdown is true; I've added as a trial
|
||||||
self.subwidget_list['slistbox'] = _dummyScrolledListBox(self,
|
self.subwidget_list['slistbox'] = _dummyScrolledListBox(self,
|
||||||
'slistbox')
|
'slistbox',
|
||||||
|
destroy_physically=0)
|
||||||
self.subwidget_list['listbox'] = _dummyListbox(self, 'listbox',
|
self.subwidget_list['listbox'] = _dummyListbox(self, 'listbox',
|
||||||
destroy_physically=0)
|
destroy_physically=0)
|
||||||
|
|
||||||
|
@ -1212,6 +1528,12 @@ class _dummyDirList(DirList, TixSubWidget):
|
||||||
self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb')
|
self.subwidget_list['vsb'] = _dummyScrollbar(self, 'vsb')
|
||||||
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
self.subwidget_list['hsb'] = _dummyScrollbar(self, 'hsb')
|
||||||
|
|
||||||
|
class _dummyDirSelectBox(DirSelectBox, TixSubWidget):
|
||||||
|
def __init__(self, master, name, destroy_physically=1):
|
||||||
|
TixSubWidget.__init__(self, master, name, destroy_physically)
|
||||||
|
self.subwidget_list['dirlist'] = _dummyDirList(self, 'dirlist')
|
||||||
|
self.subwidget_list['dircbx'] = _dummyFileComboBox(self, 'dircbx')
|
||||||
|
|
||||||
class _dummyExFileSelectBox(ExFileSelectBox, TixSubWidget):
|
class _dummyExFileSelectBox(ExFileSelectBox, TixSubWidget):
|
||||||
def __init__(self, master, name, destroy_physically=1):
|
def __init__(self, master, name, destroy_physically=1):
|
||||||
TixSubWidget.__init__(self, master, name, destroy_physically)
|
TixSubWidget.__init__(self, master, name, destroy_physically)
|
||||||
|
@ -1232,6 +1554,11 @@ class _dummyFileSelectBox(FileSelectBox, TixSubWidget):
|
||||||
self.subwidget_list['filter'] = _dummyComboBox(self, 'filter')
|
self.subwidget_list['filter'] = _dummyComboBox(self, 'filter')
|
||||||
self.subwidget_list['selection'] = _dummyComboBox(self, 'selection')
|
self.subwidget_list['selection'] = _dummyComboBox(self, 'selection')
|
||||||
|
|
||||||
|
class _dummyFileComboBox(ComboBox, TixSubWidget):
|
||||||
|
def __init__(self, master, name, destroy_physically=1):
|
||||||
|
TixSubWidget.__init__(self, master, name, destroy_physically)
|
||||||
|
self.subwidget_list['dircbx'] = _dummyComboBox(self, 'dircbx')
|
||||||
|
|
||||||
class _dummyStdButtonBox(StdButtonBox, TixSubWidget):
|
class _dummyStdButtonBox(StdButtonBox, TixSubWidget):
|
||||||
def __init__(self, master, name, destroy_physically=1):
|
def __init__(self, master, name, destroy_physically=1):
|
||||||
TixSubWidget.__init__(self, master, name, destroy_physically)
|
TixSubWidget.__init__(self, master, name, destroy_physically)
|
||||||
|
@ -1264,3 +1591,13 @@ def FileTypeList(dict):
|
||||||
s = s + '{{' + type + '} {' + type + ' - ' + dict[type] + '}} '
|
s = s + '{{' + type + '} {' + type + ' - ' + dict[type] + '}} '
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
# Still to be done:
|
||||||
|
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.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,11 @@ Extension modules
|
||||||
|
|
||||||
Library
|
Library
|
||||||
|
|
||||||
|
- Tix exposes more commands through the classes DirSelectBox,
|
||||||
|
DirSelectDialog, ListNoteBook, Meter, CheckList, and the
|
||||||
|
methods tix_addbitmapdir, tix_cget, tix_configure, tix_filedialog,
|
||||||
|
tix_getbitmap, tix_getimage, tix_option_get, and tix_resetoptions.
|
||||||
|
|
||||||
- Traceback objects are now scanned by cyclic garbage collection, so
|
- Traceback objects are now scanned by cyclic garbage collection, so
|
||||||
cycles created by casual use of sys.exc_info() no longer cause
|
cycles created by casual use of sys.exc_info() no longer cause
|
||||||
permanent memory leaks (provided garbage collection is enabled).
|
permanent memory leaks (provided garbage collection is enabled).
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue