[Python-checkins] r64591 - sandbox/trunk/ttk-gsoc/samples/theming.py
guilherme.polo
python-checkins at python.org
Sun Jun 29 16:36:36 CEST 2008
Author: guilherme.polo
Date: Sun Jun 29 16:36:36 2008
New Revision: 64591
Log:
Added support for element options;
Labels on NewElement Dialog are right-aligned now.
Modified:
sandbox/trunk/ttk-gsoc/samples/theming.py
Modified: sandbox/trunk/ttk-gsoc/samples/theming.py
==============================================================================
--- sandbox/trunk/ttk-gsoc/samples/theming.py (original)
+++ sandbox/trunk/ttk-gsoc/samples/theming.py Sun Jun 29 16:36:36 2008
@@ -5,8 +5,7 @@
-- Guilherme Polo, 2008.
"""
-# ToDO: Support element options.
-# Add a way to remove options.
+# ToDO: Add a way to remove options.
# Add a way to edit images/elements.
# Add pre-defined elements for the current theme.
# ...
@@ -343,15 +342,15 @@
self.sspec = ttk.Entry(master)
# place the widgets
- name.grid(row=0, column=0, sticky='w', padx=6, pady=3)
+ name.grid(row=0, column=0, sticky='e', padx=6, pady=3)
self.name.grid(row=0, column=1, pady=3, sticky='ew')
- etype.grid(row=0, column=2, sticky='w', padx=6, pady=3)
+ etype.grid(row=0, column=2, sticky='e', padx=6, pady=3)
self.etype.grid(row=0, column=3, pady=3)
- defimg.grid(row=1, column=0, sticky='w', padx=6, pady=3)
+ defimg.grid(row=1, column=0, sticky='e', padx=6, pady=3)
self.defimg.grid(row=1, column=1, pady=3, sticky='ew')
- opts.grid(row=1, column=2, sticky='w', padx=6, pady=3)
+ opts.grid(row=1, column=2, sticky='e', padx=6, pady=3)
self.opts.grid(row=1, column=3, pady=3)
- sspec.grid(row=2, column=0, sticky='w', padx=6, pady=3)
+ sspec.grid(row=2, column=0, sticky='e', padx=6, pady=3)
self.sspec.grid(row=2, column=1, columnspan=3, sticky='ew', pady=3)
self.resizable(False, False)
@@ -371,6 +370,26 @@
"at least.", parent=self)
return False
+ if values['opts']:
+ try:
+ # XXX Warning: eval usage!
+ values['opts'] = eval(values['opts'])
+ if not isinstance(values['opts'], dict):
+ raise ValueError
+ except (NameError, SyntaxError), err:
+ showwarning("Invalid options specification",
+ "Options should be formatted according to a dict.\n\n"
+ "Error: %s" % err,
+ parent=self)
+ return False
+ except ValueError:
+ showwarning("Invalid options specification",
+ "Options should be formatted according to a dict.",
+ parent=self)
+ return False
+ else:
+ values['opts'] = {}
+
self.result = values
return True
@@ -569,13 +588,10 @@
sspec = ()
args = (dlg.result['def'], ) + sspec
- # format opts (XXX Not done)
- #if dlg.result['opts']:
- # print dlg.result['opts']
-
# create element
try:
- self._style.element_create(name, dlg.result['etype'], *args)
+ self._style.element_create(name, dlg.result['etype'], *args,
+ **dlg.result['opts'])
except Tkinter.TclError, err:
showwarning("Element couldn't be created",
"The specified element couldn'be created, reason: "
More information about the Python-checkins
mailing list