462
+ − 1 /* Define X specific console, device, and frame object for XEmacs.
+ − 2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+ − 3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
1318
+ − 4 Copyright (C) 2002, 2003 Ben Wing.
462
+ − 5
+ − 6 This file is part of XEmacs.
+ − 7
+ − 8 XEmacs is free software; you can redistribute it and/or modify it
+ − 9 under the terms of the GNU General Public License as published by the
+ − 10 Free Software Foundation; either version 2, or (at your option) any
+ − 11 later version.
+ − 12
+ − 13 XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ − 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 16 for more details.
+ − 17
+ − 18 You should have received a copy of the GNU General Public License
+ − 19 along with XEmacs; see the file COPYING. If not, write to
+ − 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 21 Boston, MA 02111-1307, USA. */
+ − 22
+ − 23 /* Synched up with: Not in FSF. */
+ − 24
+ − 25
+ − 26 /* Authorship:
+ − 27
+ − 28 Ultimately based on FSF, then later on JWZ work for Lemacs.
+ − 29 Rewritten over time by Ben Wing and Chuck Thompson (original
+ − 30 multi-device work by Chuck Thompson).
+ − 31 */
+ − 32
+ − 33 #ifndef _XEMACS_CONSOLE_GTK_H_
+ − 34 #define _XEMACS_CONSOLE_GTK_H_
+ − 35
+ − 36 #ifdef HAVE_GTK
+ − 37
+ − 38 #include "console.h"
+ − 39 #include <gtk/gtk.h>
+ − 40
+ − 41 /* Variables associated with the X display frame this emacs is using. */
+ − 42
+ − 43 extern Lisp_Object Vx_gc_pointer_shape;
+ − 44 extern Lisp_Object Vx_scrollbar_pointer_shape;
+ − 45
+ − 46 /* Number of pixels below each line. */
+ − 47 extern int gtk_interline_space;
+ − 48
+ − 49 extern int gtk_selection_timeout;
+ − 50
2168
+ − 51 struct frame *gtk_widget_to_frame (GtkWidget *);
462
+ − 52 struct frame *gtk_any_window_to_frame (struct device *d, GdkWindow *);
+ − 53 struct frame *gtk_window_to_frame (struct device *d, GdkWindow *);
+ − 54 struct frame *gtk_any_widget_or_parent_to_frame (struct device *d, GtkWidget *widget);
+ − 55 struct frame *decode_gtk_frame (Lisp_Object);
+ − 56 struct device *gtk_any_window_to_device (GdkWindow *);
+ − 57 struct device *decode_gtk_device (Lisp_Object);
+ − 58 void gtk_handle_property_notify (GdkEventProperty *event);
+ − 59
+ − 60 void signal_special_gtk_user_event (Lisp_Object channel, Lisp_Object function,
+ − 61 Lisp_Object object);
+ − 62 void gtk_output_string (struct window *w, struct display_line *dl,
867
+ − 63 Ichar_dynarr *buf, int xpos, int xoffset,
462
+ − 64 int start_pixpos, int width, face_index findex,
+ − 65 int cursor, int cursor_start, int cursor_width,
+ − 66 int cursor_height);
+ − 67 void gtk_output_shadows (struct frame *f, int x, int y, int width,
+ − 68 int height, int shadow_thickness);
714
+ − 69 GdkGC *gtk_get_gc (struct device *d, Lisp_Object font, Lisp_Object fg, Lisp_Object bg,
+ − 70 Lisp_Object bg_pmap, Lisp_Object lwidth);
462
+ − 71
+ − 72 int gtk_initialize_frame_menubar (struct frame *f);
+ − 73 void gtk_init_modifier_mapping (struct device *d);
+ − 74
+ − 75 void Initialize_Locale (void);
+ − 76
+ − 77 extern Lisp_Object Vgtk_initial_argv_list; /* #### ugh! */
+ − 78
+ − 79 const char *gtk_event_name (GdkEventType event_type);
778
+ − 80
+ − 81 void reinit_console_type_create_gtk (void);
+ − 82
+ − 83 void emacs_gtk_selection_handle (GtkWidget *,
+ − 84 GtkSelectionData *selection_data,
+ − 85 guint info,
+ − 86 guint time_stamp,
+ − 87 gpointer data);
+ − 88 void emacs_gtk_selection_clear_event_handle (GtkWidget *widget,
+ − 89 GdkEventSelection *event,
+ − 90 gpointer data);
+ − 91 void emacs_gtk_selection_received (GtkWidget *widget,
+ − 92 GtkSelectionData *selection_data,
+ − 93 gpointer user_data);
+ − 94
1346
+ − 95 typedef unsigned int GUI_ID;
+ − 96 extern GUI_ID new_gui_id (void);
+ − 97
+ − 98 extern void gcpro_popup_callbacks (GUI_ID id, Lisp_Object data);
+ − 99 extern void ungcpro_popup_callbacks (GUI_ID id);
+ − 100 extern Lisp_Object get_gcpro_popup_callbacks (GUI_ID id);
+ − 101
462
+ − 102 #endif /* HAVE_GTK */
+ − 103 #endif /* _XEMACS_DEVICE_X_H_ */