Blame gdk/x11/gdkdisplay-x11.h

Packit 98cdb6
/*
Packit 98cdb6
 * gdkdisplay-x11.h
Packit 98cdb6
 * 
Packit 98cdb6
 * Copyright 2001 Sun Microsystems Inc. 
Packit 98cdb6
 *
Packit 98cdb6
 * Erwann Chenede <erwann.chenede@sun.com>
Packit 98cdb6
 *
Packit 98cdb6
 * This library is free software; you can redistribute it and/or
Packit 98cdb6
 * modify it under the terms of the GNU Library General Public
Packit 98cdb6
 * License as published by the Free Software Foundation; either
Packit 98cdb6
 * version 2 of the License, or (at your option) any later version.
Packit 98cdb6
 *
Packit 98cdb6
 * This library is distributed in the hope that it will be useful,
Packit 98cdb6
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 98cdb6
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 98cdb6
 * Library General Public License for more details.
Packit 98cdb6
 *
Packit 98cdb6
 * You should have received a copy of the GNU Library General Public
Packit 98cdb6
 * License along with this library; if not, write to the
Packit 98cdb6
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit 98cdb6
 * Boston, MA 02111-1307, USA.
Packit 98cdb6
 */
Packit 98cdb6
Packit 98cdb6
#ifndef __GDK_DISPLAY_X11__
Packit 98cdb6
#define __GDK_DISPLAY_X11__
Packit 98cdb6
Packit 98cdb6
#include <X11/X.h>
Packit 98cdb6
#include <X11/Xlib.h>
Packit 98cdb6
#include <glib.h>
Packit 98cdb6
#include <gdk/gdkdisplay.h>
Packit 98cdb6
#include <gdk/gdkkeys.h>
Packit 98cdb6
#include <gdk/gdkwindow.h>
Packit 98cdb6
#include <gdk/gdkinternals.h>
Packit 98cdb6
#include <gdk/gdk.h>		/* For gdk_get_program_class() */
Packit 98cdb6
Packit 98cdb6
G_BEGIN_DECLS
Packit 98cdb6
Packit 98cdb6
typedef struct _GdkDisplayX11 GdkDisplayX11;
Packit 98cdb6
typedef struct _GdkDisplayX11Class GdkDisplayX11Class;
Packit 98cdb6
Packit 98cdb6
#define GDK_TYPE_DISPLAY_X11              (_gdk_display_x11_get_type())
Packit 98cdb6
#define GDK_DISPLAY_X11(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DISPLAY_X11, GdkDisplayX11))
Packit 98cdb6
#define GDK_DISPLAY_X11_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DISPLAY_X11, GdkDisplayX11Class))
Packit 98cdb6
#define GDK_IS_DISPLAY_X11(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DISPLAY_X11))
Packit 98cdb6
#define GDK_IS_DISPLAY_X11_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DISPLAY_X11))
Packit 98cdb6
#define GDK_DISPLAY_X11_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DISPLAY_X11, GdkDisplayX11Class))
Packit 98cdb6
Packit 98cdb6
typedef enum 
Packit 98cdb6
{
Packit 98cdb6
  GDK_UNKNOWN,
Packit 98cdb6
  GDK_NO,
Packit 98cdb6
  GDK_YES
Packit 98cdb6
} GdkTristate;
Packit 98cdb6
Packit 98cdb6
struct _GdkDisplayX11
Packit 98cdb6
{
Packit 98cdb6
  GdkDisplay parent_instance;
Packit 98cdb6
  Display *xdisplay;
Packit 98cdb6
  GdkScreen *default_screen;
Packit 98cdb6
  GdkScreen **screens;
Packit 98cdb6
Packit 98cdb6
  GSource *event_source;
Packit 98cdb6
Packit 98cdb6
  gint grab_count;
Packit 98cdb6
Packit 98cdb6
  /* Keyboard related information */
Packit 98cdb6
Packit 98cdb6
  gint xkb_event_type;
Packit 98cdb6
  gboolean use_xkb;
Packit 98cdb6
  
Packit 98cdb6
  /* Whether we were able to turn on detectable-autorepeat using
Packit 98cdb6
   * XkbSetDetectableAutorepeat. If FALSE, we'll fall back
Packit 98cdb6
   * to checking the next event with XPending(). */
Packit 98cdb6
  gboolean have_xkb_autorepeat;
Packit 98cdb6
Packit 98cdb6
  GdkKeymap *keymap;
Packit 98cdb6
  guint	    keymap_serial;
Packit 98cdb6
Packit 98cdb6
  gboolean use_xshm;
Packit 98cdb6
  gboolean have_shm_pixmaps;
Packit 98cdb6
  GdkTristate have_render;
Packit 98cdb6
  gboolean have_xfixes;
Packit 98cdb6
  gint xfixes_event_base;
Packit 98cdb6
Packit 98cdb6
  gboolean have_xcomposite;
Packit 98cdb6
  gboolean have_xdamage;
Packit 98cdb6
  gint xdamage_event_base;
Packit 98cdb6
Packit 98cdb6
  gboolean have_randr13;
Packit 98cdb6
  gboolean have_randr15;
Packit 98cdb6
  gint xrandr_event_base;
Packit 98cdb6
Packit 98cdb6
  /* If the SECURITY extension is in place, whether this client holds 
Packit 98cdb6
   * a trusted authorization and so is allowed to make various requests 
Packit 98cdb6
   * (grabs, properties etc.) Otherwise always TRUE. */
Packit 98cdb6
  gboolean trusted_client;
Packit 98cdb6
Packit 98cdb6
  /* drag and drop information */
Packit 98cdb6
  GdkDragContext *current_dest_drag;
Packit 98cdb6
Packit 98cdb6
  /* data needed for MOTIF DnD */
Packit 98cdb6
Packit 98cdb6
  Window motif_drag_window;
Packit 98cdb6
  GdkWindow *motif_drag_gdk_window;
Packit 98cdb6
  GList **motif_target_lists;
Packit 98cdb6
  gint motif_n_target_lists;
Packit 98cdb6
Packit 98cdb6
  /* Mapping to/from virtual atoms */
Packit 98cdb6
Packit 98cdb6
  GHashTable *atom_from_virtual;
Packit 98cdb6
  GHashTable *atom_to_virtual;
Packit 98cdb6
Packit 98cdb6
  /* Session Management leader window see ICCCM */
Packit 98cdb6
  Window leader_window;
Packit 98cdb6
  GdkWindow *leader_gdk_window;
Packit 98cdb6
  gboolean leader_window_title_set;
Packit 98cdb6
  
Packit 98cdb6
  /* list of filters for client messages */
Packit 98cdb6
  GList *client_filters;
Packit 98cdb6
Packit 98cdb6
  /* List of functions to go from extension event => X window */
Packit 98cdb6
  GSList *event_types;
Packit 98cdb6
  
Packit 98cdb6
  /* X ID hashtable */
Packit 98cdb6
  GHashTable *xid_ht;
Packit 98cdb6
Packit 98cdb6
  /* translation queue */
Packit 98cdb6
  GQueue *translate_queue;
Packit 98cdb6
Packit 98cdb6
  /* Input device */
Packit 98cdb6
  /* input GdkDevice list */
Packit 98cdb6
  GList *input_devices;
Packit 98cdb6
Packit 98cdb6
  /* input GdkWindow list */
Packit 98cdb6
  GList *input_windows;
Packit 98cdb6
Packit 98cdb6
  /* Startup notification */
Packit 98cdb6
  gchar *startup_notification_id;
Packit 98cdb6
Packit 98cdb6
  /* Time of most recent user interaction. */
Packit 98cdb6
  gulong user_time;
Packit 98cdb6
Packit 98cdb6
  /* Sets of atoms for DND */
Packit 98cdb6
  guint base_dnd_atoms_precached : 1;
Packit 98cdb6
  guint xdnd_atoms_precached : 1;
Packit 98cdb6
  guint motif_atoms_precached : 1;
Packit 98cdb6
  guint use_sync : 1;
Packit 98cdb6
Packit 98cdb6
  guint have_shapes : 1;
Packit 98cdb6
  guint have_input_shapes : 1;
Packit 98cdb6
  gint shape_event_base;
Packit 98cdb6
Packit 98cdb6
  /* Alpha mask picture format */
Packit 98cdb6
  XRenderPictFormat *mask_format;
Packit 98cdb6
Packit 98cdb6
  /* The offscreen window that has the pointer in it (if any) */
Packit 98cdb6
  GdkWindow *active_offscreen_window;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkDisplayX11Class
Packit 98cdb6
{
Packit 98cdb6
  GdkDisplayClass parent_class;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
GType      _gdk_display_x11_get_type            (void);
Packit 98cdb6
GdkScreen *_gdk_x11_display_screen_for_xrootwin (GdkDisplay *display,
Packit 98cdb6
						 Window      xrootwin);
Packit 98cdb6
Packit 98cdb6
G_END_DECLS
Packit 98cdb6
Packit 98cdb6
#endif				/* __GDK_DISPLAY_X11__ */