commit-gnue
[Top][All Lists]
Advanced

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

r6055 - in trunk/gnue-forms/src: . uidrivers/_base uidrivers/gtk2 uidriv


From: johannes
Subject: r6055 - in trunk/gnue-forms/src: . uidrivers/_base uidrivers/gtk2 uidrivers/gtk2/widgets/form
Date: Fri, 23 Jul 2004 10:39:45 -0500 (CDT)

Author: johannes
Date: 2004-07-23 10:39:43 -0500 (Fri, 23 Jul 2004)
New Revision: 6055

Modified:
   trunk/gnue-forms/src/GFKeyMapper.py
   trunk/gnue-forms/src/uidrivers/_base/UserActions.py
   trunk/gnue-forms/src/uidrivers/gtk2/MenuBar.py
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py
Log:
Display accelerators (hotkeys) properly in the menu (right-aligned)


Modified: trunk/gnue-forms/src/GFKeyMapper.py
===================================================================
--- trunk/gnue-forms/src/GFKeyMapper.py 2004-07-23 13:05:15 UTC (rev 6054)
+++ trunk/gnue-forms/src/GFKeyMapper.py 2004-07-23 15:39:43 UTC (rev 6055)
@@ -152,6 +152,17 @@
     return None
 
 
+  # ---------------------------------------------------------------------------
+  # Return a keystroke assigned to a given event using the UI keymap
+  # ---------------------------------------------------------------------------
+
+  def getUIEventKeyStroke (self, event):
+    for (key, value) in self._translatedUserKeyMap.items ():
+      if value == event and key [0] >= 0:
+        return key
+    return None
+
+
   #
   # Same as getEventKeystroke except that
   # a text representation is return ('F1')
@@ -178,6 +189,7 @@
      return "%s%s" % (rv, metamappings.get(v,v))
 
 
+
   #
   # Translate a keystroke into an event.
   # (keystroke is the UI-specific keystroke,

Modified: trunk/gnue-forms/src/uidrivers/_base/UserActions.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/_base/UserActions.py 2004-07-23 13:05:15 UTC 
(rev 6054)
+++ trunk/gnue-forms/src/uidrivers/_base/UserActions.py 2004-07-23 15:39:43 UTC 
(rev 6055)
@@ -77,6 +77,8 @@
     return GFKeyMapper.KeyMapper.getEventKeystrokeRepr(self.event,
         metamappings=m, separator=separator)
 
+  def getHotKeyTuple (self):
+    return GFKeyMapper.KeyMapper.getUIEventKeyStroke (self.event)
 
 
 ######################################################################

Modified: trunk/gnue-forms/src/uidrivers/gtk2/MenuBar.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/MenuBar.py      2004-07-23 13:05:15 UTC 
(rev 6054)
+++ trunk/gnue-forms/src/uidrivers/gtk2/MenuBar.py      2004-07-23 15:39:43 UTC 
(rev 6055)
@@ -79,16 +79,22 @@
 
   def addAction (self, name, parent, userAction):
     label   = name
-    hotkey  = userAction.getHotKeyText ()
+    hotkey  = userAction.getHotKeyTuple ()
     iconloc = userAction.getIconLocation (size = "16x16")
 
-    # TODO: We need to create an accelerator group on the toplevel window and
-    #       request the GFKeyMapper to split the key into it's parts
-    if hotkey:
-      label = "%s\t\t%s" % (label, hotkey)
-
     item = gtk.ImageMenuItem (self.correctLabel (label))
 
+    if hotkey is not None:
+      (base, shift, ctrl, meta) = hotkey
+      mod = 0
+      if shift: mod = mod | gtk.gdk.SHIFT_MASK
+      if ctrl:  mod = mod | gtk.gdk.CONTROL_MASK
+      if meta:  mod = mod | gtk.gdk.MOD1_MASK
+
+      item.add_accelerator ('activate', self.container.accelGroup, base, mod,
+                            gtk.ACCEL_VISIBLE)
+
+
     parent.add (item)
 
     item.connect ('activate', self._menuHandler, userAction)

Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py  2004-07-23 
13:05:15 UTC (rev 6054)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py  2004-07-23 
15:39:43 UTC (rev 6055)
@@ -102,6 +102,8 @@
 
           
     self.mainWindow.connect ('delete_event', self.windowExitEvent)
+    self.accelGroup = gtk.AccelGroup ()
+    self.mainWindow.add_accel_group (self.accelGroup)
 
     title = "%s" % self._form.title
     self.mainWindow.set_title (self._makeSafe (title))





reply via email to

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