30 |
#include <X11/StringDefs.h> |
#include <X11/StringDefs.h> |
31 |
#include <X11/IntrinsicP.h> /* CoreP.h needs this */ |
#include <X11/IntrinsicP.h> /* CoreP.h needs this */ |
32 |
#include <X11/CoreP.h> /* foul, but we need this to use our own |
#include <X11/CoreP.h> /* foul, but we need this to use our own |
33 |
window inside a widget instead of one |
window inside a widget instead of one |
34 |
that Xt creates... */ |
that Xt creates... */ |
35 |
#include <X11/StringDefs.h> |
#include <X11/StringDefs.h> |
36 |
|
|
37 |
|
typedef Widget xt_or_gtk_widget; |
38 |
#endif |
#endif |
39 |
|
|
40 |
/* The class of this X application. */ |
#ifdef USE_GTK |
41 |
#define EMACS_CLASS "Emacs" |
#include <gtk/gtk.h> |
42 |
|
#include <gdk/gdkx.h> |
43 |
|
|
44 |
|
/* Some definitions to reduce conditionals. */ |
45 |
|
typedef GtkWidget *xt_or_gtk_widget; |
46 |
|
#define XtParent(x) (gtk_widget_get_parent (x)) |
47 |
|
#undef XSync |
48 |
|
#define XSync(d, b) gdk_window_process_all_updates () |
49 |
|
|
50 |
|
#endif /* USE_GTK */ |
51 |
|
|
52 |
|
|
53 |
/* Bookkeeping to distinguish X versions. */ |
/* Bookkeeping to distinguish X versions. */ |
54 |
|
|
77 |
#ifdef PBaseSize |
#ifdef PBaseSize |
78 |
/* AIX 3.1's X is somewhere between X11R3 and X11R4. It has |
/* AIX 3.1's X is somewhere between X11R3 and X11R4. It has |
79 |
PBaseSize, but not XWithdrawWindow, XSetWMName, XSetWMNormalHints, |
PBaseSize, but not XWithdrawWindow, XSetWMName, XSetWMNormalHints, |
80 |
XSetWMIconName. |
XSetWMIconName. |
81 |
AIX 3.2 is at least X11R4. */ |
AIX 3.2 is at least X11R4. */ |
82 |
#if (!defined AIX) || (defined AIX3_2) |
#if (!defined AIX) || (defined AIX3_2) |
83 |
#define HAVE_X11R4 |
#define HAVE_X11R4 |
102 |
#define FONT_WIDTH(f) ((f)->max_bounds.width) |
#define FONT_WIDTH(f) ((f)->max_bounds.width) |
103 |
#define FONT_HEIGHT(f) ((f)->ascent + (f)->descent) |
#define FONT_HEIGHT(f) ((f)->ascent + (f)->descent) |
104 |
#define FONT_BASE(f) ((f)->ascent) |
#define FONT_BASE(f) ((f)->ascent) |
105 |
|
#define FONT_DESCENT(f) ((f)->descent) |
106 |
|
|
107 |
/* The mask of events that text windows always want to receive. This |
/* The mask of events that text windows always want to receive. This |
108 |
includes mouse movement events, since handling the mouse-font text property |
includes mouse movement events, since handling the mouse-font text property |
120 |
| EnterWindowMask \ |
| EnterWindowMask \ |
121 |
| VisibilityChangeMask) |
| VisibilityChangeMask) |
122 |
|
|
|
enum text_cursor_kinds |
|
|
{ |
|
|
NO_CURSOR = -1, |
|
|
FILLED_BOX_CURSOR, |
|
|
HOLLOW_BOX_CURSOR, |
|
|
BAR_CURSOR, |
|
|
HBAR_CURSOR |
|
|
}; |
|
|
|
|
123 |
/* Structure recording X pixmap and reference count. |
/* Structure recording X pixmap and reference count. |
124 |
If REFCOUNT is 0 then this record is free to be reused. */ |
If REFCOUNT is 0 then this record is free to be reused. */ |
125 |
|
|
139 |
{ |
{ |
140 |
/* Chain of all x_display_info structures. */ |
/* Chain of all x_display_info structures. */ |
141 |
struct x_display_info *next; |
struct x_display_info *next; |
142 |
|
|
143 |
/* Connection number (normally a file descriptor number). */ |
/* Connection number (normally a file descriptor number). */ |
144 |
int connection; |
int connection; |
145 |
|
|
146 |
/* This says how to access this display in Xlib. */ |
/* This says how to access this display in Xlib. */ |
147 |
Display *display; |
Display *display; |
148 |
|
|
149 |
/* This is a cons cell of the form (NAME . FONT-LIST-CACHE). |
/* This is a cons cell of the form (NAME . FONT-LIST-CACHE). |
150 |
The same cons cell also appears in x_display_name_list. */ |
The same cons cell also appears in x_display_name_list. */ |
151 |
Lisp_Object name_list_element; |
Lisp_Object name_list_element; |
152 |
|
|
153 |
/* Number of frames that are on this display. */ |
/* Number of frames that are on this display. */ |
154 |
int reference_count; |
int reference_count; |
155 |
|
|
156 |
/* The Screen this connection is connected to. */ |
/* The Screen this connection is connected to. */ |
157 |
Screen *screen; |
Screen *screen; |
158 |
|
|
159 |
/* Dots per inch of the screen. */ |
/* Dots per inch of the screen. */ |
160 |
double resx, resy; |
double resx, resy; |
161 |
|
|
162 |
/* The Visual being used for this display. */ |
/* The Visual being used for this display. */ |
163 |
Visual *visual; |
Visual *visual; |
164 |
|
|
165 |
/* The colormap being used. */ |
/* The colormap being used. */ |
166 |
Colormap cmap; |
Colormap cmap; |
167 |
|
|
168 |
/* Number of panes on this screen. */ |
/* Number of panes on this screen. */ |
169 |
int n_planes; |
int n_planes; |
170 |
|
|
171 |
/* Dimensions of this screen. */ |
/* Dimensions of this screen. */ |
172 |
int height, width; |
int height, width; |
173 |
|
|
174 |
/* Mask of things that cause the mouse to be grabbed. */ |
/* Mask of things that cause the mouse to be grabbed. */ |
175 |
int grabbed; |
int grabbed; |
176 |
|
|
177 |
/* Emacs bitmap-id of the default icon bitmap for this frame. |
/* Emacs bitmap-id of the default icon bitmap for this frame. |
178 |
Or -1 if none has been allocated yet. */ |
Or -1 if none has been allocated yet. */ |
179 |
int icon_bitmap_id; |
int icon_bitmap_id; |
180 |
|
|
181 |
/* The root window of this screen. */ |
/* The root window of this screen. */ |
182 |
Window root_window; |
Window root_window; |
183 |
|
|
184 |
/* The cursor to use for vertical scroll bars. */ |
/* The cursor to use for vertical scroll bars. */ |
185 |
Cursor vertical_scroll_bar_cursor; |
Cursor vertical_scroll_bar_cursor; |
186 |
|
|
187 |
/* X Resource data base */ |
/* X Resource data base */ |
188 |
XrmDatabase xrdb; |
XrmDatabase xrdb; |
189 |
|
|
275 |
|
|
276 |
/* Communication with window managers. */ |
/* Communication with window managers. */ |
277 |
Atom Xatom_wm_protocols; |
Atom Xatom_wm_protocols; |
278 |
|
|
279 |
/* Kinds of protocol things we may receive. */ |
/* Kinds of protocol things we may receive. */ |
280 |
Atom Xatom_wm_take_focus; |
Atom Xatom_wm_take_focus; |
281 |
Atom Xatom_wm_save_yourself; |
Atom Xatom_wm_save_yourself; |
282 |
Atom Xatom_wm_delete_window; |
Atom Xatom_wm_delete_window; |
283 |
|
|
284 |
/* Atom for indicating window state to the window manager. */ |
/* Atom for indicating window state to the window manager. */ |
285 |
Atom Xatom_wm_change_state; |
Atom Xatom_wm_change_state; |
286 |
|
|
287 |
/* Other WM communication */ |
/* Other WM communication */ |
288 |
Atom Xatom_wm_configure_denied; /* When our config request is denied */ |
Atom Xatom_wm_configure_denied; /* When our config request is denied */ |
289 |
Atom Xatom_wm_window_moved; /* When the WM moves us. */ |
Atom Xatom_wm_window_moved; /* When the WM moves us. */ |
290 |
|
|
291 |
/* EditRes protocol */ |
/* EditRes protocol */ |
292 |
Atom Xatom_editres; |
Atom Xatom_editres; |
293 |
|
|
294 |
/* More atoms, which are selection types. */ |
/* More atoms, which are selection types. */ |
295 |
Atom Xatom_CLIPBOARD, Xatom_TIMESTAMP, Xatom_TEXT, Xatom_DELETE, |
Atom Xatom_CLIPBOARD, Xatom_TIMESTAMP, Xatom_TEXT, Xatom_DELETE, |
296 |
Xatom_COMPOUND_TEXT, |
Xatom_COMPOUND_TEXT, Xatom_UTF8_STRING, |
297 |
Xatom_MULTIPLE, Xatom_INCR, Xatom_EMACS_TMP, Xatom_TARGETS, Xatom_NULL, |
Xatom_MULTIPLE, Xatom_INCR, Xatom_EMACS_TMP, Xatom_TARGETS, Xatom_NULL, |
298 |
Xatom_ATOM_PAIR; |
Xatom_ATOM_PAIR; |
299 |
|
|
361 |
|
|
362 |
extern struct frame *x_window_to_frame P_ ((struct x_display_info *, int)); |
extern struct frame *x_window_to_frame P_ ((struct x_display_info *, int)); |
363 |
|
|
364 |
#ifdef USE_X_TOOLKIT |
#if defined (USE_X_TOOLKIT) || defined (USE_GTK) |
365 |
extern struct frame *x_any_window_to_frame P_ ((struct x_display_info *, int)); |
extern struct frame *x_any_window_to_frame P_ ((struct x_display_info *, int)); |
366 |
extern struct frame *x_non_menubar_window_to_frame P_ ((struct x_display_info *, int)); |
extern struct frame *x_non_menubar_window_to_frame P_ ((struct x_display_info *, int)); |
367 |
extern struct frame *x_top_window_to_frame P_ ((struct x_display_info *, int)); |
extern struct frame *x_top_window_to_frame P_ ((struct x_display_info *, int)); |
416 |
if the menubar is turned off. */ |
if the menubar is turned off. */ |
417 |
int menubar_height; |
int menubar_height; |
418 |
|
|
419 |
|
/* Height of tool bar widget, in pixels. |
420 |
|
Zero if not using an external tool bar. */ |
421 |
|
int toolbar_height; |
422 |
|
|
423 |
/* Height of a line, in pixels. */ |
/* Height of a line, in pixels. */ |
424 |
int line_height; |
int line_height; |
425 |
|
|
463 |
Widget menubar_widget; |
Widget menubar_widget; |
464 |
#endif |
#endif |
465 |
|
|
466 |
|
#ifdef USE_GTK |
467 |
|
/* The widget of this screen. This is the window of a top widget. */ |
468 |
|
GtkWidget *widget; |
469 |
|
/* The widget of the edit portion of this screen; the window in |
470 |
|
"window_desc" is inside of this. */ |
471 |
|
GtkWidget *edit_widget; |
472 |
|
/* The widget used for laying out widgets vertically. */ |
473 |
|
GtkWidget *vbox_widget; |
474 |
|
/* The menubar in this frame. */ |
475 |
|
GtkWidget *menubar_widget; |
476 |
|
/* The tool bar in this frame */ |
477 |
|
GtkWidget *toolbar_widget; |
478 |
|
/* The handle box that makes the tool bar detachable. */ |
479 |
|
GtkWidget *handlebox_widget; |
480 |
|
|
481 |
|
/* The last size hints set. */ |
482 |
|
GdkGeometry size_hints; |
483 |
|
long hint_flags; |
484 |
|
#endif |
485 |
|
|
486 |
/* If >=0, a bitmap index. The indicated bitmap is used for the |
/* If >=0, a bitmap index. The indicated bitmap is used for the |
487 |
icon. */ |
icon. */ |
488 |
int icon_bitmap; |
int icon_bitmap; |
509 |
/* Foreground color for scroll bars. A value of -1 means use the |
/* Foreground color for scroll bars. A value of -1 means use the |
510 |
default (black for non-toolkit scroll bars). */ |
default (black for non-toolkit scroll bars). */ |
511 |
unsigned long scroll_bar_foreground_pixel; |
unsigned long scroll_bar_foreground_pixel; |
512 |
|
|
513 |
/* Background color for scroll bars. A value of -1 means use the |
/* Background color for scroll bars. A value of -1 means use the |
514 |
default (background color of the frame for non-toolkit scroll |
default (background color of the frame for non-toolkit scroll |
515 |
bars). */ |
bars). */ |
524 |
Cursor text_cursor; |
Cursor text_cursor; |
525 |
Cursor nontext_cursor; |
Cursor nontext_cursor; |
526 |
Cursor modeline_cursor; |
Cursor modeline_cursor; |
527 |
Cursor cross_cursor; |
Cursor hand_cursor; |
528 |
Cursor hourglass_cursor; |
Cursor hourglass_cursor; |
529 |
Cursor horizontal_drag_cursor; |
Cursor horizontal_drag_cursor; |
530 |
|
|
531 |
/* Window whose cursor is hourglass_cursor. This window is temporarily |
/* Window whose cursor is hourglass_cursor. This window is temporarily |
532 |
mapped to display an hourglass cursor. */ |
mapped to display an hourglass cursor. */ |
533 |
Window hourglass_window; |
Window hourglass_window; |
534 |
|
|
535 |
/* Non-zero means hourglass cursor is currently displayed. */ |
/* Non-zero means hourglass cursor is currently displayed. */ |
536 |
unsigned hourglass_p : 1; |
unsigned hourglass_p : 1; |
537 |
|
|
538 |
/* Flag to set when the X window needs to be completely repainted. */ |
/* Flag to set when the X window needs to be completely repainted. */ |
539 |
int needs_exposure; |
int needs_exposure; |
540 |
|
|
|
/* What kind of text cursor is drawn in this window right now? |
|
|
(If there is no cursor (phys_cursor_x < 0), then this means nothing.) */ |
|
|
enum text_cursor_kinds current_cursor; |
|
|
|
|
|
/* What kind of text cursor should we draw in the future? |
|
|
This should always be filled_box_cursor or bar_cursor. */ |
|
|
enum text_cursor_kinds desired_cursor; |
|
|
|
|
|
/* Width of bar cursor (if we are using that). */ |
|
|
int cursor_width; |
|
|
|
|
541 |
/* These are the current window manager hints. It seems that |
/* These are the current window manager hints. It seems that |
542 |
XSetWMHints, when presented with an unset bit in the `flags' |
XSetWMHints, when presented with an unset bit in the `flags' |
543 |
member of the hints structure, does not leave the corresponding |
member of the hints structure, does not leave the corresponding |
630 |
/* As x_pixels_diff, but to FRAME_OUTER_WINDOW. For some reason the |
/* As x_pixels_diff, but to FRAME_OUTER_WINDOW. For some reason the |
631 |
two might differ by a pixel, depending on WM */ |
two might differ by a pixel, depending on WM */ |
632 |
int x_pixels_outer_diff; |
int x_pixels_outer_diff; |
633 |
|
|
634 |
/* As y_pixels_diff, but to FRAME_OUTER_WINDOW. In the toolkit version, |
/* As y_pixels_diff, but to FRAME_OUTER_WINDOW. In the toolkit version, |
635 |
these may differ because this does not take into account possible |
these may differ because this does not take into account possible |
636 |
menubar. y_pixels_diff is with menubar height included */ |
menubar. y_pixels_diff is with menubar height included */ |
637 |
int y_pixels_outer_diff; |
int y_pixels_outer_diff; |
638 |
|
|
639 |
|
/* Keep track of focus. May be EXPLICIT if we received a FocusIn for this |
640 |
|
frame, or IMPLICIT if we received an EnterNotify. |
641 |
|
FocusOut and LeaveNotify clears EXPLICIT/IMPLICIT. */ |
642 |
|
int focus_state; |
643 |
}; |
}; |
644 |
|
|
645 |
|
#define No_Cursor (None) |
646 |
|
|
647 |
enum |
enum |
648 |
{ |
{ |
649 |
/* Values used as a bit mask, BOTH == WIDTH | HEIGHT. */ |
/* Values for focus_state, used as bit mask. |
650 |
FULLSCREEN_NONE = 0, |
EXPLICIT means we received a FocusIn for the frame and know it has |
651 |
FULLSCREEN_WIDTH = 1, |
the focus. IMPLICIT means we recevied an EnterNotify and the frame |
652 |
FULLSCREEN_HEIGHT = 2, |
may have the focus if no window manager is running. |
653 |
FULLSCREEN_BOTH = 3, |
FocusOut and LeaveNotify clears EXPLICIT/IMPLICIT. */ |
654 |
FULLSCREEN_WAIT = 4, |
FOCUS_NONE = 0, |
655 |
FULLSCREEN_MOVE_WAIT = 8, |
FOCUS_IMPLICIT = 1, |
656 |
|
FOCUS_EXPLICIT = 2 |
657 |
}; |
}; |
658 |
|
|
659 |
|
|
660 |
|
/* Return the X output data for frame F. */ |
661 |
|
#define FRAME_X_OUTPUT(f) ((f)->output_data.x) |
662 |
|
|
663 |
/* Return the X window used for displaying data in frame F. */ |
/* Return the X window used for displaying data in frame F. */ |
664 |
#define FRAME_X_WINDOW(f) ((f)->output_data.x->window_desc) |
#define FRAME_X_WINDOW(f) ((f)->output_data.x->window_desc) |
665 |
|
|
669 |
XtWindow ((f)->output_data.x->widget) : \ |
XtWindow ((f)->output_data.x->widget) : \ |
670 |
FRAME_X_WINDOW (f)) |
FRAME_X_WINDOW (f)) |
671 |
#else |
#else |
672 |
|
#ifdef USE_GTK |
673 |
|
#define GTK_WIDGET_TO_X_WIN(w) \ |
674 |
|
((w) && (w)->window ? GDK_WINDOW_XWINDOW ((w)->window) : 0) |
675 |
|
|
676 |
|
#define FRAME_GTK_OUTER_WIDGET(f) ((f)->output_data.x->widget) |
677 |
|
#define FRAME_GTK_WIDGET(f) ((f)->output_data.x->edit_widget) |
678 |
|
#define FRAME_OUTER_WINDOW(f) \ |
679 |
|
(FRAME_GTK_OUTER_WIDGET (f) ? \ |
680 |
|
GTK_WIDGET_TO_X_WIN (FRAME_GTK_OUTER_WIDGET (f)) : \ |
681 |
|
FRAME_X_WINDOW (f)) |
682 |
|
|
683 |
|
#else /* !USE_GTK */ |
684 |
#define FRAME_OUTER_WINDOW(f) (FRAME_X_WINDOW (f)) |
#define FRAME_OUTER_WINDOW(f) (FRAME_X_WINDOW (f)) |
685 |
|
#endif /* !USE_GTK */ |
686 |
#endif |
#endif |
687 |
|
|
688 |
|
|
689 |
#define FRAME_FONT(f) ((f)->output_data.x->font) |
#define FRAME_FONT(f) ((f)->output_data.x->font) |
690 |
#define FRAME_FONTSET(f) ((f)->output_data.x->fontset) |
#define FRAME_FONTSET(f) ((f)->output_data.x->fontset) |
691 |
#define FRAME_INTERNAL_BORDER_WIDTH(f) ((f)->output_data.x->internal_border_width) |
#define FRAME_INTERNAL_BORDER_WIDTH(f) ((f)->output_data.x->internal_border_width) |
692 |
#define FRAME_MENUBAR_HEIGHT(f) ((f)->output_data.x->menubar_height) |
#define FRAME_MENUBAR_HEIGHT(f) ((f)->output_data.x->menubar_height) |
693 |
|
#define FRAME_TOOLBAR_HEIGHT(f) ((f)->output_data.x->toolbar_height) |
694 |
#define FRAME_LINE_HEIGHT(f) ((f)->output_data.x->line_height) |
#define FRAME_LINE_HEIGHT(f) ((f)->output_data.x->line_height) |
695 |
|
|
696 |
/* Width of the default font of frame F. Must be defined by each |
/* Width of the default font of frame F. Must be defined by each |
697 |
terminal specific header. */ |
terminal specific header. */ |
698 |
#define FRAME_DEFAULT_FONT_WIDTH(F) FONT_WIDTH (FRAME_FONT (F)) |
#define FRAME_DEFAULT_FONT_WIDTH(F) FONT_WIDTH (FRAME_FONT (F)) |
699 |
|
#define FRAME_BASELINE_OFFSET(f) ((f)->output_data.x->baseline_offset) |
700 |
|
|
701 |
/* This gives the x_display_info structure for the display F is on. */ |
/* This gives the x_display_info structure for the display F is on. */ |
702 |
#define FRAME_X_DISPLAY_INFO(f) ((f)->output_data.x->display_info) |
#define FRAME_X_DISPLAY_INFO(f) ((f)->output_data.x->display_info) |
721 |
#define PIXEL_WIDTH(f) ((f)->output_data.x->pixel_width) |
#define PIXEL_WIDTH(f) ((f)->output_data.x->pixel_width) |
722 |
#define PIXEL_HEIGHT(f) ((f)->output_data.x->pixel_height) |
#define PIXEL_HEIGHT(f) ((f)->output_data.x->pixel_height) |
723 |
|
|
724 |
#define FRAME_DESIRED_CURSOR(f) ((f)->output_data.x->desired_cursor) |
/* The difference in pixels between the top left corner of the |
725 |
|
Emacs window (including possible window manager decorations) |
726 |
|
and FRAME_X_WINDOW (f). */ |
727 |
|
#define FRAME_OUTER_TO_INNER_DIFF_X(f) \ |
728 |
|
((f)->output_data.x->x_pixels_outer_diff) |
729 |
|
#define FRAME_OUTER_TO_INNER_DIFF_Y(f) \ |
730 |
|
((f)->output_data.x->y_pixels_outer_diff \ |
731 |
|
+ FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f)) |
732 |
|
|
733 |
|
|
734 |
#define FRAME_XIC(f) ((f)->output_data.x->xic) |
#define FRAME_XIC(f) ((f)->output_data.x->xic) |
735 |
#define FRAME_X_XIM(f) (FRAME_X_DISPLAY_INFO (f)->xim) |
#define FRAME_X_XIM(f) (FRAME_X_DISPLAY_INFO (f)->xim) |
874 |
|
|
875 |
/* Return the length of the rectangle within which the top of the |
/* Return the length of the rectangle within which the top of the |
876 |
handle must stay. This isn't equivalent to the inside height, |
handle must stay. This isn't equivalent to the inside height, |
877 |
because the scroll bar handle has a minimum height. |
because the scroll bar handle has a minimum height. |
878 |
|
|
879 |
This is the real range of motion for the scroll bar, so when we're |
This is the real range of motion for the scroll bar, so when we're |
880 |
scaling buffer positions to scroll bar positions, we use this, not |
scaling buffer positions to scroll bar positions, we use this, not |
937 |
+ (f)->output_data.x->internal_border_width) |
+ (f)->output_data.x->internal_border_width) |
938 |
|
|
939 |
|
|
940 |
/* Return the row/column (zero-based) of the character cell containing |
/* Return the row/column (zero-based) of the character cell containing |
941 |
the pixel on FRAME at ROW/COL. */ |
the pixel on FRAME at ROW/COL. */ |
942 |
#define PIXEL_TO_CHAR_ROW(f, row) \ |
#define PIXEL_TO_CHAR_ROW(f, row) \ |
943 |
(((row) - (f)->output_data.x->internal_border_width) \ |
(((row) - (f)->output_data.x->internal_border_width) \ |
958 |
- (f)->output_data.x->internal_border_width))) |
- (f)->output_data.x->internal_border_width))) |
959 |
|
|
960 |
|
|
961 |
/* If a struct input_event has a kind which is selection_request_event |
/* If a struct input_event has a kind which is SELECTION_REQUEST_EVENT |
962 |
or selection_clear_event, then its contents are really described |
or SELECTION_CLEAR_EVENT, then its contents are really described |
963 |
by this structure. */ |
by this structure. */ |
964 |
|
|
965 |
/* For an event of kind selection_request_event, |
/* For an event of kind SELECTION_REQUEST_EVENT, |
966 |
this structure really describes the contents. |
this structure really describes the contents. |
967 |
**Don't make this struct longer!** |
**Don't make this struct longer!** |
968 |
If it overlaps the frame_or_window field of struct input_event, |
If it overlaps the frame_or_window field of struct input_event, |
1017 |
|
|
1018 |
/* From xrdb.c. */ |
/* From xrdb.c. */ |
1019 |
|
|
|
char *x_get_string_resource P_ ((XrmDatabase, char *, char *)); |
|
1020 |
char *x_get_customization_string P_ ((XrmDatabase, char *, char *)); |
char *x_get_customization_string P_ ((XrmDatabase, char *, char *)); |
1021 |
XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *)); |
XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *)); |
1022 |
int x_get_resource P_ ((XrmDatabase, char *, char *, |
int x_get_resource P_ ((XrmDatabase, char *, char *, |
1025 |
void x_make_frame_visible P_ ((struct frame *)); |
void x_make_frame_visible P_ ((struct frame *)); |
1026 |
void x_iconify_frame P_ ((struct frame *)); |
void x_iconify_frame P_ ((struct frame *)); |
1027 |
void x_wm_set_size_hint P_ ((struct frame *, long, int)); |
void x_wm_set_size_hint P_ ((struct frame *, long, int)); |
|
void x_set_offset P_ ((struct frame *, int, int, int)); |
|
|
void x_wm_set_icon_position P_ ((struct frame *, int, int)); |
|
1028 |
int x_catch_errors P_ ((Display *)); |
int x_catch_errors P_ ((Display *)); |
1029 |
int x_had_errors_p P_ ((Display *)); |
int x_had_errors_p P_ ((Display *)); |
1030 |
void x_uncatch_errors P_ ((Display *, int)); |
void x_uncatch_errors P_ ((Display *, int)); |
1035 |
void x_wm_set_window_state P_ ((struct frame *, int)); |
void x_wm_set_window_state P_ ((struct frame *, int)); |
1036 |
int x_alloc_nearest_color P_ ((struct frame *, Colormap, XColor *)); |
int x_alloc_nearest_color P_ ((struct frame *, Colormap, XColor *)); |
1037 |
|
|
|
extern void pixel_to_glyph_coords P_ ((struct frame *, int, int, |
|
|
int *, int *, XRectangle *, int)); |
|
|
|
|
1038 |
/* Defined in xterm.c */ |
/* Defined in xterm.c */ |
1039 |
|
|
1040 |
extern void cancel_mouse_face P_ ((struct frame *)); |
extern void cancel_mouse_face P_ ((struct frame *)); |
1041 |
extern void x_scroll_bar_clear P_ ((struct frame *)); |
extern void x_scroll_bar_clear P_ ((struct frame *)); |
1042 |
extern void x_start_queuing_selection_requests P_ ((Display *)); |
extern void x_start_queuing_selection_requests P_ ((Display *)); |
1043 |
extern void x_stop_queuing_selection_requests P_ ((Display *)); |
extern void x_stop_queuing_selection_requests P_ ((Display *)); |
|
extern void x_update_cursor P_ ((struct frame *, int)); |
|
1044 |
extern int x_text_icon P_ ((struct frame *, char *)); |
extern int x_text_icon P_ ((struct frame *, char *)); |
1045 |
extern int x_bitmap_icon P_ ((struct frame *, Lisp_Object)); |
extern int x_bitmap_icon P_ ((struct frame *, Lisp_Object)); |
1046 |
extern int x_catch_errors P_ ((Display *)); |
extern int x_catch_errors P_ ((Display *)); |
1047 |
extern void x_check_errors P_ ((Display *, char *)); |
extern void x_check_errors P_ ((Display *, char *)); |
1048 |
extern int x_had_errors_p P_ ((Display *)); |
extern int x_had_errors_p P_ ((Display *)); |
1049 |
extern void x_uncatch_errors P_ ((Display *, int)); |
extern void x_uncatch_errors P_ ((Display *, int)); |
|
extern Lisp_Object x_new_font P_ ((struct frame *, char *)); |
|
|
extern Lisp_Object x_new_fontset P_ ((struct frame *, char *)); |
|
|
extern void x_compute_fringe_widths P_ ((struct frame *, int)); |
|
|
extern void x_set_offset P_ ((struct frame *, int, int, int)); |
|
1050 |
extern void x_set_window_size P_ ((struct frame *, int, int, int)); |
extern void x_set_window_size P_ ((struct frame *, int, int, int)); |
1051 |
extern void x_set_mouse_position P_ ((struct frame *, int, int)); |
extern void x_set_mouse_position P_ ((struct frame *, int, int)); |
1052 |
extern void x_set_mouse_pixel_position P_ ((struct frame *, int, int)); |
extern void x_set_mouse_pixel_position P_ ((struct frame *, int, int)); |
1060 |
extern void x_wm_set_size_hint P_ ((struct frame *, long, int)); |
extern void x_wm_set_size_hint P_ ((struct frame *, long, int)); |
1061 |
extern void x_wm_set_window_state P_ ((struct frame *, int)); |
extern void x_wm_set_window_state P_ ((struct frame *, int)); |
1062 |
extern void x_wm_set_icon_pixmap P_ ((struct frame *, int)); |
extern void x_wm_set_icon_pixmap P_ ((struct frame *, int)); |
|
extern void x_wm_set_icon_position P_ ((struct frame *, int, int)); |
|
1063 |
extern void x_delete_display P_ ((struct x_display_info *)); |
extern void x_delete_display P_ ((struct x_display_info *)); |
1064 |
extern void x_initialize P_ ((void)); |
extern void x_initialize P_ ((void)); |
|
extern void x_display_cursor P_ ((struct window *, int, int, int, int, int)); |
|
1065 |
extern unsigned long x_copy_color P_ ((struct frame *, unsigned long)); |
extern unsigned long x_copy_color P_ ((struct frame *, unsigned long)); |
1066 |
#ifdef USE_X_TOOLKIT |
#ifdef USE_X_TOOLKIT |
1067 |
extern XtAppContext Xt_app_con; |
extern XtAppContext Xt_app_con; |
1070 |
extern void x_query_color P_ ((struct frame *f, XColor *)); |
extern void x_query_color P_ ((struct frame *f, XColor *)); |
1071 |
extern void x_clear_area P_ ((Display *, Window, int, int, int, int, int)); |
extern void x_clear_area P_ ((Display *, Window, int, int, int, int, int)); |
1072 |
|
|
1073 |
extern void x_fullscreen_adjust P_ ((struct frame *f, int *, int *, |
extern int x_dispatch_event P_ ((XEvent *, Display *)); |
|
int *, int *)); |
|
|
|
|
1074 |
|
|
1075 |
/* Defined in xselect.c */ |
/* Defined in xselect.c */ |
1076 |
|
|
1091 |
unsigned int, unsigned int)); |
unsigned int, unsigned int)); |
1092 |
extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object)); |
extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object)); |
1093 |
extern void x_destroy_bitmap P_ ((struct frame *, int)); |
extern void x_destroy_bitmap P_ ((struct frame *, int)); |
|
extern void x_set_frame_parameters P_ ((struct frame *, Lisp_Object)); |
|
1094 |
extern void x_real_positions P_ ((struct frame *, int *, int *)); |
extern void x_real_positions P_ ((struct frame *, int *, int *)); |
|
extern void x_report_frame_params P_ ((struct frame *, Lisp_Object *)); |
|
1095 |
extern int defined_color P_ ((struct frame *, char *, XColor *, int)); |
extern int defined_color P_ ((struct frame *, char *, XColor *, int)); |
1096 |
extern void x_set_border_pixel P_ ((struct frame *, int)); |
extern void x_set_border_pixel P_ ((struct frame *, int)); |
1097 |
extern void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
extern void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
1109 |
extern int x_char_height P_ ((struct frame *)); |
extern int x_char_height P_ ((struct frame *)); |
1110 |
extern int x_screen_planes P_ ((struct frame *)); |
extern int x_screen_planes P_ ((struct frame *)); |
1111 |
extern void x_sync P_ ((struct frame *)); |
extern void x_sync P_ ((struct frame *)); |
|
extern enum text_cursor_kinds x_specified_cursor_type P_ ((Lisp_Object, int *)); |
|
1112 |
extern int x_defined_color P_ ((struct frame *, char *, XColor *, int)); |
extern int x_defined_color P_ ((struct frame *, char *, XColor *, int)); |
1113 |
#ifdef HAVE_X_I18N |
#ifdef HAVE_X_I18N |
1114 |
extern void free_frame_xic P_ ((struct frame *)); |
extern void free_frame_xic P_ ((struct frame *)); |
1142 |
int *numchars)); |
int *numchars)); |
1143 |
extern int x_session_have_connection P_ ((void)); |
extern int x_session_have_connection P_ ((void)); |
1144 |
#endif |
#endif |
1145 |
|
|
1146 |
|
#define FONT_TYPE_FOR_UNIBYTE(font, ch) 0 |
1147 |
|
#define FONT_TYPE_FOR_MULTIBYTE(font, ch) 0 |
1148 |
|
|
1149 |
|
#define STORE_XCHAR2B(chp, b1, b2) \ |
1150 |
|
((chp)->byte1 = (b1), (chp)->byte2 = (b2)) |
1151 |
|
|
1152 |
|
#define XCHAR2B_BYTE1(chp) \ |
1153 |
|
((chp)->byte1) |
1154 |
|
|
1155 |
|
#define XCHAR2B_BYTE2(chp) \ |
1156 |
|
((chp)->byte2) |
1157 |
|
|
1158 |
|
|
1159 |
|
#define STORE_NATIVE_RECT(nr,rx,ry,rwidth,rheight) \ |
1160 |
|
((nr).x = (rx), \ |
1161 |
|
(nr).y = (ry), \ |
1162 |
|
(nr).width = (rwidth), \ |
1163 |
|
(nr).height = (rheight)) |