Code

moving trunk for module inkscape
[inkscape.git] / src / widgets / sp-color-notebook.h
1 #ifndef __SP_COLOR_NOTEBOOK_H__
2 #define __SP_COLOR_NOTEBOOK_H__
4 /*
5  * A block of 3 color sliders plus spinbuttons
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( const SPColor& color, gfloat alpha );
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     GtkWidget *_p; /* Color preview */
65     GtkWidget *_btn;
66     GtkWidget *_popup;
67     GPtrArray *_trackerList;
69 private:
70     // By default, disallow copy constructor and assignment operator
71     ColorNotebook( const ColorNotebook& obj );
72     ColorNotebook& operator=( const ColorNotebook& obj );
73 };
77 #define SP_TYPE_COLOR_NOTEBOOK (sp_color_notebook_get_type ())
78 #define SP_COLOR_NOTEBOOK(o) (GTK_CHECK_CAST ((o), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebook))
79 #define SP_COLOR_NOTEBOOK_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebookClass))
80 #define SP_IS_COLOR_NOTEBOOK(o) (GTK_CHECK_TYPE ((o), SP_TYPE_COLOR_NOTEBOOK))
81 #define SP_IS_COLOR_NOTEBOOK_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_NOTEBOOK))
83 struct SPColorNotebook {
84         SPColorSelector parent;    /* Parent */
85 };
87 struct SPColorNotebookClass {
88         SPColorSelectorClass parent_class;
90         void (* grabbed) (SPColorNotebook *rgbsel);
91         void (* dragged) (SPColorNotebook *rgbsel);
92         void (* released) (SPColorNotebook *rgbsel);
93         void (* changed) (SPColorNotebook *rgbsel);
94 };
96 GtkType sp_color_notebook_get_type (void);
98 GtkWidget *sp_color_notebook_new (void);
100 /* void sp_color_notebook_set_mode (SPColorNotebook *csel, SPColorNotebookMode mode); */
101 /* SPColorNotebookMode sp_color_notebook_get_mode (SPColorNotebook *csel); */
105 #endif