From 87027d4d788c04d3f721b27eb718207bbf30f61c Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 28 Mar 2011 15:43:50 +0000 Subject: Synchronised files --- X11/TranslateI.h | 1215 +++++++++++++++++++++++++++--------------------------- 1 file changed, 606 insertions(+), 609 deletions(-) (limited to 'X11/TranslateI.h') diff --git a/X11/TranslateI.h b/X11/TranslateI.h index 6cc3099cf..9894c3dd4 100644 --- a/X11/TranslateI.h +++ b/X11/TranslateI.h @@ -1,609 +1,606 @@ -/* $Xorg: TranslateI.h,v 1.4 2001/02/09 02:03:59 xorgcvs Exp $ */ - -/*********************************************************** - -Copyright 1987, 1988, 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/TranslateI.h,v 1.3 2001/12/14 19:56:32 dawes Exp $ */ - -/* - * TranslateI.h - Header file private to translation management - * - * Author: Gabe Beged-Dov, HP - * - * Former Author: Charles Haynes - * Digital Equipment Corporation - * Western Research Laboratory - * Date: Sat Aug 29 1987 - */ - -/*#define REFCNT_TRANSLATIONS*/ -#define CACHE_TRANSLATIONS - -#define TM_NO_MATCH (-2) - -#define _XtRStateTablePair "_XtStateTablePair" - -typedef unsigned char TMByteCard; -typedef unsigned short TMShortCard; -typedef unsigned long TMLongCard; -typedef short TMShortInt; - -typedef struct _TMTypeMatchRec *TMTypeMatch; -typedef struct _TMModifierMatchRec *TMModifierMatch; -typedef struct _TMEventRec *TMEventPtr; - -typedef Boolean (*MatchProc)(TMTypeMatch typeMatch, - TMModifierMatch modMatch, - TMEventPtr eventSeq); - -typedef struct _ModToKeysymTable { - Modifiers mask; - int count; - int idx; -} ModToKeysymTable; - -typedef struct _LateBindings { - unsigned int knot:1; - unsigned int pair:1; - unsigned short ref_count; /* garbage collection */ - KeySym keysym; -} LateBindings, *LateBindingsPtr; - -typedef short ModifierMask; - -typedef struct _ActionsRec *ActionPtr; -typedef struct _ActionsRec { - int idx; /* index into quarkTable to find proc */ - String *params; /* pointer to array of params */ - Cardinal num_params; /* number of params */ - ActionPtr next; /* next action to perform */ -} ActionRec; - -typedef struct _XtStateRec *StatePtr; -typedef struct _XtStateRec { - unsigned int isCycleStart:1; - unsigned int isCycleEnd:1; - TMShortCard typeIndex; - TMShortCard modIndex; - ActionPtr actions; /* rhs list of actions to perform */ - StatePtr nextLevel; -}StateRec; - - -#define XtTableReplace 0 -#define XtTableAugment 1 -#define XtTableOverride 2 -#define XtTableUnmerge 3 - -typedef unsigned int _XtTranslateOp; - -/* - * New Definitions - */ -typedef struct _TMModifierMatchRec{ - TMLongCard modifiers; - TMLongCard modifierMask; - LateBindingsPtr lateModifiers; - Boolean standard; -}TMModifierMatchRec; - -typedef struct _TMTypeMatchRec{ - TMLongCard eventType; - TMLongCard eventCode; - TMLongCard eventCodeMask; - MatchProc matchEvent; -}TMTypeMatchRec; - -typedef struct _TMBranchHeadRec { - unsigned int isSimple:1; - unsigned int hasActions:1; - unsigned int hasCycles:1; - unsigned int more:13; - TMShortCard typeIndex; - TMShortCard modIndex; -}TMBranchHeadRec, *TMBranchHead; - -/* NOTE: elements of this structure must match those of - * TMComplexStateTreeRec and TMParseStateTreeRec. - */ -typedef struct _TMSimpleStateTreeRec{ - unsigned int isSimple:1; - unsigned int isAccelerator:1; - unsigned int mappingNotifyInterest:1; - unsigned int refCount:13; - TMShortCard numBranchHeads; - TMShortCard numQuarks; /* # of entries in quarkTbl */ - TMShortCard unused; /* to ensure same alignment */ - TMBranchHeadRec *branchHeadTbl; - XrmQuark *quarkTbl; /* table of quarkified rhs*/ -}TMSimpleStateTreeRec, *TMSimpleStateTree; - -/* NOTE: elements of this structure must match those of - * TMSimpleStateTreeRec and TMParseStateTreeRec. - */ -typedef struct _TMComplexStateTreeRec{ - unsigned int isSimple:1; - unsigned int isAccelerator:1; - unsigned int mappingNotifyInterest:1; - unsigned int refCount:13; - TMShortCard numBranchHeads; - TMShortCard numQuarks; /* # of entries in quarkTbl */ - TMShortCard numComplexBranchHeads; - TMBranchHeadRec *branchHeadTbl; - XrmQuark *quarkTbl; /* table of quarkified rhs*/ - StatePtr *complexBranchHeadTbl; -}TMComplexStateTreeRec, *TMComplexStateTree; - -/* NOTE: elements of this structure must match those of - * TMSimpleStateTreeRec and TMComplexStateTreeRec. - */ -typedef struct _TMParseStateTreeRec{ - unsigned int isSimple:1; - unsigned int isAccelerator:1; - unsigned int mappingNotifyInterest:1; - unsigned int isStackQuarks:1; - unsigned int isStackBranchHeads:1; - unsigned int isStackComplexBranchHeads:1; - unsigned int unused:10; /* to ensure correct alignment */ - TMShortCard numBranchHeads; - TMShortCard numQuarks; /* # of entries in quarkTbl */ - TMShortCard numComplexBranchHeads; - TMBranchHeadRec *branchHeadTbl; - XrmQuark *quarkTbl; /* table of quarkified rhs*/ - StatePtr *complexBranchHeadTbl; - TMShortCard branchHeadTblSize; - TMShortCard quarkTblSize; /*total size of quarkTbl */ - TMShortCard complexBranchHeadTblSize; - StatePtr head; -}TMParseStateTreeRec, *TMParseStateTree; - -typedef union _TMStateTreeRec{ - TMSimpleStateTreeRec simple; - TMParseStateTreeRec parse; - TMComplexStateTreeRec complex; -}*TMStateTree, **TMStateTreePtr, **TMStateTreeList; - -typedef struct _TMSimpleBindProcsRec { - XtActionProc *procs; -}TMSimpleBindProcsRec, *TMSimpleBindProcs; - -typedef struct _TMComplexBindProcsRec { - Widget widget; /*widgetID to pass to action Proc*/ - XtTranslations aXlations; - XtActionProc *procs; -}TMComplexBindProcsRec, *TMComplexBindProcs; - -typedef struct _TMSimpleBindDataRec { - unsigned int isComplex:1; /* must be first */ - TMSimpleBindProcsRec bindTbl[1]; /* variable length */ -}TMSimpleBindDataRec, *TMSimpleBindData; - -typedef struct _TMComplexBindDataRec { - unsigned int isComplex:1; /* must be first */ - struct _ATranslationData *accel_context; /* for GetValues */ - TMComplexBindProcsRec bindTbl[1]; /* variable length */ -}TMComplexBindDataRec, *TMComplexBindData; - -typedef union _TMBindDataRec{ - TMSimpleBindDataRec simple; - TMComplexBindDataRec complex; -}*TMBindData; - -typedef struct _TranslationData{ - unsigned char hasBindings; /* must be first */ - unsigned char operation; /*replace,augment,override*/ - TMShortCard numStateTrees; - struct _TranslationData *composers[2]; - EventMask eventMask; - TMStateTree stateTreeTbl[1]; /* variable length */ -}TranslationData; - -/* - * ATranslations is returned by GetValues for translations that contain - * accelerators. The TM can differentiate between this and TranslationData - * (that don't have a bindTbl) by looking at the first field (hasBindings) - * of either structure. All ATranslationData structures associated with a - * widget are chained off the BindData record of the widget. - */ -typedef struct _ATranslationData{ - unsigned char hasBindings; /* must be first */ - unsigned char operation; - struct _TranslationData *xlations; /* actual translations */ - struct _ATranslationData *next; /* chain the contexts together */ - TMComplexBindProcsRec bindTbl[1]; /* accelerator bindings */ -}ATranslationData, *ATranslations; - -typedef struct _TMConvertRec { - XtTranslations old; /* table to merge into */ - XtTranslations new; /* table to merge from */ -} TMConvertRec; - -#define _XtEventTimerEventType ((TMLongCard)~0L) -#define KeysymModMask (1L<<27) /* private to TM */ -#define AnyButtonMask (1L<<28) /* private to TM */ - -typedef struct _EventRec { - TMLongCard modifiers; - TMLongCard modifierMask; - LateBindingsPtr lateModifiers; - TMLongCard eventType; - TMLongCard eventCode; - TMLongCard eventCodeMask; - MatchProc matchEvent; - Boolean standard; -} Event; - -typedef struct _EventSeqRec *EventSeqPtr; -typedef struct _EventSeqRec { - Event event; /* X event description */ - StatePtr state; /* private to state table builder */ - EventSeqPtr next; /* next event on line */ - ActionPtr actions; /* r.h.s. list of actions to perform */ -} EventSeqRec; - -typedef EventSeqRec EventRec; -typedef EventSeqPtr EventPtr; - -typedef struct _TMEventRec { - XEvent *xev; - Event event; -}TMEventRec; - -typedef struct _ActionHookRec { - struct _ActionHookRec* next; /* must remain first */ - XtAppContext app; - XtActionHookProc proc; - XtPointer closure; -} ActionHookRec, *ActionHook; - -/* choose a number between 2 and 8 */ -#define TMKEYCACHELOG2 6 -#define TMKEYCACHESIZE (1<> 4)])[(idx) & 15])) -#define TMGetModifierMatch(idx) \ - ((TMModifierMatch) \ - &((_XtGlobalTM.modMatchSegmentTbl[(idx) >> 4])[(idx) & 15])) - -/* Useful Access Macros */ -#define TMNewMatchSemantics() (_XtGlobalTM.newMatchSemantics) -#define TMBranchMore(branch) (branch->more) -#define TMComplexBranchHead(tree, br) \ - (((TMComplexStateTree)tree)->complexBranchHeadTbl[TMBranchMore(br)]) - -#define TMGetComplexBindEntry(bindData, idx) \ - ((TMComplexBindProcs)&(((TMComplexBindData)bindData)->bindTbl[idx])) - -#define TMGetSimpleBindEntry(bindData, idx) \ - ((TMSimpleBindProcs)&(((TMSimpleBindData)bindData)->bindTbl[idx])) - - -#define _InitializeKeysymTables(dpy, pd) \ - if (pd->keysyms == NULL) \ - _XtBuildKeysymTables(dpy, pd) - -/* - * Internal Functions - */ - -extern void _XtPopup( - Widget /* widget */, - XtGrabKind /* grab_kind */, - _XtBoolean /* spring_loaded */ -); - -extern String _XtPrintXlations( - Widget /* w */, - XtTranslations /* xlations */, - Widget /* accelWidget */, - _XtBoolean /* includeRHS */ -); - -extern void _XtRegisterGrabs( - Widget /* widget */ -); - -extern XtPointer _XtInitializeActionData( - struct _XtActionsRec * /* actions */, - Cardinal /* count */, - _XtBoolean /* inPlace */ -); - -extern void _XtAddEventSeqToStateTree( - EventSeqPtr /* eventSeq */, - TMParseStateTree /* stateTree */ -); - -extern Boolean _XtMatchUsingStandardMods( - TMTypeMatch /* typeMatch */, - TMModifierMatch /* modMatch */, - TMEventPtr /* eventSeq */ -); - -extern Boolean _XtMatchUsingDontCareMods( - TMTypeMatch /* typeMatch */, - TMModifierMatch /* modMatch */, - TMEventPtr /* eventSeq */ -); - -extern Boolean _XtRegularMatch( - TMTypeMatch /* typeMatch */, - TMModifierMatch /* modMatch */, - TMEventPtr /* eventSeq */ -); - -extern Boolean _XtMatchAtom( - TMTypeMatch /* typeMatch */, - TMModifierMatch /* modMatch */, - TMEventPtr /* eventSeq */ -); - -extern void _XtTranslateEvent( - Widget /* widget */, - XEvent* /* event */ -); - -#include "CallbackI.h" -#include "EventI.h" -#include "HookObjI.h" -#include "PassivGraI.h" -#include "ThreadsI.h" -#include "InitialI.h" -#include "ResourceI.h" -#include "StringDefs.h" - -extern void _XtBuildKeysymTables(Display *dpy, XtPerDisplay pd); - -#ifndef NO_MIT_HACKS -extern void _XtDisplayTranslations( - Widget /* widget */, - XEvent* /* event */, - String* /* params */, - Cardinal* /* num_params */ -); - -extern void _XtDisplayAccelerators( - Widget /* widget */, - XEvent* /* event */, - String* /* params */, - Cardinal* /* num_params */ -); - -extern void _XtDisplayInstalledAccelerators( - Widget /* widget */, - XEvent* /* event */, - String* /* params */, - Cardinal* /* num_params */ -); -#endif /* ifndef NO_MIT_HACKS */ - -extern void _XtPopupInitialize( - XtAppContext /* app_context */ -); - -extern void _XtBindActions( - Widget /* widget */, - XtTM /* tm_rec */ -); - -extern Boolean _XtComputeLateBindings( - Display* /* dpy */, - LateBindingsPtr /* lateModifiers */, - Modifiers* /* computed */, - Modifiers* /* computedMask */ -); - -extern XtTranslations _XtCreateXlations( - TMStateTree * /* stateTrees */, - TMShortCard /* numStateTrees */, - XtTranslations /* first */, - XtTranslations /* second */ -); - -extern Boolean _XtCvtMergeTranslations( - Display* /* dpy */, - XrmValuePtr /* args */, - Cardinal* /* num_args */, - XrmValuePtr /* from */, - XrmValuePtr /* to */, - XtPointer* /* closure_ret */ -); - -void _XtRemoveStateTreeByIndex( - XtTranslations /* xlations */, - TMShortCard /* i */); - -void _XtFreeTranslations( - XtAppContext /* app */, - XrmValuePtr /* toVal */, - XtPointer /* closure */, - XrmValuePtr /* args */, - Cardinal* /* num_args */ -); - -extern TMShortCard _XtGetModifierIndex( - Event* /* event */ -); - -extern TMShortCard _XtGetQuarkIndex( - TMParseStateTree /* stateTreePtr */, - XrmQuark /* quark */ -); - -extern XtTranslations _XtGetTranslationValue( - Widget /* widget */ -); - -extern TMShortCard _XtGetTypeIndex( - Event* /* event */ -); - -extern void _XtGrabInitialize( - XtAppContext /* app */ -); - -extern void _XtInstallTranslations( - Widget /* widget */ -); - -extern void _XtRemoveTranslations( - Widget /* widget */ -); - -extern void _XtDestroyTMData( - Widget /* widget */ -); - -extern void _XtMergeTranslations( - Widget /* widget */, - XtTranslations /* newXlations */, - _XtTranslateOp /* operation */ -); - -extern void _XtActionInitialize( - XtAppContext /* app */ -); - -extern TMStateTree _XtParseTreeToStateTree( - TMParseStateTree /* parseTree */ -); - -extern String _XtPrintActions( - ActionRec* /* actions */, - XrmQuark* /* quarkTbl */ -); - -extern String _XtPrintState( - TMStateTree /* stateTree */, - TMBranchHead /* branchHead */); - -extern String _XtPrintEventSeq( - EventSeqPtr /* eventSeq */, - Display* /* dpy */ -); - -typedef Boolean (*_XtTraversalProc)( - StatePtr /* state */, - XtPointer /* data */ -); - -extern void _XtTraverseStateTree( - TMStateTree /* tree */, - _XtTraversalProc /* func */, - XtPointer /* data */ -); - -extern void _XtTranslateInitialize( - void -); - -extern void _XtAddTMConverters( - ConverterTable /* table */ -); - -extern void _XtUnbindActions( - Widget /* widget */, - XtTranslations /* xlations */, - TMBindData /* bindData */ -); - -extern void _XtUnmergeTranslations( - Widget /* widget */, - XtTranslations /* xlations */ -); - -/* TMKey.c */ -extern void _XtAllocTMContext(XtPerDisplay pd); - -_XFUNCPROTOEND +/*********************************************************** + +Copyright 1987, 1988, 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. + +******************************************************************/ + +/* + * TranslateI.h - Header file private to translation management + * + * Author: Gabe Beged-Dov, HP + * + * Former Author: Charles Haynes + * Digital Equipment Corporation + * Western Research Laboratory + * Date: Sat Aug 29 1987 + */ + +/*#define REFCNT_TRANSLATIONS*/ +#define CACHE_TRANSLATIONS + +#define TM_NO_MATCH (-2) + +#define _XtRStateTablePair "_XtStateTablePair" + +typedef unsigned char TMByteCard; +typedef unsigned short TMShortCard; +typedef unsigned long TMLongCard; +typedef short TMShortInt; + +typedef struct _TMTypeMatchRec *TMTypeMatch; +typedef struct _TMModifierMatchRec *TMModifierMatch; +typedef struct _TMEventRec *TMEventPtr; + +typedef Boolean (*MatchProc)(TMTypeMatch typeMatch, + TMModifierMatch modMatch, + TMEventPtr eventSeq); + +typedef struct _ModToKeysymTable { + Modifiers mask; + int count; + int idx; +} ModToKeysymTable; + +typedef struct _LateBindings { + unsigned int knot:1; + unsigned int pair:1; + unsigned short ref_count; /* garbage collection */ + KeySym keysym; +} LateBindings, *LateBindingsPtr; + +typedef short ModifierMask; + +typedef struct _ActionsRec *ActionPtr; +typedef struct _ActionsRec { + int idx; /* index into quarkTable to find proc */ + String *params; /* pointer to array of params */ + Cardinal num_params; /* number of params */ + ActionPtr next; /* next action to perform */ +} ActionRec; + +typedef struct _XtStateRec *StatePtr; +typedef struct _XtStateRec { + unsigned int isCycleStart:1; + unsigned int isCycleEnd:1; + TMShortCard typeIndex; + TMShortCard modIndex; + ActionPtr actions; /* rhs list of actions to perform */ + StatePtr nextLevel; +}StateRec; + + +#define XtTableReplace 0 +#define XtTableAugment 1 +#define XtTableOverride 2 +#define XtTableUnmerge 3 + +typedef unsigned int _XtTranslateOp; + +/* + * New Definitions + */ +typedef struct _TMModifierMatchRec{ + TMLongCard modifiers; + TMLongCard modifierMask; + LateBindingsPtr lateModifiers; + Boolean standard; +}TMModifierMatchRec; + +typedef struct _TMTypeMatchRec{ + TMLongCard eventType; + TMLongCard eventCode; + TMLongCard eventCodeMask; + MatchProc matchEvent; +}TMTypeMatchRec; + +typedef struct _TMBranchHeadRec { + unsigned int isSimple:1; + unsigned int hasActions:1; + unsigned int hasCycles:1; + unsigned int more:13; + TMShortCard typeIndex; + TMShortCard modIndex; +}TMBranchHeadRec, *TMBranchHead; + +/* NOTE: elements of this structure must match those of + * TMComplexStateTreeRec and TMParseStateTreeRec. + */ +typedef struct _TMSimpleStateTreeRec{ + unsigned int isSimple:1; + unsigned int isAccelerator:1; + unsigned int mappingNotifyInterest:1; + unsigned int refCount:13; + TMShortCard numBranchHeads; + TMShortCard numQuarks; /* # of entries in quarkTbl */ + TMShortCard unused; /* to ensure same alignment */ + TMBranchHeadRec *branchHeadTbl; + XrmQuark *quarkTbl; /* table of quarkified rhs*/ +}TMSimpleStateTreeRec, *TMSimpleStateTree; + +/* NOTE: elements of this structure must match those of + * TMSimpleStateTreeRec and TMParseStateTreeRec. + */ +typedef struct _TMComplexStateTreeRec{ + unsigned int isSimple:1; + unsigned int isAccelerator:1; + unsigned int mappingNotifyInterest:1; + unsigned int refCount:13; + TMShortCard numBranchHeads; + TMShortCard numQuarks; /* # of entries in quarkTbl */ + TMShortCard numComplexBranchHeads; + TMBranchHeadRec *branchHeadTbl; + XrmQuark *quarkTbl; /* table of quarkified rhs*/ + StatePtr *complexBranchHeadTbl; +}TMComplexStateTreeRec, *TMComplexStateTree; + +/* NOTE: elements of this structure must match those of + * TMSimpleStateTreeRec and TMComplexStateTreeRec. + */ +typedef struct _TMParseStateTreeRec{ + unsigned int isSimple:1; + unsigned int isAccelerator:1; + unsigned int mappingNotifyInterest:1; + unsigned int isStackQuarks:1; + unsigned int isStackBranchHeads:1; + unsigned int isStackComplexBranchHeads:1; + unsigned int unused:10; /* to ensure correct alignment */ + TMShortCard numBranchHeads; + TMShortCard numQuarks; /* # of entries in quarkTbl */ + TMShortCard numComplexBranchHeads; + TMBranchHeadRec *branchHeadTbl; + XrmQuark *quarkTbl; /* table of quarkified rhs*/ + StatePtr *complexBranchHeadTbl; + TMShortCard branchHeadTblSize; + TMShortCard quarkTblSize; /*total size of quarkTbl */ + TMShortCard complexBranchHeadTblSize; + StatePtr head; +}TMParseStateTreeRec, *TMParseStateTree; + +typedef union _TMStateTreeRec{ + TMSimpleStateTreeRec simple; + TMParseStateTreeRec parse; + TMComplexStateTreeRec complex; +}*TMStateTree, **TMStateTreePtr, **TMStateTreeList; + +typedef struct _TMSimpleBindProcsRec { + XtActionProc *procs; +}TMSimpleBindProcsRec, *TMSimpleBindProcs; + +typedef struct _TMComplexBindProcsRec { + Widget widget; /*widgetID to pass to action Proc*/ + XtTranslations aXlations; + XtActionProc *procs; +}TMComplexBindProcsRec, *TMComplexBindProcs; + +typedef struct _TMSimpleBindDataRec { + unsigned int isComplex:1; /* must be first */ + TMSimpleBindProcsRec bindTbl[1]; /* variable length */ +}TMSimpleBindDataRec, *TMSimpleBindData; + +typedef struct _TMComplexBindDataRec { + unsigned int isComplex:1; /* must be first */ + struct _ATranslationData *accel_context; /* for GetValues */ + TMComplexBindProcsRec bindTbl[1]; /* variable length */ +}TMComplexBindDataRec, *TMComplexBindData; + +typedef union _TMBindDataRec{ + TMSimpleBindDataRec simple; + TMComplexBindDataRec complex; +}*TMBindData; + +typedef struct _TranslationData{ + unsigned char hasBindings; /* must be first */ + unsigned char operation; /*replace,augment,override*/ + TMShortCard numStateTrees; + struct _TranslationData *composers[2]; + EventMask eventMask; + TMStateTree stateTreeTbl[1]; /* variable length */ +}TranslationData; + +/* + * ATranslations is returned by GetValues for translations that contain + * accelerators. The TM can differentiate between this and TranslationData + * (that don't have a bindTbl) by looking at the first field (hasBindings) + * of either structure. All ATranslationData structures associated with a + * widget are chained off the BindData record of the widget. + */ +typedef struct _ATranslationData{ + unsigned char hasBindings; /* must be first */ + unsigned char operation; + struct _TranslationData *xlations; /* actual translations */ + struct _ATranslationData *next; /* chain the contexts together */ + TMComplexBindProcsRec bindTbl[1]; /* accelerator bindings */ +}ATranslationData, *ATranslations; + +typedef struct _TMConvertRec { + XtTranslations old; /* table to merge into */ + XtTranslations new; /* table to merge from */ +} TMConvertRec; + +#define _XtEventTimerEventType ((TMLongCard)~0L) +#define KeysymModMask (1L<<27) /* private to TM */ +#define AnyButtonMask (1L<<28) /* private to TM */ + +typedef struct _EventRec { + TMLongCard modifiers; + TMLongCard modifierMask; + LateBindingsPtr lateModifiers; + TMLongCard eventType; + TMLongCard eventCode; + TMLongCard eventCodeMask; + MatchProc matchEvent; + Boolean standard; +} Event; + +typedef struct _EventSeqRec *EventSeqPtr; +typedef struct _EventSeqRec { + Event event; /* X event description */ + StatePtr state; /* private to state table builder */ + EventSeqPtr next; /* next event on line */ + ActionPtr actions; /* r.h.s. list of actions to perform */ +} EventSeqRec; + +typedef EventSeqRec EventRec; +typedef EventSeqPtr EventPtr; + +typedef struct _TMEventRec { + XEvent *xev; + Event event; +}TMEventRec; + +typedef struct _ActionHookRec { + struct _ActionHookRec* next; /* must remain first */ + XtAppContext app; + XtActionHookProc proc; + XtPointer closure; +} ActionHookRec, *ActionHook; + +/* choose a number between 2 and 8 */ +#define TMKEYCACHELOG2 6 +#define TMKEYCACHESIZE (1<> 4)])[(idx) & 15])) +#define TMGetModifierMatch(idx) \ + ((TMModifierMatch) \ + &((_XtGlobalTM.modMatchSegmentTbl[(idx) >> 4])[(idx) & 15])) + +/* Useful Access Macros */ +#define TMNewMatchSemantics() (_XtGlobalTM.newMatchSemantics) +#define TMBranchMore(branch) (branch->more) +#define TMComplexBranchHead(tree, br) \ + (((TMComplexStateTree)tree)->complexBranchHeadTbl[TMBranchMore(br)]) + +#define TMGetComplexBindEntry(bindData, idx) \ + ((TMComplexBindProcs)&(((TMComplexBindData)bindData)->bindTbl[idx])) + +#define TMGetSimpleBindEntry(bindData, idx) \ + ((TMSimpleBindProcs)&(((TMSimpleBindData)bindData)->bindTbl[idx])) + + +#define _InitializeKeysymTables(dpy, pd) \ + if (pd->keysyms == NULL) \ + _XtBuildKeysymTables(dpy, pd) + +/* + * Internal Functions + */ + +extern void _XtPopup( + Widget /* widget */, + XtGrabKind /* grab_kind */, + _XtBoolean /* spring_loaded */ +); + +extern String _XtPrintXlations( + Widget /* w */, + XtTranslations /* xlations */, + Widget /* accelWidget */, + _XtBoolean /* includeRHS */ +); + +extern void _XtRegisterGrabs( + Widget /* widget */ +); + +extern XtPointer _XtInitializeActionData( + struct _XtActionsRec * /* actions */, + Cardinal /* count */, + _XtBoolean /* inPlace */ +); + +extern void _XtAddEventSeqToStateTree( + EventSeqPtr /* eventSeq */, + TMParseStateTree /* stateTree */ +); + +extern Boolean _XtMatchUsingStandardMods( + TMTypeMatch /* typeMatch */, + TMModifierMatch /* modMatch */, + TMEventPtr /* eventSeq */ +); + +extern Boolean _XtMatchUsingDontCareMods( + TMTypeMatch /* typeMatch */, + TMModifierMatch /* modMatch */, + TMEventPtr /* eventSeq */ +); + +extern Boolean _XtRegularMatch( + TMTypeMatch /* typeMatch */, + TMModifierMatch /* modMatch */, + TMEventPtr /* eventSeq */ +); + +extern Boolean _XtMatchAtom( + TMTypeMatch /* typeMatch */, + TMModifierMatch /* modMatch */, + TMEventPtr /* eventSeq */ +); + +extern void _XtTranslateEvent( + Widget /* widget */, + XEvent* /* event */ +); + +#include "CallbackI.h" +#include "EventI.h" +#include "HookObjI.h" +#include "PassivGraI.h" +#include "ThreadsI.h" +#include "InitialI.h" +#include "ResourceI.h" +#include "StringDefs.h" + +extern void _XtBuildKeysymTables(Display *dpy, XtPerDisplay pd); + +#ifndef NO_MIT_HACKS +extern void _XtDisplayTranslations( + Widget /* widget */, + XEvent* /* event */, + String* /* params */, + Cardinal* /* num_params */ +); + +extern void _XtDisplayAccelerators( + Widget /* widget */, + XEvent* /* event */, + String* /* params */, + Cardinal* /* num_params */ +); + +extern void _XtDisplayInstalledAccelerators( + Widget /* widget */, + XEvent* /* event */, + String* /* params */, + Cardinal* /* num_params */ +); +#endif /* ifndef NO_MIT_HACKS */ + +extern void _XtPopupInitialize( + XtAppContext /* app_context */ +); + +extern void _XtBindActions( + Widget /* widget */, + XtTM /* tm_rec */ +); + +extern Boolean _XtComputeLateBindings( + Display* /* dpy */, + LateBindingsPtr /* lateModifiers */, + Modifiers* /* computed */, + Modifiers* /* computedMask */ +); + +extern XtTranslations _XtCreateXlations( + TMStateTree * /* stateTrees */, + TMShortCard /* numStateTrees */, + XtTranslations /* first */, + XtTranslations /* second */ +); + +extern Boolean _XtCvtMergeTranslations( + Display* /* dpy */, + XrmValuePtr /* args */, + Cardinal* /* num_args */, + XrmValuePtr /* from */, + XrmValuePtr /* to */, + XtPointer* /* closure_ret */ +); + +void _XtRemoveStateTreeByIndex( + XtTranslations /* xlations */, + TMShortCard /* i */); + +void _XtFreeTranslations( + XtAppContext /* app */, + XrmValuePtr /* toVal */, + XtPointer /* closure */, + XrmValuePtr /* args */, + Cardinal* /* num_args */ +); + +extern TMShortCard _XtGetModifierIndex( + Event* /* event */ +); + +extern TMShortCard _XtGetQuarkIndex( + TMParseStateTree /* stateTreePtr */, + XrmQuark /* quark */ +); + +extern XtTranslations _XtGetTranslationValue( + Widget /* widget */ +); + +extern TMShortCard _XtGetTypeIndex( + Event* /* event */ +); + +extern void _XtGrabInitialize( + XtAppContext /* app */ +); + +extern void _XtInstallTranslations( + Widget /* widget */ +); + +extern void _XtRemoveTranslations( + Widget /* widget */ +); + +extern void _XtDestroyTMData( + Widget /* widget */ +); + +extern void _XtMergeTranslations( + Widget /* widget */, + XtTranslations /* newXlations */, + _XtTranslateOp /* operation */ +); + +extern void _XtActionInitialize( + XtAppContext /* app */ +); + +extern TMStateTree _XtParseTreeToStateTree( + TMParseStateTree /* parseTree */ +); + +extern String _XtPrintActions( + ActionRec* /* actions */, + XrmQuark* /* quarkTbl */ +); + +extern String _XtPrintState( + TMStateTree /* stateTree */, + TMBranchHead /* branchHead */); + +extern String _XtPrintEventSeq( + EventSeqPtr /* eventSeq */, + Display* /* dpy */ +); + +typedef Boolean (*_XtTraversalProc)( + StatePtr /* state */, + XtPointer /* data */ +); + +extern void _XtTraverseStateTree( + TMStateTree /* tree */, + _XtTraversalProc /* func */, + XtPointer /* data */ +); + +extern void _XtTranslateInitialize( + void +); + +extern void _XtAddTMConverters( + ConverterTable /* table */ +); + +extern void _XtUnbindActions( + Widget /* widget */, + XtTranslations /* xlations */, + TMBindData /* bindData */ +); + +extern void _XtUnmergeTranslations( + Widget /* widget */, + XtTranslations /* xlations */ +); + +/* TMKey.c */ +extern void _XtAllocTMContext(XtPerDisplay pd); + +_XFUNCPROTOEND -- cgit v1.2.3