[pyclutter/wip/introspection] Add some pretty Event formatting
- From: Bastian Winkler <bwinkler src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pyclutter/wip/introspection] Add some pretty Event formatting
- Date: Mon, 14 Nov 2011 15:29:42 +0000 (UTC)
commit 9c34566c02de5f1859489a05ee0ab80cbb09c71c
Author: Bastian Winkler <buz netbuz org>
Date: Mon Nov 14 13:32:00 2011 +0100
Add some pretty Event formatting
introspection/Clutter.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 69 insertions(+), 0 deletions(-)
---
diff --git a/introspection/Clutter.py b/introspection/Clutter.py
index a26b87e..fb994a3 100644
--- a/introspection/Clutter.py
+++ b/introspection/Clutter.py
@@ -296,6 +296,75 @@ class Event(Clutter.Event):
raise AttributeError("'%s' object has no attribute '%s'" %
(self.__class__.__name__, name))
+ def __str__(self):
+ def get_key():
+ from gi.overrides import keysyms
+ for name in dir(keysyms):
+ if self.keyval == getattr(keysyms, name):
+ return name
+ if sys.version_info < (3, 0):
+ return unichr(self.get_key_unicode()).encode('UTF-8')
+ else:
+ return chr(self.get_key_unicode())
+
+ def actor_name(actor):
+ if not actor:
+ return 'None'
+ if actor.get_name():
+ return actor.get_name()
+ return actor.__class__.__name__
+
+ def get_state():
+ if self.get_state():
+ return 'modifier: %s; ' % str(self.get_state())
+ return ''
+
+ if self.type() == Clutter.EventType.BUTTON_PRESS:
+ return ('<Button Press at (%d,%d); button: %d; count: %d; %s' +
+ 'time: %d; source: %s>') % (self.button.x, self.button.y,
+ self.button.button, self.button.click_count,
+ get_state(), self.get_time(),
+ actor_name(self.get_source()))
+ elif self.type() == Clutter.EventType.BUTTON_RELEASE:
+ return ('<Button Release at (%d,%d); button: %d; count: %d; %s' +
+ 'time: i%d; source: %s>') % (self.button.x, self.button.y,
+ self.button.button, self.button.click_count,
+ get_state(), self.get_time(),
+ actor_name(self.get_source()))
+ elif self.type() == Clutter.EventType.KEY_PRESS:
+ return "<Key Press '%s'; %stime: %d; source %s>" % (
+ get_key(), get_state(), self.get_time(),
+ actor_name(self.get_source()))
+ elif self.type() == Clutter.EventType.KEY_RELEASE:
+ return "<Key Release '%s'; %stime: %d; source %s>" % (
+ get_key(), get_state(), self.get_time(),
+ actor_name(self.get_source()))
+ elif self.type() == Clutter.EventType.MOTION:
+ return "<Motion at (%d,%d); time: %d; source %s>" % (
+ self.motion.x, self.motion.y, self.get_time(),
+ actor_name(self.get_source()))
+ elif self.type() == Clutter.EventType.ENTER:
+ return "<Entering actor %s related to actor %s; time %d>" % (
+ actor_name(self.get_source()),
+ actor_name(self.get_related()), self.get_time())
+ elif self.type() == Clutter.EventType.LEAVE:
+ return "<Leaving actor %s related to actor %s; time %d>" % (
+ actor_name(self.get_source()),
+ actor_name(self.get_related()), self.get_time())
+ elif self.type() == Clutter.EventType.SCROLL:
+ return ("<Scroll %d at (%d,%d); modifier: %s; time: %d; " +
+ "source: %s>") % ( self.scroll.direction.value_nick,
+ self.scroll.x, self.scroll.y, self.get_time(),
+ actor_name(self.get_source()))
+ elif self.type() == Clutter.EventType.STAGE_STATE:
+ return '<Stage state %s on %s>' % (self.get_flags(),
+ actor_name(self.get_stage()))
+ elif self.type() == Clutter.EventType.NOTHING:
+ return '<Nothing>'
+ else:
+ return '<Unkown event>'
+
+
Event = override(Event)
__all__.append('Event')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]