gdkcolor.h 3.39 KB
Newer Older
Owen Taylor's avatar
Started  
Owen Taylor committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#ifndef __GDK_COLOR_H__
#define __GDK_COLOR_H__

#include <gdk/gdktypes.h>

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* The color type.
 *   A color consists of red, green and blue values in the
 *    range 0-65535 and a pixel value. The pixel value is highly
 *    dependent on the depth and colormap which this color will
 *    be used to draw into. Therefore, sharing colors between
 *    colormaps is a bad idea.
 */
struct _GdkColor
{
  gulong  pixel;
  gushort red;
  gushort green;
  gushort blue;
};

/* The colormap type.
 */
27 28 29 30 31 32 33 34 35 36 37

typedef struct _GdkColormapClass GdkColormapClass;

#define GDK_TYPE_COLORMAP              (gdk_colormap_get_type ())
#define GDK_COLORMAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_COLORMAP, GdkColormap))
#define GDK_COLORMAP_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_COLORMAP, GdkColormapClass))
#define GDK_IS_COLORMAP(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_COLORMAP))
#define GDK_IS_COLORMAP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_COLORMAP))
#define GDK_COLORMAP_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_COLORMAP, GdkColormapClass))


Owen Taylor's avatar
Started  
Owen Taylor committed
38 39
struct _GdkColormap
{
40 41 42
  GObject parent_instance;

  /*< public >*/
Owen Taylor's avatar
Started  
Owen Taylor committed
43 44
  gint      size;
  GdkColor *colors;
45 46 47 48 49 50 51 52 53 54 55

  /*< private >*/
  GdkVisual *visual;
  
  gpointer windowing_data;
};

struct _GdkColormapClass
{
  GObjectClass parent_class;

Owen Taylor's avatar
Started  
Owen Taylor committed
56 57
};

Elliot Lee's avatar
Elliot Lee committed
58
GType        gdk_colormap_get_type (void) G_GNUC_CONST;
Owen Taylor's avatar
Started  
Owen Taylor committed
59 60

GdkColormap* gdk_colormap_new	  (GdkVisual   *visual,
Owen Taylor's avatar
Owen Taylor committed
61
				   gboolean	allocate);
Owen Taylor's avatar
Started  
Owen Taylor committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
GdkColormap* gdk_colormap_ref	  (GdkColormap *cmap);
void	     gdk_colormap_unref	  (GdkColormap *cmap);

GdkColormap* gdk_colormap_get_system	   (void);
gint	     gdk_colormap_get_system_size  (void);

void gdk_colormap_change (GdkColormap	*colormap,
			  gint		 ncolors);


gint  gdk_colormap_alloc_colors   (GdkColormap *colormap,
				   GdkColor    *colors,
				   gint         ncolors,
				   gboolean     writeable,
				   gboolean     best_match,
				   gboolean    *success);
gboolean gdk_colormap_alloc_color (GdkColormap *colormap,
				   GdkColor    *color,
				   gboolean     writeable,
				   gboolean     best_match);
void     gdk_colormap_free_colors (GdkColormap *colormap,
				   GdkColor    *colors,
				   gint         ncolors);

GdkVisual *gdk_colormap_get_visual (GdkColormap *colormap);
     
Owen Taylor's avatar
Owen Taylor committed
88 89 90 91 92 93 94
GdkColor *gdk_color_copy  (const GdkColor *color);
void      gdk_color_free  (GdkColor       *color);
gint      gdk_color_parse (const gchar    *spec,
			   GdkColor       *color);
guint     gdk_color_hash  (const GdkColor *colora);
gboolean  gdk_color_equal (const GdkColor *colora,
			   const GdkColor *colorb);
Owen Taylor's avatar
Started  
Owen Taylor committed
95 96 97 98 99 100

/* The following functions are deprecated */
void gdk_colors_store	 (GdkColormap	*colormap,
			  GdkColor	*colors,
			  gint		 ncolors);
gint gdk_colors_alloc	 (GdkColormap	*colormap,
Owen Taylor's avatar
Owen Taylor committed
101
			  gboolean	 contiguous,
Owen Taylor's avatar
Started  
Owen Taylor committed
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
			  gulong	*planes,
			  gint		 nplanes,
			  gulong	*pixels,
			  gint		 npixels);
void gdk_colors_free	 (GdkColormap	*colormap,
			  gulong	*pixels,
			  gint		 npixels,
			  gulong	 planes);
gint gdk_color_white	 (GdkColormap	*colormap,
			  GdkColor	*color);
gint gdk_color_black	 (GdkColormap	*colormap,
			  GdkColor	*color);
gint gdk_color_alloc	 (GdkColormap	*colormap,
			  GdkColor	*color);
gint gdk_color_change	 (GdkColormap	*colormap,
			  GdkColor	*color);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __GDK_COLOR_H__ */