]> Pileus Git - ~andy/gtk/blob - gtk/gtkcolorsel.h
applied patch from Andreas Persenius <ndap@swipnet.se> that updates the
[~andy/gtk] / gtk / gtkcolorsel.h
1 /* GTK - The GIMP Toolkit
2  * Copyright (C) 2000 Red Hat, Inc. 
3  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA 02111-1307, USA.
19  */
20
21 /*
22  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
23  * file for a list of people on the GTK+ Team.  See the ChangeLog
24  * files for a list of changes.  These files are distributed with
25  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
26  */
27 #ifndef __GTK_COLOR_SELECTION_H__
28 #define __GTK_COLOR_SELECTION_H__
29
30 #include <gtk/gtkdialog.h>
31 #include <gtk/gtkvbox.h>
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif /* __cplusplus */
36
37
38 #define GTK_TYPE_COLOR_SELECTION                        (gtk_color_selection_get_type ())
39 #define GTK_COLOR_SELECTION(obj)                        (GTK_CHECK_CAST ((obj), GTK_TYPE_COLOR_SELECTION, GtkColorSelection))
40 #define GTK_COLOR_SELECTION_CLASS(klass)                (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_COLOR_SELECTION, GtkColorSelectionClass))
41 #define GTK_IS_COLOR_SELECTION(obj)                     (GTK_CHECK_TYPE ((obj), GTK_TYPE_COLOR_SELECTION))
42 #define GTK_IS_COLOR_SELECTION_CLASS(klass)             (GTK_CHECK_CLASS_TYPE ((obj), GTK_TYPE_COLOR_SELECTION))
43 #define GTK_COLOR_SELECTION_GET_CLASS(obj)              (GTK_CHECK_GET_CLAS ((obj), GTK_TYPE_COLOR_SELECTION, GtkColorSelectionClass))
44
45
46 /* Number of elements in the custom palatte */
47 #define GTK_CUSTOM_PALETTE_WIDTH 10
48 #define GTK_CUSTOM_PALETTE_HEIGHT 2
49
50 typedef struct _GtkColorSelection       GtkColorSelection;
51 typedef struct _GtkColorSelectionClass  GtkColorSelectionClass;
52
53
54 struct _GtkColorSelection
55 {
56   GtkVBox parent_instance;
57
58   /* < private_data > */
59   gpointer private_data;
60 };
61
62 struct _GtkColorSelectionClass
63 {
64   GtkVBoxClass parent_class;
65
66   void (*color_changed) (GtkColorSelection *color_selection);
67 };
68
69
70 /* ColorSelection */ 
71
72 GtkType     gtk_color_selection_get_type          (void);
73 GtkWidget * gtk_color_selection_new               (void);
74 void        gtk_color_selection_set_update_policy (GtkColorSelection *colorsel,
75                                                    GtkUpdateType      policy);
76 gboolean    gtk_color_selection_get_use_opacity   (GtkColorSelection *colorsel);
77 void        gtk_color_selection_set_use_opacity   (GtkColorSelection *colorsel,
78                                                    gboolean           use_opacity);
79 gboolean    gtk_color_selection_get_use_palette   (GtkColorSelection *colorsel);
80 void        gtk_color_selection_set_use_palette   (GtkColorSelection *colorsel,
81                                                    gboolean           use_palette);
82
83 /* The Color set is an array of doubles, of the following format:
84  * color[0] = red_channel;
85  * color[1] = green_channel;
86  * color[2] = blue_channel;
87  * color[3] = alpha_channel;
88  */
89 void       gtk_color_selection_set_color           (GtkColorSelection    *colorsel,
90                                                     gdouble               *color);
91 void       gtk_color_selection_get_color           (GtkColorSelection    *colorsel,
92                                                     gdouble               *color);
93 void       gtk_color_selection_set_old_color       (GtkColorSelection    *colorsel,
94                                                     gdouble               *color);
95 void       gtk_color_selection_get_old_color       (GtkColorSelection    *colorsel,
96                                                     gdouble               *color);
97 void       gtk_color_selection_set_palette_color   (GtkColorSelection   *colorsel,
98                                                     gint                  x,
99                                                     gint                  y,
100                                                     gdouble              *color);
101 gboolean   gtk_color_selection_get_palette_color   (GtkColorSelection   *colorsel,
102                                                     gint                  x,
103                                                     gint                  y,
104                                                     gdouble              *color);
105 void       gtk_color_selection_unset_palette_color (GtkColorSelection   *colorsel,
106                                                     gint                  x,
107                                                     gint                  y);
108 gboolean   gtk_color_selection_is_adjusting        (GtkColorSelection    *colorsel);
109
110
111 #ifdef __cplusplus
112 }
113 #endif /* __cplusplus */
114
115
116 #endif /* __GTK_COLOR_SELECTION_H__ */