gradient-toolbar.cpp revision ef9d155a8149d4793471047b3836db719b9e0292
1068N/A#ifdef HAVE_CONFIG_H
919N/A#include "widgets/widget-sizes.h"
919N/A#include "widgets/spw-utilities.h"
919N/A#include "widgets/spinbutton-events.h"
919N/A#include "widgets/gradient-vector.h"
919N/A#include "widgets/gradient-image.h"
919N/A#include "prefs-utils.h"
919N/A#include "document-private.h"
919N/A#include "desktop-handles.h"
469N/A#include "gradient-context.h"
469N/A#include "gradient-drag.h"
1068N/A#include "sp-linear-gradient.h"
469N/A#include "sp-radial-gradient.h"
469N/A#include "gradient-chemistry.h"
469N/A#include "selection.h"
469N/Agr_apply_gradient_to_item (SPItem *item, SPGradient *gr, SPGradientType new_type, guint new_fill, bool do_fill, bool do_stroke)
469N/AApplies gradient vector gr to the gradients attached to the selected dragger of drag, or if none,
469N/Ato all objects in selection. If there was no previous gradient on an item, uses gradient type and
469N/Afill/stroke setting from preferences to create new default (linear: left/right; radial: centered)
469N/A SPGradientType new_type = (SPGradientType) prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
469N/A for (GSList const* i = dragger->draggables; i != NULL; i = i->next) { // for all draggables of dragger
469N/A gr_apply_gradient_to_item (draggable->item, gr, new_type, new_fill, draggable->fill_or_stroke, !draggable->fill_or_stroke);
469N/A if (strlen(id) > 15 && (!strncmp (id, "#linearGradient", 15) || !strncmp (id, "#radialGradient", 15)))
469N/Agr_vector_list (SPDesktop *desktop, bool selection_empty, SPGradient *gr_selected, bool gr_multi)
1233N/A gtk_widget_show (i);
1233N/A } else if (selection_empty) {
469N/A gtk_widget_show (i);
469N/A gtk_widget_show (i);
469N/A gtk_widget_show (i);
469N/Agr_read_selection (Inkscape::Selection *selection, GrDrag *drag, SPGradient **gr_selected, bool *gr_multi, SPGradientSpread *spr_selected, bool *spr_multi)
469N/A for (GSList const* i = dragger->draggables; i != NULL; i = i->next) { // for all draggables of dragger
469N/A SPGradient *gradient = sp_item_gradient_get_vector (draggable->item, draggable->fill_or_stroke);
469N/A SPGradientSpread spread = sp_item_gradient_get_spread (draggable->item, draggable->fill_or_stroke);
469N/A Inkscape::Selection *selection = sp_desktop_selection (desktop); // take from desktop, not from args
469N/A gr_read_selection (selection, ev? ev->get_drag() : NULL, &gr_selected, &gr_multi, &spr_selected, &spr_multi);
469N/A GtkWidget *i = gtk_menu_get_active (GTK_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (om))));
469N/A delete connection;
469N/A GtkWidget *i = gtk_menu_get_active (GTK_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (om))));
469N/A gr_read_selection (selection, ev? ev->get_drag() : NULL, &gr_selected, &gr_multi, &spr_selected, &spr_multi);
469N/A gtk_tooltips_set_tip(tt, b, _("If the gradient is used by more than one object, create a copy of it for the selected object(s)"), NULL);
469N/A *release_connection = SP_DOCUMENT_DEFS(document)->connectRelease(sigc::bind<1>(sigc::ptr_fun(&gr_defs_release), widget));
469N/A *modified_connection = SP_DOCUMENT_DEFS(document)->connectModified(sigc::bind<2>(sigc::ptr_fun(&gr_defs_modified), widget));
469N/A g_signal_connect(G_OBJECT(widget), "destroy", G_CALLBACK(gr_disconnect_sigc), release_connection);
469N/A g_signal_connect(G_OBJECT(widget), "destroy", G_CALLBACK(gr_disconnect_sigc), modified_connection);
469N/A prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR);
469N/A prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL);
469N/A g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl);
NULL,
tt);
return tbl;