本文整理汇总了Python中gi.repository.Atspi.register_keystroke_listener方法的典型用法代码示例。如果您正苦于以下问题:Python Atspi.register_keystroke_listener方法的具体用法?Python Atspi.register_keystroke_listener怎么用?Python Atspi.register_keystroke_listener使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gi.repository.Atspi
的用法示例。
在下文中一共展示了Atspi.register_keystroke_listener方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _register_atspi_keystroke_listeners
# 需要导入模块: from gi.repository import Atspi [as 别名]
# 或者: from gi.repository.Atspi import register_keystroke_listener [as 别名]
def _register_atspi_keystroke_listeners(self, register):
if self._keystroke_listeners_registered != register:
modifier_masks = range(16)
if register:
if not self._keystroke_listener:
self._keystroke_listener = \
Atspi.DeviceListener.new(self._on_atspi_keystroke, None)
for modifier_mask in modifier_masks:
Atspi.register_keystroke_listener( \
self._keystroke_listener,
None, # key set, None=all
modifier_mask,
Atspi.KeyEventType.PRESSED,
Atspi.KeyListenerSyncType.SYNCHRONOUS)
else:
# Apparently any single deregister call will turn off
# all the other registered modifier_masks too. Since
# deregistering takes extremely long (~2.5s for 16 calls)
# seize the opportunity and just pick a single arbitrary
# mask (Quantal).
modifier_masks = [2]
for modifier_mask in modifier_masks:
Atspi.deregister_keystroke_listener(
self._keystroke_listener,
None, # key set, None=all
modifier_mask,
Atspi.KeyEventType.PRESSED)
self._keystroke_listeners_registered = register
示例2: registerKeystrokeListener
# 需要导入模块: from gi.repository import Atspi [as 别名]
# 或者: from gi.repository.Atspi import register_keystroke_listener [as 别名]
def registerKeystrokeListener(self,
client,
key_set=[],
mask=0,
kind=(_KEY_PRESSED_EVENT, _KEY_RELEASED_EVENT),
synchronous=True,
preemptive=True,
global_=False):
"""
Registers a listener for key stroke events.
@@param client: Callable to be invoked when the event occurs
@@type client: callable
@@param key_set: Set of hardware key codes to stop monitoring. Leave empty
to indicate all keys.
@@type key_set: list of integer
@@param mask: When the mask is None, the codes in the key_set will be
monitored only when no modifier is held. When the mask is an
integer, keys in the key_set will be monitored only when the modifiers in
the mask are held. When the mask is an iterable over more than one
integer, keys in the key_set will be monitored when any of the modifier
combinations in the set are held.
@@type mask: integer, iterable, None
@@param kind: Kind of events to watch, KEY_PRESSED_EVENT or
KEY_RELEASED_EVENT.
@@type kind: list
@@param synchronous: Should the callback notification be synchronous, giving
the client the chance to consume the event?
@@type synchronous: boolean
@@param preemptive: Should the callback be allowed to preempt / consume the
event?
@@type preemptive: boolean
@@param global_: Should callback occur even if an application not supporting
AT-SPI is in the foreground? (requires xevie)
@@type global_: boolean
"""
if not self.has_implementations:
self._set_default_registry ()
try:
listener = self.event_listeners[client]
except:
listener = self.event_listeners[client] = Atspi.DeviceListener.new(self.eventWrapper, client)
syncFlag = self.makeSyncType(synchronous, preemptive, global_)
try:
iter(mask)
masks = mask
except:
masks = [mask]
for m in masks:
Atspi.register_keystroke_listener(listener,
key_set,
m,
self.makeKind (kind),
syncFlag)