Преглед на файлове

wxGUI/vdigit: initial hot-keys (p/l) see https://trac.osgeo.org/grass/ticket/497

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@39911 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa преди 15 години
родител
ревизия
e02c2f479a
променени са 2 файла, в които са добавени 28 реда и са изтрити 5 реда
  1. 24 1
      gui/wxpython/gui_modules/mapdisp_window.py
  2. 4 4
      gui/wxpython/gui_modules/toolbars.py

+ 24 - 1
gui/wxpython/gui_modules/mapdisp_window.py

@@ -87,6 +87,9 @@ class MapWindow(object):
     def OnLeftUp(self, event):
         pass
 
+    def OnKeyDown(self, event):
+        pass
+    
     def OnMouseMotion(self, event):
         pass
 
@@ -233,7 +236,8 @@ class BufferedWindow(MapWindow, wx.Window):
         self._buffer = ''
 
         self.Bind(wx.EVT_ERASE_BACKGROUND, lambda x:None)
-
+        self.Bind(wx.EVT_KEY_DOWN , self.OnKeyDown)
+        
         # vars for handling mouse clicks
         self.dragid   = -1
         self.lastpos  = (0, 0)
@@ -446,6 +450,25 @@ class BufferedWindow(MapWindow, wx.Window):
         
         return coords, boxw, boxh
 
+    def OnKeyDown(self, event):
+        """!Key pressed"""
+        shift = event.ShiftDown()
+        kc = event.GetKeyCode()
+        vdigitToolbar = self.parent.toolbars['vdigit']
+        ### vdigit
+        if vdigitToolbar:
+            if not shift:
+                event = None
+                if kc == ord('P'):
+                    event = wx.CommandEvent(winid = vdigitToolbar.addPoint)
+                    tool = vdigitToolbar.OnAddPoint
+                elif kc == ord('L'):
+                    event = wx.CommandEvent(winid = vdigitToolbar.addLine)
+                    tool = vdigitToolbar.OnAddLine
+                if event:
+                    vdigitToolbar.OnTool(event)
+                    # tool(event)
+                
     def OnPaint(self, event):
         """!
         Draw PseudoDC's to buffered paint DC

+ 4 - 4
gui/wxpython/gui_modules/toolbars.py

@@ -270,7 +270,8 @@ class MapToolbar(AbstractToolbar):
         elif tool == 2 and not self.mapdisplay.toolbars['vdigit']:
             self.ExitToolbars()
             self.mapdisplay.AddToolbar("vdigit")
-
+            self.mapdisplay.MapWindow.SetFocus()
+        
     def ExitToolbars(self):
         if self.mapdisplay.toolbars['vdigit']:
             self.mapdisplay.toolbars['vdigit'].OnExit()
@@ -613,9 +614,8 @@ class VDigitToolbar(AbstractToolbar):
             
             self.action['id'] = event.GetId()
             event.Skip()
-        else:
-            # initialize toolbar
-            self.toolbar[0].ToggleTool(self.action['id'], True)
+        
+        self.toolbar[0].ToggleTool(self.action['id'], True)
 
         # clear tmp canvas
         if self.action['id'] != id: