mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
Added feature to bypass keyevent from wx to panda
This commit is contained in:
parent
727b2ca5a9
commit
35dd9e3e18
@ -70,10 +70,8 @@ class LevelEditorUIBase(WxAppShell):
|
|||||||
if not kw.get('size'):
|
if not kw.get('size'):
|
||||||
kw['size'] = wx.Size(self.frameWidth, self.frameHeight)
|
kw['size'] = wx.Size(self.frameWidth, self.frameHeight)
|
||||||
WxAppShell.__init__(self, *args, **kw)
|
WxAppShell.__init__(self, *args, **kw)
|
||||||
|
self.wxApp.Bind(wx.EVT_CHAR, self.onKeyEvent)
|
||||||
self.initialize()
|
self.initialize()
|
||||||
self.Bind(wx.EVT_SET_FOCUS, self.onSetFocus)
|
|
||||||
self.Bind(wx.EVT_KEY_DOWN, self.onSetFocus)
|
|
||||||
|
|
||||||
def createMenu(self):
|
def createMenu(self):
|
||||||
menuItem = self.menuFile.Insert(0, -1 , "&New")
|
menuItem = self.menuFile.Insert(0, -1 , "&New")
|
||||||
@ -185,8 +183,33 @@ class LevelEditorUIBase(WxAppShell):
|
|||||||
self.sceneGraphUI = SceneGraphUI(self.leftBarDownPane0, self.editor)
|
self.sceneGraphUI = SceneGraphUI(self.leftBarDownPane0, self.editor)
|
||||||
self.layerEditorUI = LayerEditorUI(self.rightBarDownPane0, self.editor)
|
self.layerEditorUI = LayerEditorUI(self.rightBarDownPane0, self.editor)
|
||||||
|
|
||||||
def onSetFocus(self):
|
def onKeyEvent(self, evt):
|
||||||
print 'wx got focus'
|
if evt.GetKeyCode() in range(97, 123): # for keys from a to z
|
||||||
|
if evt.GetModifiers() == 4: # when shift is pressed while caps lock is on
|
||||||
|
input = 'shift-%s'%chr(evt.GetKeyCode())
|
||||||
|
else:
|
||||||
|
input = chr(evt.GetKeyCode())
|
||||||
|
elif evt.GetKeyCode() in range(65, 91):
|
||||||
|
if evt.GetModifiers() == 4: # when shift is pressed
|
||||||
|
input = 'shift-%s'%chr(evt.GetKeyCode() + 32)
|
||||||
|
else:
|
||||||
|
input = chr(evt.GetKeyCode() + 32)
|
||||||
|
elif evt.GetKeyCode() in range(1, 27): # for keys from a to z with control
|
||||||
|
input = 'control-%s'%chr(evt.GetKeyCode()+96)
|
||||||
|
elif evt.GetKeyCode() == wx.WXK_DELETE:
|
||||||
|
input = 'delete'
|
||||||
|
elif evt.GetKeyCode() == wx.WXK_ESCAPE:
|
||||||
|
input = 'escape'
|
||||||
|
else:
|
||||||
|
if evt.GetModifiers() == 4:
|
||||||
|
input = 'shift-%s'%chr(evt.GetKeyCode())
|
||||||
|
elif evt.GetModifiers() == 2:
|
||||||
|
input = 'control-%s'%chr(evt.GetKeyCode())
|
||||||
|
else:
|
||||||
|
input = chr(evt.GetKeyCode())
|
||||||
|
if input in base.direct.hotKeyMap.keys():
|
||||||
|
keyDesc = base.direct.hotKeyMap[input]
|
||||||
|
messenger.send(keyDesc[1])
|
||||||
|
|
||||||
def appInit(self):
|
def appInit(self):
|
||||||
"""Overridden from WxAppShell.py."""
|
"""Overridden from WxAppShell.py."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user