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 :