gtk/gdk/linux-fb/gdkfb.h
Alexander Larsson 058c2d9320 Take shaped windows in consideration when generating clip region.
2001-01-12  Alexander Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): Take shaped
	windows in consideration when generating clip region.

	* gdk/linux-fb/gdkfb.h:
	Huge HACK. Added GDK_FB_USE_CHILD_SHAPE.

	* gdk/linux-fb/gdkprivate-fb.h:
	Add shape to GdkWindowFBDatat.
	exported gdk_fb_window_get_abs_shape().
	removed gdk_fb_draw_lines declaration.

	* gdk/linux-fb/gdkwindow-fb.c (gdk_window_impl_fb_init):
	Init shape to NULL. (gdk_fb_window_send_crossing_events): Don't
	send focus changes when there is a grabbed window.
	(gdk_window_get_pointer): Handle shaped windows.
	(gdk_fb_region_create_from_bitmap): Convert bitmap to region.
	(gdk_fb_window_peek_shape): Returns the shape for a window,
	handles GDK_FB_USE_CHILD_SHAPE.
	(gdk_fb_window_get_abs_shape): Returns the shape of the window,
	offseted to absolute positions. Handles GDK_FB_USE_CHILD_SHAPE.
	(gdk_window_shape_combine_mask): Implement.

	* gtk/gtkwindow-decorate.c:
	HACK! Set GDK_FB_USE_CHILD_SHAPE on window->frame to make sure
	setting the shape of a window makes the window transparent.
2001-01-12 15:45:26 +00:00

52 lines
1.4 KiB
C

#ifndef GDKFB_H
#define GDKFB_H 1
#include "gdk/gdkprivate.h"
typedef struct _GdkFBDisplay GdkFBDisplay;
typedef struct _GdkFBWindow GdkFBWindow;
extern GdkFBWindow *gdk_root_window;
extern GdkFBDisplay *gdk_display;
#define GDK_ROOT_WINDOW() gdk_root_window
#define GDK_ROOT_PARENT() ((GdkWindow *)gdk_parent_root)
#define GDK_DISPLAY() gdk_display
extern const char *gdk_progclass;
#define gdk_window_foreign_new(xid) gdk_window_ref(xid)
#define gdk_window_lookup(xid) ((GdkWindow*) (xid))
#define gdk_pixmap_lookup(xid) ((GdkPixmap*) (xid))
#define gdk_font_lookup(xid) ((GdkFont*) (xid))
extern GdkAtom gdk_selection_property;
typedef enum {
GDK_FB_0_DEGREES,
GDK_FB_90_DEGREES,
GDK_FB_180_DEGREES,
GDK_FB_270_DEGREES
} GdkFBAngle;
#define GDK_FB_USE_CHILD_SHAPE ((void *)1)
/* FB specific functions: */
typedef gboolean (*GdkWindowChildChanged) (GdkWindow *window,
gint x, gint y,
gint width, gint height,
gpointer user_data);
typedef void (*GdkWindowChildGetPos) (GdkWindow *window,
gint *x, gint *y,
gpointer user_data);
void gdk_fb_window_set_child_handler (GdkWindow *window,
GdkWindowChildChanged changed,
GdkWindowChildGetPos get_pos,
gpointer user_data);
void gdk_fb_set_rotation (GdkFBAngle angle);
#endif /* GDKFB_H */