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.