Code

Use subdirectories with icon sizes.
[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 <vector>
21 #include "sp-gradient.h"
22 #include "sp-gradient-spread.h"
23 #include "sp-gradient-units.h"
25 class SPGradient;
27 #define SP_TYPE_GRADIENT_SELECTOR (sp_gradient_selector_get_type ())
28 #define SP_GRADIENT_SELECTOR(o) (GTK_CHECK_CAST ((o), SP_TYPE_GRADIENT_SELECTOR, SPGradientSelector))
29 #define SP_GRADIENT_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_GRADIENT_SELECTOR, SPGradientSelectorClass))
30 #define SP_IS_GRADIENT_SELECTOR(o) (GTK_CHECK_TYPE ((o), SP_TYPE_GRADIENT_SELECTOR))
31 #define SP_IS_GRADIENT_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), SP_TYPE_GRADIENT_SELECTOR))
35 struct SPGradientSelector {
36     GtkVBox vbox;
38     enum SelectorMode {
39         MODE_LINEAR,
40         MODE_RADIAL,
41         MODE_SWATCH
42     };
44     SelectorMode mode;
46     SPGradientUnits gradientUnits;
47     SPGradientSpread gradientSpread;
49     /* Vector selector */
50     GtkWidget *vectors;
52     /* Editing buttons */
53     GtkWidget *edit;
54     GtkWidget *add;
56     /* Position widget */
57     GtkWidget *position;
59     /* Spread selector */
60     GtkWidget *spread;
61     GtkWidget *spreadLbl;
63     bool safelyInit;
64     std::vector<GtkWidget*> nonsolid;
66     void setMode(SelectorMode mode);
67     void setUnits(SPGradientUnits units);
68     void setSpread(SPGradientSpread spread);
69     void setVector(SPDocument *doc, SPGradient *vector);
70     SPGradientUnits getUnits();
71     SPGradientSpread getSpread();
72     SPGradient *getVector();
73 };
75 struct SPGradientSelectorClass {
76     GtkVBoxClass parent_class;
78     void (* grabbed) (SPGradientSelector *sel);
79     void (* dragged) (SPGradientSelector *sel);
80     void (* released) (SPGradientSelector *sel);
81     void (* changed) (SPGradientSelector *sel);
82 };
84 GType sp_gradient_selector_get_type(void);
86 GtkWidget *sp_gradient_selector_new (void);
88 void sp_gradient_selector_set_bbox (SPGradientSelector *sel, gdouble x0, gdouble y0, gdouble x1, gdouble y1);
90 #endif // SEEN_GRADIENT_SELECTOR_H
93 /*
94   Local Variables:
95   mode:c++
96   c-file-style:"stroustrup"
97   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
98   indent-tabs-mode:nil
99   fill-column:99
100   End:
101 */
102 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :