Code

Initial F&S dialog setting of swatch colors.
[inkscape.git] / src / widgets / gradient-selector.h
1 #ifndef SEEN_GRADIENT_SELECTOR_H
2 #define SEEN_GRADIENT_SELECTOR_H
4 /*
5  * Gradient vector and position widget
6  *
7  * Authors:
8  *   Lauris Kaplinski <lauris@kaplinski.com>
9  *   Jon A. Cruz <jon@joncruz.org>
10  *
11  * Copyright (C) 2001-2002 Lauris Kaplinski
12  * Copyright (C) 2001 Ximian, Inc.
13  * Copyright (C) 2010 Jon A. Cruz
14  *
15  * Released under GNU GPL, read the file 'COPYING' for more information
16  */
18 #include <glib.h>
19 #include <gtk/gtkvbox.h>
20 #include "sp-gradient.h"
21 #include "sp-gradient-spread.h"
22 #include "sp-gradient-units.h"
24 class SPGradient;
26 #define SP_TYPE_GRADIENT_SELECTOR (sp_gradient_selector_get_type ())
27 #define SP_GRADIENT_SELECTOR(o) (GTK_CHECK_CAST ((o), SP_TYPE_GRADIENT_SELECTOR, SPGradientSelector))
28 #define SP_GRADIENT_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_GRADIENT_SELECTOR, SPGradientSelectorClass))
29 #define SP_IS_GRADIENT_SELECTOR(o) (GTK_CHECK_TYPE ((o), SP_TYPE_GRADIENT_SELECTOR))
30 #define SP_IS_GRADIENT_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), SP_TYPE_GRADIENT_SELECTOR))
34 struct SPGradientSelector {
35     GtkVBox vbox;
37     enum SelectorMode {
38         MODE_LINEAR,
39         MODE_RADIAL,
40         MODE_SWATCH
41     };
43     SelectorMode mode;
45     SPGradientUnits gradientUnits;
46     SPGradientSpread gradientSpread;
48     /* Vector selector */
49     GtkWidget *vectors;
51     /* Editing buttons */
52     GtkWidget *edit;
53     GtkWidget *add;
55     /* Position widget */
56     GtkWidget *position;
58     /* Spread selector */
59     GtkWidget *spread;
60     GtkWidget *spreadLbl;
62     void setMode(SelectorMode mode);
63     void setUnits(SPGradientUnits units);
64     void setSpread(SPGradientSpread spread);
65     void setVector(SPDocument *doc, SPGradient *vector);
66     SPGradientUnits getUnits();
67     SPGradientSpread getSpread();
68     SPGradient *getVector();
69 };
71 struct SPGradientSelectorClass {
72     GtkVBoxClass parent_class;
74     void (* grabbed) (SPGradientSelector *sel);
75     void (* dragged) (SPGradientSelector *sel);
76     void (* released) (SPGradientSelector *sel);
77     void (* changed) (SPGradientSelector *sel);
78 };
80 GType sp_gradient_selector_get_type(void);
82 GtkWidget *sp_gradient_selector_new (void);
84 void sp_gradient_selector_set_bbox (SPGradientSelector *sel, gdouble x0, gdouble y0, gdouble x1, gdouble y1);
86 #endif // SEEN_GRADIENT_SELECTOR_H
89 /*
90   Local Variables:
91   mode:c++
92   c-file-style:"stroustrup"
93   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
94   indent-tabs-mode:nil
95   fill-column:99
96   End:
97 */
98 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :