Browse Source

Added support for left/right wheel

pull/318/head
Eugenio Parodi 1 year ago
parent
commit
55eba2e66b
  1. 7
      TermTk/TTkAbstract/abstractscrollview.py
  2. 6
      TermTk/TTkCore/TTkTerm/input_thread.py
  3. 4
      TermTk/TTkCore/TTkTerm/inputmouse.py
  4. 4
      TermTk/TTkCore/constant.py
  5. 4
      TermTk/TTkWidgets/TTkTerminal/terminalhelper.py
  6. 8
      TermTk/TTkWidgets/TTkTerminal/terminalview.py

7
TermTk/TTkAbstract/abstractscrollview.py

@ -207,8 +207,13 @@ class TTkAbstractScrollView(TTkContainer, TTkAbstractScrollViewInterface):
delta = TTkCfg.scrollDelta
offx, offy = self.getViewOffsets()
if evt.evt == TTkK.WHEEL_Up:
delta = -delta
self.viewMoveTo(offx, offy - delta)
elif evt.evt == TTkK.WHEEL_Down:
self.viewMoveTo(offx, offy + delta)
elif evt.evt == TTkK.WHEEL_Left:
self.viewMoveTo(offx - delta, offy)
elif evt.evt == TTkK.WHEEL_Right:
self.viewMoveTo(offx + delta, offy)
return True
def resizeEvent(self, w, h):

6
TermTk/TTkCore/TTkTerm/input_thread.py

@ -198,6 +198,12 @@ class TTkInput:
elif code == 0x41:
key = TTkMouseEvent.Wheel
evt = TTkMouseEvent.Down
elif code == 0x42:
key = TTkMouseEvent.Wheel
evt = TTkMouseEvent.Left
elif code == 0x43:
key = TTkMouseEvent.Wheel
evt = TTkMouseEvent.Right
elif code == 0x23:
evt = TTkMouseEvent.Move
elif code == 0x27:

4
TermTk/TTkCore/TTkTerm/inputmouse.py

@ -82,6 +82,8 @@ class TTkMouseEvent:
Move = TTkK.Move
Up = TTkK.WHEEL_Up
Down = TTkK.WHEEL_Down
Left = TTkK.WHEEL_Left
Right = TTkK.WHEEL_Right
__slots__ = ('x', 'y', 'key', 'evt', 'mod', 'tap', 'raw')
def __init__(self, x: int, y: int, key: int, evt: int, mod: int, tap: int, raw: str):
@ -127,6 +129,8 @@ class TTkMouseEvent:
TTkMouseEvent.Move : "Move",
TTkMouseEvent.Up : "Up",
TTkMouseEvent.Down : "Down",
TTkMouseEvent.Left : "Left",
TTkMouseEvent.Right : "Right",
}.get(self.evt, "Undefined")
def mod2str(self):

4
TermTk/TTkCore/constant.py

@ -388,6 +388,8 @@ class TTkConstant:
Move = 0x00080000
WHEEL_Up = 0x00100000 # Wheel Up
WHEEL_Down = 0x00200000 # Wheel Down
WHEEL_Left = 0x00400000 # Wheel Down
WHEEL_Right= 0x00800000 # Wheel Down
NoEvent = MouseEvent.NoEvent
Press = MouseEvent.Press
@ -396,6 +398,8 @@ class TTkConstant:
Move = MouseEvent.Move
WHEEL_Up = MouseEvent.WHEEL_Up
WHEEL_Down = MouseEvent.WHEEL_Down
WHEEL_Left = MouseEvent.WHEEL_Left
WHEEL_Right= MouseEvent.WHEEL_Right
# Cursors
Cursor_Blinking_Block = 0x0001

4
TermTk/TTkWidgets/TTkTerminal/terminalhelper.py

@ -136,8 +136,8 @@ class TTkTerminalHelper():
sys.exit()
else:
self._inout = os.fdopen(self._fd, "w+b", 0)
name = os.ttyname(self._fd)
TTkLog.debug(f"{self._pid=} {self._fd=} {name}")
# name = os.ttyname(self._fd)
TTkLog.debug(f"{self._pid=} {self._fd=}")
self._quit_pipe = os.pipe()

8
TermTk/TTkWidgets/TTkTerminal/terminalview.py

@ -957,7 +957,9 @@ class TTkTerminalView(TTkAbstractScrollView, _TTkTerminal_CSI_DEC):
TTkK.Move: (35, 0,'M'),
TTkK.Drag: (k, 32,'M'),
TTkK.WHEEL_Up: (k, 0,'M'),
TTkK.WHEEL_Down:(k, 1,'M')}.get(
TTkK.WHEEL_Down:(k, 1,'M'),
TTkK.WHEEL_Left:(k, 2,'M'),
TTkK.WHEEL_Right:(k, 3,'M')}.get(
evt.evt,(0,0,'M'))
# _termLog.mouse(f'Mouse: <ESC>[<{k+km};{x};{y}{pr}')
self.termData.emit(f'\033[<{k+km};{x};{y}{pr}'.encode())
@ -968,7 +970,9 @@ class TTkTerminalView(TTkAbstractScrollView, _TTkTerminal_CSI_DEC):
TTkK.Move: b'\033[MC',
TTkK.Drag: b'\033[M@',
TTkK.WHEEL_Up: b'\033[M`',
TTkK.WHEEL_Down:b'\033[Ma'}.get(
TTkK.WHEEL_Down:b'\033[Ma',
TTkK.WHEEL_Left:b'\033[Mb',
TTkK.WHEEL_Right:b'\033[Mc'}.get(
evt.evt,
b'')
bah = bytearray(head)

Loading…
Cancel
Save