Hi,

here it is a patch to add drag-start and drag-stop signals to mx-slider.
I don't know if Mx has a bugzilla, in case let me know so that I can upload the patch there.

Thanks and Regards,
Massimo

On 08/04/2011 12:44 AM, Massimo Cora' wrote:
Hi,

On 05/11/2011 09:04 AM, Tomeu Vizoso wrote:
On Wed, May 11, 2011 at 07:04, Alexandre Quessy<[email protected]>
wrote:
Hello!
It seems to me that the mx_slider doesn't provide a handle-moved signal.
Is there a reason why it doesn't?

Hi, do you mean something equivalent to listening to "notify::value"?


"notify::value" is nice but having drag-start / drag-end would be the
best choice in my opinion.
Right now to detect that the handle has been pressed I have to connect
to captured-event and then parse the event type (button-press-event etc.).


Regards,
Massimo

_______________________________________________
clutter-app-devel-list mailing list
[email protected]
http://lists.clutter-project.org/listinfo/clutter-app-devel-list

>From bad4b51f2754a103a112ec55ffc5960b573bbffe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Massimo=20Cor=C3=A0?= <[email protected]>
Date: Fri, 5 Aug 2011 00:37:33 +0200
Subject: [PATCH][BUILD] mx-slider: added drag-start/drag-stop signals.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit


Signed-off-by: Massimo Corà <[email protected]>
---
 mx/mx-slider.c |   33 +++++++++++++++++++++++++++++++++
 mx/mx-slider.h |    4 ++++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/mx/mx-slider.c b/mx/mx-slider.c
index 5351e10..ffbac4a 100644
--- a/mx/mx-slider.c
+++ b/mx/mx-slider.c
@@ -87,6 +87,16 @@ enum
   PROP_BUFFER_VALUE,
 };
 
+enum
+{
+  DRAG_START,
+  DRAG_STOP,
+
+  LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0, };
+
 /* MxFocusable interface */
 
 static MxFocusable*
@@ -190,6 +200,9 @@ on_handle_capture_event (ClutterActor *trough,
           mx_stylable_set_style_pseudo_class (MX_STYLABLE (priv->handle),
                                             NULL);
         }
+
+	  /* emit the stop signal */
+	  g_signal_emit (bar, signals[DRAG_STOP], 0);
     }
 
   return TRUE;
@@ -288,6 +301,8 @@ on_handle_button_press_event (ClutterActor       *actor,
                                             NULL))
     return FALSE;
 
+  g_signal_emit (bar, signals[DRAG_START], 0);
+
   /* Account for the scrollbar-trough-handle nesting. */
   priv->x_origin += clutter_actor_get_x (priv->trough);
 
@@ -765,6 +780,24 @@ mx_slider_class_init (MxSliderClass *klass)
                                "Buffer Value",
                                0.0, 1.0, 0.0, G_PARAM_READWRITE);
   g_object_class_install_property (object_class, PROP_BUFFER_VALUE, pspec);
+
+  signals[DRAG_START] =
+    g_signal_new ("drag-start",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (MxSliderClass, drag_start),
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);	
+
+  signals[DRAG_STOP] =
+    g_signal_new ("drag-stop",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (MxSliderClass, drag_stop),
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);		
 }
 
 static void
diff --git a/mx/mx-slider.h b/mx/mx-slider.h
index e1a01a0..2aa4e9b 100644
--- a/mx/mx-slider.h
+++ b/mx/mx-slider.h
@@ -71,6 +71,10 @@ struct _MxSliderClass
 {
   MxWidgetClass parent_class;
 
+  /* signals */
+  void (*drag_start) (MxSlider *slider);
+  void (*drag_stop)  (MxSlider *slider);
+	
   /* padding for future expansion */
   void (*_padding_0) (void);
   void (*_padding_1) (void);
-- 
1.7.5.4

_______________________________________________
clutter-app-devel-list mailing list
[email protected]
http://lists.clutter-project.org/listinfo/clutter-app-devel-list

Reply via email to