Python curses.KEY_MOUSE Examples
The following are 30
code examples of curses.KEY_MOUSE().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
curses
, or try the search function
.
Example #1
Source File: cgroup_top.py From python-scripts with GNU General Public License v3.0 | 6 votes |
def event_listener(scr, timeout): ''' Wait for curses events on screen ``scr`` at mot ``timeout`` ms return - 1 OK - 2 redraw - 0 error ''' try: scr.timeout(timeout) c = scr.getch() if c == -1: return 1 elif c == curses.KEY_MOUSE: return on_mouse() elif c == curses.KEY_RESIZE: return on_resize() else: return on_keyboard(c) except _curses.error: return 0
Example #2
Source File: wgwidget.py From EDCOP with Apache License 2.0 | 6 votes |
def set_up_handlers(self): """This function should be called somewhere during object initialisation (which all library-defined widgets do). You might like to override this in your own definition, but in most cases the add_handers or add_complex_handlers methods are what you want.""" #called in __init__ self.handlers = { curses.ascii.NL: self.h_exit_down, curses.ascii.CR: self.h_exit_down, curses.ascii.TAB: self.h_exit_down, curses.KEY_BTAB: self.h_exit_up, curses.KEY_DOWN: self.h_exit_down, curses.KEY_UP: self.h_exit_up, curses.KEY_LEFT: self.h_exit_left, curses.KEY_RIGHT: self.h_exit_right, "^P": self.h_exit_up, "^N": self.h_exit_down, curses.ascii.ESC: self.h_exit_escape, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = []
Example #3
Source File: curses_ui_test.py From keras-lambda with MIT License | 6 votes |
def testMouseClickOffLinkDoesNotTriggersCommand(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -k\n"), # A click off a hyperlink (too much to the right). [curses.KEY_MOUSE, 8, 4], self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() # The mouse click event should not triggered no command. self.assertEqual(1, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines) # This command should have generated no main menus. self.assertEqual([None], ui.main_menu_list)
Example #4
Source File: curses_ui_test.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def testMouseClickOffLinkDoesNotTriggersCommand(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -k\n"), # A click off a hyperlink (too much to the right). [curses.KEY_MOUSE, 8, 4], self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() # The mouse click event should not triggered no command. self.assertEqual(1, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines) # This command should have generated no main menus. self.assertEqual([None], ui.main_menu_list)
Example #5
Source File: top.py From python-scripts with GNU General Public License v3.0 | 6 votes |
def event_listener(scr, timeout): ''' Wait for curses events on screen ``scr`` at mot ``timeout`` ms return - 1 OK - 2 redraw - 0 error ''' try: scr.timeout(timeout) c = scr.getch() if c == -1: return 1 elif c == curses.KEY_MOUSE: return on_mouse() elif c == curses.KEY_RESIZE: return on_resize() else: return on_keyboard(scr, c) except _curses.error: return 0
Example #6
Source File: fake_curses_testing.py From ci_edit with Apache License 2.0 | 6 votes |
def findTextAndClick(self, timeStamp, screenText, bState): caller = inspect.stack()[1] callerText = u"\n %s:%s:%s(): " % (os.path.split(caller[1])[1], caller[2], caller[3]) def createEvent(display, cmdIndex): row, col = self.findText(screenText) if row < 0: output = u"%s at index %d, did not find %r" % ( callerText, cmdIndex, screenText) if self.cursesScreen.movie: print(output) else: self.fail(output) # Note that the mouse info is x,y (col, row). info = (timeStamp, col, row, 0, bState) curses.addMouseEvent(info) return curses.KEY_MOUSE return createEvent
Example #7
Source File: wgwidget.py From apple_bleee with GNU General Public License v3.0 | 6 votes |
def set_up_handlers(self): """This function should be called somewhere during object initialisation (which all library-defined widgets do). You might like to override this in your own definition, but in most cases the add_handers or add_complex_handlers methods are what you want.""" #called in __init__ self.handlers = { curses.ascii.NL: self.h_exit_down, curses.ascii.CR: self.h_exit_down, curses.ascii.TAB: self.h_exit_down, curses.KEY_BTAB: self.h_exit_up, curses.KEY_DOWN: self.h_exit_down, curses.KEY_UP: self.h_exit_up, curses.KEY_LEFT: self.h_exit_left, curses.KEY_RIGHT: self.h_exit_right, # "^P": self.h_exit_up, # "^N": self.h_exit_down, curses.ascii.ESC: self.h_exit_escape, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = []
Example #8
Source File: fake_curses_testing.py From ci_edit with Apache License 2.0 | 6 votes |
def mouseEvent(self, timeStamp, mouseRow, mouseCol, bState): """ bState may be a logical or of: curses.BUTTON1_PRESSED; curses.BUTTON1_RELEASED; ... curses.BUTTON_SHIFT curses.BUTTON_CTRL curses.BUTTON_ALT """ assert isinstance(timeStamp, int) assert isinstance(mouseRow, int) assert isinstance(mouseCol, int) assert isinstance(bState, int) # Note that the mouse info is x,y (col, row). info = (timeStamp, mouseCol, mouseRow, 0, bState) def createEvent(display, cmdIndex): curses.addMouseEvent(info) return curses.KEY_MOUSE return createEvent
Example #9
Source File: wgwidget.py From TelegramTUI with MIT License | 6 votes |
def set_up_handlers(self): """This function should be called somewhere during object initialisation (which all library-defined widgets do). You might like to override this in your own definition, but in most cases the add_handers or add_complex_handlers methods are what you want.""" #called in __init__ self.handlers = { curses.ascii.NL: self.h_exit_down, curses.ascii.CR: self.h_exit_down, curses.ascii.TAB: self.h_exit_down, curses.KEY_BTAB: self.h_exit_up, curses.KEY_DOWN: self.h_exit_down, curses.KEY_UP: self.h_exit_up, curses.KEY_LEFT: self.h_exit_left, curses.KEY_RIGHT: self.h_exit_right, # "^P": self.h_exit_up, # "^N": self.h_exit_down, curses.ascii.ESC: self.h_exit_escape, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = []
Example #10
Source File: cgroup_top.py From ctop with MIT License | 6 votes |
def event_listener(scr, timeout): ''' Wait for curses events on screen ``scr`` at mot ``timeout`` ms return - 1 OK - 2 redraw - 0 error ''' try: scr.timeout(timeout) c = scr.getch() if c == -1: return 1 elif c == curses.KEY_MOUSE: return on_mouse() elif c == curses.KEY_RESIZE: return on_resize() else: return on_keyboard(c) except _curses.error: return 0
Example #11
Source File: wgwidget.py From HomePWN with GNU General Public License v3.0 | 6 votes |
def set_up_handlers(self): """This function should be called somewhere during object initialisation (which all library-defined widgets do). You might like to override this in your own definition, but in most cases the add_handers or add_complex_handlers methods are what you want.""" #called in __init__ self.handlers = { curses.ascii.NL: self.h_exit_down, curses.ascii.CR: self.h_exit_down, curses.ascii.TAB: self.h_exit_down, curses.KEY_BTAB: self.h_exit_up, curses.KEY_DOWN: self.h_exit_down, curses.KEY_UP: self.h_exit_up, curses.KEY_LEFT: self.h_exit_left, curses.KEY_RIGHT: self.h_exit_right, # "^P": self.h_exit_up, # "^N": self.h_exit_down, curses.ascii.ESC: self.h_exit_escape, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = []
Example #12
Source File: wgwidget.py From TelegramTUI with MIT License | 5 votes |
def h_exit_mouse(self, _input): mouse_event = self.parent.safe_get_mouse_event() if mouse_event and self.intersted_in_mouse_event(mouse_event): self.handle_mouse_event(mouse_event) else: if mouse_event and self._test_safe_to_exit(): curses.ungetmouse(*mouse_event) ch = self.parent.curses_pad.getch() assert ch == curses.KEY_MOUSE self.editing = False self.how_exited = EXITED_MOUSE
Example #13
Source File: program_window.py From ci_edit with Apache License 2.0 | 5 votes |
def executeCommandList(self, cmdList): for cmd, eventInfo in cmdList: self.doPreCommand() if cmd == curses.KEY_RESIZE: self.handleScreenResize(self.focusedWindow) continue self.focusedWindow.controller.doCommand(cmd, eventInfo) if cmd == curses.KEY_MOUSE: self.handleMouse(eventInfo) self.focusedWindow.controller.onChange()
Example #14
Source File: curses_ui.py From lambda-packs with MIT License | 5 votes |
def _ui_loop(self): """Command-line UI loop. Returns: An exit token of arbitrary type. The token can be None. """ while True: # Enter history command if pointer is in history (> 0): if self._command_pointer > 0: existing_command = self._active_command_history[-self._command_pointer] else: existing_command = self._pending_command self._screen_create_command_textbox(existing_command) try: command, terminator, pending_command_changed = self._get_user_command() except debugger_cli_common.CommandLineExit as e: return e.exit_token if not command and terminator != self.CLI_TAB_KEY: continue if terminator in self.CLI_CR_KEYS or terminator == curses.KEY_MOUSE: exit_token = self._dispatch_command(command) if exit_token is not None: return exit_token elif terminator == self.CLI_TAB_KEY: tab_completed = self._tab_complete(command) self._pending_command = tab_completed self._cmd_ptr = 0 elif pending_command_changed: self._pending_command = command return
Example #15
Source File: wggrid.py From TelegramTUI with MIT License | 5 votes |
def set_up_handlers(self): super(SimpleGrid, self).set_up_handlers() self.handlers = { curses.KEY_UP: self.h_move_line_up, curses.KEY_LEFT: self.h_move_cell_left, curses.KEY_DOWN: self.h_move_line_down, curses.KEY_RIGHT: self.h_move_cell_right, "k": self.h_move_line_up, "h": self.h_move_cell_left, "j": self.h_move_line_down, "l": self.h_move_cell_right, curses.KEY_NPAGE: self.h_move_page_down, curses.KEY_PPAGE: self.h_move_page_up, curses.KEY_HOME: self.h_show_beginning, curses.KEY_END: self.h_show_end, ord('g'): self.h_show_beginning, ord('G'): self.h_show_end, curses.ascii.TAB: self.h_exit, curses.KEY_BTAB: self.h_exit_up, '^P': self.h_exit_up, '^N': self.h_exit_down, #curses.ascii.NL: self.h_exit, #curses.ascii.SP: self.h_exit, #ord('x'): self.h_exit, ord('q'): self.h_exit, curses.ascii.ESC: self.h_exit, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = [ ]
Example #16
Source File: curses_ui.py From Serverless-Deep-Learning-with-TensorFlow-and-AWS-Lambda with MIT License | 5 votes |
def _ui_loop(self): """Command-line UI loop. Returns: An exit token of arbitrary type. The token can be None. """ while True: # Enter history command if pointer is in history (> 0): if self._command_pointer > 0: existing_command = self._active_command_history[-self._command_pointer] else: existing_command = self._pending_command self._screen_create_command_textbox(existing_command) try: command, terminator, pending_command_changed = self._get_user_command() except debugger_cli_common.CommandLineExit as e: return e.exit_token if not command and terminator != self.CLI_TAB_KEY: continue if terminator in self.CLI_CR_KEYS or terminator == curses.KEY_MOUSE: exit_token = self._dispatch_command(command) if exit_token is not None: return exit_token elif terminator == self.CLI_TAB_KEY: tab_completed = self._tab_complete(command) self._pending_command = tab_completed self._cmd_ptr = 0 elif pending_command_changed: self._pending_command = command return
Example #17
Source File: curses_ui_test.py From keras-lambda with MIT License | 5 votes |
def _screen_get_user_command(self): command = self._command_sequence[self._command_counter] self._command_key_counter = 0 for c in command: if c == curses.KEY_RESIZE: # Special case for simulating a terminal resize event in curses. self._height = command[1] self._width = command[2] self._on_textbox_keypress(c) self._command_counter += 1 return "" elif c == curses.KEY_MOUSE: mouse_x = command[1] mouse_y = command[2] self._command_counter += 1 self._textbox_curr_terminator = c return self._fetch_hyperlink_command(mouse_x, mouse_y) else: y = self._on_textbox_keypress(c) self._command_key_counter += 1 if y == curses_ui.CursesUI.CLI_TERMINATOR_KEY: break self._command_counter += 1 # Take into account pre-existing string automatically entered on textbox # creation. return self._curr_existing_command + codes_to_string(command)
Example #18
Source File: curses_ui_test.py From keras-lambda with MIT License | 5 votes |
def testMouseClickOnLinkTriggersCommand(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -k\n"), [curses.KEY_MOUSE, 1, 4], # A click on a hyperlink. self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() self.assertEqual(2, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines) self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[1].lines)
Example #19
Source File: curses_ui_test.py From keras-lambda with MIT License | 5 votes |
def testMouseClickOnEnabledMenuItemWorks(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -m\n"), # A click on the enabled menu item. [curses.KEY_MOUSE, 3, 1], self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() self.assertEqual(2, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines) self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[1].lines) # Check the content of the menu. self.assertEqual(["| babble again | ahoy | "], ui.main_menu_list[0].lines) self.assertEqual(1, len(ui.main_menu_list[0].font_attr_segs)) self.assertEqual(1, len(ui.main_menu_list[0].font_attr_segs[0])) item_annot = ui.main_menu_list[0].font_attr_segs[0][0] self.assertEqual(2, item_annot[0]) self.assertEqual(14, item_annot[1]) self.assertEqual("babble", item_annot[2][0].content) self.assertEqual("underline", item_annot[2][1]) # The output from the menu-triggered command does not have a menu. self.assertIsNone(ui.main_menu_list[1])
Example #20
Source File: curses_ui_test.py From keras-lambda with MIT License | 5 votes |
def testMouseClickOnDisabledMenuItemTriggersNoCommand(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -m\n"), # A click on the disabled menu item. [curses.KEY_MOUSE, 18, 1], self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() self.assertEqual(1, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines)
Example #21
Source File: wggrid.py From EDCOP with Apache License 2.0 | 5 votes |
def set_up_handlers(self): super(SimpleGrid, self).set_up_handlers() self.handlers = { curses.KEY_UP: self.h_move_line_up, curses.KEY_LEFT: self.h_move_cell_left, curses.KEY_DOWN: self.h_move_line_down, curses.KEY_RIGHT: self.h_move_cell_right, "k": self.h_move_line_up, "h": self.h_move_cell_left, "j": self.h_move_line_down, "l": self.h_move_cell_right, curses.KEY_NPAGE: self.h_move_page_down, curses.KEY_PPAGE: self.h_move_page_up, curses.KEY_HOME: self.h_show_beginning, curses.KEY_END: self.h_show_end, ord('g'): self.h_show_beginning, ord('G'): self.h_show_end, curses.ascii.TAB: self.h_exit, curses.KEY_BTAB: self.h_exit_up, '^P': self.h_exit_up, '^N': self.h_exit_down, #curses.ascii.NL: self.h_exit, #curses.ascii.SP: self.h_exit, #ord('x'): self.h_exit, ord('q'): self.h_exit, curses.ascii.ESC: self.h_exit, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = [ ]
Example #22
Source File: wgwidget.py From EDCOP with Apache License 2.0 | 5 votes |
def h_exit_mouse(self, _input): mouse_event = self.parent.safe_get_mouse_event() if mouse_event and self.intersted_in_mouse_event(mouse_event): self.handle_mouse_event(mouse_event) else: if mouse_event and self._test_safe_to_exit(): curses.ungetmouse(*mouse_event) ch = self.parent.curses_pad.getch() assert ch == curses.KEY_MOUSE self.editing = False self.how_exited = EXITED_MOUSE
Example #23
Source File: mouse_events.py From Learning-Python-by-building-games with MIT License | 5 votes |
def main(screen): c.curs_set(0) c.mousemask(1) inp = screen.getch() if inp == c.KEY_MOUSE: screen.addstr(17, 40, "Mouse is clicked") screen.refresh() screen.getch() time.sleep(10)
Example #24
Source File: wggrid.py From HomePWN with GNU General Public License v3.0 | 5 votes |
def set_up_handlers(self): super(SimpleGrid, self).set_up_handlers() self.handlers = { curses.KEY_UP: self.h_move_line_up, curses.KEY_LEFT: self.h_move_cell_left, curses.KEY_DOWN: self.h_move_line_down, curses.KEY_RIGHT: self.h_move_cell_right, "k": self.h_move_line_up, "h": self.h_move_cell_left, "j": self.h_move_line_down, "l": self.h_move_cell_right, curses.KEY_NPAGE: self.h_move_page_down, curses.KEY_PPAGE: self.h_move_page_up, curses.KEY_HOME: self.h_show_beginning, curses.KEY_END: self.h_show_end, ord('g'): self.h_show_beginning, ord('G'): self.h_show_end, curses.ascii.TAB: self.h_exit, curses.KEY_BTAB: self.h_exit_up, '^P': self.h_exit_up, '^N': self.h_exit_down, #curses.ascii.NL: self.h_exit, #curses.ascii.SP: self.h_exit, #ord('x'): self.h_exit, ord('q'): self.h_exit, curses.ascii.ESC: self.h_exit, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = [ ]
Example #25
Source File: wgwidget.py From HomePWN with GNU General Public License v3.0 | 5 votes |
def h_exit_mouse(self, _input): mouse_event = self.parent.safe_get_mouse_event() if mouse_event and self.intersted_in_mouse_event(mouse_event): self.handle_mouse_event(mouse_event) else: if mouse_event and self._test_safe_to_exit(): curses.ungetmouse(*mouse_event) ch = self.parent.curses_pad.getch() assert ch == curses.KEY_MOUSE self.editing = False self.how_exited = EXITED_MOUSE
Example #26
Source File: wggrid.py From apple_bleee with GNU General Public License v3.0 | 5 votes |
def set_up_handlers(self): super(SimpleGrid, self).set_up_handlers() self.handlers = { curses.KEY_UP: self.h_move_line_up, curses.KEY_LEFT: self.h_move_cell_left, curses.KEY_DOWN: self.h_move_line_down, curses.KEY_RIGHT: self.h_move_cell_right, "k": self.h_move_line_up, "h": self.h_move_cell_left, "j": self.h_move_line_down, "l": self.h_move_cell_right, curses.KEY_NPAGE: self.h_move_page_down, curses.KEY_PPAGE: self.h_move_page_up, curses.KEY_HOME: self.h_show_beginning, curses.KEY_END: self.h_show_end, ord('g'): self.h_show_beginning, ord('G'): self.h_show_end, curses.ascii.TAB: self.h_exit, curses.KEY_BTAB: self.h_exit_up, '^P': self.h_exit_up, '^N': self.h_exit_down, #curses.ascii.NL: self.h_exit, #curses.ascii.SP: self.h_exit, #ord('x'): self.h_exit, ord('q'): self.h_exit, curses.ascii.ESC: self.h_exit, curses.KEY_MOUSE: self.h_exit_mouse, } self.complex_handlers = [ ]
Example #27
Source File: wgwidget.py From apple_bleee with GNU General Public License v3.0 | 5 votes |
def h_exit_mouse(self, _input): mouse_event = self.parent.safe_get_mouse_event() if mouse_event and self.intersted_in_mouse_event(mouse_event): self.handle_mouse_event(mouse_event) else: if mouse_event and self._test_safe_to_exit(): curses.ungetmouse(*mouse_event) ch = self.parent.curses_pad.getch() assert ch == curses.KEY_MOUSE self.editing = False self.how_exited = EXITED_MOUSE
Example #28
Source File: curses_ui_test.py From auto-alt-text-lambda-api with MIT License | 5 votes |
def testMouseClickOnDisabledMenuItemTriggersNoCommand(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -m\n"), # A click on the disabled menu item. [curses.KEY_MOUSE, 18, 1], self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() self.assertEqual(1, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines)
Example #29
Source File: curses_ui_test.py From auto-alt-text-lambda-api with MIT License | 5 votes |
def testMouseClickOnEnabledMenuItemWorks(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -m\n"), # A click on the enabled menu item. [curses.KEY_MOUSE, 3, 1], self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() self.assertEqual(2, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines) self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[1].lines) # Check the content of the menu. self.assertEqual(["| babble again | ahoy | "], ui.main_menu_list[0].lines) self.assertEqual(1, len(ui.main_menu_list[0].font_attr_segs)) self.assertEqual(1, len(ui.main_menu_list[0].font_attr_segs[0])) item_annot = ui.main_menu_list[0].font_attr_segs[0][0] self.assertEqual(2, item_annot[0]) self.assertEqual(14, item_annot[1]) self.assertEqual("babble", item_annot[2][0].content) self.assertEqual("underline", item_annot[2][1]) # The output from the menu-triggered command does not have a menu. self.assertIsNone(ui.main_menu_list[1])
Example #30
Source File: curses_ui_test.py From auto-alt-text-lambda-api with MIT License | 5 votes |
def testMouseClickOnLinkTriggersCommand(self): ui = MockCursesUI( 40, 80, command_sequence=[ string_to_codes("babble -n 10 -k\n"), [curses.KEY_MOUSE, 1, 4], # A click on a hyperlink. self._EXIT ]) ui.register_command_handler("babble", self._babble, "") ui.run_ui() self.assertEqual(2, len(ui.unwrapped_outputs)) self.assertEqual(["bar"] * 10, ui.unwrapped_outputs[0].lines) self.assertEqual(["bar"] * 60, ui.unwrapped_outputs[1].lines)