]> Pileus Git - ~andy/gtk/blobdiff - gdk/quartz/gdkprivate-quartz.h
Adapt quartz device code to new ways
[~andy/gtk] / gdk / quartz / gdkprivate-quartz.h
index df676737aa0145f6027838daa4359bc218d3e6dc..890e10c13a6f40f1da1f12bae5ebebcdafd8febd 100644 (file)
@@ -1,6 +1,6 @@
 /* gdkwindow-quartz.c
  *
- * Copyright (C) 2005-2006 Imendio AB
+ * Copyright (C) 2005-2007 Imendio AB
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 #define GDK_QUARTZ_RELEASE_POOL [pool release]
 
 #include <gdk/gdkprivate.h>
-#include <gdk/quartz/gdkpixmap-quartz.h>
 #include <gdk/quartz/gdkwindow-quartz.h>
+#include <gdk/quartz/gdkquartz.h>
 
 #include <gdk/gdk.h>
 
 #include "gdkinternals.h"
 
-#include <config.h>
-
-#define GDK_TYPE_GC_QUARTZ              (_gdk_gc_quartz_get_type ())
-#define GDK_GC_QUARTZ(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GC_QUARTZ, GdkGCQuartz))
-#define GDK_GC_QUARTZ_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GC_QUARTZ, GdkGCQuartzClass))
-#define GDK_IS_GC_QUARTZ(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GC_QUARTZ))
-#define GDK_IS_GC_QUARTZ_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GC_QUARTZ))
-#define GDK_GC_QUARTZ_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GC_QUARTZ, GdkGCQuartzClass))
+#include "config.h"
 
 #define GDK_DRAG_CONTEXT_PRIVATE(context) ((GdkDragContextPrivate *) GDK_DRAG_CONTEXT (context)->windowing_data)
 
 typedef struct _GdkCursorPrivate GdkCursorPrivate;
-typedef struct _GdkGCQuartz       GdkGCQuartz;
-typedef struct _GdkGCQuartzClass  GdkGCQuartzClass;
 typedef struct _GdkDragContextPrivate GdkDragContextPrivate;
 
-struct _GdkGCQuartz
-{
-  GdkGC             parent_instance;
-
-  GdkFont          *font;
-  GdkFunction       function;
-  GdkSubwindowMode  subwindow_mode;
-  gboolean          graphics_exposures;
-
-  gboolean          have_clip_region;
-  gboolean          have_clip_mask;
-  CGImageRef        clip_mask;
-
-  gint              line_width;
-  GdkLineStyle      line_style;
-  GdkCapStyle       cap_style;
-  GdkJoinStyle      join_style;
-
-  gfloat           *dash_lengths;
-  gint              dash_count;
-  gfloat            dash_phase;
-
-  CGPatternRef      ts_pattern;
-
-  guint             is_window : 1;
-};
-
-struct _GdkGCQuartzClass
-{
-  GdkGCClass parent_class;
-};
-
 struct _GdkVisualClass
 {
   GObjectClass parent_class;
@@ -94,6 +53,7 @@ struct _GdkCursorPrivate
 struct _GdkDragContextPrivate
 {
   id <NSDraggingInfo> dragging_info;
+  GdkDevice *device;
 };
 
 extern GdkDisplay *_gdk_display;
@@ -102,12 +62,15 @@ extern GdkWindow *_gdk_root;
 
 extern GdkDragContext *_gdk_quartz_drag_source_context;
 
+#define GDK_WINDOW_IS_QUARTZ(win)        (GDK_IS_WINDOW_IMPL_QUARTZ (((GdkWindow *)win)->impl))
+
 /* Initialization */
