| @@ -155,15 +155,7 @@ class Display(_Display): | |||||
| return _lib.caca_set_cursor(self, flag) | return _lib.caca_set_cursor(self, flag) | ||||
| def get_event(self, event_mask, event, timeout): | def get_event(self, event_mask, event, timeout): | ||||
| """ Poll the event queue for mouse or keyboard events matching the event mask | |||||
| and return the first matching event. Non-matching events are discarded. | |||||
| If event_mask is zero, the function returns immediately. | |||||
| The timeout value tells how long this function needs to wait for an event. | |||||
| A value of zero returns immediately and the function returns zero if no more events | |||||
| are pending in the queue. A negative value causes the function to wait indefinitely | |||||
| until a matching event is received. | |||||
| If not null, ev will be filled with information about the event received. If null, | |||||
| the function will return but no information about the event will be sent. | |||||
| """ Get the next mouse or keyboard input event. | |||||
| event_mask -- bitmask of requested events | event_mask -- bitmask of requested events | ||||
| event -- a pointer to caca_event structure or NULL | event -- a pointer to caca_event structure or NULL | ||||
| @@ -175,24 +167,16 @@ class Display(_Display): | |||||
| return _lib.caca_get_event(self, event_mask, ctypes.byref(event), timeout) | return _lib.caca_get_event(self, event_mask, ctypes.byref(event), timeout) | ||||
| def get_mouse_x(self): | def get_mouse_x(self): | ||||
| """ Return the X coordinate of the mouse position last time it was detected. | |||||
| This function is not reliable if the ncurses or S-Lang drivers are being used, | |||||
| because mouse position is only detected when the mouse is clicked. | |||||
| Other drivers such as X11 work well. | |||||
| """ Return the X mouse coordinate. | |||||
| """ | """ | ||||
| _lib.caca_get_mouse_x.argtypes = [Display] | _lib.caca_get_mouse_x.argtypes = [Display] | ||||
| _lib.caca_get_mouse_x.restype = ctypes.c_int | _lib.caca_get_mouse_x.restype = ctypes.c_int | ||||
| return _lib.caca_get_mouse_x(self) | return _lib.caca_get_mouse_x(self) | ||||
| def get_mouse_y(self): | def get_mouse_y(self): | ||||
| """ Return the Y coordinate of the mouse position last time it was detected. | |||||
| This function is not reliable if the ncurses or S-Lang drivers are being used, | |||||
| because mouse position is only detected when the mouse is clicked. | |||||
| Other drivers such as X11 work well. | |||||
| """ Return the Y mouse coordinate. | |||||
| """ | """ | ||||
| _lib.caca_get_mouse_y.argtypes = [Display] | _lib.caca_get_mouse_y.argtypes = [Display] | ||||
| _lib.caca_get_mouse_y.restype = ctypes.c_int | _lib.caca_get_mouse_y.restype = ctypes.c_int | ||||
| @@ -214,45 +198,76 @@ class Event(ctypes.Structure): | |||||
| return ctypes.byref(self) | return ctypes.byref(self) | ||||
| def get_type(self): | def get_type(self): | ||||
| """ Return the type of an event. This function may always be called | |||||
| on an event after caca_get_event() was called, and its return value | |||||
| indicates which other functions may be called. | |||||
| """ Return an event's type. | |||||
| """ | """ | ||||
| _lib.caca_get_event_type.argtypes = [Event] | _lib.caca_get_event_type.argtypes = [Event] | ||||
| _lib.caca_get_event_type.restype = ctypes.c_int | |||||
| _lib.caca_get_event_type.restype = ctypes.c_int | |||||
| return _lib.caca_get_event_type(self) | return _lib.caca_get_event_type(self) | ||||
| def get_key_ch(self): | def get_key_ch(self): | ||||
| """ Return either the ASCII value for an event's key, or if the key is not | |||||
| an ASCII character, an appropriate KEY_* value | |||||
| """ Return a key press or key release event's value. | |||||
| """ | """ | ||||
| _lib.caca_get_event_key_ch.argtypes = [Event] | _lib.caca_get_event_key_ch.argtypes = [Event] | ||||
| _lib.caca_get_event_key_ch.restype = ctypes.c_int | |||||
| _lib.caca_get_event_key_ch.restype = ctypes.c_int | |||||
| return _lib.caca_get_event_key_ch(self) | return _lib.caca_get_event_key_ch(self) | ||||
| def get_key_utf32(self): | def get_key_utf32(self): | ||||
| """ Return the UTF-32/UCS-4 value for an event's key if it resolves | |||||
| to a printable character. | |||||
| """ Not implemented. | |||||
| """ | """ | ||||
| _lib.caca_get_event_key_utf32.argtypes = [Event] | |||||
| _lib.caca_get_event_key_utf32.restype = ctypes.c_uint32 | |||||
| return _lib.caca_get_event_key_utf32(self) | |||||
| raise DisplayError, "Not implemented" | |||||
| def get_key_utf8(self): | def get_key_utf8(self): | ||||
| """ Write the UTF-8 value for an event's key if it resolves to a | |||||
| printable character. Up to 6 UTF-8 bytes and a null termination | |||||
| are written. | |||||
| """ Return a key press or key release event's UTF-8 value. | |||||
| """ | """ | ||||
| # set buffer for writing utf8 value | # set buffer for writing utf8 value | ||||
| buf = ctypes.c_buffer(2) | |||||
| buf = ctypes.c_buffer(7) | |||||
| _lib.caca_get_event_key_utf8.argtypes = [Event, ctypes.c_char_p] | _lib.caca_get_event_key_utf8.argtypes = [Event, ctypes.c_char_p] | ||||
| _lib.caca_get_event_key_utf8.restype = ctypes.c_int | |||||
| _lib.caca_get_event_key_utf8.restype = ctypes.c_int | |||||
| _lib.caca_get_event_key_utf8(self, buf) | _lib.caca_get_event_key_utf8(self, buf) | ||||
| return buf | return buf | ||||
| def get_mouse_button(self): | |||||
| """ Return a mouse press or mouse release event's button. | |||||
| """ | |||||
| _lib.caca_get_event_mouse_button.argtypes = [Event] | |||||
| _lib.caca_get_event_mouse_button.restype = ctypes.c_int | |||||
| return _lib.caca_get_event_mouse_button(self) | |||||
| def get_mouse_x(self): | |||||
| """ Return a mouse motion event's X coordinate. | |||||
| """ | |||||
| _lib.caca_get_event_mouse_x.argtypes = [Event] | |||||
| _lib.caca_get_event_mouse_x.restype = ctypes.c_int | |||||
| return _lib.caca_get_event_mouse_x(self) | |||||
| def get_mouse_y(self): | |||||
| """ Return a mouse motion event's Y coordinate. | |||||
| """ | |||||
| _lib.caca_get_event_mouse_y.argtypes = [Event] | |||||
| _lib.caca_get_event_mouse_y.restype = ctypes.c_int | |||||
| return _lib.caca_get_event_mouse_y(self) | |||||
| def get_resize_width(self): | |||||
| """ Return a resize event's display width value. | |||||
| """ | |||||
| _lib.caca_get_event_resize_width.argtypes = [Event] | |||||
| _lib.caca_get_event_resize_width.restype = ctypes.c_int | |||||
| return _lib.caca_get_event_resize_width(self) | |||||
| def get_resize_height(self): | |||||
| """ Return a resize event's display height value. | |||||
| """ | |||||
| _lib.caca_get_event_resize_height.argtypes = [Event] | |||||
| _lib.caca_get_event_resize_height.restype = ctypes.c_int | |||||
| return _lib.caca_get_event_resize_height(self) | |||||