Mercurial > hg > xemacs-beta
comparison src/event-msw.h @ 213:78f53ef88e17 r20-4b5
Import from CVS: tag r20-4b5
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:06:47 +0200 |
parents | |
children | 262b8bb4a523 |
comparison
equal
deleted
inserted
replaced
212:d8688acf4c5b | 213:78f53ef88e17 |
---|---|
1 /* mswindows-specific defines for event-handling. | |
2 Copyright (C) 1997 Jonathan Harris. | |
3 | |
4 This file is part of XEmacs. | |
5 | |
6 XEmacs is free software; you can redistribute it and/or modify it | |
7 under the terms of the GNU General Public License as published by the | |
8 Free Software Foundation; either version 2, or (at your option) any | |
9 later version. | |
10 | |
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with XEmacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
19 Boston, MA 02111-1307, USA. */ | |
20 | |
21 /* Synched up with: Not in FSF. */ | |
22 | |
23 /* Authorship: | |
24 | |
25 Jonathan Harris, November 1997 for 20.4. | |
26 */ | |
27 | |
28 #ifndef _XEMACS_EVENT_MSW_H_ | |
29 #define _XEMACS_EVENT_MSW_H_ | |
30 | |
31 #include <windows.h> | |
32 | |
33 /* | |
34 * XXX FIXME: The following X modifier defs in events-mod.h clash with win32 | |
35 * hotkey defs in winuser.h. For the moment lose the win32 versions. | |
36 * Maybe we should rename all of MOD_* to something that doesn't clash. | |
37 */ | |
38 #ifdef MOD_CONTROL | |
39 # undef MOD_CONTROL | |
40 #endif | |
41 #ifdef MOD_ALT | |
42 # undef MOD_ALT | |
43 #endif | |
44 #ifdef MOD_SHIFT | |
45 # undef MOD_SHIFT | |
46 #endif | |
47 #include "events-mod.h" | |
48 | |
49 /* The name of the main window class */ | |
50 #define XEMACS_CLASS "XEmacs" | |
51 | |
52 /* Random globals shared between main and message-processing thread */ | |
53 extern DWORD mswindows_main_thread_id; | |
54 extern DWORD mswindows_win_thread_id; | |
55 extern CRITICAL_SECTION mswindows_dispatch_crit; | |
56 | |
57 | |
58 /* | |
59 * Communication between main and windows thread | |
60 */ | |
61 #define WM_XEMACS_BASE (WM_APP + 0) | |
62 #define WM_XEMACS_ACK (WM_XEMACS_BASE + 0x00) | |
63 #define WM_XEMACS_CREATEWINDOW (WM_XEMACS_BASE + 0x01) | |
64 #define WM_XEMACS_SETTIMER (WM_XEMACS_BASE + 0x02) | |
65 #define WM_XEMACS_KILLTIMER (WM_XEMACS_BASE + 0x03) | |
66 #define WM_XEMACS_END (WM_XEMACS_BASE + 0x10) | |
67 | |
68 typedef struct mswindows_request_type | |
69 { | |
70 void *thing1; | |
71 void *thing2; | |
72 } mswindows_request_type; | |
73 | |
74 LPARAM mswindows_make_request(UINT message, WPARAM wParam, mswindows_request_type *request); | |
75 void mswindows_handle_request(MSG *msg); | |
76 | |
77 | |
78 /* | |
79 * Event generating stuff | |
80 */ | |
81 | |
82 /* The number of things we can wait on */ | |
83 #define MAX_WAITABLE 256 | |
84 | |
85 typedef enum mswindows_waitable_type | |
86 { | |
87 mswindows_waitable_type_none, | |
88 mswindows_waitable_type_dispatch, | |
89 mswindows_waitable_type_timeout, | |
90 mswindows_waitable_type_process, | |
91 mswindows_waitable_type_socket | |
92 } mswindows_waitable_type; | |
93 | |
94 typedef struct mswindows_timeout_data | |
95 { | |
96 int milliseconds; | |
97 int id; | |
98 } mswindows_timeout_data; | |
99 | |
100 typedef struct mswindows_waitable_info_type | |
101 { | |
102 mswindows_waitable_type type; | |
103 union | |
104 { | |
105 mswindows_timeout_data timeout; | |
106 } data; | |
107 } mswindows_waitable_info_type; | |
108 | |
109 mswindows_waitable_info_type *mswindows_add_waitable(mswindows_waitable_info_type *info); | |
110 void mswindows_remove_waitable(mswindows_waitable_info_type *info); | |
111 | |
112 /* | |
113 * Some random function declarations in mswindows-proc.c | |
114 */ | |
115 DWORD mswindows_win_thread(); | |
116 extern void mswindows_enqeue_dispatch_event (Lisp_Object event); | |
117 | |
118 | |
119 /* | |
120 * Inside mswindows magic events | |
121 */ | |
122 #define EVENT_MSWINDOWS_MAGIC_EVENT(e) \ | |
123 ((e)->event.magic.underlying_mswindows_event) | |
124 #define EVENT_MSWINDOWS_MAGIC_TYPE(e) \ | |
125 (EVENT_MSWINDOWS_MAGIC_EVENT(e).message) | |
126 #define EVENT_MSWINDOWS_MAGIC_DATA(e) \ | |
127 (*((RECT *) (&(EVENT_MSWINDOWS_MAGIC_EVENT(e).data)))) | |
128 | |
129 | |
130 #endif /* _XEMACS_EVENT_MSW_H_ */ |