commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: r6108 - in trunk/gnue-forms/src/uidrivers/curses: . widgets
Date: Thu, 29 Jul 2004 18:04:44 -0500 (CDT)

Author: reinhard
Date: 2004-07-29 18:04:43 -0500 (Thu, 29 Jul 2004)
New Revision: 6108

Modified:
   trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/button.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/label.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/page.py
Log:
Playing with colors.


Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2004-07-29 22:51:41 UTC 
(rev 6107)
+++ trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2004-07-29 23:04:43 UTC 
(rev 6108)
@@ -48,20 +48,31 @@
     self.__screen = curses.initscr ()
     curses.raw ()
     curses.start_color ()
-    # Color pairs:
-    # 1 = form background
-    # 2 = non-focused entry
-    # 3 = focused entry
-    # 4 = title and status bar
-    # 5 = info message and question
-    # 6 = warning and error message
+
     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_BLACK)
-    curses.init_pair (5, curses.COLOR_WHITE, curses.COLOR_MAGENTA)
+    curses.init_pair (2, curses.COLOR_BLACK, curses.COLOR_WHITE)
+    curses.init_pair (3, curses.COLOR_BLACK, curses.COLOR_CYAN)
+    curses.init_pair (4, curses.COLOR_BLACK, curses.COLOR_WHITE)
+    curses.init_pair (5, curses.COLOR_BLACK, curses.COLOR_CYAN)
     curses.init_pair (6, curses.COLOR_WHITE, curses.COLOR_RED)
+    curses.init_pair (7, curses.COLOR_WHITE, curses.COLOR_BLUE)
+    curses.init_pair (8, curses.COLOR_WHITE, curses.COLOR_YELLOW)
+    curses.init_pair (9, curses.COLOR_WHITE, curses.COLOR_RED)
 
