File: sawfish_subrs.h

package info (click to toggle)
sawfish 1:1.5.3-2.4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 18,160 kB
  • ctags: 1,428
  • sloc: lisp: 23,542; ansic: 15,824; sh: 10,268; makefile: 615; perl: 19
file content (369 lines) | stat: -rw-r--r-- 15,480 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
/* sawfish_subrs.h -- prototypes
   $Id$

   Copyright (C) 1999 John Harper <john@dcs.warwick.ac.uk>

   This file is part of sawfish.

   sawfish 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 2, or (at your option)
   any later version.

   sawfish is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   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 sawfish; see the file COPYING.   If not, write to
   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */

#ifndef SAWFISH_SUBRS_H
#define SAWFISH_SUBRS_H

/* from colors.c */
extern int color_type;
extern repv Qdefault_foreground;
extern repv Fget_color_rgb (repv red, repv green, repv blue, repv alpha);
extern repv Fget_color (repv name, repv alpha);
extern repv Fcolor_name (repv color);
extern repv Fcolor_rgb (repv color);
extern repv Fcolorp (repv arg);
extern void colors_init (void);
extern void colors_kill (void);

/* from cursors.c */
extern int cursor_type;
extern repv default_cursor, Qcursor_shape;
extern repv Fget_cursor (repv name);
extern repv Vdefault_cursor (repv arg);
extern void cursors_init (void);
extern void cursors_kill (void);

/* from commands.c */
extern repv this_command, last_command, Qpost_command_hook, Qpre_command_hook;
extern repv Qthis_command, Qlast_command, Qprefix_arg, Qcurrent_prefix_arg;
extern repv Fcall_command (repv cmd, repv Farg);
extern repv Fprefix_numeric_argument (repv arg);
extern repv Finteractive (repv arg_list);
extern repv Fcommandp (repv arg);
extern void commands_init (void);

/* from display.c */
extern Display *dpy;
extern int screen_num, screen_width, screen_height, preferred_depth;
extern Visual *preferred_visual;
extern Window root_window, no_focus_window;
extern Atom xa_wm_state, xa_wm_change_state, xa_wm_protocols,
    xa_wm_delete_window, xa_wm_colormap_windows, xa_wm_take_focus,
  xa_compound_text, xa_wm_net_name, xa_wm_net_icon_name, xa_utf8_string;
extern int shape_event_base, shape_error_base;
extern repv Qdisplay_name, Qcanonical_display_name;
extern bool sys_init (char *program_name);
extern void sys_kill (void);
extern repv x_atom_symbol (Atom atom);
extern Window x_win_from_arg (repv arg);
extern void send_client_message (Window w, Atom a, Time time);
#if XlibSpecificationRelease < 6
extern Status XGetAtomNames (Display *dpy, Atom *atoms,
			     int count, char **names_ret);
#endif
extern void db_printf(char *fmt, ...);

/* from events.c */
extern void (*event_handlers[LASTEvent])(XEvent *ev);
extern Time last_event_time;
extern XEvent *current_x_event;
extern repv Qvisibility_notify_hook, Qdestroy_notify_hook, Qmap_notify_hook,
    Qunmap_notify_hook, Qreparent_notify_hook, Qenter_notify_hook,
    Qleave_notify_hook, Qfocus_in_hook, Qfocus_out_hook, Qclient_message_hook,
    Qwindow_moved_hook, Qwindow_resized_hook;
extern repv Qiconify_window, Quniconify_window;
extern struct frame_part *clicked_frame_part;
extern void save_timestamp (Time t);
extern void invalidate_cached_mouse_position (void);
extern void unclick_current_fp (void);
extern void synthesize_button_release (void);
extern void map_request (XEvent *ev);
extern void send_synthetic_configure (Lisp_Window *w);
extern long get_event_mask (int type);
extern Time get_server_timestamp (void);
extern void mark_pointer_grabbed (void);
extern void ungrab_pointer (void);
extern void register_event_handler (Window w, void (*fun)(XEvent *ev));
extern void deregister_event_handler (Window w);
extern void handle_input_mask(long mask);
extern void handle_sync_input(int fd);
extern repv Fquery_pointer (repv get);
extern repv Fquery_button_press_pointer (void);
extern repv Fquery_button_press_window (void);
extern repv Fquery_pointer_window (void);
extern repv Fcurrent_event_window (repv win);
extern void events_init (void);
extern void events_kill (void);

