commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r5977 - in trunk/gnue-forms/src/uidrivers/curses: . widgets


From: reinhard
Subject: r5977 - in trunk/gnue-forms/src/uidrivers/curses: . widgets
Date: Wed, 14 Jul 2004 15:45:43 -0500 (CDT)

Author: reinhard
Date: 2004-07-14 15:45:42 -0500 (Wed, 14 Jul 2004)
New Revision: 5977

Modified:
   trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/page.py
Log:
A little more work on curses driver.


Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2004-07-14 10:01:08 UTC 
(rev 5976)
+++ trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2004-07-14 20:45:42 UTC 
(rev 5977)
@@ -46,6 +46,7 @@
     curses.init_pair (1, curses.COLOR_WHITE, curses.COLOR_BLUE)
     curses.init_pair (2, curses.COLOR_WHITE, curses.COLOR_CYAN)
     curses.init_pair (3, curses.COLOR_WHITE, curses.COLOR_RED)
+    curses.init_pair (4, curses.COLOR_WHITE, curses.COLOR_GREEN)
     self.__exiting = False
 
   # ---------------------------------------------------------------------------

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/form.py       2004-07-14 
10:01:08 UTC (rev 5976)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/form.py       2004-07-14 
20:45:42 UTC (rev 5977)
@@ -42,6 +42,7 @@
 
     (x, y) = event.interface.screenSize ()
     self.__window = curses.newpad (y, x)
+    self.__window.bkgd (' ', curses.color_pair (4))
 
   # ---------------------------------------------------------------------------
   # Set status bar
@@ -55,10 +56,11 @@
   # Add a page to the form
   # ---------------------------------------------------------------------------
 
-  def addPage (self, page):
-    self.__pages.append (page)
+  def addPage (self, page, caption):
+    self.__pages.append ((page, caption))
     if not self.__currentPage:
       self.__currentPage = page
+    self.__updatePageList ()
 
   # ---------------------------------------------------------------------------
   # Update screen and wait for user input
@@ -76,6 +78,25 @@
     (y, x) = self.__window.getmaxyx ()
     return (0, 2, x, y - 2)
 
+  # ---------------------------------------------------------------------------
+  # Update page list
+  # ---------------------------------------------------------------------------
+
+  def __updatePageList (self):
+
+    self.__window.move (1, 0)
+
+    for (page, caption) in self.__pages:
+      self.__window.addstr (' ')
+      if page == self.__currentPage:
+        self.__window.addstr ('[' + o(caption) + ']',
+                              curses.color_pair (1) + curses.A_BOLD)
+      else:
+        self.__window.addstr ('[' + o(caption) + ']', curses.A_BOLD)
+
+    (y, x) = self.__window.getmaxyx ()
+    self.__window.refresh (1, 0, 1, 0, 1, x)
+
 # =============================================================================
 # Configuration data
 # =============================================================================

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/page.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/page.py       2004-07-14 
10:01:08 UTC (rev 5976)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/page.py       2004-07-14 
20:45:42 UTC (rev 5977)
@@ -37,8 +37,13 @@
 
   def createWidget (self, event, spacer):
 
-    event.parent.addPage (self)
+    if hasattr (event.object, 'caption'):
+      caption = event.object.caption
+    else:
+      caption = event.object.name
 
+    event.parent.addPage (self, caption)
+
     (self.__x1, self.__y1, self.__x2, self.__y2) = event.parent.getCanvas ()
 
     self.__window = curses.newpad (self.__y2 - self.__y1, self.__x2 - 
self.__x1)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]