+    self.attr = {}
+    self.attr ['title']       = curses.color_pair (1)
+    self.attr ['page']        = curses.color_pair (2)
+    self.attr ['currentpage'] = curses.color_pair (3)
+    self.attr ['background']  = curses.color_pair (4)
+    self.attr ['entry']       = curses.color_pair (5)
+    self.attr ['focusentry']  = curses.color_pair (6) + curses.A_BOLD
+    self.attr ['disabled']    = curses.color_pair (5)
+    self.attr ['status']      = curses.color_pair (7)
+    self.attr ['fkeys']       = curses.color_pair (4)
+    self.attr ['infomsg']     = curses.color_pair (8) + curses.A_BOLD
+    self.attr ['warnmsg']     = curses.color_pair (9) + curses.A_BOLD
+    self.attr ['errormsg']    = curses.color_pair (9) + curses.A_BOLD + 
curses.A_BLINK
+
     self.__exiting = False
 
     # This should go into the base driver:

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py      2004-07-29 
22:51:41 UTC (rev 6107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py      2004-07-29 
23:04:43 UTC (rev 6108)
@@ -85,16 +85,16 @@
   # Set text for widget
   # ---------------------------------------------------------------------------
 
-  def _setText (self, index, text, color, attr, selection = None):
+  def _setText (self, index, text, attr, selection = None):
 
     if selection:
       (s1, s2) = selection
-      self._parent.write (self._x, self._y + index, text[:s1], color, attr)
-      self._parent.write (self._x + s1, self._y + index, text[s1:s2], color,
+      self._parent.write (self._x, self._y + index, text[:s1], attr)
+      self._parent.write (self._x + s1, self._y + index, text[s1:s2],
                           attr + curses.A_STANDOUT)
-      self._parent.write (self._x + s2, self._y + index, text[s2:], color, 
attr)
+      self._parent.write (self._x + s2, self._y + index, text[s2:], attr)
     else:
-      self._parent.write (self._x, self._y + index, text, color, attr)
+      self._parent.write (self._x, self._y + index, text, attr)
 
   # ---------------------------------------------------------------------------
   # Set cursor position for widget

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/button.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/button.py     2004-07-29 
22:51:41 UTC (rev 6107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/button.py     2004-07-29 
23:04:43 UTC (rev 6108)
@@ -78,14 +78,12 @@
   def __repaint (self, index):
 
     if index == self._focusIndex:
-      color = 3
+      attr = self._uiDriver.attr ['focusentry']
     else:
-      color = 2
+      attr = self._uiDriver.attr ['entry']
 
-    attr = curses.A_BOLD
+    self._setText (index, self.__text, attr)
 
-    self._setText (index, self.__text, color, attr)
-
 # =============================================================================
 # Configuration data
 # =============================================================================

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py      2004-07-29 
22:51:41 UTC (rev 6107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py      2004-07-29 
23:04:43 UTC (rev 6108)
@@ -131,19 +131,16 @@
         text = '[ ]'
 
     if self.__style == 'label':
-      color = 1
+      attr = self._uiDriver.attr ['background']
+    elif not self.__enabled [index]:
+      attr = self._uiDriver.attr ['disabled']
     elif index == self._focusIndex:
-      color = 3
+      attr = self._uiDriver.attr ['focusentry']
     else:
-      color = 2
+      attr = self._uiDriver.attr ['entry']
 
-    if self.__enabled [index]:
-      attr = curses.A_BOLD
-    else:
-      attr = curses.A_DIM
+    self._setText (index, text, attr, self.__selection [index])
 
-    self._setText (index, text, color, attr, self.__selection [index])
-
 # =============================================================================
 # Configuration data
 # =============================================================================

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/form.py       2004-07-29 
22:51:41 UTC (rev 6107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/form.py       2004-07-29 
23:04:43 UTC (rev 6108)
@@ -60,7 +60,6 @@
 
     (x, y) = event.interface.screenSize ()
     self.__window = curses.newpad (y, x)
-    self.__window.bkgd (' ', curses.color_pair (4))
 
     self.setTitle (event.object.title)
 
@@ -73,12 +72,12 @@
     (y, x) = self.__window.getmaxyx ()
 
     text = ' ' * ((x - len (title)) / 2) + title
-    text += ' ' * (x - len (text))
 
-    self.__window.addstr (0, 0, o(text), curses.A_BOLD)
+    self.__window.bkgdset (' ', self._uiDriver.attr ['title'])
+    self.__window.addstr (0, 0, o(text))
+    self.__window.clrtoeol ()
+    self.__window.refresh (0, 0, 0, 0, 0, x)
 
-    self.__window.refresh (0, 0, 0, 0, 1, x)
-
   # ---------------------------------------------------------------------------
   # Set status bar
   # ---------------------------------------------------------------------------
@@ -106,11 +105,10 @@
 
     if message:
       (y, x) = self.__window.getmaxyx ()
-      self.__window.move (y - 2, 0)
-      self.__window.clrtobot ()
-      self.__window.addstr (y - 2, 1, message,
-                            curses.color_pair (5) + curses.A_BOLD)
-      self.__window.refresh (y - 2, 0, y - 2, 0, y, x)
+      self.__window.bkgdset (' ', self._uiDriver.attr ['status'])
+      self.__window.addstr (y - 2, 0, message)
+      self.__window.clrtoeol ()
+      self.__window.refresh (y - 2, 0, y - 2, 0, y - 2, x)
     else:
       self.__updateStatusBar ()
 
@@ -147,27 +145,30 @@
   def showMessage (self, message, kind, cancel):
 
     attr = {
-      'Question': curses.color_pair (5) + curses.A_BOLD,
-      'Info':     curses.color_pair (5) + curses.A_BOLD,
-      'Warning':  curses.color_pair (6) + curses.A_BOLD,
-      'Error':    curses.color_pair (6) + curses.A_BOLD + curses.A_BLINK
+      'Question': self._uiDriver.attr ['infomsg'],
+      'Info':     self._uiDriver.attr ['infomsg'],
+      'Warning':  self._uiDriver.attr ['warnmsg'],
+      'Error':    self._uiDriver.attr ['errormsg']
     }
 
     yes = _("Yes")
     no  = _("No")
     ok  = _("Ok")
 
+    self.__window.bkgdset (' ', attr [kind])
+
     (y, x) = self.__window.getmaxyx ()
+
     self.__window.move (y - 2, 0)
     self.__window.clrtobot ()
 
-    self.__window.addstr (y - 2, 1, message, attr [kind])
+    self.__window.addstr (y - 2, 1, message)
 
     if kind == 'Question':
       self.__window.addstr (y - 1, 1, '(' + yes [:1] + ')' + yes [1:] + '/' + \
                                       '(' + no  [:1] + ')' + no  [1:] + ' ? ')
     else:
-      self.__window.addstr (y - 1, 1, '[' + ok + ']', attr [kind])
+      self.__window.addstr (y - 1, 1, '[' + ok + ']')
       self.__window.move (y - 1, 2)
 
     if kind == 'Question':
@@ -206,16 +207,19 @@
 
   def __updatePageList (self):
 
+    self.__window.bkgdset (' ', self._uiDriver.attr ['page'])
     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)
+                              self._uiDriver.attr ['currentpage'])
       else:
-        self.__window.addstr ('[' + o(caption) + ']', curses.A_BOLD)
+        self.__window.addstr ('[' + o(caption) + ']')
+      # self.__window.addstr (' ')
 
+    self.__window.clrtoeol ()
+
     (y, x) = self.__window.getmaxyx ()
     self.__window.refresh (1, 0, 1, 0, 1, x)
 
@@ -226,27 +230,29 @@
   def __updateStatusBar (self):
 
     (y, x) = self.__window.getmaxyx ()
-    self.__window.move (y - 2, 0)
-    self.__window.clrtobot ()
+    self.__window.bkgdset (' ', self._uiDriver.attr ['status'])
 
-    attr = curses.color_pair (5) + curses.A_BOLD
-
     tip = ('%-' + str (x - 25) + 's') % self.__tip
 
     recstr = '%d/%d' % (self.__curRec, self.__maxRec)
     pagestr = '%d/%d' % (self.__curPage, self.__maxPage)
 
-    self.__window.addstr (y - 2, 0,      '%s'   % tip,           attr)
-    self.__window.addstr (y - 2, x - 24, '%-4s' % self.__status, attr)
-    self.__window.addstr (y - 2, x - 19, '%-3s' % self.__insert, attr)
-    self.__window.addstr (y - 2, x - 15, '%-9s' % recstr,        attr)
-    self.__window.addstr (y - 2, x -  5, '%-5s' % pagestr,       attr)
+    self.__window.addstr (y - 2, 0,      '%s'   % tip)
+    self.__window.addstr (y - 2, x - 24, '%-4s' % self.__status)
+    self.__window.addstr (y - 2, x - 19, '%-3s' % self.__insert)
+    self.__window.addstr (y - 2, x - 15, '%-9s' % recstr)
+    self.__window.addstr (y - 2, x -  5, '%-5s' % pagestr)
 
-    self.__window.addch (y - 2, x - 25, curses.ACS_VLINE, attr)
-    self.__window.addch (y - 2, x - 20, curses.ACS_VLINE, attr)
-    self.__window.addch (y - 2, x - 16, curses.ACS_VLINE, attr)
-    self.__window.addch (y - 2, x -  6, curses.ACS_VLINE, attr)
+    self.__window.addch (y - 2, x - 25, curses.ACS_VLINE)
+    self.__window.addch (y - 2, x - 20, curses.ACS_VLINE)
+    self.__window.addch (y - 2, x - 16, curses.ACS_VLINE)
+    self.__window.addch (y - 2, x -  6, curses.ACS_VLINE)
 
+    self.__window.bkgdset (' ', self._uiDriver.attr ['fkeys'])
+
+    self.__window.addstr (y-1, 0, 'F1=foo F2=bar')
+    self.__window.clrtoeol ()
+
     self.__window.refresh (y - 2, 0, y - 2, 0, y, x)
 
 # =============================================================================

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/label.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/label.py      2004-07-29 
22:51:41 UTC (rev 6107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/label.py      2004-07-29 
23:04:43 UTC (rev 6108)
@@ -33,7 +33,8 @@
 
   def _init (self, index):
 
-    self._setText (index, self._gfObject.text, 1, curses.A_BOLD)
+    self._setText (index, self._gfObject.text,
+                   self._uiDriver.attr ['background'])
 
 # =============================================================================
 # Configuration data

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/page.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/page.py       2004-07-29 
22:51:41 UTC (rev 6107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/page.py       2004-07-29 
23:04:43 UTC (rev 6108)
@@ -19,7 +19,7 @@
 # write to the Free Software Foundation, Inc., 59 Temple Place
 # - Suite 330, Boston, MA 02111-1307, USA.
 #
-# $Id: $
+# $Id$
 
 import curses
 
@@ -48,16 +48,16 @@
 
     self.__window = curses.newpad (self.__y2 - self.__y1, self.__x2 - 
self.__x1)
     self.__window.keypad (True)
-    self.__window.bkgd (' ', curses.color_pair (1))
+    self.__window.bkgd (' ', self._uiDriver.attr ['background'])
     self.__cursor = (0, 0)
 
   # ---------------------------------------------------------------------------
   # Write a text to a given position
   # ---------------------------------------------------------------------------
 
-  def write (self, x, y, text, color, attribute):
+  def write (self, x, y, text, attribute):
 
-    self.__window.addstr (y, x, o(text), curses.color_pair (color) + attribute)
+    self.__window.addstr (y, x, o(text), attribute)
 
   # ---------------------------------------------------------------------------
   # Move the cursor to a given position





reply via email to

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