Commit Graph

212 Commits

Author SHA1 Message Date
Guido van Rossum 88b63b8d30 Allow binding a Tcl command (given as a string) as well as a Python
function.
1998-06-25 18:54:49 +00:00
Guido van Rossum cef4c844df Turns out that 'winfo id' returns the id as a hex string, with 0x prefix.
The int() function (aliased to getint()) doesn't handle that, so we must
use self.tk.getint() again...
1998-06-19 04:35:45 +00:00
Guido van Rossum 268824e089 Different trick to get the _test() window to pop up. 1998-06-19 04:34:19 +00:00
Guido van Rossum fe02efdbf4 getint() now raises ValueError, not TclError, on errors. 1998-06-09 02:37:45 +00:00
Guido van Rossum 0bd5433cf8 Get rid of nearly all clals to self._do -- turns out self.tk.call can
be used just as well, so this saves one Python call in many cases!
1998-05-19 21:18:13 +00:00
Guido van Rossum e365a590d4 Change the names of all methods in the Wm class: they are now
wm_title(), etc.  The old names (title() etc.) are still defined as
aliases.

This brings all methods up to use the same naming convention: whether
the Tcl syntax is

   .window.path.name command subcommand [options]

or

   command subcommand .window.path.name [optins]

the Python equivalent is always

   windowobject.command_subcommand(options)
1998-05-01 19:48:20 +00:00
Guido van Rossum 0132f69c2e Another optimization, probably of negligeable effect: instead of
calling self.tk.getint() and self.tk.getdouble(), call the globals
getint() and getdouble(), which in turn are just names for the Python
builtins int() and double().  (Making them globals actually save a
dict lookup compared to using the built-in.)  The corresponding
methods of class Misc have been changed similarly.  (Note that
getboolean() hasn't been changed because there's no Python
equivalent.)

The use of int() and float() has another advantage: if/when Tcl calls
can actually return Tcl objects with other types than string, use of
int() and float() is essential.
1998-04-30 17:50:36 +00:00
Guido van Rossum dc59340646 In _bind(), found a way to test for break without a temp variable. 1998-04-29 22:16:57 +00:00
Guido van Rossum f975699c07 Save a tiny bit of time: self.tk.call takes a tuple argument so it's
not needed to say apply(self.tk.call, t); self.tk.call(t) has the same
effect.  This cuts down tremendously on the number of apply() calls
made.  No measurable effect, but at the very least it saves the lookup
of apply() in the globals!
1998-04-29 21:57:08 +00:00
Guido van Rossum f0c891a2b2 Import MacOS at the top instead of insize Tk.__init__() -- the latter
repeats the I/O for the failed import on each interpreter creation.
1998-04-29 21:43:36 +00:00
Guido van Rossum e86271af72 When setting the event structure fields, don't die when the widget
name is not registered; simply use the string.  This happens for
tear-off widgets (e.g. if you've registered enter/leave events for the
menu).
1998-04-27 19:32:59 +00:00
Guido van Rossum c296651e10 Add image_types() and image_names() as methods to Misc class. 1998-04-10 19:16:10 +00:00
Guido van Rossum 56c04b8376 Restructured the event_* calls slightly -- there's really no need to
use the default root, and instead of string.split, use splitlist.
1998-04-06 03:10:03 +00:00
Guido van Rossum 117a5a8138 Return the name of the Tcl command defined by _bind(). This can
optionally be passed to unbind() (or you can apss it to
deletecommand()).
1998-03-27 21:26:51 +00:00
Guido van Rossum cd0f59ea08 Get rid of the Emacs cruft now that Python-mode guess the desired settings! 1998-03-26 19:30:30 +00:00
Guido van Rossum c457048744 Give in to the tab police. 1998-03-20 20:45:49 +00:00
Guido van Rossum 21df8f5dc4 Typo: baseWidht -> baseWidth. 1998-02-24 23:26:18 +00:00
Guido van Rossum 0001a11986 Fix bug in trace_vdelete(); should use master's delete command. 1998-02-19 21:20:30 +00:00
Guido van Rossum e2c6e203c6 Add trace methods to class Variable 1998-01-14 16:44:34 +00:00
Guido van Rossum 1cd6a457d9 Two critical fixes to the changes that I made for Greg McFarlane --
patches provided by Greg (am I glad I sent him my latest version!).
1997-12-30 04:07:19 +00:00
Guido van Rossum 9fd41e363b Fixed several bugs reported by Greg McFarmane:
*  The invoke methods of the three Tkinter widgets Button,
    Checkbutton and Radiobutton should return the value returned by
    the callback, (like the Menu widget does):

	def invoke(self):
	    return self.tk.call(self._w, 'invoke')

 *  The select_from method of the Canvas widget should use 'from', not
    'set':

	def select_from(self, tagOrId, index):
	    self.tk.call(self._w, 'select', 'from', tagOrId, index)

    Currently, if you use select_from, you get the error message:
 'TclError: bad select option "set": must be adjust, clear, from, item, or to'

 *  The 'entrycget' and 'type' methods of the Tk menu widget are
    missing from Tkinter.

 *  There is a bug in grid_columnconfigure and grid_rowconfigure.  For
    example, this should return the current value of the 'minsize'
    option for column 0:

	f.grid_columnconfigure(0, 'minsize')

    Instead it returns the same as:

	f.grid_columnconfigure(0)

    I suggest that the hint given in the comment in the
    Tkinter.Misc.configure method should be followed - "ought to
    generalize this so tag_config etc.  can use it".  Repeating the
    same configure code several times in Tkinter is inviting errors.
    [I did not follow this advice --G]

 *  The grid_slaves method should handle options.  Currently, to pass
    options to the grid_slaves method, you have to do something like:

	grid_slaves('-row', 1)
