[gnue] r9466 - trunk/gnue-forms/src/uidrivers/curses/widgets

[email protected]
Newsgroups gmane.comp.cms.gnue.cvs
Message-ID <[email protected]>
Author: reinhard
Date: 2007-04-07 13:22:30 -0500 (Sat, 07 Apr 2007)
New Revision: 9466

Modified:
   trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py
Log:
Implemented left-label style hbox in curses.


Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py	2007-04-07 17:40:15 UTC (rev 9465)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py	2007-04-07 18:22:30 UTC (rev 9466)
@@ -314,25 +314,33 @@
 
         hints = self._hints_.values()
 
-        minh = sum([i[1] for i in hints])
         prop = sum([i[3] for i in hints])
 
         if self.vertical:
             mx_label = max([i[2] for i in hints])
             # min. width: space + widest label + space + widest widget + space
             minw = mx_label + max([i[0] for i in hints]) + 3
+            # min. height: widget + widget + widget + ...
+            minh = sum([i[1] for i in hints])
         else:
             # min. width: space + max(widget/label) + space + ... + space
             minw = sum([max(i[0], i[2]) for i in hints]) + len(hints) + 1
+            # min. height: highest widget
+            minh = max([i[1] for i in hints])
 
         # If a box has a label we have to add the border to the minimum space
         (decw, dech) = self._decoration_size_()
         minw += decw
         minh += dech
 
-        return (minw, minh, 0, prop)
+        if self._gfObject.has_label:
+            label_width = len(self._gfObject.label)
+        else:
+            label_width = 0
 
+        return (minw, minh, label_width, prop)
 
+
     # -------------------------------------------------------------------------
     # Set the size of a box and arrange it's children
     # -------------------------------------------------------------------------
@@ -474,13 +482,14 @@
         max_label= max([i[2] for i in self._hints_.values()])
 
         if self.vertical:
-            add = max_label <> 0 and (max_label + 1) or 0
+            add = max_label != 0 and (max_label + 1) or 0
             child.left = self.left + self._horizontal_offset_() + add
             child.top = last_y + self._vertical_offset_()
 
             result = (0, cheight)
         else:
-            child.top = self.top + self._vertical_offset_() + 1
+            add = max_label != 0 and 1 or 0
+            child.top = self.top + self._vertical_offset_() + add
             child.left = last_x + self._horizontal_offset_()
 
             result = (cwidth + 1, 0)

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py	2007-04-07 17:40:15 UTC (rev 9465)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py	2007-04-07 18:22:30 UTC (rev 9466)
@@ -219,7 +219,7 @@
     def get_size_hints(self, vertical=None):
 
         label = ''
-        if self._gfObject.style != 'checkbox':
+        if self._gfObject.has_label:
             label = getattr(self._gfObject, 'label', '')
 
         # Only stretch entries if they're in a horizontal container or if they

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py	2007-04-07 17:40:15 UTC (rev 9465)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py	2007-04-07 18:22:30 UTC (rev 9466)
@@ -48,7 +48,7 @@
 
     def _decoration_size_(self):
 
-        if self._gfObject.label:
+        if self._gfObject.label and not self._gfObject.has_label:
             return (2, 2)
         else:
             return (0, 0)
@@ -57,7 +57,7 @@
 
     def _add_decoration_(self):
 
-        if self._gfObject.label:
+        if self._gfObject.label and not self._gfObject.has_label:
             attr = self._uiDriver.attr['background']
             box(self._parent, attr, self.left, self.top, self.right,
                     self.bottom, self._gfObject.label)
@@ -66,7 +66,7 @@
 
     def _vertical_offset_(self):
 
-        if self._gfObject.label:
+        if self._gfObject.label and not self._gfObject.has_label:
             return 1
         else:
             return 0
@@ -75,7 +75,7 @@
 
     def _horizontal_offset_(self):
 
-        if self._gfObject.label:
+        if self._gfObject.label and not self._gfObject.has_label:
             return 2
         else:
             return 0
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.