1 /* GDK - The GIMP Drawing Kit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library 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.
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 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library 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.
21 * Modified by the GTK+ Team and others 1997-1999. 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/.
28 * Private uninstalled header defining things local to X windowing code
31 #ifndef __GDK_PRIVATE_FB_H__
32 #define __GDK_PRIVATE_FB_H__
34 #include <gdk/gdkprivate.h>
37 #include "gdkregion-generic.h"
41 #define GDK_DRAWABLE_FBDATA(win) ((GdkDrawableFBData *)(((GdkDrawablePrivate*)(win))->klass_data))
42 #define GDK_PIXMAP_FBDATA(win) ((GdkPixmapFBData *)(((GdkDrawablePrivate*)(win))->klass_data))
43 #define GDK_WINDOW_FBDATA(win) ((GdkWindowFBData *)(((GdkDrawablePrivate*)(win))->klass_data))
44 #define GDK_FONT_FB(f) ((GdkFontPrivateFB *)(f))
45 #define GDK_CURSOR_FB(c) ((GdkCursorPrivateFB *)(c))
47 typedef struct _GdkDrawableFBData GdkDrawableFBData;
48 typedef struct _GdkWindowFBData GdkWindowFBData;
50 struct _GdkDrawableFBData
54 gint abs_x, abs_y, lim_x, lim_y, llim_x, llim_y; /* computed values */
59 struct _GdkPixmapFBData
61 GdkDrawableFBData drawable_data;
71 struct _GdkWindowFBData
73 GdkDrawableFBData drawable_data;
75 GHashTable *properties;
77 GdkEventMask event_mask;
79 gboolean realized : 1;
88 struct fb_fix_screeninfo sinfo;
89 struct fb_var_screeninfo modeinfo;
97 GdkColormapPrivate base;
102 } GdkColormapPrivateFB;
106 GdkPixmap *cursor, *mask;
107 } GdkCursorPrivateFB;
118 GdkImagePrivate base;
121 #define GDK_GC_FBDATA(x) ((GdkGCFBData *)((GdkGCPrivate *)x)->klass_data)
123 GdkRegion *clip_region;
125 GdkGCValuesMask values_mask;
128 gushort dash_list_len;
132 GdkGC * _gdk_fb_gc_new (GdkDrawable *drawable,
134 GdkGCValuesMask values_mask);
136 /* Routines from gdkgeometry-fb.c */
138 void _gdk_window_init_position (GdkWindow *window);
139 void _gdk_window_move_resize_child (GdkWindow *window,
144 void _gdk_window_process_expose (GdkWindow *window,
147 GdkGC *_gdk_fb_gc_new(GdkDrawable *drawable, GdkGCValues *values, GdkGCValuesMask values_mask);
149 void gdk_fb_drawable_clear(GdkDrawable *drawable);
150 void gdk_fb_draw_drawable (GdkDrawable *drawable,
159 void gdk_fb_draw_drawable_2 (GdkDrawable *drawable,
169 gboolean do_clipping);
170 void gdk_fb_draw_rectangle (GdkDrawable *drawable,
177 void gdk_fb_fill_spans(GdkDrawable *drawable, GdkGC *gc, GdkRectangle *rects, int nrects);
179 extern GdkWindow *_gdk_fb_pointer_grab_window, *_gdk_fb_keyboard_grab_window, *_gdk_fb_pointer_grab_confine;
180 extern GdkEventMask _gdk_fb_pointer_grab_events, _gdk_fb_keyboard_grab_events;
181 extern GdkCursor *_gdk_fb_pointer_grab_cursor;
182 extern GdkFBDisplay *gdk_display;
183 extern GdkDrawableClass _gdk_fb_drawable_class;
184 extern FILE *debug_out;
185 GdkEvent *gdk_event_make(GdkWindow *window, GdkEventType type, gboolean append_to_queue);
187 void gdk_fb_get_cursor_rect(GdkRectangle *rect);
188 void gdk_fb_cursor_unhide(void);
189 void gdk_fb_cursor_hide(void);
190 void gdk_fb_redraw_all(void);
192 void gdk_input_ps2_get_mouseinfo(gint *x, gint *y, GdkModifierType *mask);
194 #endif /* __GDK_PRIVATE_FB_H__ */