diff options
| author | Ted Gould <ted@gould.cx> | 2010-03-26 04:34:25 +0000 |
|---|---|---|
| committer | Ted Gould <ted@gould.cx> | 2010-03-26 04:34:25 +0000 |
| commit | 9e023a3aa964a0d3fa1e31e46d33657367ba68aa (patch) | |
| tree | 33f1392a340737e4eeefca6fd031f96c29befd2b /src/widgets/gradient-selector.cpp | |
| parent | Installing the pkgconfig file (diff) | |
| parent | Adding in shape-record.h (diff) | |
| download | inkscape-9e023a3aa964a0d3fa1e31e46d33657367ba68aa.tar.gz inkscape-9e023a3aa964a0d3fa1e31e46d33657367ba68aa.zip | |
Merge from trunk
(bzr r8254.1.53)
Diffstat (limited to 'src/widgets/gradient-selector.cpp')
| -rw-r--r-- | src/widgets/gradient-selector.cpp | 101 |
1 files changed, 52 insertions, 49 deletions
diff --git a/src/widgets/gradient-selector.cpp b/src/widgets/gradient-selector.cpp index f24a6781b..bc2413730 100644 --- a/src/widgets/gradient-selector.cpp +++ b/src/widgets/gradient-selector.cpp @@ -4,9 +4,11 @@ * Authors: * Lauris Kaplinski <lauris@kaplinski.com> * bulia byak <buliabyak@users.sf.net> + * Jon A. Cruz <jon@joncruz.org> * * Copyright (C) 2001-2002 Lauris Kaplinski * Copyright (C) 2001 Ximian, Inc. + * Copyright (C) 2010 Jon A. Cruz * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -118,9 +120,9 @@ sp_gradient_selector_class_init (SPGradientSelectorClass *klass) static void sp_gradient_selector_init (SPGradientSelector *sel) { - GtkWidget *hb, *l, *m, *mi; + GtkWidget *hb, *m, *mi; - sel->mode = SP_GRADIENT_SELECTOR_MODE_LINEAR; + sel->mode = SPGradientSelector::MODE_LINEAR; sel->gradientUnits = SP_GRADIENT_UNITS_USERSPACEONUSE; sel->gradientSpread = SP_GRADIENT_SPREAD_PAD; @@ -180,9 +182,9 @@ sp_gradient_selector_init (SPGradientSelector *sel) gtk_option_menu_set_menu (GTK_OPTION_MENU (sel->spread), m); - l = gtk_label_new (_("Repeat:")); - gtk_widget_show (l); - gtk_box_pack_end (GTK_BOX (hb), l, FALSE, FALSE, 4); + sel->spreadLbl = gtk_label_new (_("Repeat:")); + gtk_widget_show(sel->spreadLbl); + gtk_box_pack_end(GTK_BOX(hb), sel->spreadLbl, FALSE, FALSE, 4); } static void @@ -206,77 +208,78 @@ sp_gradient_selector_new (void) return (GtkWidget *) sel; } -void -sp_gradient_selector_set_mode (SPGradientSelector *sel, guint mode) +void SPGradientSelector::setMode(SelectorMode mode) { - g_return_if_fail (sel != NULL); - g_return_if_fail (SP_IS_GRADIENT_SELECTOR (sel)); - - sel->mode = mode; + if (mode != this->mode) { + this->mode = mode; + if (mode == MODE_SWATCH) { + if (spread) { + GtkWidget *parent = gtk_widget_get_parent(spread); + if (parent) { + gtk_container_remove(GTK_CONTAINER(parent), spread); + spread = 0; + } + } + if (spreadLbl) { + GtkWidget *parent = gtk_widget_get_parent(spreadLbl); + if (parent) { + gtk_container_remove(GTK_CONTAINER(parent), spreadLbl); + spreadLbl = 0; + } + } + + SPGradientVectorSelector* vs = SP_GRADIENT_VECTOR_SELECTOR(vectors); + vs->setSwatched(); + } + } } -void -sp_gradient_selector_set_units (SPGradientSelector *sel, guint units) +void SPGradientSelector::setUnits(SPGradientUnits units) { - g_return_if_fail (sel != NULL); - g_return_if_fail (SP_IS_GRADIENT_SELECTOR (sel)); - - sel->gradientUnits = (SPGradientUnits)units; + gradientUnits = units; } -void -sp_gradient_selector_set_spread (SPGradientSelector *sel, guint spread) +void SPGradientSelector::setSpread(SPGradientSpread spread) { - g_return_if_fail (sel != NULL); - g_return_if_fail (SP_IS_GRADIENT_SELECTOR (sel)); + gradientSpread = spread; - sel->gradientSpread = (SPGradientSpread)spread; - - gtk_option_menu_set_history (GTK_OPTION_MENU (sel->spread), sel->gradientSpread); + gtk_option_menu_set_history(GTK_OPTION_MENU(this->spread), gradientSpread); } -SPGradientUnits -sp_gradient_selector_get_units (SPGradientSelector *sel) +SPGradientUnits SPGradientSelector::getUnits() { - return (SPGradientUnits) sel->gradientUnits; + return gradientUnits; } -SPGradientSpread -sp_gradient_selector_get_spread (SPGradientSelector *sel) +SPGradientSpread SPGradientSelector::getSpread() { - return (SPGradientSpread) sel->gradientSpread; + return gradientSpread; } -void -sp_gradient_selector_set_vector (SPGradientSelector *sel, SPDocument *doc, SPGradient *vector) +void SPGradientSelector::setVector(SPDocument *doc, SPGradient *vector) { - g_return_if_fail (sel != NULL); - g_return_if_fail (SP_IS_GRADIENT_SELECTOR (sel)); - g_return_if_fail (!vector || SP_IS_GRADIENT (vector)); - g_return_if_fail (!vector || (SP_OBJECT_DOCUMENT (vector) == doc)); + g_return_if_fail(!vector || SP_IS_GRADIENT(vector)); + g_return_if_fail(!vector || (SP_OBJECT_DOCUMENT(vector) == doc)); - if (vector && !SP_GRADIENT_HAS_STOPS (vector)) + if (vector && !SP_GRADIENT_HAS_STOPS(vector)) { return; + } - sp_gradient_vector_selector_set_gradient (SP_GRADIENT_VECTOR_SELECTOR (sel->vectors), doc, vector); + sp_gradient_vector_selector_set_gradient(SP_GRADIENT_VECTOR_SELECTOR(vectors), doc, vector); if (vector) { - gtk_widget_set_sensitive (sel->edit, TRUE); - gtk_widget_set_sensitive (sel->add, TRUE); + gtk_widget_set_sensitive(edit, TRUE); + gtk_widget_set_sensitive(add, TRUE); } else { - gtk_widget_set_sensitive (sel->edit, FALSE); - gtk_widget_set_sensitive (sel->add, (doc != NULL)); + gtk_widget_set_sensitive(edit, FALSE); + gtk_widget_set_sensitive(add, (doc != NULL)); } } -SPGradient * -sp_gradient_selector_get_vector (SPGradientSelector *sel) +SPGradient *SPGradientSelector::getVector() { - if (sel == NULL || !SP_IS_GRADIENT_SELECTOR (sel)) - return NULL; - /* fixme: */ - return SP_GRADIENT_VECTOR_SELECTOR (sel->vectors)->gr; + return SP_GRADIENT_VECTOR_SELECTOR(vectors)->gr; } static void @@ -287,7 +290,7 @@ sp_gradient_selector_vector_set (SPGradientVectorSelector */*gvs*/, SPGradient * if (!blocked) { blocked = TRUE; gr = sp_gradient_ensure_vector_normalized (gr); - sp_gradient_selector_set_vector (sel, (gr) ? SP_OBJECT_DOCUMENT (gr) : NULL, gr); + sel->setVector((gr) ? SP_OBJECT_DOCUMENT (gr) : 0, gr); g_signal_emit (G_OBJECT (sel), signals[CHANGED], 0, gr); blocked = FALSE; } |
