Code

Node tool: fix handle retraction with non-cusp nodes
[inkscape.git] / src / widgets / sp-color-notebook.h
1 #ifndef SEEN_SP_COLOR_NOTEBOOK_H
2 #define SEEN_SP_COLOR_NOTEBOOK_H
4 /*
5  * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages
6  *
7  * Author:
8  *   Lauris Kaplinski <lauris@kaplinski.com>
9  *
10  * Copyright (C) 2001-2002 Lauris Kaplinski
11  *
12  * This code is in public domain
13  */
15 #include <gtk/gtkvbox.h>
16 #include <gtk/gtknotebook.h>
17 #include <gtk/gtkentry.h>
18 #include "../color.h"
19 #include "sp-color-selector.h"
21 #include <glib.h>
25 struct SPColorNotebook;
27 class ColorNotebook: public ColorSelector
28 {
29 public:
30     ColorNotebook( SPColorSelector* csel );
31     virtual ~ColorNotebook();
33     virtual void init();
35     SPColorSelector* getCurrentSelector();
36     void switchPage( GtkNotebook *notebook, GtkNotebookPage *page, guint page_num );
38     GtkWidget* addPage( GType page_type, guint submode );
39     void removePage( GType page_type, guint submode );
40     GtkWidget* getPage( GType page_type, guint submode );
42     gint menuHandler( GdkEvent* event );
44 protected:
45     static void _rgbaEntryChangedHook( GtkEntry* entry, SPColorNotebook *colorbook );
46     static void _entryGrabbed( SPColorSelector *csel, SPColorNotebook *colorbook );
47     static void _entryDragged( SPColorSelector *csel, SPColorNotebook *colorbook );
48     static void _entryReleased( SPColorSelector *csel, SPColorNotebook *colorbook );
49     static void _entryChanged( SPColorSelector *csel, SPColorNotebook *colorbook );
50     static void _entryModified( SPColorSelector *csel, SPColorNotebook *colorbook );
52     virtual void _colorChanged();
54     void _rgbaEntryChanged( GtkEntry* entry );
55     void _updateRgbaEntry( const SPColor& color, gfloat alpha );
57     gboolean _updating : 1;
58     gboolean _updatingrgba : 1;
59     gboolean _dragging : 1;
60     gulong _switchId;
61     gulong _entryId;
62     GtkWidget *_book;
63     GtkWidget *_rgbal, *_rgbae; /* RGBA entry */
64 #if ENABLE_LCMS
65     GtkWidget *_box_outofgamut, *_box_colormanaged, *_box_toomuchink;
66 #endif //ENABLE_LCMS
67     GtkWidget *_p; /* Color preview */
68     GtkWidget *_btn;
69     GtkWidget *_popup;
70     GPtrArray *_trackerList;
72 private:
73     // By default, disallow copy constructor and assignment operator
74     ColorNotebook( const ColorNotebook& obj );
75     ColorNotebook& operator=( const ColorNotebook& obj );
76 };
80 #define SP_TYPE_COLOR_NOTEBOOK (sp_color_notebook_get_type ())
81 #define SP_COLOR_NOTEBOOK(o) (GTK_CHECK_CAST ((o), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebook))
82 #define SP_COLOR_NOTEBOOK_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebookClass))
83 #define SP_IS_COLOR_NOTEBOOK(o) (GTK_CHECK_TYPE ((o), SP_TYPE_COLOR_NOTEBOOK))
84 #define SP_IS_COLOR_NOTEBOOK_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_NOTEBOOK))
86 struct SPColorNotebook {
87     SPColorSelector parent;    /* Parent */
88 };
90 struct SPColorNotebookClass {
91     SPColorSelectorClass parent_class;
93     void (* grabbed) (SPColorNotebook *rgbsel);
94     void (* dragged) (SPColorNotebook *rgbsel);
95     void (* released) (SPColorNotebook *rgbsel);
96     void (* changed) (SPColorNotebook *rgbsel);
97 };
99 GType sp_color_notebook_get_type(void);
101 GtkWidget *sp_color_notebook_new (void);
103 /* void sp_color_notebook_set_mode (SPColorNotebook *csel, SPColorNotebookMode mode); */
104 /* SPColorNotebookMode sp_color_notebook_get_mode (SPColorNotebook *csel); */
108 #endif // SEEN_SP_COLOR_NOTEBOOK_H
110 /*
111   Local Variables:
112   mode:c++
113   c-file-style:"stroustrup"
114   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
115   indent-tabs-mode:nil
116   fill-column:99
117   End:
118 */
119 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :