3ac8ab9201033bc28fbf4c4fd8588376101196ef
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 );
47 gboolean _updating : 1;
48 gboolean _dragging : 1;
50 guint32 _fixupNeeded;
51 GtkWidget* _fixupBtn;
53 guint _fooCount;
54 guint const* _fooScales;
55 GtkAdjustment** _fooAdj;
56 GtkWidget** _fooSlider;
57 GtkWidget** _fooBtn;
58 GtkWidget** _fooLabel;
59 guchar** _fooMap;
61 GtkAdjustment* _adj; /* Channel adjustment */
62 GtkWidget* _slider;
63 GtkWidget* _sbtn; /* Spinbutton */
64 GtkWidget* _label; /* Label */
66 GtkTooltips* _tt; /* tooltip container */
68 #if ENABLE_LCMS
69 std::string _profileName;
70 guint _profIntent;
71 icColorSpaceSignature _profileSpace;
72 icProfileClassSignature _profileClass;
73 cmsHPROFILE _prof;
74 cmsHPROFILE _destProf;
75 cmsHTRANSFORM _transf;
76 guint _profChannelCount;
77 #endif // ENABLE_LCMS
79 private:
80 // By default, disallow copy constructor and assignment operator
81 ColorICCSelector( const ColorICCSelector& obj );
82 ColorICCSelector& operator=( const ColorICCSelector& obj );
83 };
87 #define SP_TYPE_COLOR_ICC_SELECTOR (sp_color_icc_selector_get_type ())
88 #define SP_COLOR_ICC_SELECTOR(o) (GTK_CHECK_CAST ((o), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelector))
89 #define SP_COLOR_ICC_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelectorClass))
90 #define SP_IS_COLOR_ICC_SELECTOR(o) (GTK_CHECK_TYPE ((o), SP_TYPE_COLOR_ICC_SELECTOR))
91 #define SP_IS_COLOR_ICC_SELECTOR_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_ICC_SELECTOR))
93 struct SPColorICCSelector {
94 SPColorSelector parent;
95 };
97 struct SPColorICCSelectorClass {
98 SPColorSelectorClass parent_class;
99 };
101 GType sp_color_icc_selector_get_type (void);
103 GtkWidget *sp_color_icc_selector_new (void);
107 #endif
109 /*
110 Local Variables:
111 mode:c++
112 c-file-style:"stroustrup"
113 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
114 indent-tabs-mode:nil
115 fill-column:99
116 End:
117 */
118 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :