⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keymap.py

📁 这是一些ANTLR parser generator的grammar文件的例子
💻 PY
字号:
from java.awt.event import KeyEvent, InputEventfrom pawt.swing import KeyStroke, textimport stringfrom Action import Action_keynames = {}def getKeyStroke(key):	if len(_keynames) == 0:		for name in dir(KeyEvent):			if name[:3] == 'VK_':				_keynames[string.lower(name[3:])] = getattr(KeyEvent, name)	if key is None:		return KeyStroke.getKeyStroke(KeyEvent.CHAR_UNDEFINED)	if len(key) == 1:		return KeyStroke.getKeyStroke(key)	fields = string.split(key, '-')	key = fields[-1]	mods = fields[:-1]	modifiers = 0	for mod in mods:		if mod == 'C':			modifiers = modifiers | InputEvent.CTRL_MASK		elif mod == 'S':			modifiers = modifiers | InputEvent.SHIFT_MASK		#Meta and Alt don't currently work right		elif mod == 'M':			modifiers = modifiers | InputEvent.META_MASK		elif mod == 'A':			modifiers = modifiers | InputEvent.ALT_MASK		else:			raise ValueError, 'Invalid modifier in '+key	return KeyStroke.getKeyStroke(_keynames[key], modifiers)def makeAction(o):	if isinstance(o, Action): return o	if callable(o): return Action(o)class Keymap:	__keynames = {}	__defaultKeymap = text.JTextComponent.getKeymap(text.JTextComponent.DEFAULT_KEYMAP)	def __init__(self, bindings={}, parent=__defaultKeymap):		self.keymap = text.JTextComponent.addKeymap(None, parent)		for key, action in bindings.items():			self.bind(key, action)	def bind(self, key, action):		self.keymap.addActionForKeyStroke(getKeyStroke(key), makeAction(action))	def __tojava__(self, c):		if isinstance(self.keymap, c):			return self.keymapif __name__ == '__main__':	km = Keymap()	class T:		def __init__(self, message):			self.message = message			self.__name__ = message		def __call__(self):			print self.message	km.bind('x', T('x'))	km.bind('C-x', T('C-x'))	km.bind('A-x', T('A-x'))	km.bind('up', T('up'))	km.bind('enter', T('enter'))	km.bind('tab', T('tab'))	km.bind('S-tab', T('S-tab'))	text = "hello\nworld"	from pawt import swing, test	doc = swing.text.DefaultStyledDocument()	doc.insertString(0, text, None)	edit = swing.JTextPane(doc)	edit.keymap = km	test(edit, size=(150,80))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -