1 /* GTK - The GIMP Toolkit 2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * Boston, MA 02111-1307, USA. 18 */ 19 20 /* 21 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS 22 * file for a list of people on the GTK+ Team. See the ChangeLog 23 * files for a list of changes. These files are distributed with 24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 25 */ 26 27 #ifndef __GDK_RGB_H__ 28 #define __GDK_RGB_H__ 29 30 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) 31 #error "Only <gdk/gdk.h> can be included directly." 32 #endif 33 34 #include <gdk/gdktypes.h> 35 36 G_BEGIN_DECLS 37 38 typedef struct _GdkRgbCmap GdkRgbCmap; 39 40 typedef enum 41 { 42 GDK_RGB_DITHER_NONE, 43 GDK_RGB_DITHER_NORMAL, 44 GDK_RGB_DITHER_MAX 45 } GdkRgbDither; 46 47 #ifndef GDK_DISABLE_DEPRECATED 48 49 struct _GdkRgbCmap { 50 guint32 colors[256]; 51 gint n_colors; 52 53 /*< private >*/ 54 GSList *info_list; 55 }; 56 57 void gdk_rgb_init (void); 58 59 gulong gdk_rgb_xpixel_from_rgb (guint32 rgb) G_GNUC_CONST; 60 void gdk_rgb_gc_set_foreground (GdkGC *gc, 61 guint32 rgb); 62 void gdk_rgb_gc_set_background (GdkGC *gc, 63 guint32 rgb); 64 #define gdk_rgb_get_cmap gdk_rgb_get_colormap 65 66 void gdk_rgb_find_color (GdkColormap *colormap, 67 GdkColor *color); 68 69 void gdk_draw_rgb_image (GdkDrawable *drawable, 70 GdkGC *gc, 71 gint x, 72 gint y, 73 gint width, 74 gint height, 75 GdkRgbDither dith, 76 const guchar *rgb_buf, 77 gint rowstride); 78 void gdk_draw_rgb_image_dithalign (GdkDrawable *drawable, 79 GdkGC *gc, 80 gint x, 81 gint y, 82 gint width, 83 gint height, 84 GdkRgbDither dith, 85 const guchar *rgb_buf, 86 gint rowstride, 87 gint xdith, 88 gint ydith); 89 void gdk_draw_rgb_32_image (GdkDrawable *drawable, 90 GdkGC *gc, 91 gint x, 92 gint y, 93 gint width, 94 gint height, 95 GdkRgbDither dith, 96 const guchar *buf, 97 gint rowstride); 98 void gdk_draw_rgb_32_image_dithalign (GdkDrawable *drawable, 99 GdkGC *gc, 100 gint x, 101 gint y, 102 gint width, 103 gint height, 104 GdkRgbDither dith, 105 const guchar *buf, 106 gint rowstride, 107 gint xdith, 108 gint ydith); 109 void gdk_draw_gray_image (GdkDrawable *drawable, 110 GdkGC *gc, 111 gint x, 112 gint y, 113 gint width, 114 gint height, 115 GdkRgbDither dith, 116 const guchar *buf, 117 gint rowstride); 118 void gdk_draw_indexed_image (GdkDrawable *drawable, 119 GdkGC *gc, 120 gint x, 121 gint y, 122 gint width, 123 gint height, 124 GdkRgbDither dith, 125 const guchar *buf, 126 gint rowstride, 127 GdkRgbCmap *cmap); 128 GdkRgbCmap *gdk_rgb_cmap_new (guint32 *colors, 129 gint n_colors); 130 void gdk_rgb_cmap_free (GdkRgbCmap *cmap); 131 132 void gdk_rgb_set_verbose (gboolean verbose); 133 134 /* experimental colormap stuff */ 135 void gdk_rgb_set_install (gboolean install); 136 void gdk_rgb_set_min_colors (gint min_colors); 137 138 #ifndef GDK_MULTIHEAD_SAFE 139 GdkColormap *gdk_rgb_get_colormap (void); 140 GdkVisual * gdk_rgb_get_visual (void); 141 gboolean gdk_rgb_ditherable (void); 142 gboolean gdk_rgb_colormap_ditherable (GdkColormap *cmap); 143 #endif 144 #endif /* GDK_DISABLE_DEPRECATED */ 145 146 G_END_DECLS 147 148 149 #endif /* __GDK_RGB_H__ */ 150