[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9517 - in trunk/gnue-forms/src/uidrivers/curses: . widgets,
reinhard <=