aboutsummaryrefslogtreecommitdiff
path: root/X11/InitialI.h
diff options
context:
space:
mode:
Diffstat (limited to 'X11/InitialI.h')
-rw-r--r--X11/InitialI.h863
1 files changed, 430 insertions, 433 deletions
diff --git a/X11/InitialI.h b/X11/InitialI.h
index 2ae9b743c..66a4041df 100644
--- a/X11/InitialI.h
+++ b/X11/InitialI.h
@@ -1,433 +1,430 @@
-/* $Xorg: InitialI.h,v 1.4 2001/02/09 02:03:55 xorgcvs Exp $ */
-
-/***********************************************************
-
-Copyright 1987, 1988, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/* $XFree86: xc/lib/Xt/InitialI.h,v 3.10 2001/12/14 19:56:18 dawes Exp $ */
-
-#ifndef _XtinitialI_h
-#define _XtinitialI_h
-
-/****************************************************************
- *
- * Displays
- *
- ****************************************************************/
-
-#ifndef X_NOT_POSIX
-#ifdef _POSIX_SOURCE
-#include <limits.h>
-#else
-#define _POSIX_SOURCE
-#include <limits.h>
-#undef _POSIX_SOURCE
-#endif
-#endif
-#ifndef PATH_MAX
-#ifdef WIN32
-#define PATH_MAX 512
-#else
-#include <sys/param.h>
-#endif
-#ifndef PATH_MAX
-#ifdef MAXPATHLEN
-#define PATH_MAX MAXPATHLEN
-#else
-#define PATH_MAX 1024
-#endif
-#endif
-#endif
-
-#include <X11/Xos.h>
-#include <X11/Xpoll.h>
-
-_XFUNCPROTOBEGIN
-
-typedef struct _TimerEventRec {
- struct timeval te_timer_value;
- struct _TimerEventRec *te_next;
- XtTimerCallbackProc te_proc;
- XtAppContext app;
- XtPointer te_closure;
-} TimerEventRec;
-
-typedef struct _InputEvent {
- XtInputCallbackProc ie_proc;
- XtPointer ie_closure;
- struct _InputEvent *ie_next;
- struct _InputEvent *ie_oq;
- XtAppContext app;
- int ie_source;
- XtInputMask ie_condition;
-} InputEvent;
-
-typedef struct _SignalEventRec {
- XtSignalCallbackProc se_proc;
- XtPointer se_closure;
- struct _SignalEventRec *se_next;
- XtAppContext app;
- Boolean se_notice;
-} SignalEventRec;
-
-typedef struct _WorkProcRec {
- XtWorkProc proc;
- XtPointer closure;
- struct _WorkProcRec *next;
- XtAppContext app;
-} WorkProcRec;
-
-
-typedef struct
-{
-#ifndef USE_POLL
- fd_set rmask;
- fd_set wmask;
- fd_set emask;
-#endif
- int nfds;
-} FdStruct;
-
-typedef struct _LangProcRec {
- XtLanguageProc proc;
- XtPointer closure;
-} LangProcRec;
-
-typedef struct _ProcessContextRec {
- XtAppContext defaultAppContext;
- XtAppContext appContextList;
- ConverterTable globalConverterTable;
- LangProcRec globalLangProcRec;
-} ProcessContextRec, *ProcessContext;
-
-typedef struct {
- char* start;
- char* current;
- int bytes_remaining;
-} Heap;
-
-typedef struct _DestroyRec DestroyRec;
-
-
-typedef struct _XtAppStruct {
- XtAppContext next; /* link to next app in process context */
- ProcessContext process; /* back pointer to our process context */
- InternalCallbackList destroy_callbacks;
- Display **list;
- TimerEventRec *timerQueue;
- WorkProcRec *workQueue;
- InputEvent **input_list;
- InputEvent *outstandingQueue;
- SignalEventRec *signalQueue;
- XrmDatabase errorDB;
- XtErrorMsgHandler errorMsgHandler, warningMsgHandler;
- XtErrorHandler errorHandler, warningHandler;
- struct _ActionListRec *action_table;
- ConverterTable converterTable;
- unsigned long selectionTimeout;
- FdStruct fds;
- short count; /* num of assigned entries in list */
- short max; /* allocate size of list */
- short last;
- short input_count;
- short input_max; /* elts input_list init'd with */
- Boolean sync, being_destroyed, error_inited;
-#ifndef NO_IDENTIFY_WINDOWS
- Boolean identify_windows; /* debugging hack */
-#endif
- Heap heap;
- String * fallback_resources; /* Set by XtAppSetFallbackResources. */
- struct _ActionHookRec* action_hook_list;
- struct _BlockHookRec* block_hook_list;
- int destroy_list_size; /* state data for 2-phase destroy */
- int destroy_count;
- int dispatch_level;
- DestroyRec* destroy_list;
- Widget in_phase2_destroy;
- LangProcRec langProcRec;
- struct _TMBindCacheRec * free_bindings;
- String display_name_tried;
- Display **dpy_destroy_list;
- int dpy_destroy_count;
- Boolean exit_flag;
- Boolean rebuild_fdlist;
-#ifdef XTHREADS
- LockPtr lock_info;
- ThreadAppProc lock;
- ThreadAppProc unlock;
- ThreadAppYieldLockProc yield_lock;
- ThreadAppRestoreLockProc restore_lock;
- ThreadAppProc free_lock;
-#endif
-} XtAppStruct;
-
-extern void _XtHeapInit(Heap* heap);
-extern void _XtHeapFree(Heap* heap);
-
-#ifdef XTTRACEMEMORY
-
-
-extern char *_XtHeapMalloc(
- Heap* /* heap */,
- Cardinal /* size */,
- char * /* file */,
- int /* line */
-);
-
-#define _XtHeapAlloc(heap,bytes) _XtHeapMalloc(heap, bytes, __FILE__, __LINE__)
-
-#else /* XTTRACEMEMORY */
-
-extern char* _XtHeapAlloc(
- Heap* /* heap */,
- Cardinal /* size */
-);
-
-#endif /* XTTRACEMEMORY */
-
-extern void _XtSetDefaultErrorHandlers(
- XtErrorMsgHandler* /* errMsg */,
- XtErrorMsgHandler* /* warnMsg */,
- XtErrorHandler* /* err */,
- XtErrorHandler* /* warn */
-);
-
-extern void _XtSetDefaultSelectionTimeout(
- unsigned long* /* timeout */
-);
-
-extern XtAppContext _XtDefaultAppContext(
- void
-);
-
-extern ProcessContext _XtGetProcessContext(
- void
-);
-
-Display *
-_XtAppInit(
- XtAppContext* /* app_context_return */,
- String /* application_class */,
- XrmOptionDescRec* /* options */,
- Cardinal /* num_options */,
- int* /* argc_in_out */,
- String** /* argv_in_out */,
- String* /* fallback_resources */
-);
-
-extern void _XtDestroyAppContexts(
- void
-);
-
-extern void _XtCloseDisplays(
- XtAppContext /* app */
-);
-
-extern int _XtAppDestroyCount;
-
-extern int _XtWaitForSomething(
- XtAppContext /* app */,
- _XtBoolean /* ignoreEvents */,
- _XtBoolean /* ignoreTimers */,
- _XtBoolean /* ignoreInputs */,
- _XtBoolean /* ignoreSignals */,
- _XtBoolean /* block */,
-#ifdef XTHREADS
- _XtBoolean /* drop_lock */,
-#endif
- unsigned long* /* howlong */
-);
-
-typedef struct _CaseConverterRec *CaseConverterPtr;
-typedef struct _CaseConverterRec {
- KeySym start; /* first KeySym valid in converter */
- KeySym stop; /* last KeySym valid in converter */
- XtCaseProc proc; /* case converter function */
- CaseConverterPtr next; /* next converter record */
-} CaseConverterRec;
-
-typedef struct _ExtensionSelectorRec {
- XtExtensionSelectProc proc;
- int min, max;
- XtPointer client_data;
-} ExtSelectRec;
-
-typedef struct _XtPerDisplayStruct {
- InternalCallbackList destroy_callbacks;
- Region region;
- CaseConverterPtr case_cvt; /* user-registered case converters */
- XtKeyProc defaultKeycodeTranslator;
- XtAppContext appContext;
- unsigned long keysyms_serial; /* for tracking MappingNotify events */
- KeySym *keysyms; /* keycode to keysym table */
- int keysyms_per_keycode; /* number of keysyms for each keycode*/
- int min_keycode, max_keycode; /* range of keycodes */
- KeySym *modKeysyms; /* keysym values for modToKeysysm */
- ModToKeysymTable *modsToKeysyms; /* modifiers to Keysysms index table*/
- unsigned char isModifier[32]; /* key-is-modifier-p bit table */
- KeySym lock_meaning; /* Lock modifier meaning */
- Modifiers mode_switch; /* keyboard group modifiers */
- Modifiers num_lock; /* keyboard numlock modifiers */
- Boolean being_destroyed;
- Boolean rv; /* reverse_video resource */
- XrmName name; /* resolved app name */
- XrmClass class; /* application class */
- Heap heap;
- struct _GCrec *GClist; /* support for XtGetGC */
- Drawable **pixmap_tab; /* ditto for XtGetGC */
- String language; /* XPG language string */
- XEvent last_event; /* last event dispatched */
- Time last_timestamp; /* from last event dispatched */
- int multi_click_time; /* for XtSetMultiClickTime */
- struct _TMKeyContextRec* tm_context; /* for XtGetActionKeysym */
- InternalCallbackList mapping_callbacks; /* special case for TM */
- XtPerDisplayInputRec pdi; /* state for modal grabs & kbd focus */
- struct _WWTable *WWtable; /* window to widget table */
- XrmDatabase *per_screen_db; /* per screen resource databases */
- XrmDatabase cmd_db; /* db from command line, if needed */
- XrmDatabase server_db; /* resource property else .Xdefaults */
- XtEventDispatchProc* dispatcher_list;
- ExtSelectRec* ext_select_list;
- int ext_select_count;
- Widget hook_object;
-#ifndef X_NO_RESOURCE_CONFIGURATION_MANAGEMENT
- Atom rcm_init; /* ResConfig - initialize */
- Atom rcm_data; /* ResConfig - data atom */
-#endif
-} XtPerDisplayStruct, *XtPerDisplay;
-
-typedef struct _PerDisplayTable {
- Display *dpy;
- XtPerDisplayStruct perDpy;
- struct _PerDisplayTable *next;
-} PerDisplayTable, *PerDisplayTablePtr;
-
-extern PerDisplayTablePtr _XtperDisplayList;
-
-extern XtPerDisplay _XtSortPerDisplayList(
- Display* /* dpy */
-);
-
-extern XtPerDisplay _XtGetPerDisplay(
- Display* /* dpy */
-);
-
-extern XtPerDisplayInputRec* _XtGetPerDisplayInput(
- Display* /* dpy */
-);
-
-#if 0
-#ifdef DEBUG
-#define _XtGetPerDisplay(display) \
- ((_XtperDisplayList != NULL && (_XtperDisplayList->dpy == (display))) \
- ? &_XtperDisplayList->perDpy \
- : _XtSortPerDisplayList(display))
-#define _XtGetPerDisplayInput(display) \
- ((_XtperDisplayList != NULL && (_XtperDisplayList->dpy == (display))) \
- ? &_XtperDisplayList->perDpy.pdi \
- : &_XtSortPerDisplayList(display)->pdi)
-#else
-#define _XtGetPerDisplay(display) \
- ((_XtperDisplayList->dpy == (display)) \
- ? &_XtperDisplayList->perDpy \
- : _XtSortPerDisplayList(display))
-#define _XtGetPerDisplayInput(display) \
- ((_XtperDisplayList->dpy == (display)) \
- ? &_XtperDisplayList->perDpy.pdi \
- : &_XtSortPerDisplayList(display)->pdi)
-#endif /*DEBUG*/
-#endif
-
-extern void _XtDisplayInitialize(
- Display* /* dpy */,
- XtPerDisplay /* pd */,
- _Xconst char* /* name */,
- XrmOptionDescRec* /* urlist */,
- Cardinal /* num_urs */,
- int* /* argc */,
- char** /* argv */
-);
-
-extern void _XtCacheFlushTag(
- XtAppContext /* app */,
- XtPointer /* tag */
-);
-
-extern void _XtFreeActions(
- struct _ActionListRec* /* action_table */
-);
-
-extern void _XtDoPhase2Destroy(
- XtAppContext /* app */,
- int /* dispatch_level */
-);
-
-extern void _XtDoFreeBindings(
- XtAppContext /* app */
-);
-
-extern void _XtExtensionSelect(
- Widget /* widget */
-);
-
-#define _XtSafeToDestroy(app) ((app)->dispatch_level == 0)
-
-extern void _XtAllocWWTable(
- XtPerDisplay pd
-);
-
-extern void _XtFreeWWTable(
- XtPerDisplay pd
-);
-
-extern String _XtGetUserName(String dest, int len);
-extern XrmDatabase _XtPreparseCommandLine(XrmOptionDescRec *urlist,
- Cardinal num_urs, int argc, String *argv,
- String *applName, String *displayName,
- String *language);
-
-_XFUNCPROTOEND
-
-#endif /* _XtinitialI_h */
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+
+#ifndef _XtinitialI_h
+#define _XtinitialI_h
+
+/****************************************************************
+ *
+ * Displays
+ *
+ ****************************************************************/
+
+#ifndef X_NOT_POSIX
+#ifdef _POSIX_SOURCE
+#include <limits.h>
+#else
+#define _POSIX_SOURCE
+#include <limits.h>
+#undef _POSIX_SOURCE
+#endif
+#endif
+#ifndef PATH_MAX
+#ifdef WIN32
+#define PATH_MAX 512
+#else
+#include <sys/param.h>
+#endif
+#ifndef PATH_MAX
+#ifdef MAXPATHLEN
+#define PATH_MAX MAXPATHLEN
+#else
+#define PATH_MAX 1024
+#endif
+#endif
+#endif
+
+#include <X11/Xos.h>
+#include <X11/Xpoll.h>
+
+_XFUNCPROTOBEGIN
+
+typedef struct _TimerEventRec {
+ struct timeval te_timer_value;
+ struct _TimerEventRec *te_next;
+ XtTimerCallbackProc te_proc;
+ XtAppContext app;
+ XtPointer te_closure;
+} TimerEventRec;
+
+typedef struct _InputEvent {
+ XtInputCallbackProc ie_proc;
+ XtPointer ie_closure;
+ struct _InputEvent *ie_next;
+ struct _InputEvent *ie_oq;
+ XtAppContext app;
+ int ie_source;
+ XtInputMask ie_condition;
+} InputEvent;
+
+typedef struct _SignalEventRec {
+ XtSignalCallbackProc se_proc;
+ XtPointer se_closure;
+ struct _SignalEventRec *se_next;
+ XtAppContext app;
+ Boolean se_notice;
+} SignalEventRec;
+
+typedef struct _WorkProcRec {
+ XtWorkProc proc;
+ XtPointer closure;
+ struct _WorkProcRec *next;
+ XtAppContext app;
+} WorkProcRec;
+
+
+typedef struct
+{
+#ifndef USE_POLL
+ fd_set rmask;
+ fd_set wmask;
+ fd_set emask;
+#endif
+ int nfds;
+} FdStruct;
+
+typedef struct _LangProcRec {
+ XtLanguageProc proc;
+ XtPointer closure;
+} LangProcRec;
+
+typedef struct _ProcessContextRec {
+ XtAppContext defaultAppContext;
+ XtAppContext appContextList;
+ ConverterTable globalConverterTable;
+ LangProcRec globalLangProcRec;
+} ProcessContextRec, *ProcessContext;
+
+typedef struct {
+ char* start;
+ char* current;
+ int bytes_remaining;
+} Heap;
+
+typedef struct _DestroyRec DestroyRec;
+
+
+typedef struct _XtAppStruct {
+ XtAppContext next; /* link to next app in process context */
+ ProcessContext process; /* back pointer to our process context */
+ InternalCallbackList destroy_callbacks;
+ Display **list;
+ TimerEventRec *timerQueue;
+ WorkProcRec *workQueue;
+ InputEvent **input_list;
+ InputEvent *outstandingQueue;
+ SignalEventRec *signalQueue;
+ XrmDatabase errorDB;
+ XtErrorMsgHandler errorMsgHandler, warningMsgHandler;
+ XtErrorHandler errorHandler, warningHandler;
+ struct _ActionListRec *action_table;
+ ConverterTable converterTable;
+ unsigned long selectionTimeout;
+ FdStruct fds;
+ short count; /* num of assigned entries in list */
+ short max; /* allocate size of list */
+ short last;
+ short input_count;
+ short input_max; /* elts input_list init'd with */
+ Boolean sync, being_destroyed, error_inited;
+#ifndef NO_IDENTIFY_WINDOWS
+ Boolean identify_windows; /* debugging hack */
+#endif
+ Heap heap;
+ String * fallback_resources; /* Set by XtAppSetFallbackResources. */
+ struct _ActionHookRec* action_hook_list;
+ struct _BlockHookRec* block_hook_list;
+ int destroy_list_size; /* state data for 2-phase destroy */
+ int destroy_count;
+ int dispatch_level;
+ DestroyRec* destroy_list;
+ Widget in_phase2_destroy;
+ LangProcRec langProcRec;
+ struct _TMBindCacheRec * free_bindings;
+ String display_name_tried;
+ Display **dpy_destroy_list;
+ int dpy_destroy_count;
+ Boolean exit_flag;
+ Boolean rebuild_fdlist;
+#ifdef XTHREADS
+ LockPtr lock_info;
+ ThreadAppProc lock;
+ ThreadAppProc unlock;
+ ThreadAppYieldLockProc yield_lock;
+ ThreadAppRestoreLockProc restore_lock;
+ ThreadAppProc free_lock;
+#endif
+} XtAppStruct;
+
+extern void _XtHeapInit(Heap* heap);
+extern void _XtHeapFree(Heap* heap);
+
+#ifdef XTTRACEMEMORY
+
+
+extern char *_XtHeapMalloc(
+ Heap* /* heap */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+#define _XtHeapAlloc(heap,bytes) _XtHeapMalloc(heap, bytes, __FILE__, __LINE__)
+
+#else /* XTTRACEMEMORY */
+
+extern char* _XtHeapAlloc(
+ Heap* /* heap */,
+ Cardinal /* size */
+);
+
+#endif /* XTTRACEMEMORY */
+
+extern void _XtSetDefaultErrorHandlers(
+ XtErrorMsgHandler* /* errMsg */,
+ XtErrorMsgHandler* /* warnMsg */,
+ XtErrorHandler* /* err */,
+ XtErrorHandler* /* warn */
+);
+
+extern void _XtSetDefaultSelectionTimeout(
+ unsigned long* /* timeout */
+);
+
+extern XtAppContext _XtDefaultAppContext(
+ void
+);
+
+extern ProcessContext _XtGetProcessContext(
+ void
+);
+
+Display *
+_XtAppInit(
+ XtAppContext* /* app_context_return */,
+ String /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String** /* argv_in_out */,
+ String* /* fallback_resources */
+);
+
+extern void _XtDestroyAppContexts(
+ void
+);
+
+extern void _XtCloseDisplays(
+ XtAppContext /* app */
+);
+
+extern int _XtAppDestroyCount;
+
+extern int _XtWaitForSomething(
+ XtAppContext /* app */,
+ _XtBoolean /* ignoreEvents */,
+ _XtBoolean /* ignoreTimers */,
+ _XtBoolean /* ignoreInputs */,
+ _XtBoolean /* ignoreSignals */,
+ _XtBoolean /* block */,
+#ifdef XTHREADS
+ _XtBoolean /* drop_lock */,
+#endif
+ unsigned long* /* howlong */
+);
+
+typedef struct _CaseConverterRec *CaseConverterPtr;
+typedef struct _CaseConverterRec {
+ KeySym start; /* first KeySym valid in converter */
+ KeySym stop; /* last KeySym valid in converter */
+ XtCaseProc proc; /* case converter function */
+ CaseConverterPtr next; /* next converter record */
+} CaseConverterRec;
+
+typedef struct _ExtensionSelectorRec {
+ XtExtensionSelectProc proc;
+ int min, max;
+ XtPointer client_data;
+} ExtSelectRec;
+
+typedef struct _XtPerDisplayStruct {
+ InternalCallbackList destroy_callbacks;
+ Region region;
+ CaseConverterPtr case_cvt; /* user-registered case converters */
+ XtKeyProc defaultKeycodeTranslator;
+ XtAppContext appContext;
+ unsigned long keysyms_serial; /* for tracking MappingNotify events */
+ KeySym *keysyms; /* keycode to keysym table */
+ int keysyms_per_keycode; /* number of keysyms for each keycode*/
+ int min_keycode, max_keycode; /* range of keycodes */
+ KeySym *modKeysyms; /* keysym values for modToKeysysm */
+ ModToKeysymTable *modsToKeysyms; /* modifiers to Keysysms index table*/
+ unsigned char isModifier[32]; /* key-is-modifier-p bit table */
+ KeySym lock_meaning; /* Lock modifier meaning */
+ Modifiers mode_switch; /* keyboard group modifiers */
+ Modifiers num_lock; /* keyboard numlock modifiers */
+ Boolean being_destroyed;
+ Boolean rv; /* reverse_video resource */
+ XrmName name; /* resolved app name */
+ XrmClass class; /* application class */
+ Heap heap;
+ struct _GCrec *GClist; /* support for XtGetGC */
+ Drawable **pixmap_tab; /* ditto for XtGetGC */
+ String language; /* XPG language string */
+ XEvent last_event; /* last event dispatched */
+ Time last_timestamp; /* from last event dispatched */
+ int multi_click_time; /* for XtSetMultiClickTime */
+ struct _TMKeyContextRec* tm_context; /* for XtGetActionKeysym */
+ InternalCallbackList mapping_callbacks; /* special case for TM */
+ XtPerDisplayInputRec pdi; /* state for modal grabs & kbd focus */
+ struct _WWTable *WWtable; /* window to widget table */
+ XrmDatabase *per_screen_db; /* per screen resource databases */
+ XrmDatabase cmd_db; /* db from command line, if needed */
+ XrmDatabase server_db; /* resource property else .Xdefaults */
+ XtEventDispatchProc* dispatcher_list;
+ ExtSelectRec* ext_select_list;
+ int ext_select_count;
+ Widget hook_object;
+#ifndef X_NO_RESOURCE_CONFIGURATION_MANAGEMENT
+ Atom rcm_init; /* ResConfig - initialize */
+ Atom rcm_data; /* ResConfig - data atom */
+#endif
+} XtPerDisplayStruct, *XtPerDisplay;
+
+typedef struct _PerDisplayTable {
+ Display *dpy;
+ XtPerDisplayStruct perDpy;
+ struct _PerDisplayTable *next;
+} PerDisplayTable, *PerDisplayTablePtr;
+
+extern PerDisplayTablePtr _XtperDisplayList;
+
+extern XtPerDisplay _XtSortPerDisplayList(
+ Display* /* dpy */
+);
+
+extern XtPerDisplay _XtGetPerDisplay(
+ Display* /* dpy */
+);
+
+extern XtPerDisplayInputRec* _XtGetPerDisplayInput(
+ Display* /* dpy */
+);
+
+#if 0
+#ifdef DEBUG
+#define _XtGetPerDisplay(display) \
+ ((_XtperDisplayList != NULL && (_XtperDisplayList->dpy == (display))) \
+ ? &_XtperDisplayList->perDpy \
+ : _XtSortPerDisplayList(display))
+#define _XtGetPerDisplayInput(display) \
+ ((_XtperDisplayList != NULL && (_XtperDisplayList->dpy == (display))) \
+ ? &_XtperDisplayList->perDpy.pdi \
+ : &_XtSortPerDisplayList(display)->pdi)
+#else
+#define _XtGetPerDisplay(display) \
+ ((_XtperDisplayList->dpy == (display)) \
+ ? &_XtperDisplayList->perDpy \
+ : _XtSortPerDisplayList(display))
+#define _XtGetPerDisplayInput(display) \
+ ((_XtperDisplayList->dpy == (display)) \
+ ? &_XtperDisplayList->perDpy.pdi \
+ : &_XtSortPerDisplayList(display)->pdi)
+#endif /*DEBUG*/
+#endif
+
+extern void _XtDisplayInitialize(
+ Display* /* dpy */,
+ XtPerDisplay /* pd */,
+ _Xconst char* /* name */,
+ XrmOptionDescRec* /* urlist */,
+ Cardinal /* num_urs */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern void _XtCacheFlushTag(
+ XtAppContext /* app */,
+ XtPointer /* tag */
+);
+
+extern void _XtFreeActions(
+ struct _ActionListRec* /* action_table */
+);
+
+extern void _XtDoPhase2Destroy(
+ XtAppContext /* app */,
+ int /* dispatch_level */
+);
+
+extern void _XtDoFreeBindings(
+ XtAppContext /* app */
+);
+
+extern void _XtExtensionSelect(
+ Widget /* widget */
+);
+
+#define _XtSafeToDestroy(app) ((app)->dispatch_level == 0)
+
+extern void _XtAllocWWTable(
+ XtPerDisplay pd
+);
+
+extern void _XtFreeWWTable(
+ XtPerDisplay pd
+);
+
+extern String _XtGetUserName(String dest, int len);
+extern XrmDatabase _XtPreparseCommandLine(XrmOptionDescRec *urlist,
+ Cardinal num_urs, int argc, String *argv,
+ String *applName, String *displayName,
+ String *language);
+
+_XFUNCPROTOEND
+
+#endif /* _XtinitialI_h */