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