Mercurial > emacs
view lwlib/xlwmenuP.h @ 54173:03cb01738926
(x_focus_changed, x_detect_focus_change): Remove
numchars arg. Always store event into bufp arg. Return nothing.
Callers changed accordingly.
(glyph_rect): Simplify.
(STORE_KEYSYM_FOR_DEBUG): New macro.
(SET_SAVED_MENU_EVENT): Use inev instead of bufp, etc.
(current_bufp, current_numcharsp) [USE_GTK]: Remove.
(current_hold_quit) [USE_GTK]: Add.
(event_handler_gdk): Adapt to new handle_one_xevent.
(handle_one_xevent): Remove bufp_r and numcharsp args.
Add hold_quit arg. Rework to use just one, local, inev
input_event. Store inev directly in fifo using
kbd_buffer_store_event_hold. Update count in one place.
Postpone call to gen_help_event until inev is stored; use new
local do_help for this.
Simplify handling of keysyms (consolidate common code). Fix bug
where count was updated with nchars instead of nbytes.
Remove local emacs_event in handing of ButtonPress event; just use
inev instead (so no reason to copy it later).
Remove `out' label. Rename label `ret' to `done'; add various
`goto done' to clarify code flow in deeply nested blocks.
(x_dispatch_event): Simplify as handle_one_xevent now calls
kbd_buffer_store_event itself.
(XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit
arg. Call handle_one_xevent with new arglist. Store event from
x_session_check_input in fifo.
[USE_GTK]: Setup current_hold_quit.
Decrement handling_signal before unblocking input.
(x_initialize) [USE_GTK]: Initialize current_count.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Fri, 27 Feb 2004 23:49:48 +0000 |
parents | 609ef1718642 |
children | 597c62d04dec |
line wrap: on
line source
#ifndef _XlwMenuP_h #define _XlwMenuP_h #include "xlwmenu.h" #include <X11/CoreP.h> /* Elements in the stack arrays. */ typedef struct _window_state { Window window; Position x; Position y; Dimension width; Dimension height; Dimension label_width; /* Width of toggle buttons or radio buttons. */ Dimension button_width; } window_state; /* New fields for the XlwMenu widget instance record */ typedef struct _XlwMenu_part { /* slots set by the resources */ XFontStruct* font; Pixel foreground; Pixel disabled_foreground; Pixel button_foreground; Dimension margin; Dimension horizontal_spacing; Dimension vertical_spacing; Dimension arrow_spacing; Dimension shadow_thickness; Pixel top_shadow_color; Pixel bottom_shadow_color; Pixmap top_shadow_pixmap; Pixmap bottom_shadow_pixmap; Cursor cursor_shape; XtCallbackList open; XtCallbackList select, highlight; widget_value* contents; int horizontal; /* True means top_shadow_color and/or bottom_shadow_color must be freed. */ unsigned free_top_shadow_color_p : 1; unsigned free_bottom_shadow_color_p : 1; /* State of the XlwMenu */ int top_depth; int old_depth; widget_value** old_stack; int old_stack_length; /* New state after the user moved */ int new_depth; widget_value** new_stack; int new_stack_length; /* Window resources */ window_state* windows; int windows_length; /* Internal part, set by the XlwMenu */ GC foreground_gc; GC button_gc; GC background_gc; GC disabled_gc; GC inactive_button_gc; GC shadow_top_gc; GC shadow_bottom_gc; Cursor cursor; Boolean popped_up; Pixmap gray_pixmap; } XlwMenuPart; /* Full instance record declaration */ typedef struct _XlwMenuRec { CorePart core; XlwMenuPart menu; } XlwMenuRec; /* New fields for the XlwMenu widget class record */ typedef struct { int dummy; } XlwMenuClassPart; /* Full class record declaration. */ typedef struct _XlwMenuClassRec { CoreClassPart core_class; XlwMenuClassPart menu_class; } XlwMenuClassRec; /* Class pointer. */ extern XlwMenuClassRec xlwMenuClassRec; #endif /* _XlwMenuP_h */ /* arch-tag: 18d7fc41-ffa0-47a3-a49f-3469900c7a25 (do not change this comment) */