[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9180 - trunk/gnue-forms/src/uidrivers/curses/widgets
From: |
johannes |
Subject: |
[gnue] r9180 - trunk/gnue-forms/src/uidrivers/curses/widgets |
Date: |
Wed, 20 Dec 2006 02:09:41 -0600 (CST) |
Author: johannes
Date: 2006-12-20 02:09:40 -0600 (Wed, 20 Dec 2006)
New Revision: 9180
Modified:
trunk/gnue-forms/src/uidrivers/curses/widgets/grid.py
Log:
Grid get additional rows as the get more space available to the control
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/grid.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/grid.py 2006-12-19
15:54:55 UTC (rev 9179)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/grid.py 2006-12-20
08:09:40 UTC (rev 9180)
@@ -83,10 +83,18 @@
self.height = height
# The header rows are not available to the grid's children
- i_height = height - len(self._children)
+ i_height = num_recs = height - len(self._children)
self._repaint_()
+ if num_recs > self.__visible:
+ self.__add_new_records(num_recs - self.__visible)
+ self._gfObject._event_rows_changed(self.__visible)
+
+ elif num_recs < self.__visible:
+ self.__hide_records(self.__visible - num_recs)
+ self._gfObject._event_rows_changed(self.__visible)
+
for (row, child) in enumerate(self._children):
child.left = self.left
child.top = self.top + row
@@ -121,6 +129,53 @@
self._uiDriver.attr['background'])
+ # -------------------------------------------------------------------------
+ # Add new rows to the grid
+ # -------------------------------------------------------------------------
+
+ def __add_new_records(self, num_recs):
+
+ for index in range(num_recs):
+ record = self.__visible + index
+ if record >= self.__max:
+ self.walk(self.__child_add_walker, record)
+ self.__max += 1
+ else:
+ self.__change_visibility(record, True)
+
+ self.__visible += num_recs
+
+
+ # -------------------------------------------------------------------------
+ # Create all child widgets for a new row
+ # -------------------------------------------------------------------------
+
+ def __child_add_walker(self, item, spacer):
+
+ if item != self:
+ widget = item.create_widget(item._creationEvent, spacer)
+ item.widgets.append(widget)
+
+
+ # -------------------------------------------------------------------------
+ # Show or hide grid lines
+ # -------------------------------------------------------------------------
+
+ def __change_visibility(self, record, state):
+ pass
+
+
+ # -------------------------------------------------------------------------
+ # Hide a given number of rows
+ # -------------------------------------------------------------------------
+
+ def __hide_records(self, num_recs):
+
+ for index in range(num_recs):
+ self.__change_visibility(self.__visible-1, False)
+ self.__visible -= 1
+
+
# =============================================================================
# Configuration data
# =============================================================================
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9180 - trunk/gnue-forms/src/uidrivers/curses/widgets,
johannes <=