-void _gdk_windowing_window_init  (void);
-void _gdk_events_init            (void);
-void _gdk_visual_init            (void);
-void _gdk_input_init             (void);
-void _gdk_quartz_event_loop_init (void);
+void _gdk_windowing_update_window_sizes     (GdkScreen *screen);
+void _gdk_windowing_window_init             (void);
+void _gdk_events_init                       (void);
+void _gdk_quartz_visual_init                (GdkScreen *screen);
+void _gdk_input_init                        (void);
+void _gdk_quartz_event_loop_init            (void);
 
 /* GC */
 typedef enum {
@@ -116,65 +79,123 @@ typedef enum {
   GDK_QUARTZ_CONTEXT_TEXT   = 1 << 2
 } GdkQuartzContextValuesMask;
 
-GType  _gdk_gc_quartz_get_type          (void);
-GdkGC *_gdk_quartz_gc_new               (GdkDrawable                *drawable,
-                                        GdkGCValues                *values,
-                                        GdkGCValuesMask             values_mask);
-void   _gdk_quartz_gc_update_cg_context (GdkGC                      *gc,
-                                        GdkDrawable                *drawable,
-                                        CGContextRef                context,
-                                        GdkQuartzContextValuesMask  mask);
-
-/* Colormap */
-void _gdk_quartz_colormap_get_rgba_from_pixel (GdkColormap *colormap,
-                                              guint32      pixel,
-                                              gfloat      *red,
-                                              gfloat      *green,
-                                              gfloat      *blue,
-                                              gfloat      *alpha);
-
 /* Window */
-GdkWindow *_gdk_quartz_window_find_child_by_point   (GdkWindow *toplevel,
-                                                    gint       x,
-                                                    gint       y,
-                                                    gint      *x_ret,
-                                                    gint      *y_ret);
-gint       _gdk_quartz_window_get_inverted_screen_y (gint       y);
+gboolean    _gdk_quartz_window_is_ancestor          (GdkWindow *ancestor,
+                                                     GdkWindow *window);
+void       _gdk_quartz_window_gdk_xy_to_xy          (gint       gdk_x,
+                                                     gint       gdk_y,
+                                                     gint      *ns_x,
+                                                     gint      *ns_y);
+void       _gdk_quartz_window_xy_to_gdk_xy          (gint       ns_x,
+                                                     gint       ns_y,
+                                                     gint      *gdk_x,
+                                                     gint      *gdk_y);
+void       _gdk_quartz_window_nspoint_to_gdk_xy     (NSPoint    point,
+                                                     gint      *x,
+                                                     gint      *y);
 GdkWindow *_gdk_quartz_window_find_child            (GdkWindow *window,
                                                     gint       x,
-                                                    gint       y);
+                                                    gint       y,
+                                                     gboolean   get_toplevel);
+void       _gdk_quartz_window_attach_to_parent      (GdkWindow *window);
+void       _gdk_quartz_window_detach_from_parent    (GdkWindow *window);
+void       _gdk_quartz_window_did_become_main       (GdkWindow *window);
+void       _gdk_quartz_window_did_resign_main       (GdkWindow *window);
+void       _gdk_quartz_window_debug_highlight       (GdkWindow *window,
+                                                     gint       number);
+
+void       _gdk_quartz_window_set_needs_display_in_region (GdkWindow    *window,
+                                                           cairo_region_t    *region);
+
+void       _gdk_quartz_window_update_position           (GdkWindow    *window);
 
 /* Events */
-void         _gdk_quartz_events_update_focus_window   (GdkWindow *new_window,
-                                                      gboolean   got_focus);
-GdkWindow *  _gdk_quartz_events_get_mouse_window       (void);
-void         _gdk_quartz_events_update_mouse_window    (GdkWindow *window);
-void         _gdk_quartz_events_update_cursor          (GdkWindow *window);
-void         _gdk_quartz_events_send_map_events        (GdkWindow *window);
+typedef enum {
+  GDK_QUARTZ_EVENT_SUBTYPE_EVENTLOOP
+} GdkQuartzEventSubType;
+
+void         _gdk_quartz_events_update_focus_window    (GdkWindow *new_window,
+                                                        gboolean   got_focus);
+void         _gdk_quartz_events_send_map_event         (GdkWindow *window);
 GdkEventMask _gdk_quartz_events_get_current_event_mask (void);
 
-extern GdkWindow *_gdk_quartz_keyboard_grab_window;
-extern GdkWindow *_gdk_quartz_pointer_grab_window;
+void         _gdk_quartz_events_send_enter_notify_event (GdkWindow *window);
 
 /* Event loop */