/* from fonts.c */
extern int font_type;
extern repv Qdefault_font;
extern int x_text_width (repv font, char *string, size_t len);
extern void x_draw_string (Window id, repv font, GC gc, Lisp_Color *fg_color,
			   int x, int y, char *string, size_t len);
extern repv Fget_font(repv name);
extern repv Ffont_get(repv font, repv prop);
extern repv Ffont_put(repv font, repv prop, repv value);
extern repv Ffont_name (repv font);
extern repv Ftext_width (repv string, repv font);
extern repv Ffont_height (repv font);
extern repv Ffontp (repv font);
extern void fonts_init (void);
extern void fonts_kill (void);

/* from frames.c */
extern int frame_part_type;
extern repv Qdefault_frame, Qnil_frame;
extern repv Qfocused, Qhighlighted, Qclicked;
extern repv Qhide_client, Qclass, Qframe_part_classes;
extern repv Qinternal, Qtiled, Qcenter, Qright, Qleft, Qtop, Qbottom;
extern repv Qtext, Qx_justify, Qy_justify, Qbackground, Qforeground;
extern repv Qrenderer, Qrender_scale, Qfont, Qwidth, Qheight;
extern repv Qleft_edge, Qtop_edge, Qright_edge, Qbottom_edge;
extern repv Qcursor, Qfocused, Qhighlighted, Qclicked;
extern bool frame_state_mutex;
extern int current_state (struct frame_part *fp);
extern void set_frame_shapes (Lisp_Window *w, bool atomic);
extern void queue_reshape_frame (Lisp_Window *w);
extern void commit_queued_reshapes (void);
extern void refresh_frame_part (struct frame_part *fp);
extern void refresh_frame_parts (Lisp_Window *w);
extern void create_window_frame (Lisp_Window *w);
extern void destroy_window_frame (Lisp_Window *w, bool leave_frame_win);
extern struct frame_part *find_frame_part_by_window (Window id);
extern void frame_part_exposer (XExposeEvent *ev, struct frame_part *fp);
extern repv get_keymap_for_frame_part (struct frame_part *fp);
extern void mark_frame_parts (Lisp_Window *w);
extern void reset_frame_parts (Lisp_Window *w);
extern void restack_frame_parts (Lisp_Window *w);
extern repv Vframe_draw_mutex (repv arg);
extern repv Vframe_state_mutex (repv arg);
extern void frames_init (void);
extern void frames_kill (void);

/* from functions.c */
extern repv Qroot, Qafter_restacking_hook, Qposition, Qspacing;
extern repv Fdelete_window (repv win);
extern repv Fdestroy_window (repv win);
extern repv Frestack_windows (repv list);
extern repv Fx_raise_window (repv win, repv above);
extern repv Fx_lower_window (repv win, repv below);
extern repv Fwarp_cursor (repv x, repv y);
extern repv Fmove_window_to (repv win, repv x, repv y);
extern repv Fresize_window_to (repv win, repv x, repv y);
extern repv Fmove_resize_window_to (repv win, repv x, repv y, repv w, repv h);
extern repv Fgrab_server (void);
extern repv Fungrab_server (void);
extern repv Fserver_grabbed_p (void);
extern void regrab_server (void);
extern repv Fgrab_pointer (repv win, repv cursor, repv ptr_sync,
			   repv kbd_sync, repv confine_to);
extern repv Fungrab_pointer (void);
extern repv Fgrab_keyboard (repv win, repv ptr_sync, repv kbd_sync);
extern repv Fungrab_keyboard (void);
extern repv Fdelete_x_property (repv win, repv prop);
extern repv Flist_x_properties (repv win);
extern repv Fget_x_property (repv win, repv prop);
extern repv Fset_x_property (repv win, repv prop, repv data,
			     repv type, repv format);
extern repv Fsend_client_message (repv win, repv type, repv data, repv format);
extern repv Fcreate_window (repv parent, repv x, repv y,
			    repv width, repv height);
extern repv Fx_atom (repv symbol);
extern repv Fx_atom_name (repv atom);
extern repv Fdisplay_message (repv text, repv attrs);
extern void update_xinerama_info (void);
extern void functions_init (void);
extern void functions_kill (void);

