#define GDK_FONT_FB(f) ((GdkFontPrivateFB *)(f))
#define GDK_CURSOR_FB(c) ((GdkCursorPrivateFB *)(c))
+#define CHECK_IMPL_AND_INTF
+
+#ifdef CHECK_IMPL_AND_INTF
#define GDK_CHECK_IMPL(drawable) \
g_assert(G_OBJECT_TYPE(drawable) == _gdk_window_impl_get_type() || G_OBJECT_TYPE(drawable) == _gdk_pixmap_impl_get_type())
#define GDK_CHECK_INTF(drawable) \
g_assert(G_OBJECT_TYPE(drawable) == gdk_window_object_get_type() || G_OBJECT_TYPE(drawable) == gdk_pixmap_get_type())
-
+#else
+#define GDK_CHECK_IMPL(drawable)
+#define GDK_CHECK_INTF(drawable)
+#endif
typedef struct _GdkDrawableFBData GdkDrawableFBData;
typedef struct _GdkWindowFBData GdkWindowFBData;
typedef struct _GdkPixmapFBData GdkPixmapFBData;
GdkRegion *shape; /* Can also be GDK_FB_USE_CHILD_SHAPE */
- GdkEventMask event_mask;
gboolean realized : 1;
};
struct fb_var_screeninfo modeinfo;
struct fb_var_screeninfo orig_modeinfo;
int red_byte, green_byte, blue_byte; /* For truecolor */
+
+ /* fb manager */
+ int manager_fd;
+ int manager_tag;
+ int manager_blocked;
+};
+
+struct _GdkVisualClass
+{
+ GObjectClass parent_class;
};
-typedef struct {
- GdkVisual base;
-} GdkVisualPrivateFB;
typedef struct {
GHashTable *hash;
int hot_x, hot_y;
} GdkCursorPrivateFB;
+/* Define this to emulate slow emulation of
+ GdkFonts using PangoFont */
+#define EMULATE_GDKFONT
+
typedef struct {
GdkFontPrivate base;
+#ifdef EMULATE_GDKFONT
+ /* For PangoFont emulation: */
+ char *name;
+ PangoFont *pango_font;
+#else
+ /* For bogus GdkFonts: */
int size;
+#endif
} GdkFontPrivateFB;
typedef struct {
GdkRegion *region);
void gdk_window_invalidate_rect_clear (GdkWindow *window,
GdkRectangle *rect);
-void gdk_fb_window_send_crossing_events (GdkWindow *dest,
+void gdk_fb_window_send_crossing_events (GdkWindow *src,
+ GdkWindow *dest,
GdkCrossingMode mode);
void gdk_fb_window_move_resize (GdkWindow *window,
gint x,
gint height,
gboolean send_expose_events);
GdkWindow *gdk_fb_window_find_focus (void);
-GdkRegion *gdk_fb_window_get_abs_shape (GdkDrawable *window);
+GdkRegion *gdk_fb_window_get_abs_shape (GdkDrawable *window);
+GdkRegion *gdk_fb_window_peek_shape (GdkDrawable *window,
+ gint *dx,
+ gint *dy);
GdkGC * _gdk_fb_gc_new (GdkDrawable *drawable,
GdkGCValues *values,
GdkGCValuesMask values_mask);
void _gdk_fb_gc_calc_state (GdkGC *gc,
GdkGCValuesMask changed);
-GdkImage *_gdk_fb_get_image (GdkDrawable *drawable,
- gint x,
- gint y,
- gint width,
- gint height);
+GdkImage *_gdk_fb_copy_to_image (GdkDrawable *drawable,
+ GdkImage *image,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height);
void gdk_fb_drawable_clear (GdkDrawable *drawable);
void gdk_fb_draw_drawable (GdkDrawable *drawable,
GdkGC *gc,
gboolean do_clipping);
void gdk_fb_draw_rectangle (GdkDrawable *drawable,
GdkGC *gc,
- gint filled,
+ gboolean filled,
gint x,
gint y,
gint width,
GdkRegion *gdk_fb_clip_region (GdkDrawable *drawable,
GdkGC *gc,
gboolean do_clipping,
- gboolean do_children);
+ gboolean do_children,
+ gboolean full_shapes);
GdkGrabStatus gdk_fb_pointer_grab (GdkWindow *window,
void gdk_shadow_fb_stop_updates (void);
void gdk_fb_recompute_all (void);
+extern GdkAtom _gdk_selection_property;
+
extern GdkFBAngle _gdk_fb_screen_angle;
-extern GdkWindow *_gdk_fb_pointer_grab_window, *_gdk_fb_pointer_grab_window_events, *_gdk_fb_keyboard_grab_window, *_gdk_fb_pointer_grab_confine;
-extern GdkEventMask _gdk_fb_pointer_grab_events, _gdk_fb_keyboard_grab_events;
+/* Pointer grab info */
+extern GdkWindow *_gdk_fb_pointer_grab_window;
+extern gboolean _gdk_fb_pointer_grab_owner_events;
+extern GdkWindow *_gdk_fb_pointer_grab_confine;
+extern GdkEventMask _gdk_fb_pointer_grab_events;
extern GdkCursor *_gdk_fb_pointer_grab_cursor;
+/* Keyboard grab info */
+extern GdkWindow *_gdk_fb_keyboard_grab_window;
+extern GdkEventMask _gdk_fb_keyboard_grab_events;
+extern gboolean _gdk_fb_keyboard_grab_owner_events;
+
extern GdkFBDisplay *gdk_display;
-extern GdkDrawableClass _gdk_fb_drawable_class;
-extern FILE *debug_out;
-GdkEvent *gdk_event_make(GdkWindow *window, GdkEventType type, gboolean append_to_queue);
-GdkEvent *gdk_event_make_2(GdkWindow *window, GdkEventType type, gboolean append_to_queue, gint button_press_num);
+extern GdkDisplay *_gdk_display;
+extern GdkScreen *_gdk_screen;
+
+extern volatile gboolean _gdk_fb_is_active_vt;
+
+GdkEvent *gdk_event_make(GdkWindow *window,
+ GdkEventType type,
+ gboolean append_to_queue);
+GdkWindow * gdk_fb_pointer_event_window (GdkWindow *window,
+ GdkEventType type);
+GdkWindow *gdk_fb_keyboard_event_window (GdkWindow *window,
+ GdkEventType type);
+GdkWindow *gdk_fb_other_event_window (GdkWindow *window,
+ GdkEventType type);
void gdk_fb_get_cursor_rect(GdkRectangle *rect);
gboolean gdk_fb_cursor_need_hide(GdkRectangle *rect);
void gdk_fb_cursor_move (gint x, gint y, GdkWindow *in_window);
guint gdk_fb_keyboard_modifiers (void);
+gboolean gdk_fb_keyboard_init (gboolean open_dev);
gboolean gdk_fb_keyboard_open (void);
void gdk_fb_keyboard_close (void);
+gboolean gdk_fb_mouse_init (gboolean open_dev);
gboolean gdk_fb_mouse_open (void);
void gdk_fb_mouse_close (void);
void gdk_fb_mouse_get_info (gint *x,
gint *y,
GdkModifierType *mask);
+/* Initialization */
+void _gdk_windowing_window_init (void);
+void _gdk_visual_init (void);
+void _gdk_dnd_init (void);
+void _gdk_windowing_image_init (void);
+void _gdk_events_init (void);
+void _gdk_input_init (void);
+
#endif /* __GDK_PRIVATE_FB_H__ */