1997-12-29 19:59:33 +00:00
Guido van Rossum 4d9d3f18c2 Typo: Widht instead of Width... 1997-12-27 15:14:43 +00:00
Fred Drake b5323999d2 PhotoImage.put(): Fixed -to handling, including backward compatibility hack.
Guido, please take a look at this.
1997-12-16 15:03:43 +00:00
Guido van Rossum f0413d4841 Added tag_prevrange analogous to rag_nextrange. 1997-12-15 17:31:52 +00:00
Guido van Rossum 98b9d77666 Change _nametowidget to nametowidget -- it is a public interface. 1997-12-12 00:09:34 +00:00
Guido van Rossum 7814ea64ff Last minute fix to Text.window_cget(), which should properly Tcl-ify
the option name (prepend '-', strip trailing '_').
1997-12-11 17:08:52 +00:00
Guido van Rossum 5ac00ac140 Fix problem detected by Greg McFarlane -- callbacks passed to
bind_class() and bind_all() are destroyed when the widget to which
they were passed is destroyed.
1997-12-11 02:03:55 +00:00
Guido van Rossum 80f8be8901 Support for the "event" command, new in Tk 4.2.
By Case Roole.
1997-12-02 19:51:39 +00:00
Guido van Rossum c0b93191e6 bind_class should return a value 1997-11-22 21:49:56 +00:00
Guido van Rossum 368e06b6f0 Some restructuring.
All geometry manager methods that apply to a master widget instead of
to a slave widget have been moved to the Misc class, which is
inherited by all of Tk(), Toplevel() and Widget().  They have been
renamed to have their geometry manager name as a prefix,
e.g. pack_propagate(); the short names can still be used where
ambiguities are resolved so that pack has priority over place has
priority over grid (since this was the old rule).

Also, the method definitions in the Pack, Place and Grid classes now
all have their respective geometry manager name as a prefix
(e.g. pack_configure); the shorter names are aliases defined through
assignment.

A similar renaming has been done for all config() methods found
elsewhere; these have been renamed to configure() with config being
the alias (instead of the other way around).  (This may not make much
of a difference but the official Tk command name is now 'configure'
and it may help in debugging tracebacks.)

