1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21: #ifndef GTKUTIL_H
22: #define GTKUTIL_H
23:
24:
25: #ifdef USE_GTK
26:
27: #include <gtk/gtk.h>
28: #include "frame.h"
29:
30:
31:
32: #define XG_SB_MIN 1
33: #define XG_SB_MAX 10000000
34: #define XG_SB_RANGE (XG_SB_MAX-XG_SB_MIN)
35:
36:
37: #define XG_FRAME_DATA "emacs_frame"
38:
39:
40: #define XG_LAST_SB_DATA "emacs_last_sb_value"
41:
42:
43: #define XG_ITEM_DATA "emacs_menuitem"
44:
45:
46:
47: enum button_type
48: {
49: BUTTON_TYPE_NONE,
50: BUTTON_TYPE_TOGGLE,
51: BUTTON_TYPE_RADIO
52: };
53:
54:
55: typedef struct xg_list_node_
56: {
57: struct xg_list_node_ *prev;
58: struct xg_list_node_ *next;
59: } xg_list_node;
60:
61:
62:
63:
64:
65:
66: typedef struct xg_menu_cb_data_
67: {
68: xg_list_node ptrs;
69:
70: FRAME_PTR f;
71: Lisp_Object menu_bar_vector;
72: int menu_bar_items_used;
73: GCallback highlight_cb;
74: int ref_count;
75: } xg_menu_cb_data;
76:
77:
78: typedef struct xg_menu_item_cb_data_
79: {
80: xg_list_node ptrs;
81:
82: gulong select_id;
83: Lisp_Object help;
84: gpointer call_data;
85: xg_menu_cb_data *cl_data;
86:
87: } xg_menu_item_cb_data;
88:
89:
90:
91:
92:
93: typedef struct _widget_value
94: {
95:
96: Lisp_Object lname;
97: char *name;
98:
99: char *value;
100:
101: Lisp_Object lkey;
102: char *key;
103:
104:
105:
106: Lisp_Object help;
107:
108: gint enabled;
109:
110: gint selected;
111:
112: enum button_type button_type;
113:
114: struct _widget_value *contents;
115:
116: gpointer call_data;
117:
118: struct _widget_value *next;
119:
120:
121:
122:
123: struct _widget_value *free_list;
124: } widget_value;
125:
126: #ifdef HAVE_GTK_FILE_BOTH
127: extern int use_old_gtk_file_dialog;
128: #endif
129:
130: extern widget_value *malloc_widget_value P_ ((void));
131: extern void free_widget_value P_ ((widget_value *));
132:
133: extern int xg_uses_old_file_dialog P_ ((void));
134:
135: extern char *xg_get_file_name P_ ((FRAME_PTR f,
136: char *prompt,
137: char *default_filename,
138: int mustmatch_p,
139: int only_dir_p));
140:
141: extern GtkWidget *xg_create_widget P_ ((char *type,
142: char *name,
143: FRAME_PTR f,
144: widget_value *val,
145: GCallback select_cb,
146: GCallback deactivate_cb,
147: GCallback hightlight_cb));
148:
149: extern void xg_modify_menubar_widgets P_ ((GtkWidget *menubar,
150: FRAME_PTR f,
151: widget_value *val,
152: int deep_p,
153: GCallback select_cb,
154: GCallback deactivate_cb,
155: GCallback hightlight_cb));
156:
157: extern int xg_update_frame_menubar P_ ((FRAME_PTR f));
158:
159: extern int xg_have_tear_offs P_ ((void));
160:
161: extern int xg_get_scroll_id_for_window P_ ((Display *dpy, Window wid));
162:
163: extern void xg_create_scroll_bar P_ ((FRAME_PTR f,
164: struct scroll_bar *bar,
165: GCallback scroll_callback,
166: char *scroll_bar_name));
167: extern void xg_show_scroll_bar P_ ((int scrollbar_id));
168: extern void xg_remove_scroll_bar P_ ((FRAME_PTR f, int scrollbar_id));
169:
170: extern void xg_update_scrollbar_pos P_ ((FRAME_PTR f,
171: int scrollbar_id,
172: int top,
173: int left,
174: int width,
175: int height));
176:
177: extern void xg_set_toolkit_scroll_bar_thumb P_ ((struct scroll_bar *bar,
178: int portion,
179: int position,
180: int whole));
181:
182:
183: extern void update_frame_tool_bar P_ ((FRAME_PTR f));
184: extern void free_frame_tool_bar P_ ((FRAME_PTR f));
185:
186: extern void xg_resize_widgets P_ ((FRAME_PTR f,
187: int pixelwidth,
188: int pixelheight));
189: extern void xg_frame_set_char_size P_ ((FRAME_PTR f, int cols, int rows));
190: extern GtkWidget * xg_win_to_widget P_ ((Display *dpy, Window wdesc));
191:
192: extern int xg_display_open P_ ((char *display_name, Display **dpy));
193: extern void xg_display_close P_ ((Display *dpy));
194: extern GdkCursor * xg_create_default_cursor P_ ((Display *dpy));
195:
196: extern int xg_create_frame_widgets P_ ((FRAME_PTR f));
197: extern void x_wm_set_size_hint P_ ((FRAME_PTR f,
198: long flags,
199: int user_position));
200: extern void xg_set_background_color P_ ((FRAME_PTR f, unsigned long bg));
201:
202: extern void xg_set_frame_icon P_ ((FRAME_PTR f,
203: Pixmap icon_pixmap,
204: Pixmap icon_mask));
205:
206:
207: extern void xg_mark_data P_ ((void));
208:
209:
210: extern void xg_initialize P_ ((void));
211:
212:
213:
214: extern int xg_ignore_gtk_scrollbar;
215:
216: #endif
217: #endif
218:
219:
220: