本文整理汇总了Python中curses.getmouse方法的典型用法代码示例。如果您正苦于以下问题:Python curses.getmouse方法的具体用法?Python curses.getmouse怎么用?Python curses.getmouse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类curses
的用法示例。
在下文中一共展示了curses.getmouse方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _screen_getmouse
# 需要导入模块: import curses [as 别名]
# 或者: from curses import getmouse [as 别名]
def _screen_getmouse(self):
return curses.getmouse()
示例2: safe_get_mouse_event
# 需要导入模块: import curses [as 别名]
# 或者: from curses import getmouse [as 别名]
def safe_get_mouse_event(self):
try:
mouse_event = curses.getmouse()
return mouse_event
except _curses.error:
return None
示例3: on_mouse
# 需要导入模块: import curses [as 别名]
# 或者: from curses import getmouse [as 别名]
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
示例4: get_mouse_state
# 需要导入模块: import curses [as 别名]
# 或者: from curses import getmouse [as 别名]
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)
示例5: on_mouse
# 需要导入模块: import curses [as 别名]
# 或者: from curses import getmouse [as 别名]
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
示例6: get_event
# 需要导入模块: import curses [as 别名]
# 或者: from curses import getmouse [as 别名]
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
示例7: _encode_mouse_event
# 需要导入模块: import curses [as 别名]
# 或者: from curses import getmouse [as 别名]
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