/* from images.c */
extern int image_type;
extern Colormap image_cmap;
extern Visual *image_visual;
extern int image_depth;
extern Pixmap make_bitmap (repv file, unsigned *widthp, unsigned *heightp,
			   int *x_hotp, int *y_hotp);
extern repv Fmake_image (repv file, repv plist);
extern repv Fmake_image_from_x_drawable (repv id, repv mask_id);
extern repv Fwindow_icon_image (repv win);
extern repv Fcopy_image (repv source);
extern repv Fimage_get (repv image, repv prop);
extern repv Fimage_put (repv image, repv prop, repv value);
extern repv Fimagep (repv arg);
extern repv Fimage_dimensions (repv img);
extern repv Fimage_shape_color (repv img);
extern repv Fset_image_shape_color (repv img, repv shape);
extern repv Fimage_border (repv img);
extern repv Fset_image_border (repv img, repv, repv, repv, repv);
extern repv Fmake_sized_image (repv w, repv h, repv color);
extern repv Fbevel_image (repv img, repv border, repv up, repv bevel_percent);
extern repv Fclear_image (repv img, repv color);
extern repv Ftile_image (repv dst, repv src);
extern void pixmap_cache_flush_image (Lisp_Image *im);
extern void image_render (Lisp_Image *image, int width, int height,
			  Pixmap *pixmap, Pixmap *mask);
extern void image_free_pixmaps (Lisp_Image *image, Pixmap pixmap, Pixmap mask);
extern int best_color_match (int red, int green, int blue);
extern void paste_image_to_drawable (Lisp_Image *img, Drawable d,
				     int x, int y, int w, int h);
extern int image_width (Lisp_Image *im);
extern int image_height (Lisp_Image *im);
extern unsigned char *image_pixels (Lisp_Image *im);
extern int image_row_stride (Lisp_Image *im);
extern int image_channels (Lisp_Image *im);
extern void image_changed (Lisp_Image *im);
extern void images_init (void);
extern void images_kill (void);

/* from keys.c */
extern repv Qglobal_keymap, Qunbound_key_hook, Qkeymap;
extern repv eval_input_event (repv context_map);
extern bool print_event_prefix(void);
extern repv Fmake_keymap (void);
extern repv Fmake_sparse_keymap (repv base);
extern repv Fbind_keys (repv args);
extern repv Funbind_keys (repv args);
extern repv Fgrab_keymap (repv map);
extern repv Fungrab_keymap (repv map);
extern repv Fcurrent_event_string (void);
extern repv Fcurrent_event (void);
extern repv Fproxy_current_event (repv win, repv mask, repv prop);
extern repv Fallow_events (repv mode);
extern repv Flast_event (void);
extern repv Fevent_name (repv ev);
extern repv Flookup_event (repv name);
extern repv Flookup_event_binding (repv ev);
extern repv Fsearch_keymap (repv ev, repv km);
extern repv Fkeymapp (repv arg);
extern repv Feventp (repv arg);
extern void grab_window_events (Lisp_Window *w, bool grab);
extern void grab_keymap_events (Window grab_win, repv keymap, bool grab);
extern void update_keyboard_mapping (void);
extern void keys_init (void);

/* from main.c */
extern int exit_code;
extern repv Qsawfish_directory, Qsawfish_lisp_lib_directory,
    Qsawfish_site_lisp_directory, Qsawfish_exec_directory;
extern repv Qwindow_error, Qinvalid_pos, Qbad_event_desc;
extern repv Qbefore_exit_hook, Qfonts_are_fontsets;
extern bool batch_mode_p (void);
extern int main (int argc, char **argv);
extern repv Fquit (void);
extern repv Frestart (void);
extern void add_hook (repv sym, repv fun);
extern repv module_symbol_value (repv mod, repv sym);
extern repv global_symbol_value (repv sym);

/* from multihead.c */
extern void multihead_init (int *argcp, char ***argvp);

/* from pixmap-cache.c */
#ifdef NEED_PIXMAP_CACHE
extern bool pixmap_cache_ref (Lisp_Image *im, int width, int height,
			      Pixmap *p1, Pixmap *p2);
extern void pixmap_cache_unref (Lisp_Image *im, Pixmap p1, Pixmap p2);
extern void pixmap_cache_set (Lisp_Image *im, int width, int height,
			      Pixmap p1, Pixmap p2);