-NSEvent *  _gdk_quartz_event_loop_get_current     (void);
-void       _gdk_quartz_event_loop_release_current (void);
-
-/* FIXME: image */
-GdkImage *_gdk_quartz_image_copy_to_image (GdkDrawable *drawable,
-                                           GdkImage    *image,
-                                           gint         src_x,
-                                           gint         src_y,
-                                           gint         dest_x,
-                                           gint         dest_y,
-                                           gint         width,
-                                           gint         height);
+gboolean   _gdk_quartz_event_loop_check_pending (void);
+NSEvent *  _gdk_quartz_event_loop_get_pending   (void);
+void       _gdk_quartz_event_loop_release_event (NSEvent *event);
 
 /* Keys */
 GdkEventType _gdk_quartz_keys_event_type  (NSEvent   *event);
 gboolean     _gdk_quartz_keys_is_modifier (guint      keycode);
 
-/* Drawable */
-void        _gdk_quartz_drawable_finish (GdkDrawable *drawable);
+/* Geometry */
+void        _gdk_quartz_window_scroll      (GdkWindow       *window,
+                                            gint             dx,
+                                            gint             dy);
+void        _gdk_quartz_window_translate   (GdkWindow       *window,
+                                            cairo_region_t  *area,
+                                            gint             dx,
+                                            gint             dy);
+gboolean    _gdk_quartz_window_queue_antiexpose  (GdkWindow *window,
+                                                  cairo_region_t *area);
+
+void        _gdk_quartz_window_set_startup_id    (GdkWindow   *window,
+                                                  const gchar *startup_id);
+void        _gdk_quartz_window_register_dnd      (GdkWindow   *window);
+GdkDragContext * _gdk_quartz_window_drag_begin   (GdkWindow   *window,
+                                                  GdkDevice   *device,
+                                                  GList       *targets);
+
+
+void        _gdk_quartz_display_sync                (GdkDisplay  *display);
+void        _gdk_quartz_display_flush               (GdkDisplay  *display);
+GList *     _gdk_quartz_display_list_devices        (GdkDisplay  *dpy);
+
+GdkNativeWinodw _gdk_quartz_display_get_drag_get_protocol (GdkDisplay      *display,
+                                                           GdkNativeWindow *xid,
+                                                           GdkDragProtocol *protocol,
+                                                           guint            version);
+
+
+gboolean    _gdk_quartz_display_send_client_message       (GdkDisplay      *display,
+                                                           GdkEvent        *event,
+                                                           GdkNativeWindow  winid);
+void        _gdk_quartz_display_add_client_message_filter (GdkDisplay      *display,
+                                                           GdkAtom          message_type,
+                                                           GdkFilterFunc    func,
+                                                           gpointer         data);
+
+GdkVisual *   _gdk_quartz_screen_get_rgba_visual            (GdkScreen      *screen);
+GdkVisual *   _gdk_quartz_screen_get_system_visual          (GdkScreen      *screen);
+gint          _gdk_quartz_screen_visual_get_best_depth      (GdkScreen      *screen);
+GdkVisualType _gdk_quartz_screen_visual_get_best_type       (GdkScreen      *screen);
+GdkVisual *   _gdk_quartz_screen_get_system_visual          (GdkScreen      *screen);
+GdkVisual*    _gdk_quartz_screen_visual_get_best            (GdkScreen      *screen);
+GdkVisual*    _gdk_quartz_screen_visual_get_best_with_depth (GdkScreen      *screen,
+                                                             gint            depth);
+GdkVisual*    _gdk_quartz_screen_visual_get_best_with_type  (GdkScreen      *screen,
+                                                             GdkVisualType   visual_type);
+GdkVisual*    _gdk_quartz_screen_visual_get_best_with_both  (GdkScreen      *screen,
+                                                             gint            depth,
+                                                             GdkVisualType   visual_type);
+void          _gdk_quartz_screen_query_depths               (GdkScreen      *screen,
+                                                             gint          **depths,
+                                                             gint           *count);
+void          _gdk_quartz_screen_query_visual_types         (GdkScreen      *screen,
+                                                             GdkVisualType **visual_types,
+                                                             gint           *count);
+GList *       _gdk_quartz_screen_list_visuals               (GdkScreen      *screen);
+
+
+void        _gdk_quartz_screen_broadcast_client_message (GdkScreen   *screen,
+                                                         GdkEvent    *event);
+gboolean    _gdk_quartz_screen_get_setting              (GdkScreen   *screen,
+                                                         const gchar *name,
+                                                         GValue      *value);
+
+void _gdk_quartz_device_check_extension_events (GdkDevice *device);
+
 
 #endif /* __GDK_PRIVATE_QUARTZ_H__ */