Finally, a new base class BaseWidget has been introduced, which
implements the methods common between Widget and Toplevel (the
difference between those two classes is that Toplevel has a different
__init__() but also that Toplevel doesn't inherit from Pack, Place or
Grid.
1997-11-07 20:38:49 +00:00
Guido van Rossum 83bd9a9c8c Move Widget.config() c.s. to Misc class, so the Tk class also inherits them. 1997-09-29 23:24:52 +00:00
Guido van Rossum 9918e0c750 Add missing comma to make a tuple of (tagOrId). 1997-08-18 14:44:04 +00:00
Guido van Rossum f53c86c2b6 Add dummies for create/delete filehandles, just so that vanilla Grail
0.3 won't break on Windows.
1997-08-14 14:15:54 +00:00
Guido van Rossum 9d9af2c7a8 Fixes for the Mac. (Jack) 1997-08-12 18:21:08 +00:00
Guido van Rossum d6615ab30c Get READABLE c.s. from _tkinter instead of conditional definition.
in Tk.destroy(), reset _default_root to None when it is us.
1997-08-05 02:35:01 +00:00
Guido van Rossum 65c78e18b5 Use dictionary's update() method in _cnfmerge(). 1997-07-19 20:02:04 +00:00
Fred Drake c8296db67d Widget._setup(): Support name=None in a similar way to the handling of other
Tkinter keyword parameters.
1997-05-27 22:45:10 +00:00
Guido van Rossum 16cd332aab Add root.tkraise() to the _test() program so the window doesn't hide
behind the shell window on NT.
1997-05-09 00:59:43 +00:00
Fred Drake 526749b678 Misc.__init__(): Removed method, replaced with class attribute (which
was all that the method set anyway).  Removed calls to the
	constructor.  This reduces the number of Python function calls
	per widget construction by one, for every widget construction.
1997-05-03 04:16:23 +00:00
Guido van Rossum 103cc6dd11 Patch by Craig McPheeters to clean up the back-references to widgets
contained in commands created by those same widgets.
1997-04-14 13:30:24 +00:00
Guido van Rossum 9580609ba3 Require _tkinter -- don't attempt to import tkinter when _tkinter does
not exist.  All 8 uses of tkinter are replaced with _tkinter.  Still
create a variable tkinter though, because that is used by other
modules importing Tkinter (e.g. tkinter.createfilehandler()).

Also added a comment to the 'import _tkinter' line saying that if this
fails, Python is not configured correctly.
1997-02-15 18:33:24 +00:00
Guido van Rossum 764d6c7acd Gave the Listbox selection methods their correct (longer) names.
Removed select_adjust -- Tk no longer supports this.
1997-02-14 16:21:16 +00:00
Guido van Rossum 76f587b7f8 Avoid traceback in selection_own_get() when no Tk widget owns the
selection; return None instead.
1997-01-21 23:22:03 +00:00
Fred Drake 41dc09d10e (Tkinter.py): Add support for Frame(w, class_="classname") as an alternative
to Frame(w, cnf={"class": "classname"}).  I think this is the only
	widget other than Toplevel that needs to be concerned about setting
	the widget's class (-class must be the first option on the Tcl
	widget creation command).
1997-01-10 15:13:12 +00:00
Guido van Rossum 8371013f9a Added config(ure) method to Image class.
(Fred Drake)
1996-12-27 15:33:17 +00:00
Guido van Rossum 0b96b945b8 Change the default values for IntVar and DoubleVar to numbers (they
were strings, accidentally).
1996-12-27 15:30:20 +00:00
Guido van Rossum c0967cd4a2 Added a bunch of new winfo options; we should now be up to date with
Tk 4.2.  The new winfo options supported are: mananger, pointerx,
pointerxy, pointery, server, viewable, visualid, visualsavailable.

Also fixed bugs in winfo_colormapfull() and winfo_containing().
1996-12-12 16:43:05 +00:00
Guido van Rossum 58103d3b11 Turn leading minus sign into underscore for image widget name -- the
hyphen confused Tk into thinking the name was an option.
1996-11-20 22:17:38 +00:00
Guido van Rossum 73eba25f5f Don't require leading '-' on option name to Text.tag_cget 1996-11-11 19:10:58 +00:00
Guido van Rossum 40f7a55608 Get rid of bogus binding of <Delete> to a function that deletes the next
character (this is already a built-in binding now).
1996-10-24 18:34:36 +00:00
Guido van Rossum 149574767c Added support for floating point resolution to Scale.get(). 1996-10-23 14:16:28 +00:00
Fred Drake 0c373691ae (Tkinter.py): Fixed bug in re-implementation of OptionMenu. 1996-10-21 17:09:31 +00:00
Guido van Rossum 28574b557b (Fred Drake:) Re-wrote the OptionMenu class to allow access to a real
Menu object via om['menu'] -- this is necessary to use a post-command
with an OptionMenu.  The API has not changed.
1996-10-21 15:16:51 +00:00
Fred Drake cab3c3b8d4 (Tkinter.py): Improve application basename determination to make .py and
.pyc extensions completely equivelent when locating the "profile"
	which should be read on startup.
