commit-gnue
[Top][All Lists]
Advanced

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

gnue/forms/src GFKeyMapper.py uidrivers/_base/U...


From: Jason Cater
Subject: gnue/forms/src GFKeyMapper.py uidrivers/_base/U...
Date: Mon, 03 Mar 2003 17:13:57 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    03/03/03 17:13:57

Modified files:
        forms/src      : GFKeyMapper.py 
        forms/src/uidrivers/_base: UserActions.py 
        forms/src/uidrivers/_commonGuiToolkit: MenuBar.py 

Log message:
        work on getting hotkeys displayed in the menus

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFKeyMapper.py.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/_base/UserActions.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: gnue/forms/src/GFKeyMapper.py
diff -c gnue/forms/src/GFKeyMapper.py:1.14 gnue/forms/src/GFKeyMapper.py:1.15
*** gnue/forms/src/GFKeyMapper.py:1.14  Mon Feb 17 02:32:53 2003
--- gnue/forms/src/GFKeyMapper.py       Mon Mar  3 17:13:57 2003
***************
*** 153,164 ****
    # instead of the numerical code. Useful
    # for building "Menus" or "Help Screens"
    #
!   def getEventKeystrokeRepr(self, event):
       keystroke = self.getEventKeystroke(event)
       if keystroke is None:
         return None
!      else:
!        return reverseLookup(keystroke)
  
  
    #
--- 153,176 ----
    # instead of the numerical code. Useful
    # for building "Menus" or "Help Screens"
    #
!   def getEventKeystrokeRepr(self, event, metamappings={}, separator="+"):
       keystroke = self.getEventKeystroke(event)
+ 
       if keystroke is None:
         return None
! 
!      base, shifted, ctrl, meta = keystroke
!      rv = ""
!      if ctrl:
!        rv += metamappings.get("CONTROL","Ctrl") + separator
!      if meta:
!        rv += metamappings.get("META","Alt") + separator
!      if shifted:
!        rv += metamappings.get("SHIFT","Shift") + separator
! 
!      v = reverseLookup(base)
! 
!      return "%s%s" % (rv, metamappings.get(v,v))
  
  
    #
***************
*** 171,177 ****
    # as it gets called for each keystroke
    #
    def getEvent(self, basekey, shift=0, ctrl=0, meta=0):
-     ##print "(basekey, shift, ctrl, meta)=(%s,%s,%s,%s)" % (basekey, shift, 
ctrl, meta)
      try:
        return self._translatedUserKeyMap[(basekey, shift, ctrl, meta)]
      except KeyError:
--- 183,188 ----
***************
*** 239,245 ****
  # Given a keycode value (e.g., -999), return
  # the text representation as a string (e.g., 'F1')
  #
! def reverseLookup(self, keyvalue):
  
    # This is done for efficiency of real-time lookups;
    # i.e., we don't often do reverseLookups, but a
--- 250,256 ----
  # Given a keycode value (e.g., -999), return
  # the text representation as a string (e.g., 'F1')
  #
! def reverseLookup(keyvalue):
  
    # This is done for efficiency of real-time lookups;
    # i.e., we don't often do reverseLookups, but a
***************
*** 247,254 ****
    # possible as a lookup happens each time a key is
    # pressed!
  
!   for key in vk.__dict__:
!     if vk.__dict__[key] == keyvalue:
        return key
    return None
  
--- 258,265 ----
    # possible as a lookup happens each time a key is
    # pressed!
  
!   for key in dir(vk):
!     if getattr(vk,key) == keyvalue:
        return key
    return None
  
***************
*** 281,287 ****
        (vk.DOWN,     0, 0, 0) : 'NEXTRECORD',
        (vk.UP,       0, 1, 0) : 'FIRSTRECORD',
        (vk.DOWN,     0, 1, 0) : 'LASTRECORD',
