Python curses.getmouse() Examples
The following are 16
code examples of curses.getmouse().
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: screen.py From asciimatics with Apache License 2.0 | 5 votes |
def get_event(self): """ Check for an event without waiting. """ # Spin through notifications until we find something we want. key = 0 while key != -1: # Get the next key key = self._screen.getch() if key == curses.KEY_RESIZE: # Handle screen resize self._re_sized = True elif key == curses.KEY_MOUSE: # Handle a mouse event _, x, y, _, bstate = curses.getmouse() buttons = 0 # Some Linux modes only report clicks, so check for any # button down or click events. if (bstate & curses.BUTTON1_PRESSED != 0 or bstate & curses.BUTTON1_CLICKED != 0): buttons |= MouseEvent.LEFT_CLICK if (bstate & curses.BUTTON3_PRESSED != 0 or bstate & curses.BUTTON3_CLICKED != 0): buttons |= MouseEvent.RIGHT_CLICK if bstate & curses.BUTTON1_DOUBLE_CLICKED != 0: buttons |= MouseEvent.DOUBLE_CLICK return MouseEvent(x, y, buttons) elif key != -1: # Handle any byte streams first logger.debug("Processing key: %x", key) if self._unicode_aware and key > 0: if key & 0xC0 == 0xC0: self._bytes_to_return = struct.pack(b"B", key) self._bytes_to_read = bin(key)[2:].index("0") - 1 logger.debug("Byte stream: %d bytes left", self._bytes_to_read) continue elif self._bytes_to_read > 0: self._bytes_to_return += struct.pack(b"B", key) self._bytes_to_read -= 1 if self._bytes_to_read > 0: continue else: key = ord(self._bytes_to_return.decode("utf-8")) # Handle a genuine key press. logger.debug("Returning key: %x", key) if key in self._KEY_MAP: return KeyboardEvent(self._KEY_MAP[key]) elif key != -1: return KeyboardEvent(key) return None
Example #2
Source File: curses_ui.py From lambda-packs with MIT License | 5 votes |
def _screen_getmouse(self): return curses.getmouse()
Example #3
Source File: curses_ui.py From auto-alt-text-lambda-api with MIT License | 5 votes |
def _screen_getmouse(self): return curses.getmouse()
Example #4
Source File: fmForm.py From apple_bleee with GNU General Public License v3.0 | 5 votes |
def safe_get_mouse_event(self): try: mouse_event = curses.getmouse() return mouse_event except _curses.error: return None
Example #5
Source File: cgroup_top.py From ctop with MIT License | 5 votes |
def on_mouse(): '''Update selected line / sort''' _, x, y, z, bstate = curses.getmouse() # Left button click ? if bstate & curses.BUTTON1_CLICKED: # Is it title line ? if y == 0: # Determine sort column based on offset / col width x_max = 0 for col in COLUMNS: if not col.width: set_sort_col(col.col_sort) elif x < x_max+col.width: set_sort_col(col.col_sort) else: x_max += col.width + 1 continue return 2 # Is it a cgroup line ? elif y <= len(CONFIGURATION['cgroups']): if CONFIGURATION['follow']: CONFIGURATION['selected_line_name'] = CONFIGURATION['cgroups'][y-1] else: CONFIGURATION['selected_line_num'] = y-1 return 2 return 1
Example #6
Source File: fmForm.py From HomePWN with GNU General Public License v3.0 | 5 votes |
def safe_get_mouse_event(self): try: mouse_event = curses.getmouse() return mouse_event except _curses.error: return None
Example #7
Source File: fmForm.py From EDCOP with Apache License 2.0 | 5 votes |
def safe_get_mouse_event(self): try: mouse_event = curses.getmouse() return mouse_event except _curses.error: return None
Example #8
Source File: ui.py From suplemon with MIT License | 5 votes |
def get_mouse_state(self): """Get the mouse event data.""" try: mouse_state = curses.getmouse() except: self.logger.error("curses.getmouse() failed!", exc_info=True) return False # Translate the coordinates to the editor coordinate system return self._translate_mouse_to_editor(mouse_state)
Example #9
Source File: cgroup_top.py From python-scripts with GNU General Public License v3.0 | 5 votes |
def on_mouse(): '''Update selected line / sort''' _, x, y, z, bstate = curses.getmouse() # Left button click ? if bstate & curses.BUTTON1_CLICKED: # Is it title line ? if y == 0: # Determine sort column based on offset / col width x_max = 0 for col in COLUMNS: if not col.width: set_sort_col(col.col_sort) elif x < x_max+col.width: set_sort_col(col.col_sort) else: x_max += col.width + 1 continue return 2 # Is it a cgroup line ? elif y <= len(CONFIGURATION['cgroups']): if CONFIGURATION['follow']: CONFIGURATION['selected_line_name'] = CONFIGURATION['cgroups'][y-1] else: CONFIGURATION['selected_line_num'] = y-1 return 2 return 1
Example #10
Source File: top.py From python-scripts with GNU General Public License v3.0 | 5 votes |
def on_mouse(): '''Update selected line / sort''' _, x, y, z, bstate = curses.getmouse() # Left button click ? if bstate & curses.BUTTON1_CLICKED: # Is it title line ? if y == 0: # Determine sort column based on offset / col width x_max = 0 return 2 # Is it a cgroup line ? return 1
Example #11
Source File: fmForm.py From TelegramTUI with MIT License | 5 votes |
def safe_get_mouse_event(self): try: mouse_event = curses.getmouse() return mouse_event except _curses.error: return None
Example #12
Source File: curses_ui.py From Serverless-Deep-Learning-with-TensorFlow-and-AWS-Lambda with MIT License | 5 votes |
def _screen_getmouse(self): return curses.getmouse()
Example #13
Source File: curses_ui.py From keras-lambda with MIT License | 5 votes |
def _screen_getmouse(self): return curses.getmouse()
Example #14
Source File: screen.py From deepWordBug with Apache License 2.0 | 4 votes |
def get_event(self): """ Check for an event without waiting. """ # Spin through notifications until we find something we want. key = 0 while key != -1: # Get the next key key = self._screen.getch() if key == curses.KEY_RESIZE: # Handle screen resize self._re_sized = True elif key == curses.KEY_MOUSE: # Handle a mouse event _, x, y, _, bstate = curses.getmouse() buttons = 0 # Some Linux modes only report clicks, so check for any # button down or click events. if (bstate & curses.BUTTON1_PRESSED != 0 or bstate & curses.BUTTON1_CLICKED != 0): buttons |= MouseEvent.LEFT_CLICK if (bstate & curses.BUTTON3_PRESSED != 0 or bstate & curses.BUTTON3_CLICKED != 0): buttons |= MouseEvent.RIGHT_CLICK if bstate & curses.BUTTON1_DOUBLE_CLICKED != 0: buttons |= MouseEvent.DOUBLE_CLICK return MouseEvent(x, y, buttons) elif key != -1: # Handle any byte streams first logger.debug("Processing key: %x", key) if self._unicode_aware and key > 0: if key & 0xC0 == 0xC0: self._bytes_to_return = struct.pack(b"B", key) self._bytes_to_read = bin(key)[2:].index("0") - 1 logger.debug("Byte stream: %d bytes left", self._bytes_to_read) continue elif self._bytes_to_read > 0: self._bytes_to_return += struct.pack(b"B", key) self._bytes_to_read -= 1 if self._bytes_to_read > 0: continue else: key = ord(self._bytes_to_return.decode("utf-8")) # Handle a genuine key press. logger.debug("Returning key: %x", key) if key in self._KEY_MAP: return KeyboardEvent(self._KEY_MAP[key]) elif key != -1: return KeyboardEvent(key) return None
Example #15
Source File: curses_display.py From anyMesh-Python with MIT License | 4 votes |
def _encode_mouse_event(self): # convert to escape sequence last = next = self.last_bstate (id,x,y,z,bstate) = curses.getmouse() mod = 0 if bstate & curses.BUTTON_SHIFT: mod |= 4 if bstate & curses.BUTTON_ALT: mod |= 8 if bstate & curses.BUTTON_CTRL: mod |= 16 l = [] def append_button( b ): b |= mod l.extend([ 27, ord('['), ord('M'), b+32, x+33, y+33 ]) if bstate & curses.BUTTON1_PRESSED and last & 1 == 0: append_button( 0 ) next |= 1 if bstate & curses.BUTTON2_PRESSED and last & 2 == 0: append_button( 1 ) next |= 2 if bstate & curses.BUTTON3_PRESSED and last & 4 == 0: append_button( 2 ) next |= 4 if bstate & curses.BUTTON4_PRESSED and last & 8 == 0: append_button( 64 ) next |= 8 if bstate & curses.BUTTON1_RELEASED and last & 1: append_button( 0 + escape.MOUSE_RELEASE_FLAG ) next &= ~ 1 if bstate & curses.BUTTON2_RELEASED and last & 2: append_button( 1 + escape.MOUSE_RELEASE_FLAG ) next &= ~ 2 if bstate & curses.BUTTON3_RELEASED and last & 4: append_button( 2 + escape.MOUSE_RELEASE_FLAG ) next &= ~ 4 if bstate & curses.BUTTON4_RELEASED and last & 8: append_button( 64 + escape.MOUSE_RELEASE_FLAG ) next &= ~ 8 if bstate & curses.BUTTON1_DOUBLE_CLICKED: append_button( 0 + escape.MOUSE_MULTIPLE_CLICK_FLAG ) if bstate & curses.BUTTON2_DOUBLE_CLICKED: append_button( 1 + escape.MOUSE_MULTIPLE_CLICK_FLAG ) if bstate & curses.BUTTON3_DOUBLE_CLICKED: append_button( 2 + escape.MOUSE_MULTIPLE_CLICK_FLAG ) if bstate & curses.BUTTON4_DOUBLE_CLICKED: append_button( 64 + escape.MOUSE_MULTIPLE_CLICK_FLAG ) if bstate & curses.BUTTON1_TRIPLE_CLICKED: append_button( 0 + escape.MOUSE_MULTIPLE_CLICK_FLAG*2 ) if bstate & curses.BUTTON2_TRIPLE_CLICKED: append_button( 1 + escape.MOUSE_MULTIPLE_CLICK_FLAG*2 ) if bstate & curses.BUTTON3_TRIPLE_CLICKED: append_button( 2 + escape.MOUSE_MULTIPLE_CLICK_FLAG*2 ) if bstate & curses.BUTTON4_TRIPLE_CLICKED: append_button( 64 + escape.MOUSE_MULTIPLE_CLICK_FLAG*2 ) self.last_bstate = next return l
Example #16
Source File: screen.py From aws-elastic-beanstalk-cli with Apache License 2.0 | 4 votes |
def get_event(self): """ Check for an event without waiting. """ # Spin through notifications until we find something we want. key = 0 while key != -1: # Get the next key key = self._screen.getch() if key == curses.KEY_RESIZE: # Handle screen resize self._re_sized = True elif key == curses.KEY_MOUSE: # Handle a mouse event _, x, y, _, bstate = curses.getmouse() buttons = 0 # Some Linux modes only report clicks, so check for any # button down or click events. if (bstate & curses.BUTTON1_PRESSED != 0 or bstate & curses.BUTTON1_CLICKED != 0): buttons |= MouseEvent.LEFT_CLICK if (bstate & curses.BUTTON3_PRESSED != 0 or bstate & curses.BUTTON3_CLICKED != 0): buttons |= MouseEvent.RIGHT_CLICK if bstate & curses.BUTTON1_DOUBLE_CLICKED != 0: buttons |= MouseEvent.DOUBLE_CLICK return MouseEvent(x, y, buttons) elif key != -1: # Handle any byte streams first logger.debug("Processing key: %x", key) if self._unicode_aware and key > 0: if key & 0xC0 == 0xC0: self._bytes_to_return = struct.pack(b"B", key) self._bytes_to_read = bin(key)[2:].index("0") - 1 logger.debug("Byte stream: %d bytes left", self._bytes_to_read) continue elif self._bytes_to_read > 0: self._bytes_to_return += struct.pack(b"B", key) self._bytes_to_read -= 1 if self._bytes_to_read > 0: continue else: key = ord(self._bytes_to_return.decode("utf-8")) # Handle a genuine key press. logger.debug("Returning key: %x", key) if key in self._KEY_MAP: return KeyboardEvent(self._KEY_MAP[key]) elif key != -1: return KeyboardEvent(key) return None