diff options
author | BuildTools <unconfigured@null.spigotmc.org> | 2015-12-09 00:56:57 +0300 |
---|---|---|
committer | BuildTools <unconfigured@null.spigotmc.org> | 2015-12-09 00:56:57 +0300 |
commit | cfc44afa07eccc52d769ec2d51ff10dbed8211c7 (patch) | |
tree | 9b28d428ca2502425449f9534e0bc2859a77c657 /src | |
parent | d2afb558c478d1f4d7ba6176dd1d997419037a5f (diff) |
added callback mode for pad touch events
Diffstat (limited to 'src')
-rw-r--r-- | src/events.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/events.py b/src/events.py index 36f059f..60bad6b 100644 --- a/src/events.py +++ b/src/events.py @@ -292,8 +292,15 @@ class EventMapper(object): haptic = False if sci.buttons & on_test == on_test: - dzone = self._pad_dzones[pos] + # get callback events + callbacks = [] + for evt in self._pad_evts[pos]: + if evt[0] == Modes.CALLBACK: + callbacks.append(evt) + for callback_evt in callbacks: + callback_evt[1](self, pos, xm, ym) + dzone = self._pad_dzones[pos] if len(self._pad_evts[pos]) == 4: # key or buttons tmode, tev = self._pad_evts[pos][0] @@ -489,18 +496,21 @@ class EventMapper(object): else: self._btn_map[SCButtons.RPAD] = (None, 0) - def setPadButtonCallback(self, pos, callback, clicked=True): + def setPadButtonCallback(self, pos, callback, clicked=False): """ set callback function to be executed when Pad clicked or touched + if clicked is False callback will be called with pad, xpos and ypos + else with pad and boolean is_pressed @param Pos pos designate left or right pad @param callback Callback function @param bool clicked callback on touch or on click event """ if not clicked: - # FIXME: add touch support - raise NotImplementedError('Touch callbacks are not supported yet') + self._pad_modes[pos] = PadModes.BUTTONTOUCH + self._pad_evts[pos].append((Modes.CALLBACK, callback)) else: + self._pad_modes[pos] = PadModes.BUTTONCLICK if pos == Pos.LEFT: self._btn_map[SCButtons.LPAD] = (Modes.CALLBACK, callback) else: |