462
+ − 1 /* Gtk-specific glyphs and related.
+ − 2 Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+ − 3 Copyright (C) 1995 Board of Trustees, University of Illinois.
+ − 4 Copyright (C) 1995, 1996 Ben Wing
+ − 5 Copyright (C) 1995 Sun Microsystems, Inc.
+ − 6
+ − 7 This file is part of XEmacs.
+ − 8
+ − 9 XEmacs is free software; you can redistribute it and/or modify it
+ − 10 under the terms of the GNU General Public License as published by the
+ − 11 Free Software Foundation; either version 2, or (at your option) any
+ − 12 later version.
+ − 13
+ − 14 XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ − 15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 17 for more details.
+ − 18
+ − 19 You should have received a copy of the GNU General Public License
+ − 20 along with XEmacs; see the file COPYING. If not, write to
+ − 21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 22 Boston, MA 02111-1307, USA. */
+ − 23
+ − 24 /* Synched up with: Not in FSF. */
+ − 25 /* Gtk version by William Perry */
+ − 26
+ − 27 #ifndef _XEMACS_GLYPHS_GTK_H_
+ − 28 #define _XEMACS_GLYPHS_GTK_H_
+ − 29
+ − 30 #include "glyphs.h"
+ − 31
+ − 32 #ifdef HAVE_GTK
+ − 33
+ − 34 #include <gtk/gtk.h>
+ − 35
+ − 36 /****************************************************************************
+ − 37 * Image-Instance Object *
+ − 38 ****************************************************************************/
+ − 39
+ − 40 struct gtk_image_instance_data
+ − 41 {
+ − 42 GdkPixmap **pixmaps;
+ − 43 GdkPixmap *mask;
+ − 44 GdkCursor *cursor;
+ − 45
+ − 46 /* If depth>0, then that means that other colors were allocated when
+ − 47 this pixmap was loaded. These are they; we need to free them when
+ − 48 finalizing the image instance. */
+ − 49 GdkColormap *colormap;
+ − 50 unsigned long *pixels;
+ − 51 int npixels;
+ − 52
+ − 53 /* Should we hang on to the extra info from the XpmAttributes, like
+ − 54 the textual color table and the comments? Is that useful? */
+ − 55 };
+ − 56
+ − 57 struct gtk_subwindow_data
+ − 58 {
+ − 59 union
+ − 60 {
+ − 61 struct
+ − 62 {
+ − 63 GtkWidget *parent_window;
+ − 64 GtkWidget *clip_window;
+ − 65 } sub;
+ − 66 struct
+ − 67 {
+ − 68 GtkWidget *clip_window;
+ − 69 Lisp_Object widget;
+ − 70 guint x_offset;
+ − 71 guint y_offset;
+ − 72 gboolean added_to_fixed;
+ − 73 } wid;
+ − 74 } data;
+ − 75 };
+ − 76
+ − 77 void init_image_instance_from_gdk_pixmap (struct Lisp_Image_Instance *ii,
+ − 78 struct device *device,
+ − 79 GdkPixmap *gdk_pixmap,
+ − 80 int dest_mask,
+ − 81 Lisp_Object instantiator);
+ − 82
+ − 83 #define GTK_IMAGE_INSTANCE_DATA(i) ((struct gtk_image_instance_data *) (i)->data)
+ − 84
+ − 85 #define IMAGE_INSTANCE_GTK_PIXMAP(i) (GTK_IMAGE_INSTANCE_DATA (i)->pixmaps[0])
+ − 86 #define IMAGE_INSTANCE_GTK_PIXMAP_SLICE(i,slice) \
+ − 87 (GTK_IMAGE_INSTANCE_DATA (i)->pixmaps[slice])
+ − 88 #define IMAGE_INSTANCE_GTK_PIXMAP_SLICES(i) \
+ − 89 (GTK_IMAGE_INSTANCE_DATA (i)->pixmaps)
+ − 90 #define IMAGE_INSTANCE_GTK_MASK(i) (GTK_IMAGE_INSTANCE_DATA (i)->mask)
+ − 91 #define IMAGE_INSTANCE_GTK_CURSOR(i) (GTK_IMAGE_INSTANCE_DATA (i)->cursor)
+ − 92 #define IMAGE_INSTANCE_GTK_COLORMAP(i) (GTK_IMAGE_INSTANCE_DATA (i)->colormap)
+ − 93 #define IMAGE_INSTANCE_GTK_PIXELS(i) (GTK_IMAGE_INSTANCE_DATA (i)->pixels)
+ − 94 #define IMAGE_INSTANCE_GTK_NPIXELS(i) (GTK_IMAGE_INSTANCE_DATA (i)->npixels)
+ − 95
+ − 96 #define XIMAGE_INSTANCE_GTK_PIXMAP(i) \
+ − 97 IMAGE_INSTANCE_GTK_PIXMAP (XIMAGE_INSTANCE (i))
+ − 98 #define XIMAGE_INSTANCE_GTK_PIXMAP_SLICE(i) \
+ − 99 IMAGE_INSTANCE_GTK_PIXMAP_SLICE (XIMAGE_INSTANCE (i))
+ − 100 #define XIMAGE_INSTANCE_GTK_PIXMAP_SLICES(i) \
+ − 101 IMAGE_INSTANCE_GTK_PIXMAP_SLICES (XIMAGE_INSTANCE (i))
+ − 102 #define XIMAGE_INSTANCE_GTK_MASK(i) \
+ − 103 IMAGE_INSTANCE_GTK_MASK (XIMAGE_INSTANCE (i))
+ − 104 #define XIMAGE_INSTANCE_GTK_CURSOR(i) \
+ − 105 IMAGE_INSTANCE_GTK_CURSOR (XIMAGE_INSTANCE (i))
+ − 106 #define XIMAGE_INSTANCE_GTK_PIXELS(i) \
+ − 107 IMAGE_INSTANCE_GTK_PIXELS (XIMAGE_INSTANCE (i))
+ − 108 #define XIMAGE_INSTANCE_GTK_NPIXELS(i) \
+ − 109 IMAGE_INSTANCE_GTK_NPIXELS (XIMAGE_INSTANCE (i))
+ − 110
+ − 111 /* Subwindow / widget stuff */
+ − 112 #define GTK_SUBWINDOW_INSTANCE_DATA(i) ((struct gtk_subwindow_data *) (i)->data)
+ − 113
+ − 114 #define IMAGE_INSTANCE_GTK_SUBWINDOW_PARENT(i) \
+ − 115 (GTK_SUBWINDOW_INSTANCE_DATA (i)->data.sub.parent_window)
+ − 116 #define IMAGE_INSTANCE_GTK_CLIPWINDOW(i) \
+ − 117 (GTK_SUBWINDOW_INSTANCE_DATA (i)->data.sub.clip_window)
+ − 118 #define IMAGE_INSTANCE_GTK_WIDGET_XOFFSET(i) \
+ − 119 (GTK_SUBWINDOW_INSTANCE_DATA (i)->data.wid.x_offset)
+ − 120 #define IMAGE_INSTANCE_GTK_WIDGET_YOFFSET(i) \
+ − 121 (GTK_SUBWINDOW_INSTANCE_DATA (i)->data.wid.y_offset)
+ − 122 #define IMAGE_INSTANCE_GTK_WIDGET_LWID(i) \
+ − 123 (GTK_SUBWINDOW_INSTANCE_DATA (i)->data.wid.id)
+ − 124 #define IMAGE_INSTANCE_GTK_CLIPWIDGET(i) \
+ − 125 (GTK_SUBWINDOW_INSTANCE_DATA (i)->data.wid.clip_window)
+ − 126 #define IMAGE_INSTANCE_GTK_ALREADY_PUT(i) \
+ − 127 (GTK_SUBWINDOW_INSTANCE_DATA (i)->data.wid.added_to_fixed)
+ − 128 #define IMAGE_INSTANCE_GTK_SUBWINDOW_ID(i) \
+ − 129 ((GdkWindow *) & IMAGE_INSTANCE_SUBWINDOW_ID (i))
+ − 130 #define IMAGE_INSTANCE_GTK_WIDGET_ID(i) \
+ − 131 ((GtkWidget *) & IMAGE_INSTANCE_SUBWINDOW_ID (i))
+ − 132
+ − 133 #define XIMAGE_INSTANCE_GTK_SUBWINDOW_PARENT(i) \
+ − 134 IMAGE_INSTANCE_GTK_SUBWINDOW_PARENT (XIMAGE_INSTANCE (i))
+ − 135 #define XIMAGE_INSTANCE_GTK_SUBWINDOW_DISPLAY(i) \
+ − 136 IMAGE_INSTANCE_GTK_SUBWINDOW_DISPLAY (XIMAGE_INSTANCE (i))
+ − 137 #define XIMAGE_INSTANCE_GTK_WIDGET_XOFFSET(i) \
+ − 138 IMAGE_INSTANCE_GTK_WIDGET_XOFFSET (XIMAGE_INSTANCE (i))
+ − 139 #define XIMAGE_INSTANCE_GTK_WIDGET_YOFFSET(i) \
+ − 140 IMAGE_INSTANCE_GTK_WIDGET_YOFFSET (XIMAGE_INSTANCE (i))
+ − 141 #define XIMAGE_INSTANCE_GTK_WIDGET_LWID(i) \
+ − 142 IMAGE_INSTANCE_GTK_WIDGET_LWID (XIMAGE_INSTANCE (i))
+ − 143 #define XIMAGE_INSTANCE_GTK_CLIPWIDGET(i) \
+ − 144 IMAGE_INSTANCE_GTK_CLIPWIDGET (XIMAGE_INSTANCE (i))
+ − 145 #define XIMAGE_INSTANCE_GTK_CLIPWINDOW(i) \
+ − 146 IMAGE_INSTANCE_GTK_CLIPWINDOW (XIMAGE_INSTANCE (i))
+ − 147 #define XIMAGE_INSTANCE_GTK_WIDGET_ID(i) \
+ − 148 IMAGE_INSTANCE_GTK_WIDGET_ID (XIMAGE_INSTANCE (i))
+ − 149
+ − 150 #define DOMAIN_GTK_WIDGET(domain) \
+ − 151 ((IMAGE_INSTANCEP (domain) && \
+ − 152 GTK_SUBWINDOW_INSTANCE_DATA (XIMAGE_INSTANCE (domain))) ? \
+ − 153 XIMAGE_INSTANCE_GTK_WIDGET_ID (domain) : \
+ − 154 FRAME_GTK_CONTAINER_WIDGET (f) (DOMAIN_XFRAME (domain)))
+ − 155
+ − 156 #endif /* HAVE_GTK */
+ − 157 #endif /* _XEMACS_GLYPHS_GTK_H_ */