[gnue] r9475 - trunk/gnue-forms/src/uidrivers/wx26/widgets

[email protected]
Newsgroups gmane.comp.cms.gnue.cvs
Message-ID <[email protected]>
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.