-/* GDK - The GIMP Drawing Kit
+/* GDK - The GTK+ Drawing Kit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
/* Uninstalled header defining types and functions internal to GDK */
+#ifndef __GDK_INTERNALS_H__
+#define __GDK_INTERNALS_H__
+
+#include <gio/gio.h>
#include <gdk/gdktypes.h>
#include <gdk/gdkwindow.h>
#include <gdk/gdkprivate.h>
+#ifdef USE_MEDIALIB
+#include <gdk/gdkmedialib.h>
+#endif
-#ifndef __GDK_INTERNALS_H__
-#define __GDK_INTERNALS_H__
+G_BEGIN_DECLS
/**********************
* General Facilities *
GDK_DEBUG_INPUT = 1 <<10,
GDK_DEBUG_CURSOR = 1 <<11,
GDK_DEBUG_MULTIHEAD = 1 <<12,
- GDK_DEBUG_XINERAMA = 1 <<13
+ GDK_DEBUG_XINERAMA = 1 <<13,
+ GDK_DEBUG_DRAW = 1 <<14
} GdkDebugFlag;
#ifndef GDK_DISABLE_DEPRECATED
GdkEvent event;
guint flags;
GdkScreen *screen;
+ gpointer windowing_data;
};
extern GdkEventFunc _gdk_event_func; /* Callback for events */
GList* _gdk_event_queue_find_first (GdkDisplay *display);
void _gdk_event_queue_remove_link (GdkDisplay *display,
GList *node);
+GList* _gdk_event_queue_prepend (GdkDisplay *display,
+ GdkEvent *event);
GList* _gdk_event_queue_append (GdkDisplay *display,
GdkEvent *event);
void _gdk_event_button_generate (GdkDisplay *display,
GdkEvent *event);
+void _gdk_windowing_event_data_copy (const GdkEvent *src,
+ GdkEvent *dst);
+void _gdk_windowing_event_data_free (GdkEvent *event);
+
void gdk_synthesize_window_state (GdkWindow *window,
GdkWindowState unset_flags,
GdkWindowState set_flags);
GdkGC *_gdk_drawable_get_scratch_gc (GdkDrawable *drawable,
gboolean graphics_exposures);
-void _gdk_gc_update_context (GdkGC *gc,
- cairo_t *cr,
- GdkColor *override_foreground,
- GdkBitmap *override_stipple);
+void _gdk_gc_update_context (GdkGC *gc,
+ cairo_t *cr,
+ const GdkColor *override_foreground,
+ GdkBitmap *override_stipple,
+ gboolean gc_changed);
/*************************************
* Interfaces used by windowing code *
*************************************/
-void _gdk_window_destroy (GdkWindow *window,
- gboolean foreign_destroy);
-void _gdk_window_clear_update_area (GdkWindow *window);
+GdkWindow *_gdk_window_new (GdkWindow *window,
+ GdkWindowAttr *attributes,
+ gint attributes_mask);
+void _gdk_window_destroy (GdkWindow *window,
+ gboolean foreign_destroy);
+void _gdk_window_clear_update_area (GdkWindow *window);
-void _gdk_screen_close (GdkScreen *screen);
+void _gdk_screen_close (GdkScreen *screen);
const char *_gdk_get_sm_client_id (void);
void _gdk_windowing_init (void);
-extern GOptionEntry _gdk_windowing_args[];
+extern const GOptionEntry _gdk_windowing_args[];
void _gdk_windowing_set_default_display (GdkDisplay *display);
gchar *_gdk_windowing_substitute_screen_number (const gchar *display_name,
void _gdk_windowing_window_get_offsets (GdkWindow *window,
gint *x_offset,
gint *y_offset);
-void _gdk_windowing_window_clear_area (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height);
-void _gdk_windowing_window_clear_area_e (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height);
void _gdk_windowing_get_pointer (GdkDisplay *display,
GdkScreen **screen,
gint _gdk_windowing_get_bits_for_depth (GdkDisplay *display,
gint depth);
+void _gdk_window_reparent (GdkWindow *window,
+ GdkWindow *new_parent,
+ gint x,
+ gint y);
+
#define GDK_WINDOW_IS_MAPPED(window) ((((GdkWindowObject*)window)->state & GDK_WINDOW_STATE_WITHDRAWN) == 0)
/* Called before processing updates for a window. This gives the windowing
* the region; if the result is TRUE, then the windowing layer is responsible
* for destroying the region later.
*/
-gboolean _gdk_windowing_window_queue_antiexpose (GdkWindow *window,
- GdkRegion *area);
+gboolean _gdk_windowing_window_queue_antiexpose (GdkWindow *window,
+ GdkRegion *area);
/* Called to do the windowing system specific part of gdk_window_destroy(),
*
void _gdk_windowing_display_set_sm_client_id (GdkDisplay *display,
const gchar *sm_client_id);
+void _gdk_windowing_window_set_composited (GdkWindow *window,
+ gboolean composited);
+
+#define GDK_TYPE_PAINTABLE (_gdk_paintable_get_type ())
+#define GDK_PAINTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_PAINTABLE, GdkPaintable))
+#define GDK_IS_PAINTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_PAINTABLE))
+#define GDK_PAINTABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDK_TYPE_PAINTABLE, GdkPaintableIface))
+
+typedef struct _GdkPaintable GdkPaintable;
+typedef struct _GdkPaintableIface GdkPaintableIface;
+
+struct _GdkPaintableIface
+{
+ GTypeInterface g_iface;
+
+ void (* begin_paint_region) (GdkPaintable *paintable,
+ const GdkRegion *region);
+ void (* end_paint) (GdkPaintable *paintable);
+
+ void (* invalidate_maybe_recurse) (GdkPaintable *paintable,
+ const GdkRegion *region,
+ gboolean (*child_func) (GdkWindow *, gpointer),
+ gpointer user_data);
+ void (* process_updates) (GdkPaintable *paintable,
+ gboolean update_children);
+};
+
+GType _gdk_paintable_get_type (void) G_GNUC_CONST;
+
/* Implementation types */
GType _gdk_window_impl_get_type (void) G_GNUC_CONST;
GType _gdk_pixmap_impl_get_type (void) G_GNUC_CONST;
* When this function is called, _gdk_gc_get_clip_region
* will already return the new region.
**/
-void _gdk_windowing_gc_set_clip_region (GdkGC *gc,
- GdkRegion *region);
+void _gdk_windowing_gc_set_clip_region (GdkGC *gc,
+ const GdkRegion *region);
/**
* _gdk_windowing_gc_copy:
void _gdk_windowing_gc_get_background (GdkGC *gc,
GdkColor *color);
+struct GdkAppLaunchContextPrivate
+{
+ GdkDisplay *display;
+ GdkScreen *screen;
+ gint workspace;
+ guint32 timestamp;
+ GIcon *icon;
+ char *icon_name;
+};
+
+char *_gdk_windowing_get_startup_notify_id (GAppLaunchContext *context,
+ GAppInfo *info,
+ GList *files);
+void _gdk_windowing_launch_failed (GAppLaunchContext *context,
+ const char *startup_notify_id);
+
+
/************************************
* Initialization and exit routines *
************************************/