!       (vk.F2,       0, 0, 0) : 'JUMPRECORD',
        (vk.F5,       0, 0, 0) : 'MARKFORDELETE',
        (vk.F6,       0, 0, 0) : 'COMMIT',
        (vk.F8,       0, 0, 0) : 'ENTERQUERY',
--- 292,298 ----
        (vk.DOWN,     0, 0, 0) : 'NEXTRECORD',
        (vk.UP,       0, 1, 0) : 'FIRSTRECORD',
        (vk.DOWN,     0, 1, 0) : 'LASTRECORD',
!       (vk.F2,       0, 0, 0) : 'JUMPPROMPT',
        (vk.F5,       0, 0, 0) : 'MARKFORDELETE',
        (vk.F6,       0, 0, 0) : 'COMMIT',
        (vk.F8,       0, 0, 0) : 'ENTERQUERY',
Index: gnue/forms/src/uidrivers/_base/UserActions.py
diff -c gnue/forms/src/uidrivers/_base/UserActions.py:1.4 
gnue/forms/src/uidrivers/_base/UserActions.py:1.5
*** gnue/forms/src/uidrivers/_base/UserActions.py:1.4   Sat Mar  1 15:55:56 2003
--- gnue/forms/src/uidrivers/_base/UserActions.py       Mon Mar  3 17:13:57 2003
***************
*** 28,78 ****
  #
  
  from gnue.common.apps import GConfig
  import os
!         
! _iconpath = GConfig.getInstalledBase('form_images', 'common_images') 
  
  
  ######################################################################
  #
! # 
  #
  
! class UserAction: 
  
!   def __init__(self, event, description, help, canToggle=0): 
      self.event = event
      self.canToggle = canToggle
      self.__iconloc = {}
!     
      # Description is short; appropriate for mouse-over tips
!     self.description = description   
!     
      # Help is more detailed; suitable for a manual or online help
      self.help = help
  
    def getIconLocation(self, format="png",size="32x32"):
      try:
        return self.__iconloc[size + format]
!     except: 
        loc = os.path.join(_iconpath, 'forms',
            '%s-%s.%s' % (self.event.lower(),size, format))
!       if not os.path.isfile(loc): 
          loc = None
!     
        self.__iconloc[size + format] = loc
        return loc
  
!   def getHotKeyText(self, metamappings={}, separator='+'): 
!     return "Alt+T"
  
-     
  
  ######################################################################
  #
  # Build a map of the standard user actions
  #
!    
  userActionMap = {}
  
  for action in [
--- 28,85 ----
  #
  
  from gnue.common.apps import GConfig
+ from gnue.forms import GFKeyMapper
  import os
! 
! _iconpath = GConfig.getInstalledBase('form_images', 'common_images')
  
  
  ######################################################################
  #
! #
  #
  
! class UserAction:
  
!   def __init__(self, event, description, help, canToggle=0):
      self.event = event
      self.canToggle = canToggle
      self.__iconloc = {}
! 
      # Description is short; appropriate for mouse-over tips
!     self.description = description
! 
      # Help is more detailed; suitable for a manual or online help
      self.help = help
  
    def getIconLocation(self, format="png",size="32x32"):
      try:
        return self.__iconloc[size + format]
!     except:
        loc = os.path.join(_iconpath, 'forms',
            '%s-%s.%s' % (self.event.lower(),size, format))
!       if not os.path.isfile(loc):
          loc = None
! 
        self.__iconloc[size + format] = loc
        return loc
  
!   def getHotKeyText(self, metamappings={}, separator='+'):
!     if metamappings:
!       m = copy.copy(_baseKeyMap)
!       m.update(metamappings)
!     else:
!       m = _baseKeyMap
!     return GFKeyMapper.KeyMapper.getEventKeystrokeRepr(self.event,
!         metamappings=m, separator=separator)
! 
  
  
  ######################################################################
  #
  # Build a map of the standard user actions
  #
! 
  userActionMap = {}
  
  for action in [
***************
*** 191,210 ****
      UserAction(
         event="EXECQUERY",
         description=_('Perform a query and show the results.'),
!        help=_('Perform a query and show the results.') ), 
!        
      UserAction(
         event="ABOUT",
         description=_('Display info about GNUe Forms.'),
!        help=_('Display info about GNUe Forms.') ),   
  
      UserAction(
         event="HELPKEYS",
         description=_('Display the keystroke bindings currently in use.'),
!        help=_('Display the keystroke bindings currently in use.') ),   
  
    ]:
  
    userActionMap[action.event] = action
  
  
--- 198,235 ----
      UserAction(
         event="EXECQUERY",
         description=_('Perform a query and show the results.'),
!        help=_('Perform a query and show the results.') ),
! 
      UserAction(
         event="ABOUT",
         description=_('Display info about GNUe Forms.'),
!        help=_('Display info about GNUe Forms.') ),
  
      UserAction(
         event="HELPKEYS",
         description=_('Display the keystroke bindings currently in use.'),
!        help=_('Display the keystroke bindings currently in use.') ),
  
    ]:
  
    userActionMap[action.event] = action
  
  
