Beispiel #1
0
GtkWidget *
sp_widget_construct_repr (SPWidget *spw, SPRepr *repr)
{
	g_return_val_if_fail (spw != NULL, NULL);
	g_return_val_if_fail (SP_IS_WIDGET (spw), NULL);
	g_return_val_if_fail (repr != NULL, NULL);

	if (spw->repr) {
		if (repr == spw->repr) return (GtkWidget *) spw;
		if (GTK_WIDGET_VISIBLE (spw)) {
			sp_repr_remove_listener_by_data (spw->repr, spw);
		}
		sp_repr_unref (spw->repr);
		spw->repr = NULL;
	}
	if (spw->inkscape) {
		if (GTK_WIDGET_VISIBLE (spw)) {
			sp_signal_disconnect_by_data (inkscape, spw);
		}
		spw->inkscape = NULL;
	}
	spw->repr = repr;
	sp_repr_ref (spw->repr);
	if (GTK_WIDGET_VISIBLE (spw)) {
		sp_repr_add_listener (spw->repr, &spw_event_vector, spw);
	}

	g_signal_emit (G_OBJECT (spw), signals[CONSTRUCT], 0);

	return (GtkWidget *) spw;
}
Beispiel #2
0
static void
sp_text_edit_dialog_destroy (GtkObject *object, gpointer data)
{
	sp_signal_disconnect_by_data (INKSCAPE, dlg);
	wd.win = dlg = NULL;
	wd.stop = 0;
}
static void
sp_item_dialog_destroy( GtkObject */*object*/, gpointer /*data*/ )
{
    sp_signal_disconnect_by_data (INKSCAPE, dlg);
    wd.win = dlg = NULL;
    wd.stop = 0;
}
Beispiel #4
0
static void
sp_widget_destroy (GtkObject *object)
{
	SPWidget *spw;

	spw = (SPWidget *) object;

	if (spw->inkscape) {
#if 1
		/* This happens in ::hide (Lauris) */
		/* It seems it does not (Lauris) */
		/* Disconnect signals */
		sp_signal_disconnect_by_data (inkscape, spw);
#endif
		spw->inkscape = NULL;
	}

	if (spw->repr) {
#if 1
		/* This happens in ::hide (Lauris) */
		/* It seems it does not (Lauris) */
		sp_repr_remove_listener_by_data (spw->repr, spw);
#endif
		sp_repr_unref (spw->repr);
		spw->repr = NULL;
	}

	if (((GtkObjectClass *) parent_class)->destroy)
		(* ((GtkObjectClass *) parent_class)->destroy) (object);
}
Beispiel #5
0
static void
sp_quick_align_dialog_destroy (void)
{
	sp_signal_disconnect_by_data (INKSCAPE, dlg);
	wd.win = dlg = NULL;
	wd.stop = 0;
}
Beispiel #6
0
void
sp_sel_trans_shutdown (SPSelTrans *seltrans)
{
	gint i;

	for (i = 0; i < 8; i++) {
		if (seltrans->shandle[i]) {
			g_object_unref (G_OBJECT (seltrans->shandle[i]));
			seltrans->shandle[i] = NULL;
		}
		if (seltrans->rhandle[i]) {
			g_object_unref (G_OBJECT (seltrans->rhandle[i]));
			seltrans->rhandle[i] = NULL;
		}
	}
	if (seltrans->chandle) {
		g_object_unref (G_OBJECT (seltrans->chandle));
		seltrans->chandle = NULL;
	}

	if (seltrans->norm) {
		gtk_object_destroy (GTK_OBJECT (seltrans->norm));
		seltrans->norm = NULL;
	}
	if (seltrans->grip) {
		gtk_object_destroy (GTK_OBJECT (seltrans->grip));
		seltrans->grip = NULL;
	}
	if (seltrans->l1) {
		gtk_object_destroy (GTK_OBJECT (seltrans->l1));
		seltrans->l1 = NULL;
	}
	if (seltrans->l2) {
		gtk_object_destroy (GTK_OBJECT (seltrans->l2));
		seltrans->l2 = NULL;
	}
	if (seltrans->l3) {
		gtk_object_destroy (GTK_OBJECT (seltrans->l3));
		seltrans->l3 = NULL;
	}
	if (seltrans->l4) {
		gtk_object_destroy (GTK_OBJECT (seltrans->l4));
		seltrans->l4 = NULL;
	}

	if (seltrans->selection) {
		sp_signal_disconnect_by_data (seltrans->selection, seltrans);
	}

	nr_free (seltrans->spp);

	if (seltrans->items) {
		int i;
		for (i = 0; i < seltrans->nitems; i++) sp_object_unref (SP_OBJECT (seltrans->items[i]), NULL);
		nr_free (seltrans->items);
	}
	if (seltrans->transforms) nr_free (seltrans->transforms);
}
Beispiel #7
0
static void
sp_gradient_image_gradient_release (SPGradient *gradient, SPGradientImage *image)
{
	if (image->gradient) {
  		sp_signal_disconnect_by_data (image->gradient, image);
	}

	image->gradient = NULL;

	sp_gradient_image_update (image);
}
AlignAndDistribute::~AlignAndDistribute()
{
    sp_signal_disconnect_by_data (G_OBJECT (INKSCAPE), this);

    for (std::list<Action *>::iterator it = _actionList.begin();
         it != _actionList.end();  ++it) {
        delete *it;
    }

    _desktopChangeConn.disconnect();
    _deskTrack.disconnect();
}
Beispiel #9
0
static void
sp_widget_hide (GtkWidget *widget)
{
	SPWidget *spw;

	spw = SP_WIDGET (widget);

	if (spw->inkscape) {
		/* Disconnect signals */
		sp_signal_disconnect_by_data (spw->inkscape, spw);
	}

	if (((GtkWidgetClass *) parent_class)->hide)
		(* ((GtkWidgetClass *) parent_class)->hide) (widget);
}
Beispiel #10
0
static void
sp_gradient_image_destroy (GtkObject *object)
{
	SPGradientImage *image;

	image = SP_GRADIENT_IMAGE (object);

	if (image->gradient) {
  		sp_signal_disconnect_by_data (image->gradient, image);
		image->gradient = NULL;
	}

	if (((GtkObjectClass *) (parent_class))->destroy)
		(* ((GtkObjectClass *) (parent_class))->destroy) (object);
}
Beispiel #11
0
void
sp_gradient_image_set_gradient (SPGradientImage *image, SPGradient *gradient)
{
	if (image->gradient) {
  		sp_signal_disconnect_by_data (image->gradient, image);
	}

	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);
	}

	sp_gradient_image_update (image);
}
Beispiel #12
0
static void
sp_draw_context_finish (SPEventContext *ec)
{
	SPDrawContext *dc;

	dc = SP_DRAW_CONTEXT (ec);

	if (dc->grab) {
		sp_canvas_item_ungrab (dc->grab, GDK_CURRENT_TIME);
	}

	if (dc->selection) {
		sp_signal_disconnect_by_data (dc->selection, dc);
		dc->selection = NULL;
	}

	spdc_free_colors (dc);
}
Beispiel #13
0
static void
sp_widget_destroy (GtkObject *object)
{
	SPWidget *spw;

	spw = (SPWidget *) object;

	if (spw->inkscape) {
		/* Disconnect signals */
		// the checks are necessary because when destroy is caused by the the program shutting down,
		// the inkscape object may already be (partly?) invalid --bb
		if (G_IS_OBJECT(spw->inkscape) && G_OBJECT_GET_CLASS(G_OBJECT(spw->inkscape)))
  			sp_signal_disconnect_by_data (spw->inkscape, spw);
		spw->inkscape = NULL;
	}

	if (((GtkObjectClass *) parent_class)->destroy)
		(* ((GtkObjectClass *) parent_class)->destroy) (object);
}
Beispiel #14
0
static void
sp_draw_context_dispose (GObject *object)
{
	SPDrawContext *dc;

	dc = SP_DRAW_CONTEXT (object);

	if (dc->grab) {
		sp_canvas_item_ungrab (dc->grab, GDK_CURRENT_TIME);
		dc->grab = NULL;
	}

	if (dc->selection) {
		sp_signal_disconnect_by_data (dc->selection, dc);
		dc->selection = NULL;
	}

	spdc_free_colors (dc);

	G_OBJECT_CLASS (draw_parent_class)->dispose (object);
}
static void sp_find_dialog_destroy(GtkObject *object, gpointer)
{
    sp_signal_disconnect_by_data (INKSCAPE, object);
    wd.win = dlg = NULL;
    wd.stop = 0;
}