commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r9384 - in trunk/gnue-forms/src/uidrivers/curses: . widgets


From: johannes
Subject: [gnue] r9384 - in trunk/gnue-forms/src/uidrivers/curses: . widgets
Date: Wed, 14 Feb 2007 08:20:41 -0600 (CST)

Author: johannes
Date: 2007-02-14 08:20:41 -0600 (Wed, 14 Feb 2007)
New Revision: 9384

Modified:
   trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/menu.py
   trunk/gnue-forms/src/uidrivers/curses/widgets/menuitem.py
Log:
Added support for enabled/disabled menu items


Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2007-02-14 13:36:51 UTC 
(rev 9383)
+++ trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2007-02-14 14:20:41 UTC 
(rev 9384)
@@ -76,7 +76,7 @@
         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['disabled']    = curses.color_pair(5) + curses.A_BOLD
         self.attr['status']      = curses.color_pair(7)
         self.attr['fkeys']       = curses.color_pair(4)
         self.attr['infomsg']     = curses.color_pair(8) + curses.A_BOLD
@@ -84,6 +84,7 @@
         self.attr['errormsg']    = curses.color_pair(9) + curses.A_BOLD \
                                                         + curses.A_BLINK
         self.attr['window 1']    = curses.color_pair(5)
+        self.attr['focusdisabled'] = curses.color_pair(6)
 
         self.__current_form = None
 

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/menu.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/menu.py       2007-02-14 
13:36:51 UTC (rev 9383)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/menu.py       2007-02-14 
14:20:41 UTC (rev 9384)
@@ -56,6 +56,7 @@
             if isinstance (event.container, UIMenu):
                 event.container.add_subitem(self)
 
+        self.is_enabled = True
         self._container = self
         self.__menu_items = []
 
@@ -204,8 +205,9 @@
         self.__window.keypad(1)
         self.__window.box()
 
-        self.__normal = self._uiDriver.attr['window 1']
+        self.__normal = self._uiDriver.attr['entry']
         self.__reverse = self._uiDriver.attr['focusentry']
+        self.__disabled = self._uiDriver.attr['disabled']
 
         count = self.height - 2
         data = self.__data[self.offset:self.offset+count]
@@ -213,9 +215,17 @@
             data.extend([''] * (count - len(data)))
 
         for row, value in enumerate(data):
-            attr = self.__normal
+            mitem = self.__menu_items[self.offset+row]
+            if mitem.is_enabled:
+                attr = self.__normal
+            else:
+                attr = self.__disabled
+
             if highlight and row == self.display:
-                attr = self.__reverse
+                if mitem.is_enabled:
+                    attr = self.__reverse
+                else:
+                    attr = self._uiDriver.attr['focusdisabled']
 
             if isinstance(value, basestring):
                 text = value.ljust(self.width - 2)[:self.width - 2]
@@ -268,8 +278,8 @@
                     elif key != curses.KEY_RIGHT:
                         # Don't fire an event on separators
                         if current._gfObject.label is not None:
-                            current._event_fire()
-                            break
+                            if current._event_fire():
+                                break
 
                 elif key == curses.KEY_LEFT:
                     result = False

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/menuitem.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/menuitem.py   2007-02-14 
13:36:51 UTC (rev 9383)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/menuitem.py   2007-02-14 
14:20:41 UTC (rev 9384)
@@ -47,6 +47,7 @@
         self.hotkey = self._gfObject.hotkey
         self.check = (self._gfObject.action_off is not None)
         self.is_checked = False
+        self.is_enabled = True
 
         if self._gfObject.label is not None:
             if self.hotkey is not None and self.hotkey in _HOTKEYS:
@@ -69,10 +70,15 @@
         Call the action bound to this menu item
         """
 
-        if self._gfObject.label is not None:
+        if self.is_enabled and self._gfObject.label is not None:
             self._gfObject._event_fire()
+            result = True
+        else:
+            result = False
 
+        return result
 
+
     # -------------------------------------------------------------------------
     # Check/uncheck menu item
     # -------------------------------------------------------------------------
@@ -94,13 +100,15 @@
     # -------------------------------------------------------------------------
 
     def _ui_enable_(self):
-        # TODO: need implementation
+        
+        self.is_enabled = True
         return
 
     # -------------------------------------------------------------------------
 
     def _ui_disable_(self):
-        # TODO: need implmementation
+
+        self.is_enabled = False
         return
 
 





reply via email to

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