16 from functools
import total_ordering
20 from ..context
import IS_MAC
23 SHIFT_CHAR =
u'\u21E7'
24 OPTION_CHAR =
u'\u2325'
26 SPACE_CHAR =
u'\u2423'
28 RIGHT_CHAR =
u'\u2192'
30 ENTER_CHAR =
u'\u2324'
31 RETURN_CHAR =
u'\u21A9'
49 'Return': RETURN_CHAR,
59 string = string.replace(
'CtrlCmd',
'Cmd')
61 string = string.replace(
'CtrlCmd',
'Ctrl')
66 if not IS_MAC
or not string:
68 for key, value
in _REPLACE.items():
69 string = string.replace(key, value)
87 return bool(self.
valuevalue)
92 order = [
'Shift',
'Ctrl',
'Cmd',
'Alt']
100 keys.sort(key=
lambda t: t
in order
and order.index(t)
or 42)
101 return '-'.join(keys)
105 m_str=shortcut.replace(
'+',
'-').split(
'-')
108 except AttributeError:
115 return {
'Del':
'Delete',
'Ins':
'Insert',
116 'Enter':
'Return',
'Esc':
'Escape'}.get(key, key)
130 flags = wx.ACCEL_NORMAL
133 for key
in keys[:-1])
134 return flags, self.
_get_key_get_key(keys[-1])
137 attr =
'%s_%s' % (prefix, name.upper().replace(
' ',
''))
139 return getattr(wx, attr)
140 except AttributeError:
141 raise ValueError(
'Invalid shortcut key: %s' % name)
145 return ord(key.upper())
149 return self.name.
lower() == other.name.lower()
152 return hash(repr(self))
155 return self.name.
lower() < other.name.lower()
def _replace_chars_in_mac(self, shortcut)
def _normalize(self, shortcut)
def _normalize_key(self, key)
def _handle_ctrlcmd(self, key)
def _get_wx_key_constant(self, prefix, name)
def _split(self, shortcut)
def _get_printable(self, value)
def __init__(self, shortcut)
def localize_shortcuts(string)
def _replace_mac_chars(string)