X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/59ce725a3b68cbc324f01bc8dc5f9e07286431d1..675e2c697bc8a0ff827fcb33297f63f4cc7ecad3:/src/gtkutil.h diff --git a/src/gtkutil.h b/src/gtkutil.h index 52731b0677..b09c82aeb0 100644 --- a/src/gtkutil.h +++ b/src/gtkutil.h @@ -1,13 +1,13 @@ /* Definitions and headers for GTK widgets. - Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU Emacs. -GNU Emacs is free software; you can redistribute it and/or modify +GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,9 +15,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ +along with GNU Emacs. If not, see . */ #ifndef GTKUTIL_H #define GTKUTIL_H @@ -34,16 +32,12 @@ Boston, MA 02110-1301, USA. */ #define XG_SB_MAX 10000000 #define XG_SB_RANGE (XG_SB_MAX-XG_SB_MIN) -/* Key for data that is valid for menus in a frame */ +/* Key for data that is valid for menus and scroll bars in a frame */ #define XG_FRAME_DATA "emacs_frame" -/* Key for data that is the last scrollbar value */ -#define XG_LAST_SB_DATA "emacs_last_sb_value" - /* Key for data that menu items hold. */ #define XG_ITEM_DATA "emacs_menuitem" - /* Button types in menus. */ enum button_type { @@ -124,91 +118,105 @@ typedef struct _widget_value struct _widget_value *free_list; } widget_value; -#ifdef HAVE_GTK_FILE_BOTH +#ifdef HAVE_GTK_FILE_SELECTION_NEW 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 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_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, - 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 void update_frame_tool_bar P_ ((FRAME_PTR f)); -extern void free_frame_tool_bar P_ ((FRAME_PTR f)); - -extern void xg_resize_widgets 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)); +extern widget_value *malloc_widget_value (void); +extern void free_widget_value (widget_value *); + +extern int xg_uses_old_file_dialog (void); + +extern char *xg_get_file_name (FRAME_PTR f, + char *prompt, + char *default_filename, + int mustmatch_p, + int only_dir_p); + +extern char *xg_get_font_name (FRAME_PTR f, char *); + +extern GtkWidget *xg_create_widget (const char *type, + const char *name, + FRAME_PTR f, + widget_value *val, + GCallback select_cb, + GCallback deactivate_cb, + GCallback hightlight_cb); + +extern void xg_modify_menubar_widgets (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 (FRAME_PTR f); + +extern int xg_event_is_for_menubar (FRAME_PTR f, XEvent *event); + +extern int xg_have_tear_offs (void); + +extern int xg_get_scroll_id_for_window (Display *dpy, Window wid); + +extern void xg_create_scroll_bar (FRAME_PTR f, + struct scroll_bar *bar, + GCallback scroll_callback, + GCallback end_callback, + const char *scroll_bar_name); +extern void xg_remove_scroll_bar (FRAME_PTR f, int scrollbar_id); + +extern void xg_update_scrollbar_pos (FRAME_PTR f, + int 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 int xg_event_is_for_scrollbar (FRAME_PTR f, XEvent *event); + +extern void update_frame_tool_bar (FRAME_PTR f); +extern void free_frame_tool_bar (FRAME_PTR f); +extern int xg_change_toolbar_position (FRAME_PTR f, Lisp_Object pos); + +extern void xg_frame_resized (FRAME_PTR f, + int pixelwidth, + int pixelheight); +extern void xg_frame_set_char_size (FRAME_PTR f, int cols, int rows); +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 int xg_create_frame_widgets (FRAME_PTR f); +extern void xg_free_frame_widgets (FRAME_PTR f); +extern void x_wm_set_size_hint (FRAME_PTR f, + long flags, + int user_position); +extern void xg_set_background_color (FRAME_PTR f, unsigned long bg); + +extern void xg_set_frame_icon (FRAME_PTR f, + Pixmap icon_pixmap, + Pixmap icon_mask); + +extern int xg_prepare_tooltip (FRAME_PTR f, + Lisp_Object string, + int *width, + int *height); +extern void xg_show_tooltip (FRAME_PTR f, int root_x, int root_y); +extern int xg_hide_tooltip (FRAME_PTR f); + /* 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. */