1996-10-06 17:55:20 +00:00
Fred Drake 3faf9b4d48 (Tkinter.py): Fixed dumb typo in Misc.tk_setPalette(). 1996-10-04 19:23:04 +00:00
Fred Drake 3c602d7d0c (Tkinter.py): Many revisions for Tk 4.X: Added clipboard support, updated
selection interface, handle the -displayof option intelligently in
	many places.  Added "wm colormapwindows" and "winfo colormapfull"
	support.  Removed "focus default" and "focus none" method: these are
	not in Tk 4.X.
1996-09-27 14:06:54 +00:00
Guido van Rossum 6e8ec59eb4 Implement lower by calling lower, not lift. 1996-09-11 14:25:41 +00:00
Guido van Rossum 688bbfc217 simpler version of the previous fix 1996-09-10 12:39:26 +00:00
Guido van Rossum 8535b29f39 compatibility changes suggested by Jack,
for tk_menuBar and tk_bindForTraversal
(i.e. don't call these for Tk >= 4.1)
1996-09-10 12:36:34 +00:00
Guido van Rossum 42b78e6441 Fixed Entry.select_from() to acually call the "select from" widget
command instead of the non-existant "select set".  (Fred)
1996-09-06 14:20:23 +00:00
Guido van Rossum 2caac73aa6 Added Menu.insert*() methods [Fred] 1996-09-05 16:46:31 +00:00
Guido van Rossum e1a7a3b3b3 Add initial values to variables to avoid crash in __del__ 1996-09-05 16:45:49 +00:00
Guido van Rossum 5c8c91bbc5 Changes for Canvas by Fred 1996-08-22 23:18:09 +00:00
Guido van Rossum c417ef8e57 Added a small test program. 1996-08-21 23:38:59 +00:00
Guido van Rossum 5468a7b76b stupid typo in latest fix ('Name' should be 'name') 1996-08-08 18:31:42 +00:00
Guido van Rossum 9afdabffa9 Add missing close parenthesis. 1996-07-30 20:16:21 +00:00
Guido van Rossum c8b4791d9e Two independent changes:
- accept empty string from focus_get
- map coords() return value through getdouble and splitlist
1996-07-30 16:31:32 +00:00
Guido van Rossum ad8b3baa91 Restore the capability to pass a class (usually Pack) as an option to widget
creation; no longer support this for the config method.
1996-07-21 03:05:05 +00:00
Guido van Rossum 421bb0e389 fix canvas bind commands 1996-07-21 02:19:32 +00:00
Guido van Rossum 422cc7ffec more changes copied from Grail 1996-05-21 20:30:07 +00:00
Guido van Rossum 63e39ae933 Made Place.info == Pack.info 1996-05-16 17:53:48 +00:00
Guido van Rossum a5f875f504 Yet another mini fix to pack/grid info. 1996-05-16 17:50:07 +00:00
Guido van Rossum 3626999377 Some more changes from the net... Typos, 4.0/4.1 issues, new tkButtonInvoke(). 1996-05-16 17:11:27 +00:00
Guido van Rossum 37dcab197c Resync with Grail's Tkinter.py. 1996-05-16 16:00:19 +00:00
Jack Jansen 8324836329 Disable pythons own eventhandling on the mac. 1995-11-10 14:49:44 +00:00
Jack Jansen 10d0f8fc40 Renamed module tkinter to _tkinter 1995-10-23 14:36:05 +00:00
Guido van Rossum 46f92d2eba add Listbox.activate() 1995-10-11 17:41:00 +00:00
Guido van Rossum a1db48b75b fix Menu.add_command etc. 1995-10-09 22:37:28 +00:00
Guido van Rossum f7f79ac0c8 better version sanity checks; get rid of Widget.unbind_class() 1995-10-07 19:08:37 +00:00
Guido van Rossum 96ebbd3082 new after options; text.search; new image methods 1995-09-30 17:05:26 +00:00
Guido van Rossum 71b1a90bad added getitem/setitem to Image class; changed call wrapping (again) 1995-09-18 21:54:35 +00:00
Guido van Rossum a5773ddb23 move constants to Tkconstants; added some; overridable error reporting; fix typo in propagate 1995-09-07 19:22:00 +00:00
Guido van Rossum bf4d8f9d87 added OptionMenu class (tk_optionMenu interface) 1995-09-01 20:35:37 +00:00
Guido van Rossum 1d59df28ac added select_present and select_range to Entry widget 1995-08-11 14:21:06 +00:00
Guido van Rossum a22a70aaff added some missing constants 1995-08-04 03:51:48 +00:00
Guido van Rossum 35f67fb552 keyword arguments; redid Photo image class; other goodies 1995-08-04 03:50:29 +00:00
Guido van Rossum 761c5aba8e Tk 4.0 and Tcl 7.4 are now standard 1995-07-14 15:29:10 +00:00
Guido van Rossum 903abee9c4 fix typo in tag_nextrange 1995-03-20 15:09:13 +00:00
Guido van Rossum 7e9394ab97 add TkVersion,TclVersion; don't drop in debugger 1995-03-17 16:21:33 +00:00
Guido van Rossum 5505d56f08 Fixed 'propagate' method 1994-12-30 17:16:35 +00:00
Guido van Rossum 780044f27a added option interface 1994-10-20 22:02:27 +00:00
Guido van Rossum f023ab0471 Dialog.py: d.num should be numeric, not string
Tkinter.py: on destroy(), remove self from master's dict of children
1994-08-30 12:13:44 +00:00
Guido van Rossum ef8f88101a Add Widget.unbind and {Canvas,Text}.tag_unbind.
In Widget.__init__, call config only if cnf not empty.
1994-08-08 12:47:33 +00:00
Guido van Rossum 27b77a4367 read various startup files in Tcl and Python based upon className and
baseName.
1994-07-12 15:52:32 +00:00
Guido van Rossum 5e0c25bbf1 Fix bug in At() (Steen) 1994-07-12 09:04:41 +00:00
Guido van Rossum 69170c5d79 Make Pack.newinfo() return a dict 1994-07-11 15:21:31 +00:00
Guido van Rossum 97aeca1527 Added _exit and register as Tcl command exit. Micro lay-out fix. 1994-07-07 13:12:12 +00:00
Guido van Rossum 5113569151 tag_remove: add tagName to tk call 1994-07-06 21:16:58 +00:00
Guido van Rossum 2a39031006 Remove garbage '+ ' and reformat tag_delete function budy 1994-07-06 10:20:11 +00:00
Guido van Rossum 2dcf529b55 Tue Jul 5 13:22:45 1994 (lumholt@login.dkuug.dk)
* Setup.in: moreButtons Tk extension support (again).

	* mklibapp: $1 is now the path to the Tk extension source
	directory.  The default is /usr/local/src/tcl.

	* kill.py: Don't use the exec Tcl command.

	* Tkinter.py
	(Misc.bind_all): Bug fix; extra graves.
	(Misc.tk_strictMotif): Return the value.
	(mainloop, getint, getdouble, getboolean): New functions.
	(_cnfmerge): Flatten cnfs.

Wed Jun 29 22:01:17 1994  Steen Lumholt  (lumholt@login.dkuug.dk)

	* Tkinter.py:
	(Tk.destroy): master is always None; so don't del.  Found by
	Tommy Burnette, solution from Guido van Rossum.
	(Misc.selection_get): Missing return.  Found by Richard Neitzel.
	(Misc._options, Widget.config, Canvas._create):  If cnf is a tuple
	or list then merge the contents.  Suggested by Matthew Conway.
1994-07-06 09:23:20 +00:00
Guido van Rossum bd84b04f64 Mon Jul 4 12:42:04 1994 Guido van Rossum (guido@voorn.cwi.nl)
* Tkinter.py (Misc.bind_all): fix typo (name shouldn't be quoted).

Wed Jun 29 10:02:21 1994  Guido van Rossum  (guido@voorn.cwi.nl)

	* Tkinter.py (Misc.selection_get): add 'return'
	(Tk.destroy): self.master is always None
1994-07-04 10:48:25 +00:00
Guido van Rossum 9beb9327df wait_{variable,window,visibility}
register = _register
1994-06-27 23:15:31 +00:00
Guido van Rossum 535cf0cbe2 Redo these changes:
(Menu.index): return int or None, not string
	(Widget.__getitem__): use splitlist, not split
1994-06-27 07:55:59 +00:00
Guido van Rossum aec5dc9f67 Sun Jun 26 02:19:01 1994 Steen Lumholt (lumholt@login.dkuug.dk)
* README: Doc fix.

	* Dialog.py: tk_dialog wrapper widget.

	* Tkinter.py: (Widget) Code moved from __init__ to _setup.

Sat Jun 25 00:27:24 1994  Steen Lumholt  (lumholt@login.dkuug.dk)

	* Tkinter.py (Misc): selection_own and selection_own_get methods.
	(Misc.winfo_toplevel): Return widget.

	* kill.py: New demo.

	* Tkinter.py: tk_menuBar method moved from Menu class to
	Misc class.
	(Scrollbar.get): Bug fix; self._getints not self.tk.getints.

Fri Jun 24 17:42:16 1994  Steen Lumholt  (lumholt@login.dkuug.dk)

	* Tkinter.py
	(Variable, StringVar, IntVar, BooleanVar): New classes.

	* mklibapp: New shell script.

	* Setup.in: moreButtons Tk extension support.

	* tkintermodule.c (Tkapp_New): Remove #ifdef WITH_APPINIT.

	* appinit.c (Tcl_AppInit): New file and function.

	* Tkinter.py:
	(Button): Dummy args in tk_* methods.
	(Studbutton, Tributton): New widget by <tnb2d@cs.virginia.edu>;
	morebuttons extension.

Thu Jun 23 22:22:43 1994  Steen Lumholt  (lumholt@login.dkuug.dk)

	* tkintermodule.c (FileHandler): Make arg a tuple; bug found
	by <tnb2d@cs.virginia.edu>.  Call the Python file handler
	function with (file, mask) argument.  Fix a few of my refcnt bugs.
1994-06-27 07:55:12 +00:00
Guido van Rossum c2fb7e65de (Menu.index): return int or None, not string
(Widget.__getitem__): use splitlist, not split
1994-06-27 07:48:37 +00:00
Guido van Rossum 9b68fd961c * Tkinter.py
(Widget): generalized config(); added keys().
	(Canvas): added addtag_xxx and find_xxx functions; generalized
	itemconfig().
1994-06-23 07:40:14 +00:00
Guido van Rossum 08a403821d * Tkinter.py: some tidying up.
(Misc.after): arrange to call deletecommand after it is called.
	(Canvas.itemconfig): generalized to support all forms.
	(Canvas.find): returns a list of integers instead of strings.
	* Tkinter.py (Canvas._create): call _flatten earlier.
1994-06-21 11:44:21 +00:00
Guido van Rossum 67ef5f3fb6 * Tkinter.py (Canvas): made create_ methods return the item id;
flatten argument list to _create before passing on to tk.call;
	_do should return a value.
1994-06-20 13:39:14 +00:00
Guido van Rossum 45853db868 Added dictionary mapping names to children, and _name attribute.
Renamed tkerror to _tkerror, default_root to _default_root.
	(_substitute, _subst_prefix): move back into class Misc; added
	widget Event attribute.
	Added functions that return widgets or widget lists:
	winfo_children; focus_get; grab_current.
	(Pack.slaves, Place.slaves): return Widget objects instead of
	pathnames.
	Renamed __del__() to destroy() (because of circular refs, __del__
	won't ever be called).
	Added some names with explicit _set: focus_set, focus_default_set,
	grab_set.
	Added focus_default_none.
	(Misc._getints): use tk.splitlist() instead of tk.split(), return
	None if string empty.
1994-06-20 12:19:19 +00:00
Guido van Rossum 1e9e400ba7 Added getdouble, getboolean.
Removed redundant global statements
getboolean returns None if argument is empty
AtInsert() concatenates optional arguments after 'insert'
1994-06-20 09:09:51 +00:00
Guido van Rossum 5e8d3724fe Added getvar, getint, lower, tkraise==lift to Misc class 1994-06-20 08:12:01 +00:00
Guido van Rossum 1846882254 Initial revision 1994-06-20 07:49:28 +00:00