Mercurial > emacs
view oldXMenu/XMenuInt.h @ 110592:c06958da83b5
Add fd handling with callbacks to select, dbus needs it for async operation.
* src/dbusbind.c: Include process.h.
(dbus_fd_cb, xd_find_watch_fd, xd_toggle_watch)
(xd_read_message_1): New functions.
(xd_add_watch, xd_remove_watch): Call xd_find_watch_fd. Handle
watch for both read and write.
(Fdbus_init_bus): Also register xd_toggle_watch.
(Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
(Fdbus_method_error_internal, Fdbus_send_signal): Remove call
to dbus_connection_flush.
(xd_read_message): Move most of the code to xd_read_message_1.
Call xd_read_message_1 until status is COMPLETE.
* src/keyboard.c (readable_events, gobble_input): Remove DBUS code.
* src/process.c (gpm_wait_mask, max_gpm_desc): Remove.
(write_mask): New variable.
(max_input_desc): Renamed from max_keyboard_desc.
(fd_callback_info): New variable.
(add_read_fd, delete_read_fd, add_write_fd, delete_write_fd): New
functions.
(Fmake_network_process): FD_SET write_mask.
(deactivate_process): FD_CLR write_mask.
(wait_reading_process_output): Connecting renamed to Writeok.
check_connect removed. check_write is new. Remove references to
gpm. Use Writeok/check_write unconditionally (i.e. no #ifdef
NON_BLOCKING_CONNECT) instead of Connecting.
Loop over file descriptors and call callbacks in fd_callback_info
if file descriptor is ready for I/O.
(add_gpm_wait_descriptor): Just call add_keyboard_wait_descriptor.
(delete_gpm_wait_descriptor): Just call delete_keyboard_wait_descriptor.
(keyboard_bit_set): Use max_input_desc.
(add_keyboard_wait_descriptor, delete_keyboard_wait_descriptor): Remove
#ifdef subprocesses. Use max_input_desc.
(init_process): Initialize write_mask and fd_callback_info.
* src/process.h (add_read_fd, delete_read_fd, add_write_fd)
(delete_write_fd): Declare.
author | Jan D <jan.h.d@swipnet.se> |
---|---|
date | Sun, 26 Sep 2010 18:20:01 +0200 |
parents | 5cc91198ffb2 |
children | ef719132ddfa |
line wrap: on
line source
/* Copyright Massachusetts Institute of Technology 1985 */ #include "copyright.h" /* * XMenu: MIT Project Athena, X Window system menu package * * XMenuInternal.h - Internal menu system include file for the * MIT Project Athena XMenu X window system * menu package. * * Author: Tony Della Fera, DEC * October, 1985 */ #ifndef _XMenuInternal_h_ #define _XMenuInternal_h_ /* Avoid warnings about redefining NULL by including <stdio.h> first; the other file which wants to define it (<stddef.h> on Ultrix systems) can deal if NULL is already defined, but <stdio.h> can't. */ #include <stdio.h> #include <X11/Xlib.h> #include "X10.h" #include "XMenu.h" #define min(x, y) ((x) <= (y) ? (x) : (y)) #define max(x, y) ((x) >= (y) ? (x) : (y)) #define abs(a) ((a) < 0 ? -(a) : (a)) #define _X_FAILURE -1 #define _SUCCESS 1 #define _FAILURE -1 /* * XMenu internal event handler variable. */ extern int (*_XMEventHandler)(XEvent*); #ifndef Pixel #define Pixel unsigned long #endif /* * Internal routine declarations. */ int _XMWinQueInit(void); /* No value actually returned. */ int _XMWinQueAddPane(register Display *display, register XMenu *menu, register XMPane *p_ptr); int _XMWinQueAddSelection(register Display *display, register XMenu *menu, register XMSelect *s_ptr); int _XMWinQueFlush(register Display *display, register XMenu *menu, register XMPane *pane, XMSelect *select); XMPane *_XMGetPanePtr(register XMenu *menu, register int p_num); XMSelect *_XMGetSelectionPtr(register XMPane *p_ptr, register int s_num); int _XMRecomputeGlobals(register Display *display, register XMenu *menu); /* No value actually returned. */ int _XMRecomputePane(register Display *display, register XMenu *menu, register XMPane *p_ptr, register int p_num); int _XMRecomputeSelection(register Display *display, register XMenu *menu, register XMSelect *s_ptr, register int s_num); int _XMTransToOrigin(Display *display, register XMenu *menu, register XMPane *p_ptr, register XMSelect *s_ptr, int x_pos, int y_pos, int *orig_x, int *orig_y); /* No value actually returned. */ int _XMRefreshPane(register Display *display, register XMenu *menu, register XMPane *pane); /* No value actually returned. */ #endif /* Don't add stuff after this #endif */ /* arch-tag: 00640af1-9386-48b5-a4be-35620b8cd3aa (do not change this comment) */