Author: reinhard
Date: 2007-04-09 17:28:51 -0500 (Mon, 09 Apr 2007)
New Revision: 9475
Modified:
trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/hbox.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/page.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/vbox.py
Log:
Replaced growable property by function to avoid problems with widget creation
and insertion order.
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py 2007-04-09 22:02:50 UTC (rev 9474)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py 2007-04-09 22:28:51 UTC (rev 9475)
@@ -275,6 +275,15 @@
% (self.__class__, event.container, spacer))
+ # -------------------------------------------------------------------------
+ # Indicate whether this box is vertically growable
+ # -------------------------------------------------------------------------
+
+ def is_growable(self):
+
+ return False
+
+
# =============================================================================
# Base class for managed boxes (vbox/hbox)
# =============================================================================
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py 2007-04-09 22:02:50 UTC (rev 9474)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py 2007-04-09 22:28:51 UTC (rev 9475)
@@ -86,7 +86,6 @@
xFlags |= wx.TE_PASSWORD
if multiline:
- self.growable = True
xFlags |= wx.TE_MULTILINE
# Right-align numeric fields. This does work on wxMSW and wxGTK only.
@@ -183,7 +182,6 @@
def __build_listbox(self, parent):
- self.growable = True
# NOTE: please have a look at the note on multiline text edits above
if not self.managed:
csize = (self.get_default_size()[0], 1)
@@ -668,6 +666,15 @@
item.SetSizeHints(minw, minh, maxw, maxh)
+ # -------------------------------------------------------------------------
+ # Indicate whether this box is vertically growable
+ # -------------------------------------------------------------------------
+
+ def is_growable(self):
+
+ return (self._gfObject.style.lower() in ['multiline', 'listbox'])
+
+
# =============================================================================
# Configuration
# =============================================================================
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py 2007-04-09 22:02:50 UTC (rev 9474)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py 2007-04-09 22:28:51 UTC (rev 9475)
@@ -279,6 +279,15 @@
self.scroll.SetScrollbar(position, size, count, size - 1, True)
+ # -------------------------------------------------------------------------
+ # Indicate whether this box is vertically growable
+ # -------------------------------------------------------------------------
+
+ def is_growable(self):
+
+ return True
+
+
# =============================================================================
# Configuration data
# =============================================================================
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/hbox.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/hbox.py 2007-04-09 22:02:50 UTC (rev 9474)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/hbox.py 2007-04-09 22:28:51 UTC (rev 9475)
@@ -70,7 +70,7 @@
item = ui_widget.widget
- if ui_widget.growable:
+ if ui_widget.is_growable():
# For (vertically) growable widgets, let them expand.
flags = wx.EXPAND
elif self._gfObject.has_label:
@@ -104,14 +104,21 @@
# self._sizer.AddGrowableCol(self.last_item, ui_widget.stretch)
self._sizer.AddGrowableCol(self.last_item)
- # A hbox is only growable (vertically) if at least one of its members
- # is growable.
- if ui_widget.growable:
- self.growable = True
-
self.last_item += add
+ # -------------------------------------------------------------------------
+ # Indicate whether this box is vertically growable
+ # -------------------------------------------------------------------------
+
+ def is_growable(self):
+
+ for child in self._children:
+ if child.is_growable():
+ return True
+ return False
+
+
# =============================================================================
# Configuration data
# =============================================================================
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/page.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/page.py 2007-04-09 22:02:50 UTC (rev 9474)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/page.py 2007-04-09 22:28:51 UTC (rev 9475)
@@ -115,7 +115,7 @@
sizer.Add(item, ui_widget.stretch, wx.EXPAND | wx.ALL, 12)
else:
flags = wx.ALIGN_CENTER | wx.EXPAND
- if not ui_widget.growable:
+ if not ui_widget.is_growable():
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(item, 1, wx.ALIGN_CENTER_VERTICAL)
item = box
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/vbox.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/vbox.py 2007-04-09 22:02:50 UTC (rev 9474)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/vbox.py 2007-04-09 22:28:51 UTC (rev 9475)
@@ -61,7 +61,7 @@
if ui_widget.label:
add = True
flags = wx.ALIGN_CENTER_VERTICAL
- if ui_widget.growable:
+ if ui_widget.is_growable():
flags |= wx.EXPAND
self._sizer.Add(ui_widget.label, pos, span, flags)
@@ -82,21 +82,28 @@
self._sizer.Add(item, pos, span, wx.EXPAND)
- if add and ui_widget.growable:
+ if add and ui_widget.is_growable():
# FIXME: If a stretch factor is used, the *whole* newly calculated
# size is distributed according to this stretch factor, instead of
# only the extra space.
# self._sizer.AddGrowableRow(self.last_item, ui_widget.stretch)
self._sizer.AddGrowableRow(self.last_item)
- # A vbox is only growable (vertically) if at least one of its members
- # is growable.
- if ui_widget.growable:
- self.growable = True
-
self.last_item += add
+ # -------------------------------------------------------------------------
+ # Indicate whether this box is vertically growable
+ # -------------------------------------------------------------------------
+
+ def is_growable(self):
+
+ for child in self._children:
+ if child.is_growable():
+ return True
+ return False
+
+
# =============================================================================
# Configuration data
# =============================================================================
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.