[ease/presenter] Get rid of lambda functions to handle player callbacks.
- From: Stéphane Maniaci <maniacis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ease/presenter] Get rid of lambda functions to handle player callbacks.
- Date: Tue, 17 Aug 2010 23:19:48 +0000 (UTC)
commit ab57bb7dd8794394b247c182a200930f825e9cff
Author: Stéphane Maniaci <stephane maniaci gmail com>
Date: Tue Aug 17 15:31:49 2010 -0500
Get rid of lambda functions to handle player callbacks.
Understanding the Vala callback mechanism, better later than never.
ease/ease-player.vala | 49 +++++++++++++++----------------------------------
1 files changed, 15 insertions(+), 34 deletions(-)
---
diff --git a/ease/ease-player.vala b/ease/ease-player.vala
index 90cc40a..a3c3f6f 100644
--- a/ease/ease-player.vala
+++ b/ease/ease-player.vala
@@ -78,37 +78,13 @@ internal class Ease.Player : Gtk.Window
}
// keyboard handling
- stage.key_press_event.connect ( (ev) =>
- {
- on_key_press (ev);
- return true;
- });
+ stage.key_press_event.connect (on_key_press);
// mouse handling
- stage.button_press_event.connect ( (ev) =>
- {
- on_button_press (ev);
- return true;
- });
-
- stage.motion_event.connect ( (ev) =>
- {
- on_motion (ev);
- return true;
- });
-
- stage.button_release_event.connect ( (ev) =>
- {
- on_button_release (ev);
- return true;
- });
-
- stage.scroll_event.connect ( (ev) =>
- {
- on_scroll_event (ev);
- return true;
- });
- // FIXME : do I really have to do lambda functions each time ?
+ stage.button_press_event.connect (on_button_press);
+ stage.motion_event.connect (on_motion);
+ stage.button_release_event.connect (on_button_release);
+ stage.scroll_event.connect (on_scroll_event);
// TODO : auto hide/show of the cursor.
// stage.hide_cursor();
@@ -158,7 +134,7 @@ internal class Ease.Player : Gtk.Window
advance();
}
- internal void on_motion (Clutter.MotionEvent event)
+ internal bool on_motion (Clutter.MotionEvent event)
{
if (dragging) {
focus_circle.clear ();
@@ -173,17 +149,19 @@ internal class Ease.Player : Gtk.Window
} else {
// fade out
}
+ return true;
}
- internal void on_button_release (Clutter.ButtonEvent event)
+ internal bool on_button_release (Clutter.ButtonEvent event)
{
dragging = false;
// FIXME : should the focus fade time be a constant ?
focus_circle.animate (Clutter.AnimationMode.LINEAR, 150,
"opacity", 0);
+ return true;
}
- internal void on_button_press (Clutter.ButtonEvent event)
+ internal bool on_button_press (Clutter.ButtonEvent event)
{
dragging = true;
debug ("Got a mouse click at %f, %f", event.x, event.y);
@@ -199,9 +177,10 @@ internal class Ease.Player : Gtk.Window
stage.raise_child (focus_circle, null);
focus_circle.animate (Clutter.AnimationMode.LINEAR, 150,
"opacity", FOCUS_OPACITY);
+ return true;
}
- internal void on_scroll_event (Clutter.ScrollEvent event)
+ internal bool on_scroll_event (Clutter.ScrollEvent event)
{
debug ("Scrolling active.");
if (event.direction == Clutter.ScrollDirection.UP) {
@@ -224,9 +203,10 @@ internal class Ease.Player : Gtk.Window
cr.paint ();
cr = null;
stage.raise_child (focus_circle, null);
+ return true;
}
- internal void on_key_press (Clutter.KeyEvent event)
+ internal bool on_key_press (Clutter.KeyEvent event)
{
/* Coded with /usr/include/clutter-1.0/clutter/clutter-keysyms.h */
/* Ask developers about the use of that file and the lack of doc */
@@ -256,6 +236,7 @@ internal class Ease.Player : Gtk.Window
debug ("Key not handled.");
break;
}
+ return true;
}
internal void advance()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]