]> Pileus Git - ~andy/gtk/blob - gdk/gdkcolor.h
Fix bug #55573
[~andy/gtk] / gdk / gdkcolor.h
1 #ifndef __GDK_COLOR_H__
2 #define __GDK_COLOR_H__
3
4 #include <gdk/gdktypes.h>
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif /* __cplusplus */
9
10 /* The color type.
11  *   A color consists of red, green and blue values in the
12  *    range 0-65535 and a pixel value. The pixel value is highly
13  *    dependent on the depth and colormap which this color will
14  *    be used to draw into. Therefore, sharing colors between
15  *    colormaps is a bad idea.
16  */
17 struct _GdkColor
18 {
19   guint32 pixel;
20   guint16 red;
21   guint16 green;
22   guint16 blue;
23 };
24
25 /* The colormap type.
26  */
27
28 typedef struct _GdkColormapClass GdkColormapClass;
29
30 #define GDK_TYPE_COLORMAP              (gdk_colormap_get_type ())
31 #define GDK_COLORMAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_COLORMAP, GdkColormap))
32 #define GDK_COLORMAP_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_COLORMAP, GdkColormapClass))
33 #define GDK_IS_COLORMAP(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_COLORMAP))
34 #define GDK_IS_COLORMAP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_COLORMAP))
35 #define GDK_COLORMAP_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_COLORMAP, GdkColormapClass))
36
37 #define GDK_TYPE_COLOR                 (gdk_color_get_type ())
38
39 struct _GdkColormap
40 {
41   GObject parent_instance;
42
43   /*< public >*/
44   gint      size;
45   GdkColor *colors;
46
47   /*< private >*/
48   GdkVisual *visual;
49   
50   gpointer windowing_data;
51 };
52
53 struct _GdkColormapClass
54 {
55   GObjectClass parent_class;
56
57 };
58
59 GType        gdk_colormap_get_type (void) G_GNUC_CONST;
60
61 GdkColormap* gdk_colormap_new     (GdkVisual   *visual,
62                                    gboolean     allocate);
63 GdkColormap* gdk_colormap_ref     (GdkColormap *cmap);
64 void         gdk_colormap_unref   (GdkColormap *cmap);
65
66 GdkColormap* gdk_colormap_get_system       (void);
67 gint         gdk_colormap_get_system_size  (void);
68
69 void gdk_colormap_change (GdkColormap   *colormap,
70                           gint           ncolors);
71
72
73 gint  gdk_colormap_alloc_colors   (GdkColormap *colormap,
74                                    GdkColor    *colors,
75                                    gint         ncolors,
76                                    gboolean     writeable,
77                                    gboolean     best_match,
78                                    gboolean    *success);
79 gboolean gdk_colormap_alloc_color (GdkColormap *colormap,
80                                    GdkColor    *color,
81                                    gboolean     writeable,
82                                    gboolean     best_match);
83 void     gdk_colormap_free_colors (GdkColormap *colormap,
84                                    GdkColor    *colors,
85                                    gint         ncolors);
86 void     gdk_colormap_query_color (GdkColormap *colormap,
87                                    gulong       pixel,
88                                    GdkColor    *result);
89
90 GdkVisual *gdk_colormap_get_visual (GdkColormap *colormap);
91      
92 GdkColor *gdk_color_copy  (const GdkColor *color);
93 void      gdk_color_free  (GdkColor       *color);
94 gint      gdk_color_parse (const gchar    *spec,
95                            GdkColor       *color);
96 guint     gdk_color_hash  (const GdkColor *colora);
97 gboolean  gdk_color_equal (const GdkColor *colora,
98                            const GdkColor *colorb);
99
100 GType     gdk_color_get_type (void);
101
102 /* The following functions are deprecated */
103 #ifndef GDK_DISABLE_DEPRECATED
104 void gdk_colors_store    (GdkColormap   *colormap,
105                           GdkColor      *colors,
106                           gint           ncolors);
107 gint gdk_colors_alloc    (GdkColormap   *colormap,
108                           gboolean       contiguous,
109                           gulong        *planes,
110                           gint           nplanes,
111                           gulong        *pixels,
112                           gint           npixels);
113 void gdk_colors_free     (GdkColormap   *colormap,
114                           gulong        *pixels,
115                           gint           npixels,
116                           gulong         planes);
117 gint gdk_color_white     (GdkColormap   *colormap,
118                           GdkColor      *color);
119 gint gdk_color_black     (GdkColormap   *colormap,
120                           GdkColor      *color);
121 gint gdk_color_alloc     (GdkColormap   *colormap,
122                           GdkColor      *color);
123 gint gdk_color_change    (GdkColormap   *colormap,
124                           GdkColor      *color);
125 #endif /* GDK_DISABLE_DEPRECATED */
126
127 #ifdef __cplusplus
128 }
129 #endif /* __cplusplus */
130
131 #endif /* __GDK_COLOR_H__ */