commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: [gnue] r9517 - in trunk/gnue-forms/src/uidrivers/curses: . widgets
Date: Wed, 25 Apr 2007 14:54:54 -0500 (CDT)

Author: reinhard
Date: 2007-04-25 14:54:54 -0500 (Wed, 25 Apr 2007)
New Revision: 9517

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/menuitem.py
Log:
Generate function key bar from menu.


Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2007-04-25 14:31:12 UTC 
(rev 9516)
+++ trunk/gnue-forms/src/uidrivers/curses/UIdriver.py   2007-04-25 19:54:54 UTC 
(rev 9517)
@@ -104,25 +104,6 @@
                                   'NEXTPAGE': 'PAGEDOWN',
                                   'PREVPAGE': 'PAGEUP'})
 
-        # Find out all functions mapped to function keys
-                                        # Both hold [eventname, enabled] pairs:
-        self.__events_fkey = {}             #  by curses keycode
-        self.__events_name = {}             #  by event name
-        for fkey in range(curses.KEY_F1, curses.KEY_F20):
-            if self.__shiftkeys.has_key(fkey):
-                (key, shift, ctrl, meta) = self.__shiftkeys[fkey]
-            else:
-                (key, shift, ctrl, meta) = (fkey, False, False, False)
-
-            (name, args) = KeyMapper.getEvent(key, shift, ctrl, meta)
-            if name:
-                event = [name, False]
-                self.__events_fkey[fkey] = event
-                self.__events_name[name] = event
-                self.registerEventListeners ({'can' + name: self.__canEvent,
-                                          'cannot' + name: self.__cannotEvent})
-
-
     # -------------------------------------------------------------------------
     # Activate the given form
     # -------------------------------------------------------------------------
@@ -419,47 +400,3 @@
                 break
 
         return result
-
-
-    # -------------------------------------------------------------------------
-    # Helper method for forms to get active function keys
-    # -------------------------------------------------------------------------
-
-    # Remember what events are enabled/disabled
-    def __canEvent(self, event):
-        name = event.__event__[3:]
-        if self.__events_name.has_key(name):
-            self.__events_name[name][1] = True
-
-    def __cannotEvent(self, event):
-        name = event.__event__[6:]
-        if self.__events_name.has_key(name):
-            self.__events_name[name][1] = False
-
-    # Texts to display in function key bar
-    __functionText = {
-        'COMMIT':        u_("Save"),
-        'ROLLBACK':      u_("Revert"),
-        'NEWRECORD':     u_("Insert"),
-        'MARKFORDELETE': u_("Delete"),
-        'ENTERQUERY':    u_("Query"),
-        'EXECQUERY':     u_("Execute"),
-        'CANCELQUERY':   u_("Cancel"),
-        'EXIT':          u_("Exit"),
-    }
-
-    # Now the real function
-    def getFunctionKeyLine(self):
-
-        keys = []
-        for fkey in range(curses.KEY_F1, curses.KEY_F20):
-            if self.__events_fkey.has_key(fkey):
-                (name, active) = self.__events_fkey[fkey]
-                if active and self.__functionText.has_key(name):
-                    keys.append(KeyMapper.getEventKeystrokeRepr(name) + "=" + \
-                               self.__functionText[name])
-        if not self.__events_name.has_key('EXIT'):
-            name = "EXIT"                     # Always show shortcut for Exit
-            keys.append(KeyMapper.getEventKeystrokeRepr(name) + "=" + \
-                       self.__functionText[name])
-        return ' '.join(keys)

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/form.py       2007-04-25 
14:31:12 UTC (rev 9516)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/form.py       2007-04-25 
19:54:54 UTC (rev 9517)
@@ -392,17 +392,33 @@
             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.refresh(y - 2, 0, y - 2, 0, y - 1, x)
 
-            self.__window.addstr(y-1, 0, 
o(self._uiDriver.getFunctionKeyLine()))
-            self.__window.clrtoeol()
-
-            self.__window.refresh(y - 2, 0, y - 2, 0, y, x)
-
         except curses.error:
             pass
 
     # -------------------------------------------------------------------------
+
+    def update_fkey_bar(self):
+
+        if not self.ready():
+            return
+
+        (y, x) = self.__window.getmaxyx()
+
+        self.__window.bkgdset(' ', self._uiDriver.attr['fkeys'])
+
+        text = []
+        for key in range(curses.KEY_F1, curses.KEY_F13):
+            menuitem = self.__hotkeys.get(key)
+            if menuitem is not None and menuitem.is_enabled:
+                text.append(menuitem.hotkey + "=" + menuitem._gfObject.label)
+
+        self.__window.addstr(y-1, 0, o(' '.join(text)))
+        self.__window.clrtoeol()
+        self.__window.refresh(y - 1, 0, y - 1, 0, y, x)
+
+    # -------------------------------------------------------------------------
     # Close the form
     # -------------------------------------------------------------------------
 
@@ -438,6 +454,7 @@
         try:
             self.__update_page_list()
             self.__update_status_bar()
+            self.update_fkey_bar()
 
         except curses.error:
             pass

Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/menuitem.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/menuitem.py   2007-04-25 
14:31:12 UTC (rev 9516)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/menuitem.py   2007-04-25 
19:54:54 UTC (rev 9517)
@@ -102,6 +102,7 @@
     def _ui_enable_(self):
         
         self.is_enabled = True
+        self._uiForm.update_fkey_bar()
         return
 
     # -------------------------------------------------------------------------
@@ -109,6 +110,7 @@
     def _ui_disable_(self):
 
         self.is_enabled = False
+        self._uiForm.update_fkey_bar()
         return
 
 





reply via email to

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