Mercurial > hg > xemacs-beta
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) |