[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9121 - trunk/gnue-forms/src/uidrivers/curses/widgets
From: |
johannes |
Subject: |
[gnue] r9121 - trunk/gnue-forms/src/uidrivers/curses/widgets |
Date: |
Thu, 7 Dec 2006 08:32:32 -0600 (CST) |
Author: johannes
Date: 2006-12-07 08:32:31 -0600 (Thu, 07 Dec 2006)
New Revision: 9121
Modified:
trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
trunk/gnue-forms/src/uidrivers/curses/widgets/box.py
trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py
trunk/gnue-forms/src/uidrivers/curses/widgets/page.py
trunk/gnue-forms/src/uidrivers/curses/widgets/vbox.py
Log:
Focus the current entry after building the layout, rearranged box-code
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py 2006-12-07
09:38:12 UTC (rev 9120)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py 2006-12-07
14:32:31 UTC (rev 9121)
@@ -25,7 +25,7 @@
from gnue.forms.uidrivers._base.widgets._base import UIWidget
-__all__ = ['UIHelper']
+__all__ = ['UIHelper', 'box']
# =============================================================================
# Widget helper class
@@ -144,6 +144,35 @@
def set_size_and_fit(self, width, height):
"""
+ Set the size (width and height) of a widget.
"""
+
self.width = width
self.height = height
+
+
+# =============================================================================
+# Draw a box on a given parent
+# =============================================================================
+
+def box(parent, attr, left, top, right, bottom, label=None):
+ """
+ Draw a box with the given bounds on a parent (page) having an optional
+ label. The parent must implement a putchar method
+ """
+
+ for pos in range(left+1, right):
+ parent.putchar(pos, top, curses.ACS_HLINE, attr)
+ parent.putchar(pos, bottom, curses.ACS_HLINE, attr)
+
+ for line in range(top+1, bottom):
+ parent.putchar(left, line, curses.ACS_VLINE, attr)
+ parent.putchar(right, line, curses.ACS_VLINE, attr)
+
+ parent.putchar(left, top, curses.ACS_ULCORNER, attr)
+ parent.putchar(right, top, curses.ACS_URCORNER, attr)
+ parent.putchar(left, bottom, curses.ACS_LLCORNER, attr)
+ parent.putchar(right, bottom, curses.ACS_LRCORNER, attr)
+
+ if label is not None:
+ parent.write(left+2, top, label, attr)
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/box.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/box.py 2006-12-07
09:38:12 UTC (rev 9120)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/box.py 2006-12-07
14:32:31 UTC (rev 9121)
@@ -23,7 +23,7 @@
import curses
-from _base import UIHelper
+from _base import UIHelper, box
__all__ = ['UIBox']
@@ -41,30 +41,15 @@
self.width = width
self.height = height
+ right = self.left + width - 1
+ bottom = self.top + height - 1
attr = self._uiDriver.attr['background']
- for pos in range(self.left+1, self.left+self.width-1):
- self._parent.putchar(pos, self.top, curses.ACS_HLINE, attr)
- self._parent.putchar(pos, self.top+self.height-1, curses.ACS_HLINE,
- attr)
+ box(self._parent, attr, self.left, self.top, right, bottom,
+ self._gfObject.label)
- for line in range(self.top+1, self.top+self.height-1):
- self._parent.putchar(self.left, line, curses.ACS_VLINE, attr)
- self._parent.putchar(self.left+self.width-1, line,
- curses.ACS_VLINE, attr)
- self._parent.putchar(self.left, self.top, curses.ACS_ULCORNER, attr)
- self._parent.putchar(self.left+self.width-1, self.top,
- curses.ACS_URCORNER, attr)
- self._parent.putchar(self.left, self.top+self.height-1,
- curses.ACS_LLCORNER, attr)
- self._parent.putchar(self.left+self.width-1, self.top+self.height-1,
- curses.ACS_LRCORNER, attr)
-
- self._parent.write(self.left+2, self.top, self._gfObject.label, attr)
-
-
# =============================================================================
# Configuration data
# =============================================================================
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2006-12-07
09:38:12 UTC (rev 9120)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2006-12-07
14:32:31 UTC (rev 9121)
@@ -463,6 +463,7 @@
(x, y) = self.__cursor
self._parent.move(self.left + x, self.top + self.__focusIndex + y)
+
def set_size_and_fit(self, width, height):
self.width = width
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2006-12-07
09:38:12 UTC (rev 9120)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2006-12-07
14:32:31 UTC (rev 9121)
@@ -298,6 +298,7 @@
self.__update_page_list()
self.__update_status_bar()
+ self._uiDriver._focus_widget._ui_set_focus_(0)
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py 2006-12-07
09:38:12 UTC (rev 9120)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/hbox.py 2006-12-07
14:32:31 UTC (rev 9121)
@@ -23,7 +23,7 @@
import curses
-from _base import UIHelper
+from _base import UIHelper, box
__all__ = ['UIHBox']
@@ -50,23 +50,8 @@
attr = self._uiDriver.attr['background']
if self._gfObject.label:
- for pos in range(self.left+1, right):
- self._parent.putchar(pos, self.top, curses.ACS_HLINE, attr)
- self._parent.putchar(pos, bottom, curses.ACS_HLINE, attr)
-
- for line in range(self.top+1, bottom):
- self._parent.putchar(self.left, line, curses.ACS_VLINE, attr)
- self._parent.putchar(right, line, curses.ACS_VLINE, attr)
-
- self._parent.putchar(self.left, self.top, curses.ACS_ULCORNER,
attr)
- self._parent.putchar(right, self.top, curses.ACS_URCORNER, attr)
- self._parent.putchar(self.left, bottom, curses.ACS_LLCORNER, attr)
- self._parent.putchar(right, bottom, curses.ACS_LRCORNER, attr)
-
- self._parent.write(self.left+2, self.top, self._gfObject.label,
- attr)
- # If there is a border around the box, all children have less space
- # available
+ box(self._parent, attr, self.left, self.top, right, bottom,
+ self._gfObject.label)
width -= 2
height -= 2
@@ -91,7 +76,8 @@
# used up their minimum width
available = width - needed
- gDebug(2, "Ordered: w=%s n=%s a=%s o=%s" % (width, needed, available,
ordered))
+ gDebug(2, "Ordered: w=%s n=%s a=%s o=%s" % (width, needed, available,
+ ordered))
# First assign the minimum space required to each child
sizes = {}
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/page.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/page.py 2006-12-07
09:38:12 UTC (rev 9120)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/page.py 2006-12-07
14:32:31 UTC (rev 9121)
@@ -149,7 +149,8 @@
if self.ready():
try:
- self.__window.addstr(y, x, o(text), attribute)
+ if isinstance(text, basestring):
+ self.__window.addstr(y, x, o(text), attribute)
except curses.error:
pass
@@ -172,6 +173,7 @@
def move(self, x, y):
+ gDebug(2, "MOVE to %s/%s" % (x, y))
self.__cursor = (x, y)
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/vbox.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/vbox.py 2006-12-07
09:38:12 UTC (rev 9120)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/vbox.py 2006-12-07
14:32:31 UTC (rev 9121)
@@ -23,7 +23,7 @@
import curses
-from _base import UIHelper
+from _base import UIHelper, box
__all__ = ['UIVBox']
@@ -50,23 +50,8 @@
attr = self._uiDriver.attr['background']
if self._gfObject.label:
- for pos in range(self.left+1, right):
- self._parent.putchar(pos, self.top, curses.ACS_HLINE, attr)
- self._parent.putchar(pos, bottom, curses.ACS_HLINE, attr)
-
- for line in range(self.top+1, bottom):
- self._parent.putchar(self.left, line, curses.ACS_VLINE, attr)
- self._parent.putchar(right, line, curses.ACS_VLINE, attr)
-
- self._parent.putchar(self.left, self.top, curses.ACS_ULCORNER,
attr)
- self._parent.putchar(right, self.top, curses.ACS_URCORNER, attr)
- self._parent.putchar(self.left, bottom, curses.ACS_LLCORNER, attr)
- self._parent.putchar(right, bottom, curses.ACS_LRCORNER, attr)
-
- self._parent.write(self.left+2, self.top, self._gfObject.label,
- attr)
- # If there is a border around the box, all children have less space
- # available
+ box(self._parent, attr, self.left, self.top, right, bottom,
+ self._gfObject.label)
width -= 2
height -= 2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9121 - trunk/gnue-forms/src/uidrivers/curses/widgets,
johannes <=