summaryrefslogtreecommitdiffstats
path: root/src/widgets/gradient-image.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-07-29 20:09:47 +0000
committermental <mental@users.sourceforge.net>2006-07-29 20:09:47 +0000
commita1efe18557187fa53fd049654da2896b0f6fb385 (patch)
tree05e3833ec25b5ac344a798d3c4b5402e7878f223 /src/widgets/gradient-image.cpp
parentswitch to sigc++ SPObject signals for gradient toolbar (diff)
downloadinkscape-a1efe18557187fa53fd049654da2896b0f6fb385.tar.gz
inkscape-a1efe18557187fa53fd049654da2896b0f6fb385.zip
switch to sigc++ SPObject signals for SPGradientImage
(bzr r1505)
Diffstat (limited to '')
-rw-r--r--src/widgets/gradient-image.cpp31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/widgets/gradient-image.cpp b/src/widgets/gradient-image.cpp
index 38300426d..2393e407a 100644
--- a/src/widgets/gradient-image.cpp
+++ b/src/widgets/gradient-image.cpp
@@ -17,8 +17,12 @@
#include "../display/nr-plain-stuff.h"
#include "../display/nr-plain-stuff-gdk.h"
#include "gradient-image.h"
+#include "sp-gradient.h"
#include "sp-gradient-fns.h"
+#include <sigc++/functors/ptr_fun.h>
+#include <sigc++/adaptors/bind.h>
+
#define VBLOCK 16
static void sp_gradient_image_class_init (SPGradientImageClass *klass);
@@ -31,8 +35,8 @@ static void sp_gradient_image_size_request (GtkWidget *widget, GtkRequisition *r
static void sp_gradient_image_size_allocate (GtkWidget *widget, GtkAllocation *allocation);
static gint sp_gradient_image_expose (GtkWidget *widget, GdkEventExpose *event);
-static void sp_gradient_image_gradient_release (SPGradient *gr, SPGradientImage *im);
-static void sp_gradient_image_gradient_modified (SPGradient *gr, guint flags, SPGradientImage *im);
+static void sp_gradient_image_gradient_release (SPObject *, SPGradientImage *im);
+static void sp_gradient_image_gradient_modified (SPObject *, guint flags, SPGradientImage *im);
static void sp_gradient_image_update (SPGradientImage *img);
static GtkWidgetClass *parent_class;
@@ -82,6 +86,9 @@ sp_gradient_image_init (SPGradientImage *image)
image->gradient = NULL;
image->px = NULL;
+
+ new (&image->release_connection) sigc::connection();
+ new (&image->modified_connection) sigc::connection();
}
static void
@@ -92,10 +99,14 @@ sp_gradient_image_destroy (GtkObject *object)
image = SP_GRADIENT_IMAGE (object);
if (image->gradient) {
- sp_signal_disconnect_by_data (image->gradient, image);
+ image->release_connection.disconnect();
+ image->modified_connection.disconnect();
image->gradient = NULL;
}
+ image->release_connection.~connection();
+ image->modified_connection.~connection();
+
if (((GtkObjectClass *) (parent_class))->destroy)
(* ((GtkObjectClass *) (parent_class))->destroy) (object);
}
@@ -217,24 +228,26 @@ void
sp_gradient_image_set_gradient (SPGradientImage *image, SPGradient *gradient)
{
if (image->gradient) {
- sp_signal_disconnect_by_data (image->gradient, image);
+ image->release_connection.disconnect();
+ image->modified_connection.disconnect();
}
image->gradient = gradient;
if (gradient) {
- g_signal_connect (G_OBJECT (gradient), "release", G_CALLBACK (sp_gradient_image_gradient_release), image);
- g_signal_connect (G_OBJECT (gradient), "modified", G_CALLBACK (sp_gradient_image_gradient_modified), image);
+ image->release_connection = gradient->connectRelease(sigc::bind<1>(sigc::ptr_fun(&sp_gradient_image_gradient_release), image));
+ image->modified_connection = gradient->connectModified(sigc::bind<2>(sigc::ptr_fun(&sp_gradient_image_gradient_modified), image));
}
sp_gradient_image_update (image);
}
static void
-sp_gradient_image_gradient_release (SPGradient *gradient, SPGradientImage *image)
+sp_gradient_image_gradient_release (SPObject *, SPGradientImage *image)
{
if (image->gradient) {
- sp_signal_disconnect_by_data (image->gradient, image);
+ image->release_connection.disconnect();
+ image->modified_connection.disconnect();
}
image->gradient = NULL;
@@ -243,7 +256,7 @@ sp_gradient_image_gradient_release (SPGradient *gradient, SPGradientImage *image
}
static void
-sp_gradient_image_gradient_modified (SPGradient *gradient, guint flags, SPGradientImage *image)
+sp_gradient_image_gradient_modified (SPObject *, guint flags, SPGradientImage *image)
{
sp_gradient_image_update (image);
}