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 _______________________________________________ commit-gnue mailing list commit-gnue@gnu.org http://lists.gnu.org/mailman/listinfo/commit-gnue