Code

New tab in Fill&Stroke dialog for swatch fills.
[inkscape.git] / src / widgets / paint-selector.h
index de8bbf46a950bf38bdc38a851ce73a817c8b1fab..82dee4d16ff45b07e7b4df6a3fb2fac5fdd23262 100644 (file)
@@ -1,16 +1,22 @@
-#ifndef __SP_PAINT_SELECTOR_H__
-#define __SP_PAINT_SELECTOR_H__
+#ifndef SEEN_SP_PAINT_SELECTOR_H
+#define SEEN_SP_PAINT_SELECTOR_H
 
 /** \file
  * Generic paint selector widget
  *
+ * Authors:
+ *   Lauris
+ *   Jon A. Cruz <jon@joncruz.org>
+ *
  * Copyright (C) Lauris 2002
+ * Copyright (C) 2010 Authors
  *
  */
 
 #include <glib.h>
 #include "sp-gradient-spread.h"
 #include "sp-gradient-units.h"
+
 class SPGradient;
 
 #define SP_TYPE_PAINT_SELECTOR (sp_paint_selector_get_type ())
@@ -26,53 +32,60 @@ class SPGradient;
 #include <libnr/nr-forward.h>
 
 typedef enum {
-       SP_PAINT_SELECTOR_MODE_EMPTY,
-       SP_PAINT_SELECTOR_MODE_MULTIPLE,
-       SP_PAINT_SELECTOR_MODE_NONE,
-       SP_PAINT_SELECTOR_MODE_COLOR_RGB,
-       SP_PAINT_SELECTOR_MODE_COLOR_CMYK,
-       SP_PAINT_SELECTOR_MODE_GRADIENT_LINEAR,
+    SP_PAINT_SELECTOR_MODE_EMPTY,
+    SP_PAINT_SELECTOR_MODE_MULTIPLE,
+    SP_PAINT_SELECTOR_MODE_NONE,
+    SP_PAINT_SELECTOR_MODE_COLOR_RGB,
+    SP_PAINT_SELECTOR_MODE_COLOR_CMYK,
+    SP_PAINT_SELECTOR_MODE_GRADIENT_LINEAR,
     SP_PAINT_SELECTOR_MODE_GRADIENT_RADIAL,
     SP_PAINT_SELECTOR_MODE_PATTERN,
+    SP_PAINT_SELECTOR_MODE_SWATCH,
     SP_PAINT_SELECTOR_MODE_UNSET
 } SPPaintSelectorMode;
 
 typedef enum {
-       SP_PAINT_SELECTOR_FILLRULE_NONZERO,
-       SP_PAINT_SELECTOR_FILLRULE_EVENODD
+    SP_PAINT_SELECTOR_FILLRULE_NONZERO,
+    SP_PAINT_SELECTOR_FILLRULE_EVENODD
 } SPPaintSelectorFillRule;
 
 /// Generic paint selector widget
 struct SPPaintSelector {
-       GtkVBox vbox;
+    GtkVBox vbox;
 
-       guint update : 1;
+    guint update : 1;
 
-       SPPaintSelectorMode mode;
+    SPPaintSelectorMode mode;
 
-       GtkWidget *style;
-       GtkWidget *none, *solid, *gradient, *radial, *pattern, *unset;
+    GtkWidget *style;
+    GtkWidget *none;
+    GtkWidget *solid;
+    GtkWidget *gradient;
+    GtkWidget *radial;
+    GtkWidget *pattern;
+    GtkWidget *swatch;
+    GtkWidget *unset;
 
-       GtkWidget *fillrulebox;
-       GtkWidget *evenodd, *nonzero;
+    GtkWidget *fillrulebox;
+    GtkWidget *evenodd, *nonzero;
 
-       GtkWidget *frame, *selector;
+    GtkWidget *frame, *selector;
 
-       SPColor color;
-       float alpha;
+    SPColor color;
+    float alpha;
 };
 
 /// The SPPaintSelector vtable
 struct SPPaintSelectorClass {
-       GtkVBoxClass parent_class;
+    GtkVBoxClass parent_class;
 
-       void (* mode_changed) (SPPaintSelector *psel, SPPaintSelectorMode mode);
+    void (* mode_changed) (SPPaintSelector *psel, SPPaintSelectorMode mode);
 
-       void (* grabbed) (SPPaintSelector *psel);
-       void (* dragged) (SPPaintSelector *psel);
-       void (* released) (SPPaintSelector *psel);
-       void (* changed) (SPPaintSelector *psel);
-       void (* fillrule_changed) (SPPaintSelector *psel, SPPaintSelectorFillRule fillrule);
+    void (* grabbed) (SPPaintSelector *psel);
+    void (* dragged) (SPPaintSelector *psel);
+    void (* released) (SPPaintSelector *psel);
+    void (* changed) (SPPaintSelector *psel);
+    void (* fillrule_changed) (SPPaintSelector *psel, SPPaintSelectorFillRule fillrule);
 };
 
 GtkType sp_paint_selector_get_type (void);
@@ -88,6 +101,8 @@ void sp_paint_selector_set_gradient_linear (SPPaintSelector *psel, SPGradient *v
 
 void sp_paint_selector_set_gradient_radial (SPPaintSelector *psel, SPGradient *vector);
 
+void sp_paint_selector_set_swatch(SPPaintSelector *psel, SPPaintServer *server );
+
 void sp_paint_selector_set_gradient_properties (SPPaintSelector *psel, SPGradientUnits units, SPGradientSpread spread);
 void sp_paint_selector_get_gradient_properties (SPPaintSelector *psel, SPGradientUnits *units, SPGradientSpread *spread);
 
@@ -107,4 +122,15 @@ void sp_paint_selector_set_flat_color (SPPaintSelector *psel, SPDesktop *desktop
 
 SPPaintSelectorMode sp_style_determine_paint_selector_mode (SPStyle *style, bool isfill);
 
-#endif
+#endif // SEEN_SP_PAINT_SELECTOR_H
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :