comparison src/console.h @ 5118:e0db3c197671 ben-lisp-object

merge up to latest default branch, doesn't compile yet
author Ben Wing <ben@xemacs.org>
date Sat, 26 Dec 2009 21:18:49 -0600
parents aa5ed11f473b
children 308d34e9f07d
comparison
equal deleted inserted replaced
5117:3742ea8250b5 5118:e0db3c197671
26 #define INCLUDED_console_h_ 26 #define INCLUDED_console_h_
27 27
28 /* Devices and consoles are similar entities. The idea is that 28 /* Devices and consoles are similar entities. The idea is that
29 a console represents a physical keyboard/mouse/other-input-source 29 a console represents a physical keyboard/mouse/other-input-source
30 while a device represents a display where frames appear on. 30 while a device represents a display where frames appear on.
31 Nowadays "multi-headed" displays with multiple physical screens
32 are becoming familiar; in the XEmacs nomenclature, this maps to a
33 "console" supporting multiple "devices".
34
31 In the X world, a console is a "Display" while a device is a 35 In the X world, a console is a "Display" while a device is a
32 "Screen". Implementationally, it can sometimes get confusing: 36 "Screen". Implementationally, it can sometimes get confusing:
33 under X, multiple devices on a single console are different 37 under X, multiple devices on a single console are different
34 "Display" connections to what is in reality the same Display on 38 "Display" connections to what is in reality the same Display on
35 the same server. Because of this, input comes from the device 39 the same server. Furthermore, in the X model input comes from the
36 and not from the console. This is OK because events are basically 40 device and not from the console. This causes no confusion because
37 always tagged to a particular X window (i.e. frame), 41 events are basically always tagged to a particular X window (i.e.
38 which exists on only one screen; therefore the event won't be 42 frame), which exists on only one screen; therefore the event won't
39 reported multiple times even if there are multiple devices on 43 be reported multiple times even if there are multiple devices on
40 the same physical display. This is an implementation detail 44 the same physical display.
41 specific to X consoles (e.g. under NeXTstep or Windows, this 45
42 could be different, and input would come directly from the console). 46 This is an implementation detail specific to X consoles (e.g. under
47 Windows, this could be different, and input would come directly from
48 the console).
43 */ 49 */
44
45 50
46 /* GCC does not like forward enum declaration. This needs to be 51 /* GCC does not like forward enum declaration. This needs to be
47 defined here. What a disgust! */ 52 defined here. What a disgust! */
48 53
49 enum console_variant 54 enum console_variant
72 DM_backing_store, DM_save_under 77 DM_backing_store, DM_save_under
73 }; 78 };
74 79
75 struct console; 80 struct console;
76 81
77 DECLARE_LRECORD (console, struct console); 82 DECLARE_LISP_OBJECT (console, struct console);
78 #define XCONSOLE(x) XRECORD (x, console, struct console) 83 #define XCONSOLE(x) XRECORD (x, console, struct console)
79 #define wrap_console(p) wrap_record (p, console) 84 #define wrap_console(p) wrap_record (p, console)
80 #define CONSOLEP(x) RECORDP (x, console) 85 #define CONSOLEP(x) RECORDP (x, console)
81 #define CHECK_CONSOLE(x) CHECK_RECORD (x, console) 86 #define CHECK_CONSOLE(x) CHECK_RECORD (x, console)
82 #define CONCHECK_CONSOLE(x) CONCHECK_RECORD (x, console) 87 #define CONCHECK_CONSOLE(x) CONCHECK_RECORD (x, console)