Mercurial > hg > xemacs-beta
comparison src/console-x-impl.h @ 5178:97eb4942aec8
merge
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 29 Mar 2010 21:28:13 -0500 |
parents | 8b2f75cecb89 7be849cb8828 |
children | 6466bc9ebf15 |
comparison
equal
deleted
inserted
replaced
5177:b785049378e3 | 5178:97eb4942aec8 |
---|---|
1 /* Define X specific console, device, and frame object for XEmacs. | 1 /* Define X specific console, device, and frame object for XEmacs. |
2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | 2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. |
3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois. | 3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois. |
4 Copyright (C) 1996, 2002, 2003 Ben Wing. | 4 Copyright (C) 1996, 2002, 2003 Ben Wing. |
5 Copyright (C) 2010 Didier Verna | |
5 | 6 |
6 This file is part of XEmacs. | 7 This file is part of XEmacs. |
7 | 8 |
8 XEmacs is free software; you can redistribute it and/or modify it | 9 XEmacs is free software; you can redistribute it and/or modify it |
9 under the terms of the GNU General Public License as published by the | 10 under the terms of the GNU General Public License as published by the |
43 extern int wedge_metacity; | 44 extern int wedge_metacity; |
44 | 45 |
45 struct x_device | 46 struct x_device |
46 { | 47 { |
47 #ifdef NEW_GC | 48 #ifdef NEW_GC |
48 struct lrecord_header header; | 49 NORMAL_LISP_OBJECT_HEADER header; |
49 #endif /* NEW_GC */ | 50 #endif /* NEW_GC */ |
50 /* The X connection of this device. */ | 51 /* The X connection of this device. */ |
51 Display *display; | 52 Display *display; |
52 | 53 |
53 /* Set by x_IO_error_handler(). */ | 54 /* Set by x_IO_error_handler(). */ |
165 }; | 166 }; |
166 | 167 |
167 #ifdef NEW_GC | 168 #ifdef NEW_GC |
168 typedef struct x_device Lisp_X_Device; | 169 typedef struct x_device Lisp_X_Device; |
169 | 170 |
170 DECLARE_LRECORD (x_device, Lisp_X_Device); | 171 DECLARE_LISP_OBJECT (x_device, Lisp_X_Device); |
171 | 172 |
172 #define XX_DEVICE(x) \ | 173 #define XX_DEVICE(x) \ |
173 XRECORD (x, x_device, Lisp_X_Device) | 174 XRECORD (x, x_device, Lisp_X_Device) |
174 #define wrap_x_device(p) wrap_record (p, x_device) | 175 #define wrap_x_device(p) wrap_record (p, x_device) |
175 #define X_DEVICE_P(x) RECORDP (x, x_device) | 176 #define X_DEVICE_P(x) RECORDP (x, x_device) |
241 #define MAX_CONCURRENT_TOP_WIDGETS 8 | 242 #define MAX_CONCURRENT_TOP_WIDGETS 8 |
242 | 243 |
243 struct x_frame | 244 struct x_frame |
244 { | 245 { |
245 #ifdef NEW_GC | 246 #ifdef NEW_GC |
246 struct lrecord_header header; | 247 NORMAL_LISP_OBJECT_HEADER header; |
247 #endif /* NEW_GC */ | 248 #endif /* NEW_GC */ |
248 | 249 |
249 /* The widget of this frame. | 250 /* The widget of this frame. |
250 This is an EmacsShell or an ExternalShell. | 251 This is an EmacsShell or an ExternalShell. |
251 It negotiates with the window manager or containing app on behalf of | 252 It negotiates with the window manager or containing app on behalf of |
263 Widget menubar_widget; | 264 Widget menubar_widget; |
264 | 265 |
265 /* The widget of the edit portion of this frame; this is an EmacsFrame, | 266 /* The widget of the edit portion of this frame; this is an EmacsFrame, |
266 and the window of this widget is what the redisplay code draws on. */ | 267 and the window of this widget is what the redisplay code draws on. */ |
267 Widget edit_widget; | 268 Widget edit_widget; |
269 /* Position of the edit widget above, for absolute background placement. */ | |
270 int x, y; | |
268 | 271 |
269 /* Lists the widgets above the text area, in the proper order. | 272 /* Lists the widgets above the text area, in the proper order. |
270 Used by the EmacsManager. */ | 273 Used by the EmacsManager. */ |
271 Widget top_widgets[MAX_CONCURRENT_TOP_WIDGETS]; | 274 Widget top_widgets[MAX_CONCURRENT_TOP_WIDGETS]; |
272 int num_top_widgets; | 275 int num_top_widgets; |
349 }; | 352 }; |
350 | 353 |
351 #ifdef NEW_GC | 354 #ifdef NEW_GC |
352 typedef struct x_frame Lisp_X_Frame; | 355 typedef struct x_frame Lisp_X_Frame; |
353 | 356 |
354 DECLARE_LRECORD (x_frame, Lisp_X_Frame); | 357 DECLARE_LISP_OBJECT (x_frame, Lisp_X_Frame); |
355 | 358 |
356 #define XX_FRAME(x) \ | 359 #define XX_FRAME(x) \ |
357 XRECORD (x, x_frame, Lisp_X_Frame) | 360 XRECORD (x, x_frame, Lisp_X_Frame) |
358 #define wrap_x_frame(p) wrap_record (p, x_frame) | 361 #define wrap_x_frame(p) wrap_record (p, x_frame) |
359 #define X_FRAME_P(x) RECORDP (x, x_frame) | 362 #define X_FRAME_P(x) RECORDP (x, x_frame) |
360 #endif /* NEW_GC */ | 363 #endif /* NEW_GC */ |
361 #define FRAME_X_DATA(f) FRAME_TYPE_DATA (f, x) | 364 #define FRAME_X_DATA(f) FRAME_TYPE_DATA (f, x) |
362 | 365 |
366 #define FRAME_X_X(f) (FRAME_X_DATA (f)->x) | |
367 #define FRAME_X_Y(f) (FRAME_X_DATA (f)->y) | |
363 #define FRAME_X_SHELL_WIDGET(f) (FRAME_X_DATA (f)->widget) | 368 #define FRAME_X_SHELL_WIDGET(f) (FRAME_X_DATA (f)->widget) |
364 #define FRAME_X_CONTAINER_WIDGET(f) (FRAME_X_DATA (f)->container) | 369 #define FRAME_X_CONTAINER_WIDGET(f) (FRAME_X_DATA (f)->container) |
365 #define FRAME_X_MENUBAR_WIDGET(f) (FRAME_X_DATA (f)->menubar_widget) | 370 #define FRAME_X_MENUBAR_WIDGET(f) (FRAME_X_DATA (f)->menubar_widget) |
366 #define FRAME_X_TEXT_WIDGET(f) (FRAME_X_DATA (f)->edit_widget) | 371 #define FRAME_X_TEXT_WIDGET(f) (FRAME_X_DATA (f)->edit_widget) |
367 #define FRAME_X_TOP_WIDGETS(f) (FRAME_X_DATA (f)->top_widgets) | 372 #define FRAME_X_TOP_WIDGETS(f) (FRAME_X_DATA (f)->top_widgets) |
405 #endif /* XIM_XLIB */ | 410 #endif /* XIM_XLIB */ |
406 #endif /* HAVE_XIM */ | 411 #endif /* HAVE_XIM */ |
407 | 412 |
408 extern struct console_type *x_console_type; | 413 extern struct console_type *x_console_type; |
409 | 414 |
415 void x_get_frame_text_position (struct frame *); | |
416 | |
410 #endif /* HAVE_X_WINDOWS */ | 417 #endif /* HAVE_X_WINDOWS */ |
411 | 418 |
412 #endif /* INCLUDED_console_x_impl_h_ */ | 419 #endif /* INCLUDED_console_x_impl_h_ */ |