diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt index f49104edd1..90cea58a0e 100644 --- a/docs/reference/gtk/gtk3-sections.txt +++ b/docs/reference/gtk/gtk3-sections.txt @@ -5185,14 +5185,6 @@ GTK_INTERFACE_AGE GTK_CHECK_VERSION - -
-gtkgc -Graphics Contexts -gtk_gc_get -gtk_gc_release -
-
gtkstyle GtkStyle diff --git a/docs/reference/gtk/tmpl/gtkgc.sgml b/docs/reference/gtk/tmpl/gtkgc.sgml deleted file mode 100644 index d5f5ee0aa7..0000000000 --- a/docs/reference/gtk/tmpl/gtkgc.sgml +++ /dev/null @@ -1,51 +0,0 @@ - -Graphics Contexts - - -A shared pool of GdkGC objects - - - -These functions provide access to a shared pool of #GdkGC objects. -When a new #GdkGC is needed, gtk_gc_get() is called with the required depth, -colormap and #GdkGCValues. If a #GdkGC with the required properties already -exists then that is returned. If not, a new #GdkGC is created. -When the #GdkGC is no longer needed, gtk_gc_release() should be called. - - - - - - - - - - - - - - - -Gets a #GdkGC with the given depth, colormap and #GdkGCValues. -If a #GdkGC with the given properties already exists then it is returned, -otherwise a new #GdkGC is created. -The returned #GdkGC should be released with gtk_gc_release() when it is no -longer needed. - - -@depth: the depth of the #GdkGC to create. -@colormap: the #GdkColormap (FIXME: I don't know why this is needed). -@values: a #GdkGCValues struct containing settings for the #GdkGC. -@values_mask: a set of flags indicating which of the fields in @values has -been set. -@Returns: a #GdkGC. - - - - -Releases a #GdkGC allocated using gtk_gc_get(). - - -@gc: a #GdkGC. - - diff --git a/gtk/Makefile.am b/gtk/Makefile.am index f0d6498810..4fdde840eb 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -209,7 +209,6 @@ gtk_public_h_sources = \ gtkfontbutton.h \ gtkfontsel.h \ gtkframe.h \ - gtkgc.h \ gtkhandlebox.h \ gtkhbbox.h \ gtkhbox.h \ @@ -472,7 +471,6 @@ gtk_base_c_sources = \ gtkfontbutton.c \ gtkfontsel.c \ gtkframe.c \ - gtkgc.c \ gtkhandlebox.c \ gtkhbbox.c \ gtkhbox.c \ diff --git a/gtk/gtk.h b/gtk/gtk.h index 81d9fa236f..c369d5bb52 100644 --- a/gtk/gtk.h +++ b/gtk/gtk.h @@ -93,7 +93,6 @@ #include #include #include -#include #include #include #include diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index 15fe9e6732..b9773ab4d3 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -1460,13 +1460,6 @@ gtk_frame_set_shadow_type #endif #endif -#if IN_HEADER(__GTK_GC_H__) -#if IN_FILE(__GTK_GC_C__) -gtk_gc_get -gtk_gc_release -#endif -#endif - #if IN_HEADER(__GTK_HANDLE_BOX_H__) #if IN_FILE(__GTK_HANDLE_BOX_C__) gtk_handle_box_get_handle_position diff --git a/gtk/gtkgc.c b/gtk/gtkgc.c deleted file mode 100644 index d277ee3698..0000000000 --- a/gtk/gtkgc.c +++ /dev/null @@ -1,404 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "config.h" -#include "gtkgc.h" -#include "gtkintl.h" - - -typedef struct _GtkGCKey GtkGCKey; -typedef struct _GtkGCDrawable GtkGCDrawable; - -struct _GtkGCKey -{ - gint depth; - GdkColormap *colormap; - GdkGCValues values; - GdkGCValuesMask mask; -}; - -struct _GtkGCDrawable -{ - gint depth; - GdkPixmap *drawable; -}; - - -static void gtk_gc_init (void); -static GtkGCKey* gtk_gc_key_dup (GtkGCKey *key); -static void gtk_gc_key_destroy (GtkGCKey *key); -static gpointer gtk_gc_new (gpointer key); -static void gtk_gc_destroy (gpointer value); -static guint gtk_gc_key_hash (gpointer key); -static guint gtk_gc_value_hash (gpointer value); -static gint gtk_gc_key_equal (gpointer a, - gpointer b); -static guint gtk_gc_drawable_hash (GtkGCDrawable *d); -static gint gtk_gc_drawable_equal (GtkGCDrawable *a, - GtkGCDrawable *b); - - -static gint initialize = TRUE; -static GCache *gc_cache = NULL; -static GQuark quark_gtk_gc_drawable_ht = 0; - -GdkGC* -gtk_gc_get (gint depth, - GdkColormap *colormap, - GdkGCValues *values, - GdkGCValuesMask values_mask) -{ - GtkGCKey key; - GdkGC *gc; - - if (initialize) - gtk_gc_init (); - - key.depth = depth; - key.colormap = colormap; - key.values = *values; - key.mask = values_mask; - - gc = g_cache_insert (gc_cache, &key); - - return gc; -} - -void -gtk_gc_release (GdkGC *gc) -{ - if (initialize) - gtk_gc_init (); - - g_cache_remove (gc_cache, gc); -} - -static void -free_gc_drawable (gpointer data) -{ - GtkGCDrawable *drawable = data; - g_object_unref (drawable->drawable); - g_slice_free (GtkGCDrawable, drawable); -} - -static GHashTable* -gtk_gc_get_drawable_ht (GdkScreen *screen) -{ - GHashTable *ht = g_object_get_qdata (G_OBJECT (screen), quark_gtk_gc_drawable_ht); - if (!ht) - { - ht = g_hash_table_new_full ((GHashFunc) gtk_gc_drawable_hash, - (GEqualFunc) gtk_gc_drawable_equal, - NULL, free_gc_drawable); - g_object_set_qdata_full (G_OBJECT (screen), - quark_gtk_gc_drawable_ht, ht, - (GDestroyNotify)g_hash_table_destroy); - } - - return ht; -} - -static void -gtk_gc_init (void) -{ - initialize = FALSE; - - quark_gtk_gc_drawable_ht = g_quark_from_static_string ("gtk-gc-drawable-ht"); - - gc_cache = g_cache_new ((GCacheNewFunc) gtk_gc_new, - (GCacheDestroyFunc) gtk_gc_destroy, - (GCacheDupFunc) gtk_gc_key_dup, - (GCacheDestroyFunc) gtk_gc_key_destroy, - (GHashFunc) gtk_gc_key_hash, - (GHashFunc) gtk_gc_value_hash, - (GEqualFunc) gtk_gc_key_equal); -} - -static GtkGCKey* -gtk_gc_key_dup (GtkGCKey *key) -{ - GtkGCKey *new_key; - - new_key = g_slice_new (GtkGCKey); - - *new_key = *key; - - return new_key; -} - -static void -gtk_gc_key_destroy (GtkGCKey *key) -{ - g_slice_free (GtkGCKey, key); -} - -static gpointer -gtk_gc_new (gpointer key) -{ - GtkGCKey *keyval; - GtkGCDrawable *drawable; - GdkGC *gc; - GHashTable *ht; - GdkScreen *screen; - - keyval = key; - screen = gdk_colormap_get_screen (keyval->colormap); - - ht = gtk_gc_get_drawable_ht (screen); - drawable = g_hash_table_lookup (ht, &keyval->depth); - if (!drawable) - { - drawable = g_slice_new (GtkGCDrawable); - drawable->depth = keyval->depth; - drawable->drawable = gdk_pixmap_new (gdk_screen_get_root_window (screen), - 1, 1, drawable->depth); - g_hash_table_insert (ht, &drawable->depth, drawable); - } - - gc = gdk_gc_new_with_values (drawable->drawable, &keyval->values, keyval->mask); - gdk_gc_set_colormap (gc, keyval->colormap); - - return (gpointer) gc; -} - -static void -gtk_gc_destroy (gpointer value) -{ - g_object_unref (value); -} - -static guint -gtk_gc_key_hash (gpointer key) -{ - GtkGCKey *keyval; - guint hash_val; - - keyval = key; - hash_val = 0; - - if (keyval->mask & GDK_GC_FOREGROUND) - { - hash_val += keyval->values.foreground.pixel; - } - if (keyval->mask & GDK_GC_BACKGROUND) - { - hash_val += keyval->values.background.pixel; - } - if (keyval->mask & GDK_GC_FUNCTION) - { - hash_val += (gint) keyval->values.function; - } - if (keyval->mask & GDK_GC_FILL) - { - hash_val += (gint) keyval->values.fill; - } - if (keyval->mask & GDK_GC_TILE) - { - hash_val += (gintptr) keyval->values.tile; - } - if (keyval->mask & GDK_GC_STIPPLE) - { - hash_val += (gintptr) keyval->values.stipple; - } - if (keyval->mask & GDK_GC_CLIP_MASK) - { - hash_val += (gintptr) keyval->values.clip_mask; - } - if (keyval->mask & GDK_GC_SUBWINDOW) - { - hash_val += (gint) keyval->values.subwindow_mode; - } - if (keyval->mask & GDK_GC_TS_X_ORIGIN) - { - hash_val += (gint) keyval->values.ts_x_origin; - } - if (keyval->mask & GDK_GC_TS_Y_ORIGIN) - { - hash_val += (gint) keyval->values.ts_y_origin; - } - if (keyval->mask & GDK_GC_CLIP_X_ORIGIN) - { - hash_val += (gint) keyval->values.clip_x_origin; - } - if (keyval->mask & GDK_GC_CLIP_Y_ORIGIN) - { - hash_val += (gint) keyval->values.clip_y_origin; - } - if (keyval->mask & GDK_GC_EXPOSURES) - { - hash_val += (gint) keyval->values.graphics_exposures; - } - if (keyval->mask & GDK_GC_LINE_WIDTH) - { - hash_val += (gint) keyval->values.line_width; - } - if (keyval->mask & GDK_GC_LINE_STYLE) - { - hash_val += (gint) keyval->values.line_style; - } - if (keyval->mask & GDK_GC_CAP_STYLE) - { - hash_val += (gint) keyval->values.cap_style; - } - if (keyval->mask & GDK_GC_JOIN_STYLE) - { - hash_val += (gint) keyval->values.join_style; - } - - return hash_val; -} - -static guint -gtk_gc_value_hash (gpointer value) -{ - return (gulong) value; -} - -static gboolean -gtk_gc_key_equal (gpointer a, - gpointer b) -{ - GtkGCKey *akey; - GtkGCKey *bkey; - GdkGCValues *avalues; - GdkGCValues *bvalues; - - akey = a; - bkey = b; - - avalues = &akey->values; - bvalues = &bkey->values; - - if (akey->mask != bkey->mask) - return FALSE; - - if (akey->depth != bkey->depth) - return FALSE; - - if (akey->colormap != bkey->colormap) - return FALSE; - - if (akey->mask & GDK_GC_FOREGROUND) - { - if (avalues->foreground.pixel != bvalues->foreground.pixel) - return FALSE; - } - if (akey->mask & GDK_GC_BACKGROUND) - { - if (avalues->background.pixel != bvalues->background.pixel) - return FALSE; - } - if (akey->mask & GDK_GC_FUNCTION) - { - if (avalues->function != bvalues->function) - return FALSE; - } - if (akey->mask & GDK_GC_FILL) - { - if (avalues->fill != bvalues->fill) - return FALSE; - } - if (akey->mask & GDK_GC_TILE) - { - if (avalues->tile != bvalues->tile) - return FALSE; - } - if (akey->mask & GDK_GC_STIPPLE) - { - if (avalues->stipple != bvalues->stipple) - return FALSE; - } - if (akey->mask & GDK_GC_CLIP_MASK) - { - if (avalues->clip_mask != bvalues->clip_mask) - return FALSE; - } - if (akey->mask & GDK_GC_SUBWINDOW) - { - if (avalues->subwindow_mode != bvalues->subwindow_mode) - return FALSE; - } - if (akey->mask & GDK_GC_TS_X_ORIGIN) - { - if (avalues->ts_x_origin != bvalues->ts_x_origin) - return FALSE; - } - if (akey->mask & GDK_GC_TS_Y_ORIGIN) - { - if (avalues->ts_y_origin != bvalues->ts_y_origin) - return FALSE; - } - if (akey->mask & GDK_GC_CLIP_X_ORIGIN) - { - if (avalues->clip_x_origin != bvalues->clip_x_origin) - return FALSE; - } - if (akey->mask & GDK_GC_CLIP_Y_ORIGIN) - { - if (avalues->clip_y_origin != bvalues->clip_y_origin) - return FALSE; - } - if (akey->mask & GDK_GC_EXPOSURES) - { - if (avalues->graphics_exposures != bvalues->graphics_exposures) - return FALSE; - } - if (akey->mask & GDK_GC_LINE_WIDTH) - { - if (avalues->line_width != bvalues->line_width) - return FALSE; - } - if (akey->mask & GDK_GC_LINE_STYLE) - { - if (avalues->line_style != bvalues->line_style) - return FALSE; - } - if (akey->mask & GDK_GC_CAP_STYLE) - { - if (avalues->cap_style != bvalues->cap_style) - return FALSE; - } - if (akey->mask & GDK_GC_JOIN_STYLE) - { - if (avalues->join_style != bvalues->join_style) - return FALSE; - } - - return TRUE; -} - -static guint -gtk_gc_drawable_hash (GtkGCDrawable *d) -{ - return d->depth; -} - -static gboolean -gtk_gc_drawable_equal (GtkGCDrawable *a, - GtkGCDrawable *b) -{ - return (a->depth == b->depth); -} diff --git a/gtk/gtkgc.h b/gtk/gtkgc.h deleted file mode 100644 index 8395bbafbf..0000000000 --- a/gtk/gtkgc.h +++ /dev/null @@ -1,49 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __GTK_GC_H__ -#define __GTK_GC_H__ - - -#include - - -G_BEGIN_DECLS - -GdkGC* gtk_gc_get (gint depth, - GdkColormap *colormap, - GdkGCValues *values, - GdkGCValuesMask values_mask); -void gtk_gc_release (GdkGC *gc); - - -G_END_DECLS - -#endif /* __GTK_GC_H__ */