]> code.delx.au - gnu-emacs/blobdiff - src/gtkutil.h
* xfns.c (x_set_mouse_color): Recolor vertical_drag_cursor.
[gnu-emacs] / src / gtkutil.h
index 57099f6104fe54babe7b6b6d733890e4e73999ea..12bf461fd69f19e04e1a0faacce239e129c690cf 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions and headers for GTK widgets.
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-     Free Software Foundation, Inc.
+
+Copyright (C) 2003-2014 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -25,6 +25,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <gtk/gtk.h>
 #include "frame.h"
+#include "xterm.h"
 
 /* Minimum and maximum values used for GTK scroll bars  */
 
@@ -38,15 +39,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Key for data that menu items hold.  */
 #define XG_ITEM_DATA "emacs_menuitem"
 
-
-/* Button types in menus.  */
-enum button_type
-{
-  BUTTON_TYPE_NONE,
-  BUTTON_TYPE_TOGGLE,
-  BUTTON_TYPE_RADIO
-};
-
 /* This is a list node in a generic list implementation.  */
 typedef struct xg_list_node_
 {
@@ -63,7 +55,7 @@ typedef struct xg_menu_cb_data_
 {
   xg_list_node  ptrs;
 
-  FRAME_PTR     f;
+  struct frame  *f;
   Lisp_Object   menu_bar_vector;
   int           menu_bar_items_used;
   GCallback     highlight_cb;
@@ -82,140 +74,106 @@ typedef struct xg_menu_item_cb_data_
 
 } xg_menu_item_cb_data;
 
+extern struct _widget_value *malloc_widget_value (void);
+extern void free_widget_value (struct _widget_value *);
+
+extern bool xg_uses_old_file_dialog (void) ATTRIBUTE_CONST;
+
+extern char *xg_get_file_name (struct frame *f,
+                               char *prompt,
+                               char *default_filename,
+                               bool mustmatch_p,
+                               bool only_dir_p);
+
+extern Lisp_Object xg_get_font (struct frame *f, const char *);
+
+extern GtkWidget *xg_create_widget (const char *type,
+                                    const char *name,
+                                    struct frame *f,
+                                    struct _widget_value *val,
+                                    GCallback select_cb,
+                                    GCallback deactivate_cb,
+                                    GCallback highlight_cb);
+
+extern void xg_modify_menubar_widgets (GtkWidget *menubar,
+                                       struct frame *f,
+                                       struct _widget_value *val,
+                                       bool deep_p,
+                                       GCallback select_cb,
+                                       GCallback deactivate_cb,
+                                       GCallback highlight_cb);
+
+extern void xg_update_frame_menubar (struct frame *f);
+
+extern bool xg_event_is_for_menubar (struct frame *, const XEvent *);
+
+extern bool xg_have_tear_offs (struct frame *f);
+
+extern ptrdiff_t xg_get_scroll_id_for_window (Display *dpy, Window wid);
+
+extern void xg_create_scroll_bar (struct frame *f,
+                                  struct scroll_bar *bar,
+                                  GCallback scroll_callback,
+                                  GCallback end_callback,
+                                  const char *scroll_bar_name);
+extern void xg_remove_scroll_bar (struct frame *f, ptrdiff_t scrollbar_id);
+
+extern void xg_update_scrollbar_pos (struct frame *f,
+                                     ptrdiff_t scrollbar_id,
+                                     int top,
+                                     int left,
+                                     int width,
+                                     int height);
+
+extern void xg_set_toolkit_scroll_bar_thumb (struct scroll_bar *bar,
+                                             int portion,
+                                             int position,
+                                             int whole);
+extern bool xg_event_is_for_scrollbar (struct frame *, const XEvent *);
+extern int xg_get_default_scrollbar_width (void);
+
+extern void update_frame_tool_bar (struct frame *f);
+extern void free_frame_tool_bar (struct frame *f);
+extern void xg_change_toolbar_position (struct frame *f, Lisp_Object pos);
+
+extern void xg_frame_resized (struct frame *f,
+                              int pixelwidth,
+                              int pixelheight);
+extern void xg_frame_set_char_size (struct frame *f, int width, int height);
+extern GtkWidget * xg_win_to_widget (Display *dpy, Window wdesc);
+
+extern void xg_display_open (char *display_name, Display **dpy);
+extern void xg_display_close (Display *dpy);
+extern GdkCursor * xg_create_default_cursor (Display *dpy);
+
+extern bool xg_create_frame_widgets (struct frame *f);
+extern void xg_free_frame_widgets (struct frame *f);
+extern void xg_set_background_color (struct frame *f, unsigned long bg);
+extern bool xg_check_special_colors (struct frame *f,
+                                    const char *color_name,
+                                    XColor *color);
+
+extern void xg_set_frame_icon (struct frame *f,
+                               Pixmap icon_pixmap,
+                               Pixmap icon_mask);
+
+extern bool xg_prepare_tooltip (struct frame *f,
+                               Lisp_Object string,
+                               int *width,
+                               int *height);
+extern void xg_show_tooltip (struct frame *f, int root_x, int root_y);
+extern bool xg_hide_tooltip (struct frame *f);
 
-/* Used to specify menus and dialogs.
-   This is an adaption from lwlib for Gtk so we can use more of the same
-   code as lwlib in xmenu.c.  */
-typedef struct _widget_value
-{
-  /* name of widget */
-  Lisp_Object   lname;
-  char         *name;
-  /* value (meaning depend on widget type) */
-  char         *value;
-  /* keyboard equivalent. no implications for XtTranslations */
-  Lisp_Object   lkey;
-  char         *key;
-  /* Help string or nil if none.
-     GC finds this string through the frame's menu_bar_vector
-     or through menu_items.  */
-  Lisp_Object  help;
-  /* true if enabled */
-  gint         enabled;
-  /* true if selected */
-  gint selected;
-  /* The type of a button.  */
-  enum button_type button_type;
-  /* Contents of the sub-widgets, also selected slot for checkbox */
-  struct _widget_value *contents;
-  /* data passed to callback */
-  gpointer     call_data;
-  /* next one in the list */
-  struct _widget_value *next;
-
-  /* we resource the widget_value structures; this points to the next
-     one on the free list if this one has been deallocated.
-   */
-  struct _widget_value *free_list;
-} widget_value;
-
-#ifdef HAVE_GTK_FILE_BOTH
-extern int use_old_gtk_file_dialog;
-#endif
-
-extern widget_value *malloc_widget_value P_ ((void));
-extern void free_widget_value P_ ((widget_value *));
-
-extern int xg_uses_old_file_dialog P_ ((void));
-
-extern char *xg_get_file_name P_ ((FRAME_PTR f,
-                                   char *prompt,
-                                   char *default_filename,
-                                   int mustmatch_p,
-                                   int only_dir_p));
-
-extern char *xg_get_font_name P_ ((FRAME_PTR f, char *));
-
-extern GtkWidget *xg_create_widget P_ ((char *type,
-                                        char *name,
-                                        FRAME_PTR f,
-                                        widget_value *val,
-                                        GCallback select_cb,
-                                        GCallback deactivate_cb,
-                                        GCallback hightlight_cb));
-
-extern void xg_modify_menubar_widgets P_ ((GtkWidget *menubar,
-                                           FRAME_PTR f,
-                                           widget_value *val,
-                                           int deep_p,
-                                           GCallback select_cb,
-                                           GCallback deactivate_cb,
-                                           GCallback hightlight_cb));
-
-extern int xg_update_frame_menubar P_ ((FRAME_PTR f));
-
-extern int xg_event_is_for_menubar P_ ((FRAME_PTR f, XEvent *event));
-
-extern int xg_have_tear_offs P_ ((void));
-
-extern int xg_get_scroll_id_for_window P_ ((Display *dpy, Window wid));
-
-extern void xg_create_scroll_bar P_ ((FRAME_PTR f,
-                                      struct scroll_bar *bar,
-                                      GCallback scroll_callback,
-                                      GCallback end_callback,
-                                      char *scroll_bar_name));
-extern void xg_show_scroll_bar P_ ((int scrollbar_id));
-extern void xg_remove_scroll_bar P_ ((FRAME_PTR f, int scrollbar_id));
-
-extern void xg_update_scrollbar_pos P_ ((FRAME_PTR f,
-                                         int scrollbar_id,
-                                         int top,
-                                         int left,
-                                         int width,
-                                         int height));
-
-extern void xg_set_toolkit_scroll_bar_thumb P_ ((struct scroll_bar *bar,
-                                                 int portion,
-                                                 int position,
-                                                 int whole));
-extern int xg_event_is_for_scrollbar P_ ((FRAME_PTR f, XEvent *event));
-
-extern void update_frame_tool_bar P_ ((FRAME_PTR f));
-extern void free_frame_tool_bar P_ ((FRAME_PTR f));
-
-extern void xg_frame_resized P_ ((FRAME_PTR f,
-                                  int pixelwidth,
-                                  int pixelheight));
-extern void xg_frame_set_char_size P_ ((FRAME_PTR f, int cols, int rows));
-extern GtkWidget * xg_win_to_widget P_ ((Display *dpy, Window wdesc));
-
-extern int xg_display_open P_ ((char *display_name, Display **dpy));
-extern void xg_display_close P_ ((Display *dpy));
-extern GdkCursor * xg_create_default_cursor P_ ((Display *dpy));
-
-extern int xg_create_frame_widgets P_ ((FRAME_PTR f));
-extern void x_wm_set_size_hint P_ ((FRAME_PTR f,
-                                    long flags,
-                                    int user_position));
-extern void xg_set_background_color P_ ((FRAME_PTR f, unsigned long bg));
-
-extern void xg_set_frame_icon P_ ((FRAME_PTR f,
-                                   Pixmap icon_pixmap,
-                                   Pixmap icon_mask));
 
 /* Mark all callback data that are Lisp_object:s during GC.  */
-extern void xg_mark_data P_ ((void));
+extern void xg_mark_data (void);
 
 /* Initialize GTK specific parts.  */
-extern void xg_initialize P_ ((void));
+extern void xg_initialize (void);
 
 /* Setting scrollbar values invokes the callback.  Use this variable
    to indicate that the callback should do nothing.  */
-extern int xg_ignore_gtk_scrollbar;
+extern bool xg_ignore_gtk_scrollbar;
 
 #endif /* USE_GTK */
 #endif /* GTKUTIL_H */
-
-/* arch-tag: 0757f3dc-00c7-4cee-9e4c-282cf1d34c72
-   (do not change this comment) */