extern void pixmap_cache_flush_image (Lisp_Image *im);
#endif
extern repv Fpixmap_cache_control (repv max);
extern void pixmap_cache_init (void);

/* from property-cache.c */
extern repv property_cache_ref (repv id, repv prop);
extern void property_cache_set (repv id, repv prop, repv value, int invals);
extern void property_cache_invalidate_window (repv id);
extern void property_cache_invalidate (repv id, repv prop);

/* from server.c */
extern void server_init (void);
extern void server_kill (void);

/* from session.c */
extern repv Qsm_save_yourself;
extern repv Fsm_set_property (repv prop, repv value);
extern repv Fsm_delete_property (repv prop);
extern repv Fsm_connect (repv id);
extern repv Fsm_disconnect (void);
extern void session_init (void);
extern void session_kill (void);

/* from windows.c */
extern Lisp_Window *window_list;
extern int window_type;
extern Lisp_Window *focus_window;
extern int pending_destroys;
extern repv Qadd_window_hook, Qbefore_add_window_hook, Qplace_window_hook;
extern bool mapped_not_override_p (Window id);
extern void commit_queued_focus_change (void);
extern void focus_on_window (Lisp_Window *w);
extern void focus_off_window (Lisp_Window *w);
extern void fix_window_size (Lisp_Window *w);
extern Lisp_Window *find_window_by_id (Window id);
extern Lisp_Window *x_find_window_by_id (Window id);
extern void get_window_protocols (Lisp_Window *w);
extern void before_local_map (Lisp_Window *w);
extern void after_local_map (Lisp_Window *w);
extern void install_window_frame (Lisp_Window *w);
extern void remove_window_frame (Lisp_Window *w);
extern Lisp_Window *add_window (Window id);
extern void remove_window (Lisp_Window *win, bool destroyed, bool from_error);
extern void emit_pending_destroys (void);
extern repv Fwindow_get (repv win, repv prop, repv checker);
extern void register_property_monitor (repv prop, void (*callback)
				       (Lisp_Window *, repv, repv, repv));
extern repv Fwindow_put (repv win, repv prop, repv value);
extern repv Fwindow_remprop (repv win, repv prop);
extern repv Fwindow_plist (repv win);
extern repv Fwindow_name (repv win);
extern repv Fwindow_full_name (repv win);
extern repv Fwindow_icon_name (repv win);
extern repv Fwindow_mapped_p (repv win);
extern repv Fwindow_frame (repv win);
extern repv Fset_window_frame (repv win, repv frame);
extern repv Frebuild_frame (repv win);
extern repv Fwindow_position (repv win);
extern repv Fwindow_dimensions (repv win);
extern repv Fwindow_frame_dimensions (repv win);
extern repv Fwindow_frame_offset (repv win);
extern repv Fwindowp (repv win);
extern repv Fset_input_focus (repv win);
extern repv Finput_focus (void);
extern repv Fwindow_wants_input_p (repv win);
extern repv Fmanaged_windows (void);
extern repv Fget_window_by_id (repv id);
extern repv Fstacking_order (void);
extern repv Fwindow_visibility (repv win);
extern repv Fwindow_shaped_p (repv win);
extern repv Fhide_window (repv win);
extern repv Fshow_window (repv win);
extern repv Fwindow_visible_p (repv win);
extern repv Fwindow_reparented_p (repv win);
extern repv Fwindow_id (repv win);
extern repv Fwindow_group_id (repv win);
extern repv Fwindow_size_hints (repv win);
extern repv Fcall_window_hook (repv hook, repv win, repv args, repv type);
extern void manage_windows (void);
extern void windows_init (void);
extern void windows_kill (void);

/* from window-list.c */
extern bool window_in_stacking_list_p (Lisp_Window *w);
extern void remove_from_stacking_list (Lisp_Window *w);
extern void insert_in_stacking_list_above_all (Lisp_Window *w);
extern void insert_in_stacking_list_below_all (Lisp_Window *w);
extern void insert_in_stacking_list_above (Lisp_Window *w, Lisp_Window *x);
extern void insert_in_stacking_list_below (Lisp_Window *w, Lisp_Window *x);
extern void restack_window (Lisp_Window *w);
extern repv make_stacking_list (void);

#endif /* SAWFISH_SUBRS_H */