* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/*
#define __GDK_WINDOW_IMPL_H__
#include <gdk/gdkwindow.h>
+#include <gdk/gdkproperty.h>
G_BEGIN_DECLS
*
* window: The window being destroyed
* recursing: If TRUE, then this is being called because a parent
- * was destroyed. This generally means that the call to the windowing system
- * to destroy the window can be omitted, since it will be destroyed as a result
- * of the parent being destroyed. Unless @foreign_destroy
- *
- * foreign_destroy: If TRUE, the window or a parent was destroyed by some external
- * agency. The window has already been destroyed and no windowing
- * system calls should be made. (This may never happen for some
- * windowing systems.)
+ * was destroyed. This generally means that the call to the windowing
+ * system to destroy the window can be omitted, since it will be
+ * destroyed as a result of the parent being destroyed.
+ * Unless @foreign_destroy
+ * foreign_destroy: If TRUE, the window or a parent was destroyed by some
+ * external agency. The window has already been destroyed and no
+ * windowing system calls should be made. (This may never happen
+ * for some windowing systems.)
*/
void (* destroy) (GdkWindow *window,
gboolean recursing,
gboolean foreign_destroy);
+
+ /* Called when gdk_window_destroy() is called on a foreign window
+ * or an ancestor of the foreign window. It should generally reparent
+ * the window out of it's current heirarchy, hide it, and then
+ * send a message to the owner requesting that the window be destroyed.
+ */
+ void (*destroy_foreign) (GdkWindow *window);
+
cairo_surface_t * (* resize_cairo_surface) (GdkWindow *window,
cairo_surface_t *surface,
gint width,
void (* set_functions) (GdkWindow *window,
GdkWMFunction functions);
void (* begin_resize_drag) (GdkWindow *window,
- GdkWindowEdge edge,
- gint button,
- gint root_x,
- gint root_y,
- guint32 timestamp);
+ GdkWindowEdge edge,
+ GdkDevice *device,
+ gint button,
+ gint root_x,
+ gint root_y,
+ guint32 timestamp);
void (* begin_move_drag) (GdkWindow *window,
- gint button,
- gint root_x,
- gint root_y,
- guint32 timestamp);
+ GdkDevice *device,
+ gint button,
+ gint root_x,
+ gint root_y,
+ guint32 timestamp);
void (* enable_synchronized_configure) (GdkWindow *window);
void (* configure_finished) (GdkWindow *window);
void (* set_opacity) (GdkWindow *window,
gdouble opacity);
+ void (* set_composited) (GdkWindow *window,
+ gboolean composited);
void (* destroy_notify) (GdkWindow *window);
+ GdkDragProtocol (* get_drag_protocol) (GdkWindow *window,
+ GdkWindow **target);
void (* register_dnd) (GdkWindow *window);
+ GdkDragContext * (*drag_begin) (GdkWindow *window,
+ GdkDevice *device,
+ GList *targets);
+
+ void (*process_updates_recurse) (GdkWindow *window,
+ cairo_region_t *region);
+
+ void (*sync_rendering) (GdkWindow *window);
+ gboolean (*simulate_key) (GdkWindow *window,
+ gint x,
+ gint y,
+ guint keyval,
+ GdkModifierType modifiers,
+ GdkEventType event_type);
+ gboolean (*simulate_button) (GdkWindow *window,
+ gint x,
+ gint y,
+ guint button,
+ GdkModifierType modifiers,
+ GdkEventType event_type);
+
+ gboolean (*get_property) (GdkWindow *window,
+ GdkAtom property,
+ GdkAtom type,
+ gulong offset,
+ gulong length,
+ gint pdelete,
+ GdkAtom *actual_type,
+ gint *actual_format,
+ gint *actual_length,
+ guchar **data);
+ void (*change_property) (GdkWindow *window,
+ GdkAtom property,
+ GdkAtom type,
+ gint format,
+ GdkPropMode mode,
+ const guchar *data,
+ gint n_elements);
+ void (*delete_property) (GdkWindow *window,
+ GdkAtom property);
};
/* Interface Functions */