* 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/>.
*/
#ifndef __GDK_PRIVATE_QUARTZ_H__
#define GDK_QUARTZ_RELEASE_POOL [pool release]
#include <gdk/gdkprivate.h>
-#include <gdk/quartz/gdkwindow-quartz.h>
#include <gdk/quartz/gdkquartz.h>
+#include <gdk/quartz/gdkdevicemanager-core-quartz.h>
+#include <gdk/quartz/gdkdnd-quartz.h>
+#include <gdk/quartz/gdkscreen-quartz.h>
+#include <gdk/quartz/gdkwindow-quartz.h>
#include <gdk/gdk.h>
#include "config.h"
-#define GDK_DRAG_CONTEXT_PRIVATE(context) ((GdkDragContextPrivate *) GDK_DRAG_CONTEXT (context)->windowing_data)
-
-typedef struct _GdkCursorPrivate GdkCursorPrivate;
-typedef struct _GdkDragContextPrivate GdkDragContextPrivate;
-
-struct _GdkVisualClass
-{
- GObjectClass parent_class;
-};
-
-struct _GdkCursorPrivate
-{
- GdkCursor cursor;
- NSCursor *nscursor;
-};
-
-struct _GdkDragContextPrivate
-{
- id <NSDraggingInfo> dragging_info;
- GdkDevice *device;
-};
-
extern GdkDisplay *_gdk_display;
extern GdkScreen *_gdk_screen;
extern GdkWindow *_gdk_root;
#define GDK_WINDOW_IS_QUARTZ(win) (GDK_IS_WINDOW_IMPL_QUARTZ (((GdkWindow *)win)->impl))
/* Initialization */
-void _gdk_windowing_update_window_sizes (GdkScreen *screen);
-void _gdk_windowing_window_init (void);
+void _gdk_quartz_window_init_windowing (GdkDisplay *display,
+ GdkScreen *screen);
void _gdk_quartz_events_init (void);
-void _gdk_quartz_visual_init (GdkScreen *screen);
-void _gdk_quartz_input_init (void);
void _gdk_quartz_event_loop_init (void);
-/* GC */
-typedef enum {
- GDK_QUARTZ_CONTEXT_STROKE = 1 << 0,
- GDK_QUARTZ_CONTEXT_FILL = 1 << 1,
- GDK_QUARTZ_CONTEXT_TEXT = 1 << 2
-} GdkQuartzContextValuesMask;
-
-/* Window */
-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,
- 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);
+/* Cursor */
+NSCursor *_gdk_quartz_cursor_get_ns_cursor (GdkCursor *cursor);
/* Events */
typedef enum {
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);
+
+GdkModifierType _gdk_quartz_events_get_current_keyboard_modifiers (void);
+GdkModifierType _gdk_quartz_events_get_current_mouse_modifiers (void);
void _gdk_quartz_events_send_enter_notify_event (GdkWindow *window);
+void _gdk_quartz_events_break_all_grabs (guint32 time);
/* Event loop */
gboolean _gdk_quartz_event_loop_check_pending (void);
GdkEventType _gdk_quartz_keys_event_type (NSEvent *event);
gboolean _gdk_quartz_keys_is_modifier (guint keycode);
-/* 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);
+/* Drag and Drop */
void _gdk_quartz_window_register_dnd (GdkWindow *window);
GdkDragContext * _gdk_quartz_window_drag_begin (GdkWindow *window,
GdkDevice *device,
GList *targets);
+/* Display */
+
+GdkDisplay * _gdk_quartz_display_open (const gchar *name);
-void _gdk_quartz_display_sync (GdkDisplay *display);
-void _gdk_quartz_display_flush (GdkDisplay *display);
-GList * _gdk_quartz_display_list_devices (GdkDisplay *display);
+/* Display methods - events */
void _gdk_quartz_display_queue_events (GdkDisplay *display);
gboolean _gdk_quartz_display_has_pending (GdkDisplay *display);
+void _gdk_quartz_display_event_data_copy (GdkDisplay *display,
+ const GdkEvent *src,
+ GdkEvent *dst);
+void _gdk_quartz_display_event_data_free (GdkDisplay *display,
+ GdkEvent *event);
+
+/* Display methods - cursor */
GdkCursor *_gdk_quartz_display_get_cursor_for_type (GdkDisplay *display,
GdkCursorType type);
GdkCursor *_gdk_quartz_display_get_cursor_for_name (GdkDisplay *display,
void _gdk_quartz_display_get_maximal_cursor_size (GdkDisplay *display,
guint *width,
guint *height);
+
+/* Display methods - window */
void _gdk_quartz_display_before_process_all_updates (GdkDisplay *display);
void _gdk_quartz_display_after_process_all_updates (GdkDisplay *display);
-void _gdk_quartz_display_notify_startup_complete (GdkDisplay *display,
- const gchar *id);
-void _gdk_quartz_display_event_data_copy (GdkDisplay *display,
- const GdkEvent *src,
- GdkEvent *dst);
-void _gdk_quartz_display_event_data_free (GdkDisplay *display,
- GdkEvent *event);
void _gdk_quartz_display_create_window_impl (GdkDisplay *display,
GdkWindow *window,
GdkWindow *real_parent,
GdkEventMask event_mask,
GdkWindowAttr *attributes,
gint attributes_mask);
-GdkKeymap * _gdk_quartz_display_get_keymap (GdkDisplay *display);
-
-
-GdkDisplay * _gdk_quartz_display_open (const gchar *name);
-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);
+/* Display methods - keymap */
+GdkKeymap * _gdk_quartz_display_get_keymap (GdkDisplay *display);
+/* Display methods - selection */
+gboolean _gdk_quartz_display_set_selection_owner (GdkDisplay *display,
+ GdkWindow *owner,
+ GdkAtom selection,
+ guint32 time,
+ gboolean send_event);
+GdkWindow * _gdk_quartz_display_get_selection_owner (GdkDisplay *display,
+ GdkAtom selection);
+gint _gdk_quartz_display_get_selection_property (GdkDisplay *display,
+ GdkWindow *requestor,
+ guchar **data,
+ GdkAtom *ret_type,
+ gint *ret_format);
+void _gdk_quartz_display_convert_selection (GdkDisplay *display,
+ GdkWindow *requestor,
+ GdkAtom selection,
+ GdkAtom target,
+ guint32 time);
+gint _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay *display,
+ GdkAtom encoding,
+ gint format,
+ const guchar *text,
+ gint length,
+ gchar ***list);
+gchar * _gdk_quartz_display_utf8_to_string_target (GdkDisplay *displayt,
+ const gchar *str);
+
+
+/* Display manager */
+void _gdk_quartz_display_manager_add_display (GdkDisplayManager *manager,
+ GdkDisplay *display);
+void _gdk_quartz_display_manager_remove_display (GdkDisplayManager *manager,
+ GdkDisplay *display);
+
+/* Display manager methods - events */
+GdkAtom _gdk_quartz_display_manager_atom_intern (GdkDisplayManager *manager,
+ const gchar *atom_name,
+ gboolean copy_name);
+gchar * _gdk_quartz_display_manager_get_atom_name (GdkDisplayManager *manager,
+ GdkAtom atom);
+
+/* Screen */
+GdkScreen *_gdk_quartz_screen_new (void);
+void _gdk_quartz_screen_update_window_sizes (GdkScreen *screen);
+
+/* Screen methods - visual */
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);
void _gdk_quartz_screen_query_visual_types (GdkScreen *screen,
GdkVisualType **visual_types,
gint *count);
+void _gdk_quartz_screen_init_visuals (GdkScreen *screen);
GList * _gdk_quartz_screen_list_visuals (GdkScreen *screen);
-
+/* Screen methods - events */
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);
+
+/* Window */
+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,
+ 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_update_position (GdkWindow *window);
+
+
+/* Window methods - testing */
+void _gdk_quartz_window_sync_rendering (GdkWindow *window);
+gboolean _gdk_quartz_window_simulate_key (GdkWindow *window,
+ gint x,
+ gint y,
+ guint keyval,
+ GdkModifierType modifiers,
+ GdkEventType key_pressrelease);
+gboolean _gdk_quartz_window_simulate_button (GdkWindow *window,
+ gint x,
+ gint y,
+ guint button,
+ GdkModifierType modifiers,
+ GdkEventType button_pressrelease);
+
+/* Window methods - property */
+gboolean _gdk_quartz_window_get_property (GdkWindow *window,
+ GdkAtom property,
+ GdkAtom type,
+ gulong offset,
+ gulong length,
+ gint pdelete,
+ GdkAtom *actual_property_type,
+ gint *actual_format_type,
+ gint *actual_length,
+ guchar **data);
+void _gdk_quartz_window_change_property (GdkWindow *window,
+ GdkAtom property,
+ GdkAtom type,
+ gint format,
+ GdkPropMode mode,
+ const guchar *data,
+ gint nelements);
+void _gdk_quartz_window_delete_property (GdkWindow *window,
+ GdkAtom property);
#endif /* __GDK_PRIVATE_QUARTZ_H__ */