mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
gdk/win32/gdkcolor-win32.c gdk/win32/gdkprivate-win32.h Changes to make
2000-07-12 Tor Lillqvist <tml@iki.fi> * gdk/win32/gdkcc-win32.c: * gdk/win32/gdkcolor-win32.c * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkwin32.h: Changes to make compilable, with new GDK object structure.
This commit is contained in:
parent
2823963703
commit
1f581a961e
@ -25,6 +25,12 @@
|
||||
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
|
||||
not the Win32 bitspixel value.
|
||||
|
||||
* gdk/win32/gdkcc-win32.c:
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
|
||||
GDK object structure.
|
||||
|
||||
Tue Jul 11 20:59:35 2000 Tim Janik <timj@gtk.org>
|
||||
|
||||
* docs/tutorial/gtk_tut_12.es.sgml (name):
|
||||
|
@ -25,6 +25,12 @@
|
||||
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
|
||||
not the Win32 bitspixel value.
|
||||
|
||||
* gdk/win32/gdkcc-win32.c:
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
|
||||
GDK object structure.
|
||||
|
||||
Tue Jul 11 20:59:35 2000 Tim Janik <timj@gtk.org>
|
||||
|
||||
* docs/tutorial/gtk_tut_12.es.sgml (name):
|
||||
|
@ -25,6 +25,12 @@
|
||||
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
|
||||
not the Win32 bitspixel value.
|
||||
|
||||
* gdk/win32/gdkcc-win32.c:
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
|
||||
GDK object structure.
|
||||
|
||||
Tue Jul 11 20:59:35 2000 Tim Janik <timj@gtk.org>
|
||||
|
||||
* docs/tutorial/gtk_tut_12.es.sgml (name):
|
||||
|
@ -25,6 +25,12 @@
|
||||
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
|
||||
not the Win32 bitspixel value.
|
||||
|
||||
* gdk/win32/gdkcc-win32.c:
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
|
||||
GDK object structure.
|
||||
|
||||
Tue Jul 11 20:59:35 2000 Tim Janik <timj@gtk.org>
|
||||
|
||||
* docs/tutorial/gtk_tut_12.es.sgml (name):
|
||||
|
@ -25,6 +25,12 @@
|
||||
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
|
||||
not the Win32 bitspixel value.
|
||||
|
||||
* gdk/win32/gdkcc-win32.c:
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
|
||||
GDK object structure.
|
||||
|
||||
Tue Jul 11 20:59:35 2000 Tim Janik <timj@gtk.org>
|
||||
|
||||
* docs/tutorial/gtk_tut_12.es.sgml (name):
|
||||
|
@ -25,6 +25,12 @@
|
||||
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
|
||||
not the Win32 bitspixel value.
|
||||
|
||||
* gdk/win32/gdkcc-win32.c:
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
|
||||
GDK object structure.
|
||||
|
||||
Tue Jul 11 20:59:35 2000 Tim Janik <timj@gtk.org>
|
||||
|
||||
* docs/tutorial/gtk_tut_12.es.sgml (name):
|
||||
|
@ -25,6 +25,12 @@
|
||||
* gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth,
|
||||
not the Win32 bitspixel value.
|
||||
|
||||
* gdk/win32/gdkcc-win32.c:
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Changes to make compilable, with new
|
||||
GDK object structure.
|
||||
|
||||
Tue Jul 11 20:59:35 2000 Tim Janik <timj@gtk.org>
|
||||
|
||||
* docs/tutorial/gtk_tut_12.es.sgml (name):
|
||||
|
@ -339,7 +339,6 @@ init_true_color (GdkColorContext *cc)
|
||||
}
|
||||
|
||||
cc->num_colors = (cc->visual->red_mask | cc->visual->green_mask | cc->visual->blue_mask) + 1;
|
||||
|
||||
cc->white_pixel = 0xffffff;
|
||||
cc->black_pixel = 0;
|
||||
}
|
||||
@ -389,7 +388,7 @@ init_palette (GdkColorContext *cc)
|
||||
free_hash_entry,
|
||||
NULL);
|
||||
g_hash_table_destroy (cc->color_hash);
|
||||
cc->color_hash = g_hash_table_new (hash_color, compare_colors);
|
||||
cc->color_hash = NULL;
|
||||
}
|
||||
|
||||
cc->palette = NULL;
|
||||
|
@ -34,6 +34,10 @@
|
||||
#include "gdkcolor.h"
|
||||
#include "gdkprivate-win32.h"
|
||||
|
||||
#define GDK_COLORMAP_PRIVATE_DATA(cmap) ((GdkColormapPrivateWin32 *) GDK_COLORMAP (cmap)->windowing_data)
|
||||
|
||||
static void free_colormap (Colormap colormap);
|
||||
|
||||
static gint gdk_colormap_match_color (GdkColormap *cmap,
|
||||
GdkColor *color,
|
||||
const gchar *available);
|
||||
@ -43,8 +47,88 @@ static guint gdk_colormap_hash (Colormap *cmap);
|
||||
static gint gdk_colormap_cmp (Colormap *a,
|
||||
Colormap *b);
|
||||
|
||||
static void gdk_colormap_init (GdkColormap *colormap);
|
||||
static void gdk_colormap_class_init (GdkColormapClass *klass);
|
||||
static void gdk_colormap_finalize (GObject *object);
|
||||
|
||||
static gpointer parent_class = NULL;
|
||||
|
||||
static GHashTable *colormap_hash = NULL;
|
||||
|
||||
GType
|
||||
gdk_colormap_get_type (void)
|
||||
{
|
||||
static GType object_type = 0;
|
||||
|
||||
if (!object_type)
|
||||
{
|
||||
static const GTypeInfo object_info =
|
||||
{
|
||||
sizeof (GdkColormapClass),
|
||||
(GBaseInitFunc) NULL,
|
||||
(GBaseFinalizeFunc) NULL,
|
||||
(GClassInitFunc) gdk_colormap_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GdkColormap),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gdk_colormap_init,
|
||||
};
|
||||
|
||||
object_type = g_type_register_static (G_TYPE_OBJECT,
|
||||
"GdkColormap",
|
||||
&object_info);
|
||||
}
|
||||
|
||||
return object_type;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_colormap_init (GdkColormap *colormap)
|
||||
{
|
||||
GdkColormapPrivateWin32 *private;
|
||||
|
||||
private = g_new (GdkColormapPrivateWin32, 1);
|
||||
|
||||
colormap->windowing_data = private;
|
||||
|
||||
private->hash = NULL;
|
||||
private->last_sync_time = 0;
|
||||
private->info = NULL;
|
||||
|
||||
colormap->size = 0;
|
||||
colormap->colors = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_colormap_class_init (GdkColormapClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
object_class->finalize = gdk_colormap_finalize;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_colormap_finalize (GObject *object)
|
||||
{
|
||||
GdkColormap *colormap = GDK_COLORMAP (object);
|
||||
GdkColormapPrivateWin32 *private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
gdk_colormap_remove (colormap);
|
||||
|
||||
free_colormap (private->xcolormap);
|
||||
|
||||
if (private->hash)
|
||||
g_hash_table_destroy (private->hash);
|
||||
|
||||
g_free (private->info);
|
||||
g_free (colormap->colors);
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
alloc_color_cells(Colormap colormap,
|
||||
gboolean contig,
|
||||
@ -1326,33 +1410,27 @@ gdk_colormap_new (GdkVisual *visual,
|
||||
|
||||
g_return_val_if_fail (visual != NULL, NULL);
|
||||
|
||||
private = g_new (GdkColormapPrivateWin32, 1);
|
||||
colormap = (GdkColormap*) private;
|
||||
colormap = g_object_new (gdk_colormap_get_type (), NULL);
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
private->base.visual = visual;
|
||||
private->base.ref_count = 1;
|
||||
|
||||
private->hash = NULL;
|
||||
private->last_sync_time = 0;
|
||||
private->info = NULL;
|
||||
colormap->visual = visual;
|
||||
|
||||
xvisual = ((GdkVisualPrivate*) visual)->xvisual;
|
||||
|
||||
colormap->size = visual->colormap_size;
|
||||
colormap->colors = g_new (GdkColor, colormap->size);
|
||||
|
||||
switch (visual->type)
|
||||
{
|
||||
case GDK_VISUAL_GRAYSCALE:
|
||||
case GDK_VISUAL_PSEUDO_COLOR:
|
||||
private->info = g_new0 (GdkColorInfo, colormap->size);
|
||||
colormap->colors = g_new (GdkColor, colormap->size);
|
||||
|
||||
private->hash = g_hash_table_new ((GHashFunc) gdk_color_hash,
|
||||
(GCompareFunc) gdk_color_equal);
|
||||
|
||||
private->private_val = private_cmap;
|
||||
private->xcolormap = create_colormap (gdk_root_window, xvisual,
|
||||
private_cmap);
|
||||
private->xcolormap = create_colormap (gdk_root_window, xvisual, private_cmap);
|
||||
|
||||
if (private_cmap)
|
||||
{
|
||||
@ -1394,25 +1472,6 @@ gdk_colormap_new (GdkVisual *visual,
|
||||
return colormap;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_colormap_real_destroy (GdkColormap *colormap)
|
||||
{
|
||||
GdkColormapPrivateWin32 *private = (GdkColormapPrivateWin32 *) colormap;
|
||||
|
||||
g_return_if_fail (colormap != NULL);
|
||||
g_return_if_fail (private->base.ref_count == 0);
|
||||
|
||||
gdk_colormap_remove (colormap);
|
||||
free_colormap (private->xcolormap);
|
||||
|
||||
if (private->hash)
|
||||
g_hash_table_destroy (private->hash);
|
||||
|
||||
g_free (private->info);
|
||||
g_free (colormap->colors);
|
||||
g_free (colormap);
|
||||
}
|
||||
|
||||
#define MIN_SYNC_TIME 2
|
||||
|
||||
void
|
||||
@ -1420,7 +1479,7 @@ gdk_colormap_sync (GdkColormap *colormap,
|
||||
gboolean force)
|
||||
{
|
||||
time_t current_time;
|
||||
GdkColormapPrivateWin32 *private = (GdkColormapPrivateWin32 *) colormap;
|
||||
GdkColormapPrivateWin32 *private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
XColor *xpalette;
|
||||
gint nlookup;
|
||||
gint i;
|
||||
@ -1467,23 +1526,22 @@ gdk_colormap_get_system (void)
|
||||
|
||||
if (!colormap)
|
||||
{
|
||||
private = g_new (GdkColormapPrivateWin32, 1);
|
||||
colormap = (GdkColormap*) private;
|
||||
colormap = g_object_new (gdk_colormap_get_type (), NULL);
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
private->xcolormap = default_colormap ();
|
||||
private->base.visual = gdk_visual_get_system ();
|
||||
colormap->visual = gdk_visual_get_system ();
|
||||
private->private_val = FALSE;
|
||||
private->base.ref_count = 1;
|
||||
|
||||
private->hash = NULL;
|
||||
private->last_sync_time = 0;
|
||||
private->info = NULL;
|
||||
|
||||
colormap->colors = NULL;
|
||||
colormap->size = private->base.visual->colormap_size;
|
||||
colormap->size = colormap->visual->colormap_size;
|
||||
|
||||
if ((private->base.visual->type == GDK_VISUAL_GRAYSCALE) ||
|
||||
(private->base.visual->type == GDK_VISUAL_PSEUDO_COLOR))
|
||||
if ((colormap->visual->type == GDK_VISUAL_GRAYSCALE) ||
|
||||
(colormap->visual->type == GDK_VISUAL_PSEUDO_COLOR))
|
||||
{
|
||||
private->info = g_new0 (GdkColorInfo, colormap->size);
|
||||
colormap->colors = g_new (GdkColor, colormap->size);
|
||||
@ -1532,12 +1590,12 @@ gdk_colormap_change (GdkColormap *colormap,
|
||||
int size;
|
||||
int i;
|
||||
|
||||
g_return_if_fail (colormap != NULL);
|
||||
g_return_if_fail (GDK_IS_COLORMAP (colormap));
|
||||
|
||||
palette = g_new (XColor, ncolors);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
switch (private->base.visual->type)
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
switch (colormap->visual->type)
|
||||
{
|
||||
case GDK_VISUAL_GRAYSCALE:
|
||||
case GDK_VISUAL_PSEUDO_COLOR:
|
||||
@ -1574,9 +1632,9 @@ gdk_colors_alloc (GdkColormap *colormap,
|
||||
gint return_val;
|
||||
gint i;
|
||||
|
||||
g_return_val_if_fail (colormap != NULL, 0);
|
||||
g_return_val_if_fail (GDK_IS_COLORMAP (colormap), 0);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
return_val = alloc_color_cells (private->xcolormap, contiguous,
|
||||
planes, nplanes, pixels, npixels);
|
||||
@ -1622,13 +1680,13 @@ gdk_colors_free (GdkColormap *colormap,
|
||||
gint npixels = 0;
|
||||
gint i;
|
||||
|
||||
g_return_if_fail (colormap != NULL);
|
||||
g_return_if_fail (GDK_IS_COLORMAP (colormap));
|
||||
g_return_if_fail (in_pixels != NULL);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
if ((private->base.visual->type != GDK_VISUAL_PSEUDO_COLOR) &&
|
||||
(private->base.visual->type != GDK_VISUAL_GRAYSCALE))
|
||||
if ((colormap->visual->type != GDK_VISUAL_PSEUDO_COLOR) &&
|
||||
(colormap->visual->type != GDK_VISUAL_GRAYSCALE))
|
||||
return;
|
||||
|
||||
pixels = g_new (gulong, in_npixels);
|
||||
@ -1670,13 +1728,13 @@ gdk_colormap_free_colors (GdkColormap *colormap,
|
||||
gint npixels = 0;
|
||||
gint i;
|
||||
|
||||
g_return_if_fail (colormap != NULL);
|
||||
g_return_if_fail (GDK_IS_COLORMAP (colormap));
|
||||
g_return_if_fail (colors != NULL);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
if ((private->base.visual->type != GDK_VISUAL_PSEUDO_COLOR) &&
|
||||
(private->base.visual->type != GDK_VISUAL_GRAYSCALE))
|
||||
if ((colormap->visual->type != GDK_VISUAL_PSEUDO_COLOR) &&
|
||||
(colormap->visual->type != GDK_VISUAL_GRAYSCALE))
|
||||
return;
|
||||
|
||||
pixels = g_new (gulong, ncolors);
|
||||
@ -1718,7 +1776,7 @@ gdk_colormap_alloc1 (GdkColormap *colormap,
|
||||
GdkColormapPrivateWin32 *private;
|
||||
XColor xcolor;
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
xcolor.peRed = color->red >> 8;
|
||||
xcolor.peGreen = color->green >> 8;
|
||||
@ -1767,7 +1825,7 @@ gdk_colormap_alloc_colors_writeable (GdkColormap *colormap,
|
||||
gboolean status;
|
||||
gint i, index;
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
if (private->private_val)
|
||||
{
|
||||
@ -1826,7 +1884,7 @@ gdk_colormap_alloc_colors_private (GdkColormap *colormap,
|
||||
gint nstore = 0;
|
||||
gint nremaining = 0;
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
index = -1;
|
||||
|
||||
/* First, store the colors we have room for */
|
||||
@ -1907,7 +1965,7 @@ gdk_colormap_alloc_colors_shared (GdkColormap *colormap,
|
||||
gint nremaining = 0;
|
||||
gint nfailed = 0;
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
index = -1;
|
||||
|
||||
for (i=0; i<ncolors; i++)
|
||||
@ -1999,7 +2057,7 @@ gdk_colormap_alloc_colors_pseudocolor (GdkColormap *colormap,
|
||||
gint i;
|
||||
gint nremaining = 0;
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
/* Check for an exact match among previously allocated colors */
|
||||
|
||||
@ -2047,17 +2105,17 @@ gdk_colormap_alloc_colors (GdkColormap *colormap,
|
||||
gint nremaining = 0;
|
||||
XColor xcolor;
|
||||
|
||||
g_return_val_if_fail (colormap != NULL, FALSE);
|
||||
g_return_val_if_fail (GDK_IS_COLORMAP (colormap), FALSE);
|
||||
g_return_val_if_fail (colors != NULL, FALSE);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
for (i=0; i<ncolors; i++)
|
||||
{
|
||||
success[i] = FALSE;
|
||||
}
|
||||
|
||||
switch (private->base.visual->type)
|
||||
switch (colormap->visual->type)
|
||||
{
|
||||
case GDK_VISUAL_PSEUDO_COLOR:
|
||||
case GDK_VISUAL_GRAYSCALE:
|
||||
@ -2070,7 +2128,7 @@ gdk_colormap_alloc_colors (GdkColormap *colormap,
|
||||
break;
|
||||
|
||||
case GDK_VISUAL_TRUE_COLOR:
|
||||
visual = private->base.visual;
|
||||
visual = colormap->visual;
|
||||
|
||||
for (i=0; i<ncolors; i++)
|
||||
{
|
||||
@ -2105,10 +2163,10 @@ gdk_color_change (GdkColormap *colormap,
|
||||
GdkColormapPrivateWin32 *private;
|
||||
XColor xcolor;
|
||||
|
||||
g_return_val_if_fail (colormap != NULL, FALSE);
|
||||
g_return_val_if_fail (GDK_IS_COLORMAP (colormap), FALSE);
|
||||
g_return_val_if_fail (color != NULL, FALSE);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) colormap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (colormap);
|
||||
|
||||
xcolor.peRed = color->red >> 8;
|
||||
xcolor.peGreen = color->green >> 8;
|
||||
@ -2181,7 +2239,7 @@ gdk_colormap_add (GdkColormap *cmap)
|
||||
colormap_hash = g_hash_table_new ((GHashFunc) gdk_colormap_hash,
|
||||
(GCompareFunc) gdk_colormap_cmp);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) cmap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (cmap);
|
||||
|
||||
g_hash_table_insert (colormap_hash, &private->xcolormap, cmap);
|
||||
}
|
||||
@ -2195,7 +2253,7 @@ gdk_colormap_remove (GdkColormap *cmap)
|
||||
colormap_hash = g_hash_table_new ((GHashFunc) gdk_colormap_hash,
|
||||
(GCompareFunc) gdk_colormap_cmp);
|
||||
|
||||
private = (GdkColormapPrivateWin32 *) cmap;
|
||||
private = GDK_COLORMAP_PRIVATE_DATA (cmap);
|
||||
|
||||
g_hash_table_remove (colormap_hash, &private->xcolormap);
|
||||
}
|
||||
|
@ -40,10 +40,10 @@ GdkGC * _gdk_win32_gc_new (GdkDrawable *drawable,
|
||||
COLORREF gdk_colormap_color (GdkColormapPrivateWin32 *colormap_private,
|
||||
gulong pixel);
|
||||
HDC gdk_gc_predraw (GdkDrawable *drawable,
|
||||
GdkGCPrivate *gc_private,
|
||||
GdkGCWin32 *gcwin32,
|
||||
GdkGCValuesMask usage);
|
||||
void gdk_gc_postdraw (GdkDrawable *drawable,
|
||||
GdkGCPrivate *gc_private,
|
||||
GdkGCWin32 *gcwin32,
|
||||
GdkGCValuesMask usage);
|
||||
HRGN BitmapToRegion (HBITMAP hBmp);
|
||||
|
||||
|
@ -182,7 +182,6 @@ typedef struct {
|
||||
unsigned long base_pixel;
|
||||
} XStandardColormap;
|
||||
|
||||
typedef struct _GdkGCWin32Data GdkGCWin32Data;
|
||||
typedef struct _GdkDrawableWin32Data GdkDrawableWin32Data;
|
||||
typedef struct _GdkWindowWin32Data GdkWindowWin32Data;
|
||||
typedef struct _GdkWin32PositionInfo GdkWin32PositionInfo;
|
||||
@ -197,39 +196,6 @@ typedef struct _GdkICPrivate GdkICPrivate;
|
||||
|
||||
#define GDK_DRAWABLE_WIN32DATA(win) ((GdkDrawableWin32Data *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_WINDOW_WIN32DATA(win) ((GdkWindowWin32Data *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_GC_WIN32DATA(gc) ((GdkGCWin32Data *)(((GdkGCPrivate*)(gc))->klass_data))
|
||||
|
||||
struct _GdkGCWin32Data
|
||||
{
|
||||
GdkRegion *clip_region;
|
||||
|
||||
/* A Windows Device Context (DC) is not equivalent to an X11
|
||||
* GC. We can use a DC only in the window for which it was
|
||||
* allocated, or (in the case of a memory DC) with the bitmap that
|
||||
* has been selected into it. Thus, we have to release and
|
||||
* reallocate a DC each time the GdkGC is used to paint into a new
|
||||
* window or pixmap. We thus keep all the necessary values in the
|
||||
* GdkGCWin32Data struct.
|
||||
*/
|
||||
HDC xgc;
|
||||
HRGN hcliprgn;
|
||||
GdkGCValuesMask values_mask;
|
||||
gulong foreground; /* Pixel values from GdkColor, */
|
||||
gulong background; /* not Win32 COLORREFs */
|
||||
GdkFont *font;
|
||||
gint rop2;
|
||||
GdkFill fill_style;
|
||||
GdkPixmap *tile;
|
||||
GdkPixmap *stipple;
|
||||
GdkSubwindowMode subwindow_mode;
|
||||
gint graphics_exposures;
|
||||
gint pen_width;
|
||||
DWORD pen_style;
|
||||
HANDLE hwnd; /* If a DC is allocated, for which window
|
||||
* or what bitmap is selected into it
|
||||
*/
|
||||
int saved_dc;
|
||||
};
|
||||
|
||||
struct _GdkDrawableWin32Data
|
||||
{
|
||||
@ -329,6 +295,60 @@ struct _GdkImagePrivateWin32
|
||||
HBITMAP ximage;
|
||||
};
|
||||
|
||||
typedef struct _GdkGCWin32 GdkGCWin32;
|
||||
typedef struct _GdkGCWin32Class GdkGCWin32Class;
|
||||
|
||||
#define GDK_TYPE_GC_WIN32 (gdk_gc_win32_get_type ())
|
||||
#define GDK_GC_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GC_WIN32, GdkGCWin32))
|
||||
#define GDK_GC_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GC_WIN32, GdkGCWin32Class))
|
||||
#define GDK_IS_GC_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GC_WIN32))
|
||||
#define GDK_IS_GC_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GC_WIN32))
|
||||
#define GDK_GC_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GC_WIN32, GdkGCWin32Class))
|
||||
|
||||
struct _GdkGCWin32
|
||||
{
|
||||
GdkGC parent_instance;
|
||||
|
||||
/* A Windows Device Context (DC) is not equivalent to an X11
|
||||
* GC. We can use a DC only in the window for which it was
|
||||
* allocated, or (in the case of a memory DC) with the bitmap that
|
||||
* has been selected into it. Thus, we have to release and
|
||||
* reallocate a DC each time the GdkGC is used to paint into a new
|
||||
* window or pixmap. We thus keep all the necessary values in the
|
||||
* GdkGCWin32 object.
|
||||
*/
|
||||
HDC xgc;
|
||||
|
||||
GdkRegion *clip_region;
|
||||
HRGN hcliprgn;
|
||||
|
||||
GdkGCValuesMask values_mask;
|
||||
|
||||
gulong foreground; /* Pixel values from GdkColor, */
|
||||
gulong background; /* not Win32 COLORREFs */
|
||||
|
||||
GdkFont *font;
|
||||
gint rop2;
|
||||
GdkFill fill_style;
|
||||
GdkPixmap *tile;
|
||||
GdkPixmap *stipple;
|
||||
GdkSubwindowMode subwindow_mode;
|
||||
gint graphics_exposures;
|
||||
gint pen_width;
|
||||
DWORD pen_style;
|
||||
HANDLE hwnd; /* If a HDC is allocated, for which window,
|
||||
* or what bitmap is selected into it
|
||||
*/
|
||||
int saved_dc;
|
||||
};
|
||||
|
||||
struct _GdkGCWin32Class
|
||||
{
|
||||
GdkGCClass parent_class;
|
||||
};
|
||||
|
||||
GType gdk_gc_win32_get_type (void);
|
||||
|
||||
#define GDK_ROOT_WINDOW() ((guint32) HWND_DESKTOP)
|
||||
#define GDK_ROOT_PARENT() ((GdkWindow *) gdk_parent_root)
|
||||
#define GDK_DISPLAY() NULL
|
||||
@ -360,7 +380,6 @@ HDC gdk_win32_hdc_get (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkGCValuesMask usage);
|
||||
|
||||
|
||||
/* Each HDC returned from gdk_win32_hdc_get must be released with
|
||||
* this function
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user