+ _baseKeyMap = {
+   'META': 'Alt',
+   'CONTROL': 'Ctrl',
+   'SHIFT': 'Shift',
+   'INSERT': 'Ins',
+   'DELETE': 'Del',
+   'HOME': 'Home',
+   'END': 'End',
+   'PAGEUP': 'PgUp',
+   'PAGEDOWN': 'PgDn',
+   'UP': 'Up',
+   'DOWN': 'Down',
+   'LEFT': 'Left',
+   'RIGHT': 'Right',
+   'TAB': 'Tab',
+   'ENTER': 'Enter',
+   'RETURN': 'Enter',
+   'BACKSPACE': 'Back' }
Index: gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py
diff -c gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py:1.5 
gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py:1.6
*** gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py:1.5   Sat Mar  1 
15:55:57 2003
--- gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py       Mon Mar  3 
17:13:57 2003
***************
*** 31,37 ****
  from types import StringType
  
  from gnue.forms.uidrivers._base import UserActions
!   
  class MenuBar:
  
  
--- 31,37 ----
  from types import StringType
  
  from gnue.forms.uidrivers._base import UserActions
! 
  class MenuBar:
  
  
***************
*** 92,106 ****
  
        # Let specific drivers create themselves
        m = self.init()
!       
        self.__createmenu(_DEFAULT_MENU,m)
  
!               
!   def __createmenu(self, contents, parent): 
!     for item in contents: 
!       if item == None: 
          self.addSeparator(parent)
!       else: 
          name, contents = item
          if type(contents) == StringType: 
            userAction = UserActions.userActionMap[contents]
--- 92,106 ----
  
        # Let specific drivers create themselves
        m = self.init()
! 
        self.__createmenu(_DEFAULT_MENU,m)
  
! 
!   def __createmenu(self, contents, parent):
!     for item in contents:
!       if item == None:
          self.addSeparator(parent)
!       else:
          name, contents = item
          if type(contents) == StringType: 
            userAction = UserActions.userActionMap[contents]
***************
*** 160,166 ****
         ('&Go to record...', 'JUMPPROMPT'), 
         None, 
         ('Next &Block', 'NEXTBLOCK'), 
!        ('Previous Bl&ock', 'PREVBLOCK'), 
         None, 
         ('Next P&age', 'NEXTBLOCK'), 
         ('Pre&vious Page', 'PREVBLOCK') ) ), 
--- 160,166 ----
         ('&Go to record...', 'JUMPPROMPT'), 
         None, 
         ('Next &Block', 'NEXTBLOCK'), 
!        ('Previous Bl&ock', 'PREVBLOCK'),
         None, 
         ('Next P&age', 'NEXTBLOCK'), 
         ('Pre&vious Page', 'PREVBLOCK') ) ), 




reply via email to

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