Code

Adding profile manager and user-visible drop-down in CMS picker
[inkscape.git] / src / widgets / sp-color-icc-selector.h
1 #ifndef __SP_COLOR_ICC_SELECTOR_H__
2 #define __SP_COLOR_ICC_SELECTOR_H__
4 #include <glib/gtypes.h>
5 #include <gtk/gtktooltips.h>
6 #include <gtk/gtkvbox.h>
8 #include "../color.h"
9 #include "sp-color-slider.h"
10 #include "sp-color-selector.h"
12 #if ENABLE_LCMS
13 #include "color-profile.h"
14 #endif // ENABLE_LCMS
18 struct SPColorICCSelector;
19 struct SPColorICCSelectorClass;
22 class ColorICCSelector: public ColorSelector
23 {
24 public:
25     ColorICCSelector( SPColorSelector* csel );
26     virtual ~ColorICCSelector();
28     virtual void init();
30 protected:
31     virtual void _colorChanged( const SPColor& color, gfloat alpha );
33     static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorICCSelector *cs );
35     static void _sliderGrabbed( SPColorSlider *slider, SPColorICCSelector *cs );
36     static void _sliderReleased( SPColorSlider *slider, SPColorICCSelector *cs );
37     static void _sliderChanged( SPColorSlider *slider, SPColorICCSelector *cs );
39     static void _fixupHit( GtkWidget* src, gpointer data );
41     void _recalcColor( gboolean changing );
42 #if ENABLE_LCMS
43     void _setProfile( SVGICCColor* profile );
44 #endif // ENABLE_LCMS
45     void _updateSliders( gint ignore );
46     void _profilesChanged( std::string const & name );
48     gboolean _updating : 1;
49     gboolean _dragging : 1;
51     guint32 _fixupNeeded;
52     GtkWidget* _fixupBtn;
53     GtkWidget* _profileSel;
55     guint _fooCount;
56     guint const* _fooScales;
57     GtkAdjustment** _fooAdj;
58     GtkWidget** _fooSlider;
59     GtkWidget** _fooBtn;
60     GtkWidget** _fooLabel;
61     guchar** _fooMap;
63     GtkAdjustment* _adj; /* Channel adjustment */
64     GtkWidget* _slider;
65     GtkWidget* _sbtn; /* Spinbutton */
66     GtkWidget* _label; /* Label */
68     GtkTooltips* _tt; /* tooltip container */
70 #if ENABLE_LCMS
71     std::string _profileName;
72     guint _profIntent;
73     icColorSpaceSignature _profileSpace;
74     icProfileClassSignature _profileClass;
75     cmsHPROFILE _prof;
76     cmsHPROFILE _destProf;
77     cmsHTRANSFORM _transf;
78     guint _profChannelCount;
79 #endif // ENABLE_LCMS
81 private:
82     // By default, disallow copy constructor and assignment operator
83     ColorICCSelector( const ColorICCSelector& obj );
84     ColorICCSelector& operator=( const ColorICCSelector& obj );
85 };
89 #define SP_TYPE_COLOR_ICC_SELECTOR (sp_color_icc_selector_get_type ())
90 #define SP_COLOR_ICC_SELECTOR(o) (GTK_CHECK_CAST ((o), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelector))
91 #define SP_COLOR_ICC_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelectorClass))
92 #define SP_IS_COLOR_ICC_SELECTOR(o) (GTK_CHECK_TYPE ((o), SP_TYPE_COLOR_ICC_SELECTOR))
93 #define SP_IS_COLOR_ICC_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_ICC_SELECTOR))
95 struct SPColorICCSelector {
96     SPColorSelector parent;
97 };
99 struct SPColorICCSelectorClass {
100     SPColorSelectorClass parent_class;
101 };
103 GType sp_color_icc_selector_get_type (void);
105 GtkWidget *sp_color_icc_selector_new (void);
109 #endif
111 /*
112   Local Variables:
113   mode:c++
114   c-file-style:"stroustrup"
115   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
116   indent-tabs-mode:nil
117   fill-column:99
118   End:
119 */
120 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :