aboutsummaryrefslogtreecommitdiff
path: root/X11
diff options
context:
space:
mode:
Diffstat (limited to 'X11')
-rw-r--r--X11/CallbackI.h119
-rw-r--r--X11/Composite.h102
-rw-r--r--X11/CompositeP.h113
-rw-r--r--X11/ConstrainP.h96
-rw-r--r--X11/Constraint.h62
-rw-r--r--X11/ConvertI.h96
-rw-r--r--X11/Core.h65
-rw-r--r--X11/CoreP.h170
-rw-r--r--X11/CreateI.h42
-rw-r--r--X11/EventI.h134
-rw-r--r--X11/HookObjI.h73
-rw-r--r--X11/ImUtil.h30
-rw-r--r--X11/InitialI.h430
-rw-r--r--X11/Intrinsic.h2595
-rw-r--r--X11/IntrinsicI.h229
-rw-r--r--X11/IntrinsicP.h324
-rw-r--r--X11/Object.h63
-rw-r--r--X11/ObjectP.h141
-rw-r--r--X11/PassivGraI.h185
-rw-r--r--X11/RectObj.h63
-rw-r--r--X11/RectObjP.h131
-rw-r--r--X11/ResConfigP.h76
-rw-r--r--X11/ResourceI.h100
-rw-r--r--X11/SelectionI.h168
-rw-r--r--X11/Shell.h564
-rw-r--r--X11/ShellI.h10
-rw-r--r--X11/ShellP.h436
-rw-r--r--X11/StringDefs.h1085
-rw-r--r--X11/ThreadsI.h129
-rw-r--r--X11/TranslateI.h606
-rw-r--r--X11/VarargsI.h66
-rw-r--r--X11/Vendor.h70
-rw-r--r--X11/VendorP.h102
-rw-r--r--X11/XKBlib.h1149
-rw-r--r--X11/Xauth.h149
-rw-r--r--X11/Xaw/AllWidgets.h37
-rw-r--r--X11/Xaw/AsciiSink.h77
-rw-r--r--X11/Xaw/AsciiSinkP.h95
-rw-r--r--X11/Xaw/AsciiSrc.h172
-rw-r--r--X11/Xaw/AsciiSrcP.h139
-rw-r--r--X11/Xaw/AsciiText.h123
-rw-r--r--X11/Xaw/AsciiTextP.h164
-rw-r--r--X11/Xaw/Box.h102
-rw-r--r--X11/Xaw/BoxP.h97
-rw-r--r--X11/Xaw/Cardinals.h42
-rw-r--r--X11/Xaw/Command.h116
-rw-r--r--X11/Xaw/CommandP.h111
-rw-r--r--X11/Xaw/Dialog.h98
-rw-r--r--X11/Xaw/DialogP.h100
-rw-r--r--X11/Xaw/Form.h167
-rw-r--r--X11/Xaw/FormP.h139
-rw-r--r--X11/Xaw/Grip.h96
-rw-r--r--X11/Xaw/GripP.h85
-rw-r--r--X11/Xaw/Label.h132
-rw-r--r--X11/Xaw/LabelP.h115
-rw-r--r--X11/Xaw/List.h234
-rw-r--r--X11/Xaw/ListP.h115
-rw-r--r--X11/Xaw/MenuButtoP.h79
-rw-r--r--X11/Xaw/MenuButton.h89
-rw-r--r--X11/Xaw/MultiSink.h110
-rw-r--r--X11/Xaw/MultiSinkP.h138
-rw-r--r--X11/Xaw/MultiSrc.h130
-rw-r--r--X11/Xaw/MultiSrcP.h179
-rw-r--r--X11/Xaw/Paned.h258
-rw-r--r--X11/Xaw/PanedP.h176
-rw-r--r--X11/Xaw/Panner.h105
-rw-r--r--X11/Xaw/PannerP.h106
-rw-r--r--X11/Xaw/Porthole.h61
-rw-r--r--X11/Xaw/PortholeP.h62
-rw-r--r--X11/Xaw/Repeater.h73
-rw-r--r--X11/Xaw/RepeaterP.h82
-rw-r--r--X11/Xaw/Reports.h55
-rw-r--r--X11/Xaw/Scrollbar.h133
-rw-r--r--X11/Xaw/ScrollbarP.h103
-rw-r--r--X11/Xaw/Simple.h113
-rw-r--r--X11/Xaw/SimpleMenP.h99
-rw-r--r--X11/Xaw/SimpleMenu.h171
-rw-r--r--X11/Xaw/SimpleP.h98
-rw-r--r--X11/Xaw/Sme.h71
-rw-r--r--X11/Xaw/SmeBSB.h96
-rw-r--r--X11/Xaw/SmeBSBP.h92
-rw-r--r--X11/Xaw/SmeLine.h69
-rw-r--r--X11/Xaw/SmeLineP.h73
-rw-r--r--X11/Xaw/SmeP.h88
-rw-r--r--X11/Xaw/StripCharP.h104
-rw-r--r--X11/Xaw/StripChart.h116
-rw-r--r--X11/Xaw/Template.c195
-rw-r--r--X11/Xaw/Template.h67
-rw-r--r--X11/Xaw/TemplateP.h65
-rw-r--r--X11/Xaw/Text.h370
-rw-r--r--X11/Xaw/TextP.h317
-rw-r--r--X11/Xaw/TextSink.h359
-rw-r--r--X11/Xaw/TextSinkP.h300
-rw-r--r--X11/Xaw/TextSrc.h275
-rw-r--r--X11/Xaw/TextSrcP.h258
-rw-r--r--X11/Xaw/Tip.h118
-rw-r--r--X11/Xaw/TipP.h75
-rw-r--r--X11/Xaw/Toggle.h179
-rw-r--r--X11/Xaw/ToggleP.h92
-rw-r--r--X11/Xaw/Tree.h135
-rw-r--r--X11/Xaw/TreeP.h137
-rw-r--r--X11/Xaw/VendorEP.h81
-rw-r--r--X11/Xaw/Viewport.h118
-rw-r--r--X11/Xaw/ViewportP.h107
-rw-r--r--X11/Xaw/XawImP.h210
-rw-r--r--X11/Xaw/XawInit.h62
-rw-r--r--X11/Xcms.h815
-rw-r--r--X11/Xdmcp.h181
-rw-r--r--X11/Xfuncproto.h126
-rw-r--r--X11/Xlib-xcb.h20
-rw-r--r--X11/Xlib.h4015
-rw-r--r--X11/XlibConf.h37
-rw-r--r--X11/Xlibint.h1337
-rw-r--r--X11/Xlocale.h37
-rw-r--r--X11/Xmu/Atoms.h123
-rw-r--r--X11/Xmu/CharSet.h73
-rw-r--r--X11/Xmu/CloseHook.h70
-rw-r--r--X11/Xmu/Converters.h277
-rw-r--r--X11/Xmu/CurUtil.h46
-rw-r--r--X11/Xmu/CvtCache.h59
-rw-r--r--X11/Xmu/DisplayQue.h152
-rw-r--r--X11/Xmu/Drawing.h158
-rw-r--r--X11/Xmu/Editres.h39
-rw-r--r--X11/Xmu/EditresP.h406
-rw-r--r--X11/Xmu/Error.h56
-rw-r--r--X11/Xmu/ExtAgent.h41
-rw-r--r--X11/Xmu/Initer.h55
-rw-r--r--X11/Xmu/Lookup.h124
-rw-r--r--X11/Xmu/Misc.h63
-rw-r--r--X11/Xmu/StdCmap.h116
-rw-r--r--X11/Xmu/StdSel.h54
-rw-r--r--X11/Xmu/SysUtil.h53
-rw-r--r--X11/Xmu/WhitePoint.h63
-rw-r--r--X11/Xmu/WidgetNode.h95
-rw-r--r--X11/Xmu/WinUtil.h61
-rw-r--r--X11/Xmu/Xct.h165
-rw-r--r--X11/Xmu/Xmu.h122
-rw-r--r--X11/Xpoll.h255
-rw-r--r--X11/Xregion.h192
-rw-r--r--X11/Xresource.h358
-rw-r--r--X11/Xtos.h72
-rw-r--r--X11/Xutil.h838
-rw-r--r--X11/Xw32defs.h3
-rw-r--r--X11/Xwindows.h4
-rw-r--r--X11/Xwinsock.h9
-rw-r--r--X11/cursorfont.h111
-rw-r--r--X11/extensions/MITMisc.h14
-rw-r--r--X11/extensions/XEVI.h15
-rw-r--r--X11/extensions/XI2proto.h5
-rw-r--r--X11/extensions/XKBbells.h2
-rw-r--r--X11/extensions/XKBconfig.h2
-rw-r--r--X11/extensions/XKBfile.h26
-rw-r--r--X11/extensions/XKBrules.h5
-rw-r--r--X11/extensions/XKM.h1
-rw-r--r--X11/extensions/XKMformat.h2
-rw-r--r--X11/extensions/XLbx.h111
-rw-r--r--X11/extensions/XShm.h40
-rw-r--r--X11/extensions/Xag.h26
-rw-r--r--X11/extensions/Xcup.h13
-rw-r--r--X11/extensions/Xdbe.h36
-rw-r--r--X11/extensions/Xext.h20
-rw-r--r--X11/extensions/Xge.h13
-rw-r--r--X11/extensions/Xinerama.h74
-rw-r--r--X11/extensions/Xrender.h528
-rw-r--r--X11/extensions/bigreqstr.h4
-rw-r--r--X11/extensions/dpms.h32
-rw-r--r--X11/extensions/extutil.h11
-rw-r--r--X11/extensions/lbxbuf.h51
-rw-r--r--X11/extensions/lbxbufstr.h45
-rw-r--r--X11/extensions/lbximage.h151
-rw-r--r--X11/extensions/multibuf.h118
-rw-r--r--X11/extensions/panoramiXext.h85
-rw-r--r--X11/extensions/recordstr.h6
-rw-r--r--X11/extensions/security.h36
-rw-r--r--X11/extensions/shape.h32
-rw-r--r--X11/extensions/sync.h224
-rw-r--r--X11/extensions/xcmiscstr.h4
-rw-r--r--X11/extensions/xtestext1.h262
-rw-r--r--X11/fonts/bdfint.h90
-rw-r--r--X11/fonts/bitmap.h109
-rw-r--r--X11/fonts/bufio.h93
-rw-r--r--X11/fonts/fntfil.h182
-rw-r--r--X11/fonts/fntfilio.h56
-rw-r--r--X11/fonts/fntfilst.h198
-rw-r--r--X11/fonts/fontenc.h124
-rw-r--r--X11/fonts/fontencc.h36
-rw-r--r--X11/fonts/fontmisc.h142
-rw-r--r--X11/fonts/fontmod.h16
-rw-r--r--X11/fonts/fontutil.h26
-rw-r--r--X11/fonts/fontxlfd.h100
-rw-r--r--X11/fonts/pcf.h102
-rw-r--r--X11/xpm.h478
-rw-r--r--X11/xtrans/Xtrans.c11
-rw-r--r--X11/xtrans/Xtransint.h7
-rw-r--r--X11/xtrans/Xtranslcl.c6
-rw-r--r--X11/xtrans/Xtranssock.c61
196 files changed, 32732 insertions, 1158 deletions
diff --git a/X11/CallbackI.h b/X11/CallbackI.h
new file mode 100644
index 000000000..d11134a5d
--- /dev/null
+++ b/X11/CallbackI.h
@@ -0,0 +1,119 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/****************************************************************
+ *
+ * Callbacks
+ *
+ ****************************************************************/
+
+typedef XrmResource **CallbackTable;
+
+#define _XtCBCalling 1
+#define _XtCBFreeAfterCalling 2
+
+_XFUNCPROTOBEGIN
+
+typedef struct internalCallbackRec {
+ unsigned short count;
+ char is_padded; /* contains NULL padding for external form */
+ char call_state; /* combination of _XtCB{FreeAfter}Calling */
+#ifdef LONG64
+ unsigned int align_pad; /* padding to align callback list */
+#endif
+ /* XtCallbackList */
+} InternalCallbackRec, *InternalCallbackList;
+
+typedef Boolean (*_XtConditionProc)(
+ XtPointer /* data */
+);
+
+extern void _XtAddCallback(
+ InternalCallbackList* /* callbacks */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void _XtAddCallbackOnce(
+ InternalCallbackList* /* callbacks */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern InternalCallbackList _XtCompileCallbackList(
+ XtCallbackList /* xtcallbacks */
+);
+
+extern XtCallbackList _XtGetCallbackList(
+ InternalCallbackList* /* callbacks */
+);
+
+extern void _XtRemoveAllCallbacks(
+ InternalCallbackList* /* callbacks */
+);
+
+extern void _XtRemoveCallback(
+ InternalCallbackList* /* callbacks */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void _XtPeekCallback(
+ Widget /* widget */,
+ XtCallbackList /* callbacks */,
+ XtCallbackProc * /* callback */,
+ XtPointer * /* closure */
+);
+
+extern void _XtCallConditionalCallbackList(
+ Widget /* widget */,
+ XtCallbackList /* callbacks */,
+ XtPointer /* call_data */,
+ _XtConditionProc /* cond_proc */
+);
+
+_XFUNCPROTOEND
diff --git a/X11/Composite.h b/X11/Composite.h
new file mode 100644
index 000000000..f9ab03e5a
--- /dev/null
+++ b/X11/Composite.h
@@ -0,0 +1,102 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtComposite_h
+#define _XtComposite_h
+
+typedef struct _CompositeClassRec *CompositeWidgetClass;
+
+typedef Cardinal (*XtOrderProc)(
+ Widget /* child */
+);
+
+_XFUNCPROTOBEGIN
+
+extern void XtManageChildren(
+ WidgetList /* children */,
+ Cardinal /* num_children */
+);
+
+extern void XtManageChild(
+ Widget /* child */
+);
+
+extern void XtUnmanageChildren(
+ WidgetList /* children */,
+ Cardinal /* num_children */
+);
+
+extern void XtUnmanageChild(
+ Widget /* child */
+);
+
+typedef void (*XtDoChangeProc)(
+ Widget /* composite_parent */,
+ WidgetList /* unmanage_children */,
+ Cardinal * /* num_unmanage_children */,
+ WidgetList /* manage_children */,
+ Cardinal * /* num_manage_children */,
+ XtPointer /* client_data */
+);
+
+extern void XtChangeManagedSet(
+ WidgetList /* unmanage_children */,
+ Cardinal /* num_unmanage_children */,
+ XtDoChangeProc /* do_change_proc */,
+ XtPointer /* client_data */,
+ WidgetList /* manage_children */,
+ Cardinal /* num_manage_children */
+);
+
+_XFUNCPROTOEND
+
+#ifndef VMS
+externalref WidgetClass compositeWidgetClass;
+#endif
+
+#endif /* _XtComposite_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/CompositeP.h b/X11/CompositeP.h
new file mode 100644
index 000000000..8c447bd7e
--- /dev/null
+++ b/X11/CompositeP.h
@@ -0,0 +1,113 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtCompositeP_h
+#define _XtCompositeP_h
+
+#include <X11/Composite.h>
+
+_XFUNCPROTOBEGIN
+
+/************************************************************************
+ *
+ * Additional instance fields for widgets of (sub)class 'Composite'
+ *
+ ************************************************************************/
+
+typedef struct _CompositePart {
+ WidgetList children; /* array of ALL widget children */
+ Cardinal num_children; /* total number of widget children */
+ Cardinal num_slots; /* number of slots in children array */
+ XtOrderProc insert_position; /* compute position of new child */
+} CompositePart,*CompositePtr;
+
+typedef struct _CompositeRec {
+ CorePart core;
+ CompositePart composite;
+} CompositeRec;
+
+/*********************************************************************
+ *
+ * Additional class fields for widgets of (sub)class 'Composite'
+ *
+ ********************************************************************/
+
+typedef struct _CompositeClassPart {
+ XtGeometryHandler geometry_manager; /* geometry manager for children */
+ XtWidgetProc change_managed; /* change managed state of child */
+ XtWidgetProc insert_child; /* physically add child to parent */
+ XtWidgetProc delete_child; /* physically remove child */
+ XtPointer extension; /* pointer to extension record */
+} CompositeClassPart,*CompositePartPtr;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 mandated for all extension records */
+ XrmQuark record_type; /* NULLQUARK; on CompositeClassPart */
+ long version; /* must be XtCompositeExtensionVersion */
+ Cardinal record_size; /* sizeof(CompositeClassExtensionRec) */
+ Boolean accepts_objects;
+ Boolean allows_change_managed_set;
+} CompositeClassExtensionRec, *CompositeClassExtension;
+
+
+typedef struct _CompositeClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+} CompositeClassRec;
+
+externalref CompositeClassRec compositeClassRec;
+
+_XFUNCPROTOEND
+
+#define XtCompositeExtensionVersion 2L
+#define XtInheritGeometryManager ((XtGeometryHandler) _XtInherit)
+#define XtInheritChangeManaged ((XtWidgetProc) _XtInherit)
+#define XtInheritInsertChild ((XtWidgetProc) _XtInherit)
+#define XtInheritDeleteChild ((XtWidgetProc) _XtInherit)
+
+#endif /* _XtCompositeP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ConstrainP.h b/X11/ConstrainP.h
new file mode 100644
index 000000000..eb2bb3180
--- /dev/null
+++ b/X11/ConstrainP.h
@@ -0,0 +1,96 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtConstraintP_h
+#define _XtConstraintP_h
+
+#include <X11/Constraint.h>
+
+_XFUNCPROTOBEGIN
+
+typedef struct _ConstraintPart {
+ XtPointer mumble; /* No new fields, keep C compiler happy */
+} ConstraintPart;
+
+typedef struct _ConstraintRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+} ConstraintRec, *ConstraintWidget;
+
+typedef struct _ConstraintClassPart {
+ XtResourceList resources; /* constraint resource list */
+ Cardinal num_resources; /* number of constraints in list */
+ Cardinal constraint_size; /* size of constraint record */
+ XtInitProc initialize; /* constraint initialization */
+ XtWidgetProc destroy; /* constraint destroy proc */
+ XtSetValuesFunc set_values; /* constraint set_values proc */
+ XtPointer extension; /* pointer to extension record */
+} ConstraintClassPart;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 mandated for all extension records */
+ XrmQuark record_type; /* NULLQUARK; on ConstraintClassPart */
+ long version; /* must be XtConstraintExtensionVersion */
+ Cardinal record_size; /* sizeof(ConstraintClassExtensionRec) */
+ XtArgsProc get_values_hook;
+} ConstraintClassExtensionRec, *ConstraintClassExtension;
+
+typedef struct _ConstraintClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+} ConstraintClassRec;
+
+externalref ConstraintClassRec constraintClassRec;
+
+_XFUNCPROTOEND
+
+#define XtConstraintExtensionVersion 1L
+
+#endif /* _XtConstraintP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Constraint.h b/X11/Constraint.h
new file mode 100644
index 000000000..cdc2de761
--- /dev/null
+++ b/X11/Constraint.h
@@ -0,0 +1,62 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtConstraint_h
+#define _XtConstraint_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _ConstraintClassRec *ConstraintWidgetClass;
+
+#ifndef VMS
+externalref WidgetClass constraintWidgetClass;
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtConstraint_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ConvertI.h b/X11/ConvertI.h
new file mode 100644
index 000000000..c5ced0c35
--- /dev/null
+++ b/X11/ConvertI.h
@@ -0,0 +1,96 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+_XFUNCPROTOBEGIN
+
+/* Representation types */
+
+extern XrmQuark _XtQString;
+
+/*
+ * Resource conversions
+ */
+
+typedef struct _ConverterRec **ConverterTable;
+
+extern void _XtAddDefaultConverters(
+ ConverterTable /* table */
+);
+
+extern void _XtSetDefaultConverterTable(
+ ConverterTable* /* table */
+);
+
+extern void _XtFreeConverterTable(
+ ConverterTable /* table */
+);
+
+extern void _XtTableAddConverter(
+ ConverterTable /* table */,
+ XrmRepresentation /* from_type */,
+ XrmRepresentation /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ _XtBoolean /* new_style */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */,
+ _XtBoolean /* global */
+);
+
+extern Boolean _XtConvert(
+ Widget /* widget */,
+ XrmRepresentation /* from_type */,
+ XrmValuePtr /* from */,
+ XrmRepresentation /* to_type */,
+ XrmValuePtr /* to */,
+ XtCacheRef* /* cache_ref_return */
+);
+
+void _XtConvertInitialize(void);
+
+_XFUNCPROTOEND
diff --git a/X11/Core.h b/X11/Core.h
new file mode 100644
index 000000000..7e1bc4658
--- /dev/null
+++ b/X11/Core.h
@@ -0,0 +1,65 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtCore_h
+#define _XtCore_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _WidgetClassRec *CoreWidgetClass;
+typedef struct _WidgetRec *CoreWidget;
+externalref WidgetClass coreWidgetClass;
+
+#ifndef VMS
+externalref WidgetClass widgetClass;
+
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtCore_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/CoreP.h b/X11/CoreP.h
new file mode 100644
index 000000000..c383cc98d
--- /dev/null
+++ b/X11/CoreP.h
@@ -0,0 +1,170 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef XtCoreP_h
+#define XtCoreP_h
+
+#include <X11/Core.h>
+
+_XFUNCPROTOBEGIN
+
+externalref int _XtInheritTranslations;
+
+#define XtInheritTranslations ((String) &_XtInheritTranslations)
+#define XtInheritRealize ((XtRealizeProc) _XtInherit)
+#define XtInheritResize ((XtWidgetProc) _XtInherit)
+#define XtInheritExpose ((XtExposeProc) _XtInherit)
+#define XtInheritSetValuesAlmost ((XtAlmostProc) _XtInherit)
+#define XtInheritAcceptFocus ((XtAcceptFocusProc) _XtInherit)
+#define XtInheritQueryGeometry ((XtGeometryHandler) _XtInherit)
+#define XtInheritDisplayAccelerator ((XtStringProc) _XtInherit)
+
+/***************************************************************
+ * Widget Core Data Structures
+ *
+ *
+ **************************************************************/
+
+typedef struct _CorePart {
+ Widget self; /* pointer to widget itself */
+ WidgetClass widget_class; /* pointer to Widget's ClassRec */
+ Widget parent; /* parent widget */
+ XrmName xrm_name; /* widget resource name quarkified */
+ Boolean being_destroyed; /* marked for destroy */
+ XtCallbackList destroy_callbacks; /* who to call when widget destroyed */
+ XtPointer constraints; /* constraint record */
+ Position x, y; /* window position */
+ Dimension width, height; /* window dimensions */
+ Dimension border_width; /* window border width */
+ Boolean managed; /* is widget geometry managed? */
+ Boolean sensitive; /* is widget sensitive to user events*/
+ Boolean ancestor_sensitive; /* are all ancestors sensitive? */
+ XtEventTable event_table; /* private to event dispatcher */
+ XtTMRec tm; /* translation management */
+ XtTranslations accelerators; /* accelerator translations */
+ Pixel border_pixel; /* window border pixel */
+ Pixmap border_pixmap; /* window border pixmap or NULL */
+ WidgetList popup_list; /* list of popups */
+ Cardinal num_popups; /* how many popups */
+ String name; /* widget resource name */
+ Screen *screen; /* window's screen */
+ Colormap colormap; /* colormap */
+ Window window; /* window ID */
+ Cardinal depth; /* number of planes in window */
+ Pixel background_pixel; /* window background pixel */
+ Pixmap background_pixmap; /* window background pixmap or NULL */
+ Boolean visible; /* is window mapped and not occluded?*/
+ Boolean mapped_when_managed;/* map window if it's managed? */
+} CorePart;
+
+typedef struct _WidgetRec {
+ CorePart core;
+ } WidgetRec, CoreRec;
+
+
+
+/******************************************************************
+ *
+ * Core Class Structure. Widgets, regardless of their class, will have
+ * these fields. All widgets of a given class will have the same values
+ * for these fields. Widgets of a given class may also have additional
+ * common fields. These additional fields are included in incremental
+ * class structures, such as CommandClass.
+ *
+ * The fields that are specific to this subclass, as opposed to fields that
+ * are part of the superclass, are called "subclass fields" below. Many
+ * procedures are responsible only for the subclass fields, and not for
+ * any superclass fields.
+ *
+ ********************************************************************/
+
+typedef struct _CoreClassPart {
+ WidgetClass superclass; /* pointer to superclass ClassRec */
+ String class_name; /* widget resource class name */
+ Cardinal widget_size; /* size in bytes of widget record */
+ XtProc class_initialize; /* class initialization proc */
+ XtWidgetClassProc class_part_initialize; /* dynamic initialization */
+ XtEnum class_inited; /* has class been initialized? */
+ XtInitProc initialize; /* initialize subclass fields */
+ XtArgsProc initialize_hook; /* notify that initialize called */
+ XtRealizeProc realize; /* XCreateWindow for widget */
+ XtActionList actions; /* widget semantics name to proc map */
+ Cardinal num_actions; /* number of entries in actions */
+ XtResourceList resources; /* resources for subclass fields */
+ Cardinal num_resources; /* number of entries in resources */
+ XrmClass xrm_class; /* resource class quarkified */
+ Boolean compress_motion; /* compress MotionNotify for widget */
+ XtEnum compress_exposure; /* compress Expose events for widget*/
+ Boolean compress_enterleave;/* compress enter and leave events */
+ Boolean visible_interest; /* select for VisibilityNotify */
+ XtWidgetProc destroy; /* free data for subclass pointers */
+ XtWidgetProc resize; /* geom manager changed widget size */
+ XtExposeProc expose; /* rediplay window */
+ XtSetValuesFunc set_values; /* set subclass resource values */
+ XtArgsFunc set_values_hook; /* notify that set_values called */
+ XtAlmostProc set_values_almost; /* set_values got "Almost" geo reply */
+ XtArgsProc get_values_hook; /* notify that get_values called */
+ XtAcceptFocusProc accept_focus; /* assign input focus to widget */
+ XtVersionType version; /* version of intrinsics used */
+ XtPointer callback_private; /* list of callback offsets */
+ String tm_table; /* state machine */
+ XtGeometryHandler query_geometry; /* return preferred geometry */
+ XtStringProc display_accelerator;/* display your accelerator */
+ XtPointer extension; /* pointer to extension record */
+ } CoreClassPart;
+
+typedef struct _WidgetClassRec {
+ CoreClassPart core_class;
+} WidgetClassRec, CoreClassRec;
+
+externalref WidgetClassRec widgetClassRec;
+#define coreClassRec widgetClassRec
+
+_XFUNCPROTOEND
+
+#endif /* _XtCoreP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/CreateI.h b/X11/CreateI.h
new file mode 100644
index 000000000..77d6af652
--- /dev/null
+++ b/X11/CreateI.h
@@ -0,0 +1,42 @@
+#ifndef _XtcreateI_h
+#define _XtcreateI_h
+
+_XFUNCPROTOBEGIN
+
+extern Widget _XtCreateWidget(String name, WidgetClass widget_class,
+ Widget parent, ArgList args, Cardinal num_args,
+ XtTypedArgList typed_args,
+ Cardinal num_typed_args);
+extern Widget _XtCreatePopupShell(String name, WidgetClass widget_class,
+ Widget parent, ArgList args,
+ Cardinal num_args, XtTypedArgList typed_args,
+ Cardinal num_typed_args);
+extern Widget _XtAppCreateShell(String name, String class,
+ WidgetClass widget_class, Display *display,
+ ArgList args, Cardinal num_args,
+ XtTypedArgList typed_args,
+ Cardinal num_typed_args);
+extern Widget _XtCreateHookObj(Screen *screen);
+
+_XFUNCPROTOEND
+
+#include <stdarg.h>
+
+_XFUNCPROTOBEGIN
+
+/* VarCreate.c */
+extern Widget _XtVaOpenApplication(XtAppContext *app_context_return,
+ _Xconst char* application_class,
+ XrmOptionDescList options, Cardinal num_options,
+ int *argc_in_out, String *argv_in_out,
+ String *fallback_resources, WidgetClass widget_class,
+ va_list var_args);
+extern Widget _XtVaAppInitialize(XtAppContext *app_context_return,
+ _Xconst char* application_class,
+ XrmOptionDescList options, Cardinal num_options,
+ int *argc_in_out, String *argv_in_out,
+ String *fallback_resources, va_list var_args);
+
+_XFUNCPROTOEND
+
+#endif /* _XtcreateI_h */
diff --git a/X11/EventI.h b/X11/EventI.h
new file mode 100644
index 000000000..7817bc251
--- /dev/null
+++ b/X11/EventI.h
@@ -0,0 +1,134 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * Event.h - exported types and functions for toolkit event handler
+ *
+ * Author: Charles Haynes
+ * Digital Equipment Corporation
+ * Western Software Laboratory
+ * Date: Sun Dec 6 1987
+ */
+
+#ifndef _Event_h_
+#define _Event_h_
+
+typedef struct _XtGrabRec *XtGrabList;
+
+#include "PassivGraI.h"
+
+_XFUNCPROTOBEGIN
+
+extern void _XtEventInitialize(
+ void
+);
+
+typedef struct _XtEventRec {
+ XtEventTable next;
+ EventMask mask; /* also select_data count for RecExt */
+ XtEventHandler proc;
+ XtPointer closure;
+ unsigned int select:1;
+ unsigned int has_type_specifier:1;
+ unsigned int async:1; /* not used, here for Digital extension? */
+} XtEventRec;
+
+typedef struct _XtGrabRec {
+ XtGrabList next;
+ Widget widget;
+ unsigned int exclusive:1;
+ unsigned int spring_loaded:1;
+}XtGrabRec;
+
+typedef struct _BlockHookRec {
+ struct _BlockHookRec* next;
+ XtAppContext app;
+ XtBlockHookProc proc;
+ XtPointer closure;
+} BlockHookRec, *BlockHook;
+
+extern void _XtFreeEventTable(
+ XtEventTable* /* event_table */
+);
+
+extern Boolean _XtOnGrabList(
+ Widget /* widget */,
+ XtGrabRec* /* grabList */
+);
+
+extern void _XtRemoveAllInputs(
+ XtAppContext /* app */
+);
+
+extern void _XtRefreshMapping(
+ XEvent* /* event */,
+ _XtBoolean /* dispatch */
+);
+
+extern void _XtSendFocusEvent(
+ Widget /* child */,
+ int /* type */);
+
+extern EventMask _XtConvertTypeToMask(
+ int /* eventType */
+);
+
+/* EventUtil.c */
+extern Widget _XtFindRemapWidget(XEvent *event, Widget widget,
+ EventMask mask, XtPerDisplayInput pdi);
+extern void _XtUngrabBadGrabs(XEvent *event, Widget widget,
+ EventMask mask, XtPerDisplayInput pdi);
+extern void _XtFillAncestorList(Widget **listPtr, int *maxElemsPtr,
+ int *numElemsPtr, Widget start,
+ Widget breakWidget);
+
+/* NextEvent.c */
+extern Boolean XtAppPeekEvent_SkipTimer;
+
+_XFUNCPROTOEND
+
+#endif /* _Event_h_ */
diff --git a/X11/HookObjI.h b/X11/HookObjI.h
new file mode 100644
index 000000000..331e1227e
--- /dev/null
+++ b/X11/HookObjI.h
@@ -0,0 +1,73 @@
+/*
+
+Copyright 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.
+
+*/
+
+#ifndef _XtHookObjI_h
+#define _XtHookObjI_h
+
+_XFUNCPROTOBEGIN
+
+/* This object is implementation-dependent and private to the library. */
+
+typedef struct _HookObjRec *HookObject;
+typedef struct _HookObjClassRec *HookObjectClass;
+
+externalref WidgetClass hookObjectClass;
+
+typedef struct _HookObjPart {
+ /* resources */
+ XtCallbackList createhook_callbacks;
+ XtCallbackList changehook_callbacks;
+ XtCallbackList confighook_callbacks;
+ XtCallbackList geometryhook_callbacks;
+ XtCallbackList destroyhook_callbacks;
+ WidgetList shells;
+ Cardinal num_shells;
+ /* private data */
+ Cardinal max_shells;
+ Screen* screen;
+}HookObjPart;
+
+typedef struct _HookObjRec {
+ ObjectPart object;
+ HookObjPart hooks;
+} HookObjRec;
+
+typedef struct _HookObjClassPart {
+ int unused;
+} HookObjClassPart;
+
+typedef struct _HookObjClassRec {
+ ObjectClassPart object_class;
+ HookObjClassPart hook_class;
+} HookObjClassRec;
+
+externalref HookObjClassRec hookObjClassRec;
+
+_XFUNCPROTOEND
+
+#endif /* ifndef _Xt_HookObjI_h */
+
+
diff --git a/X11/ImUtil.h b/X11/ImUtil.h
new file mode 100644
index 000000000..b7f425c93
--- /dev/null
+++ b/X11/ImUtil.h
@@ -0,0 +1,30 @@
+
+#ifndef _X11_IMUTIL_H_
+#define _X11_IMUTIL_H_
+
+extern int
+_XGetScanlinePad(
+ Display *dpy,
+ int depth);
+
+extern int
+_XGetBitsPerPixel(
+ Display *dpy,
+ int depth);
+
+extern int
+_XSetImage(
+ XImage *srcimg,
+ register XImage *dstimg,
+ register int x,
+ register int y);
+
+extern int
+_XReverse_Bytes(
+ register unsigned char *bpt,
+ register int nb);
+extern void
+_XInitImageFuncPtrs(
+ register XImage *image);
+
+#endif /* _X11_IMUTIL_H_ */
diff --git a/X11/InitialI.h b/X11/InitialI.h
new file mode 100644
index 000000000..66a4041df
--- /dev/null
+++ b/X11/InitialI.h
@@ -0,0 +1,430 @@
+/***********************************************************
+
+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 */
diff --git a/X11/Intrinsic.h b/X11/Intrinsic.h
new file mode 100644
index 000000000..0488be908
--- /dev/null
+++ b/X11/Intrinsic.h
@@ -0,0 +1,2595 @@
+/***********************************************************
+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 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.
+
+******************************************************************/
+
+/*
+
+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.
+
+*/
+
+#ifndef _XtIntrinsic_h
+#define _XtIntrinsic_h
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xresource.h>
+#include <X11/Xfuncproto.h>
+#ifdef XT_BC
+#include <X11/Xos.h> /* for R4 compatibility */
+#else
+#include <X11/Xosdefs.h>
+#include <string.h> /* for XtNewString */
+#endif /* XT_BC else */
+
+#define XtSpecificationRelease 6
+
+typedef char *String;
+
+/* We do this in order to get "const" declarations to work right. We
+ * use _XtString instead of String so that C++ applications can
+ * #define String to something else if they choose, to avoid conflicts
+ * with other C++ libraries.
+ */
+#define _XtString char*
+
+/* _Xt names are private to Xt implementation, do not use in client code */
+#if NeedWidePrototypes
+#define _XtBoolean int
+#define _XtDimension unsigned int
+#define _XtKeyCode unsigned int
+#define _XtPosition int
+#define _XtXtEnum unsigned int
+#else
+#define _XtBoolean Boolean
+#define _XtDimension Dimension
+#define _XtKeyCode KeyCode
+#define _XtPosition Position
+#define _XtXtEnum XtEnum
+#endif /* NeedWidePrototypes */
+
+#include <stddef.h>
+
+#ifdef VMS
+#define externalref globalref
+#define externaldef(psect) globaldef {"psect"} noshare
+#else
+#define externalref extern
+#define externaldef(psect)
+#endif /* VMS */
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define XtNumber(arr) ((Cardinal) (sizeof(arr) / sizeof(arr[0])))
+
+typedef struct _WidgetRec *Widget;
+typedef Widget *WidgetList;
+typedef struct _WidgetClassRec *WidgetClass;
+typedef struct _CompositeRec *CompositeWidget;
+typedef struct _XtActionsRec *XtActionList;
+typedef struct _XtEventRec *XtEventTable;
+
+typedef struct _XtAppStruct *XtAppContext;
+typedef unsigned long XtValueMask;
+typedef uintptr_t XtIntervalId;
+typedef unsigned long XtInputId;
+typedef unsigned long XtWorkProcId;
+typedef unsigned long XtSignalId;
+typedef unsigned int XtGeometryMask;
+typedef unsigned long XtGCMask; /* Mask of values that are used by widget*/
+typedef unsigned long Pixel; /* Index into colormap */
+typedef int XtCacheType;
+#define XtCacheNone 0x001
+#define XtCacheAll 0x002
+#define XtCacheByDisplay 0x003
+#define XtCacheRefCount 0x100
+
+/****************************************************************
+ *
+ * System Dependent Definitions; see spec for specific range
+ * requirements. Do not assume every implementation uses the
+ * same base types!
+ *
+ *
+ * XtArgVal ought to be a union of XtPointer, char *, long, int *, and proc *
+ * but casting to union types is not really supported.
+ *
+ * So the typedef for XtArgVal should be chosen such that
+ *
+ * sizeof (XtArgVal) >= sizeof(XtPointer)
+ * sizeof(char *)
+ * sizeof(long)
+ * sizeof(int *)
+ * sizeof(proc *)
+ *
+ * ArgLists rely heavily on the above typedef.
+ *
+ ****************************************************************/
+#ifdef CRAY
+typedef long Boolean;
+typedef char* XtArgVal;
+typedef long XtEnum;
+#else
+typedef char Boolean;
+typedef intptr_t XtArgVal;
+typedef unsigned char XtEnum;
+#endif
+
+typedef unsigned int Cardinal;
+typedef unsigned short Dimension; /* Size in pixels */
+typedef short Position; /* Offset from 0 coordinate */
+
+typedef void* XtPointer;
+
+/* The type Opaque is NOT part of the Xt standard, do NOT use it. */
+/* (It remains here only for backward compatibility.) */
+typedef XtPointer Opaque;
+
+#include <X11/Core.h>
+#include <X11/Composite.h>
+#include <X11/Constraint.h>
+#include <X11/Object.h>
+#include <X11/RectObj.h>
+
+typedef struct _TranslationData *XtTranslations;
+typedef struct _TranslationData *XtAccelerators;
+typedef unsigned int Modifiers;
+
+typedef void (*XtActionProc)(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef XtActionProc* XtBoundActions;
+
+typedef struct _XtActionsRec{
+ String string;
+ XtActionProc proc;
+} XtActionsRec;
+
+typedef enum {
+/* address mode parameter representation */
+/* ------------ ------------------------ */
+ XtAddress, /* address */
+ XtBaseOffset, /* offset */
+ XtImmediate, /* constant */
+ XtResourceString, /* resource name string */
+ XtResourceQuark, /* resource name quark */
+ XtWidgetBaseOffset, /* offset from ancestor */
+ XtProcedureArg /* procedure to invoke */
+} XtAddressMode;
+
+typedef struct {
+ XtAddressMode address_mode;
+ XtPointer address_id;
+ Cardinal size;
+} XtConvertArgRec, *XtConvertArgList;
+
+typedef void (*XtConvertArgProc)(
+ Widget /* widget */,
+ Cardinal* /* size */,
+ XrmValue* /* value */
+);
+
+typedef struct {
+ XtGeometryMask request_mode;
+ Position x, y;
+ Dimension width, height, border_width;
+ Widget sibling;
+ int stack_mode; /* Above, Below, TopIf, BottomIf, Opposite, DontChange */
+} XtWidgetGeometry;
+
+/* Additions to Xlib geometry requests: ask what would happen, don't do it */
+#define XtCWQueryOnly (1 << 7)
+
+/* Additions to Xlib stack modes: don't change stack order */
+#define XtSMDontChange 5
+
+typedef void (*XtConverter)( /* obsolete */
+ XrmValue* /* args */,
+ Cardinal* /* num_args */,
+ XrmValue* /* from */,
+ XrmValue* /* to */
+);
+
+typedef Boolean (*XtTypeConverter)(
+ Display* /* dpy */,
+ XrmValue* /* args */,
+ Cardinal* /* num_args */,
+ XrmValue* /* from */,
+ XrmValue* /* to */,
+ XtPointer* /* converter_data */
+);
+
+typedef void (*XtDestructor)(
+ XtAppContext /* app */,
+ XrmValue* /* to */,
+ XtPointer /* converter_data */,
+ XrmValue* /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef Opaque XtCacheRef;
+
+typedef Opaque XtActionHookId;
+
+typedef void (*XtActionHookProc)(
+ Widget /* w */,
+ XtPointer /* client_data */,
+ String /* action_name */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef unsigned long XtBlockHookId;
+
+typedef void (*XtBlockHookProc)(
+ XtPointer /* client_data */
+);
+
+typedef void (*XtKeyProc)(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+typedef void (*XtCaseProc)(
+ Display* /* display */,
+ KeySym /* keysym */,
+ KeySym* /* lower_return */,
+ KeySym* /* upper_return */
+);
+
+typedef void (*XtEventHandler)(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XEvent* /* event */,
+ Boolean* /* continue_to_dispatch */
+);
+typedef unsigned long EventMask;
+
+typedef enum {XtListHead, XtListTail } XtListPosition;
+
+typedef unsigned long XtInputMask;
+#define XtInputNoneMask 0L
+#define XtInputReadMask (1L<<0)
+#define XtInputWriteMask (1L<<1)
+#define XtInputExceptMask (1L<<2)
+
+typedef void (*XtTimerCallbackProc)(
+ XtPointer /* closure */,
+ XtIntervalId* /* id */
+);
+
+typedef void (*XtInputCallbackProc)(
+ XtPointer /* closure */,
+ int* /* source */,
+ XtInputId* /* id */
+);
+
+typedef void (*XtSignalCallbackProc)(
+ XtPointer /* closure */,
+ XtSignalId* /* id */
+);
+
+typedef struct {
+ String name;
+ XtArgVal value;
+} Arg, *ArgList;
+
+typedef XtPointer XtVarArgsList;
+
+typedef void (*XtCallbackProc)(
+ Widget /* widget */,
+ XtPointer /* closure */, /* data the application registered */
+ XtPointer /* call_data */ /* callback specific data */
+);
+
+typedef struct _XtCallbackRec {
+ XtCallbackProc callback;
+ XtPointer closure;
+} XtCallbackRec, *XtCallbackList;
+
+typedef enum {
+ XtCallbackNoList,
+ XtCallbackHasNone,
+ XtCallbackHasSome
+} XtCallbackStatus;
+
+typedef enum {
+ XtGeometryYes, /* Request accepted. */
+ XtGeometryNo, /* Request denied. */
+ XtGeometryAlmost, /* Request denied, but willing to take replyBox. */
+ XtGeometryDone /* Request accepted and done. */
+} XtGeometryResult;
+
+typedef enum {XtGrabNone, XtGrabNonexclusive, XtGrabExclusive} XtGrabKind;
+
+typedef struct {
+ Widget shell_widget;
+ Widget enable_widget;
+} XtPopdownIDRec, *XtPopdownID;
+
+typedef struct _XtResource {
+ String resource_name; /* Resource name */
+ String resource_class; /* Resource class */
+ String resource_type; /* Representation type desired */
+ Cardinal resource_size; /* Size in bytes of representation */
+ Cardinal resource_offset;/* Offset from base to put resource value */
+ String default_type; /* representation type of specified default */
+ XtPointer default_addr; /* Address of default resource */
+} XtResource, *XtResourceList;
+
+typedef void (*XtResourceDefaultProc)(
+ Widget /* widget */,
+ int /* offset */,
+ XrmValue* /* value */
+);
+
+typedef String (*XtLanguageProc)(
+ Display* /* dpy */,
+ String /* xnl */,
+ XtPointer /* client_data */
+);
+
+typedef void (*XtErrorMsgHandler)(
+ String /* name */,
+ String /* type */,
+ String /* class */,
+ String /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef void (*XtErrorHandler)(
+ String /* msg */
+);
+
+typedef void (*XtCreatePopupChildProc)(
+ Widget /* shell */
+);
+
+typedef Boolean (*XtWorkProc)(
+ XtPointer /* closure */ /* data the application registered */
+);
+
+typedef struct {
+ char match;
+ String substitution;
+} SubstitutionRec, *Substitution;
+
+typedef Boolean (*XtFilePredicate)(
+ String /* filename */
+);
+
+typedef XtPointer XtRequestId;
+
+typedef Boolean (*XtConvertSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ Atom* /* type_return */,
+ XtPointer* /* value_return */,
+ unsigned long* /* length_return */,
+ int* /* format_return */
+);
+
+typedef void (*XtLoseSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */
+);
+
+typedef void (*XtSelectionDoneProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */
+);
+
+typedef void (*XtSelectionCallbackProc)(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ Atom* /* selection */,
+ Atom* /* type */,
+ XtPointer /* value */,
+ unsigned long* /* length */,
+ int* /* format */
+);
+
+typedef void (*XtLoseSelectionIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ XtPointer /* client_data */
+);
+
+typedef void (*XtSelectionDoneIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ XtRequestId* /* receiver_id */,
+ XtPointer /* client_data */
+);
+
+typedef Boolean (*XtConvertSelectionIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ Atom* /* type */,
+ XtPointer* /* value */,
+ unsigned long* /* length */,
+ int* /* format */,
+ unsigned long* /* max_length */,
+ XtPointer /* client_data */,
+ XtRequestId* /* receiver_id */
+);
+
+typedef void (*XtCancelConvertSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ XtRequestId* /* receiver_id */,
+ XtPointer /* client_data */
+);
+
+typedef Boolean (*XtEventDispatchProc)(
+ XEvent* /* event */
+);
+
+typedef void (*XtExtensionSelectProc)(
+ Widget /* widget */,
+ int* /* event_types */,
+ XtPointer* /* select_data */,
+ int /* count */,
+ XtPointer /* client_data */
+);
+
+/***************************************************************
+ *
+ * Exported Interfaces
+ *
+ ****************************************************************/
+
+_XFUNCPROTOBEGIN
+
+extern Boolean XtConvertAndStore(
+ Widget /* widget */,
+ _Xconst _XtString /* from_type */,
+ XrmValue* /* from */,
+ _Xconst _XtString /* to_type */,
+ XrmValue* /* to_in_out */
+);
+
+extern Boolean XtCallConverter(
+ Display* /* dpy */,
+ XtTypeConverter /* converter */,
+ XrmValuePtr /* args */,
+ Cardinal /* num_args */,
+ XrmValuePtr /* from */,
+ XrmValue* /* to_in_out */,
+ XtCacheRef* /* cache_ref_return */
+);
+
+extern Boolean XtDispatchEvent(
+ XEvent* /* event */
+);
+
+extern Boolean XtCallAcceptFocus(
+ Widget /* widget */,
+ Time* /* time */
+);
+
+extern Boolean XtPeekEvent( /* obsolete */
+ XEvent* /* event_return */
+);
+
+extern Boolean XtAppPeekEvent(
+ XtAppContext /* app_context */,
+ XEvent* /* event_return */
+);
+
+extern Boolean XtIsSubclass(
+ Widget /* widget */,
+ WidgetClass /* widgetClass */
+);
+
+extern Boolean XtIsObject(
+ Widget /* object */
+);
+
+extern Boolean _XtCheckSubclassFlag( /* implementation-private */
+ Widget /* object */,
+ _XtXtEnum /* type_flag */
+);
+
+extern Boolean _XtIsSubclassOf( /* implementation-private */
+ Widget /* object */,
+ WidgetClass /* widget_class */,
+ WidgetClass /* flag_class */,
+ _XtXtEnum /* type_flag */
+);
+
+extern Boolean XtIsManaged(
+ Widget /* rectobj */
+);
+
+extern Boolean XtIsRealized(
+ Widget /* widget */
+);
+
+extern Boolean XtIsSensitive(
+ Widget /* widget */
+);
+
+extern Boolean XtOwnSelection(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */,
+ XtConvertSelectionProc /* convert */,
+ XtLoseSelectionProc /* lose */,
+ XtSelectionDoneProc /* done */
+);
+
+extern Boolean XtOwnSelectionIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */,
+ XtConvertSelectionIncrProc /* convert_callback */,
+ XtLoseSelectionIncrProc /* lose_callback */,
+ XtSelectionDoneIncrProc /* done_callback */,
+ XtCancelConvertSelectionProc /* cancel_callback */,
+ XtPointer /* client_data */
+);
+
+extern XtGeometryResult XtMakeResizeRequest(
+ Widget /* widget */,
+ _XtDimension /* width */,
+ _XtDimension /* height */,
+ Dimension* /* width_return */,
+ Dimension* /* height_return */
+);
+
+extern void XtTranslateCoords(
+ Widget /* widget */,
+ _XtPosition /* x */,
+ _XtPosition /* y */,
+ Position* /* rootx_return */,
+ Position* /* rooty_return */
+);
+
+extern KeySym* XtGetKeysymTable(
+ Display* /* dpy */,
+ KeyCode* /* min_keycode_return */,
+ int* /* keysyms_per_keycode_return */
+);
+
+extern void XtKeysymToKeycodeList(
+ Display* /* dpy */,
+ KeySym /* keysym */,
+ KeyCode** /* keycodes_return */,
+ Cardinal* /* keycount_return */
+);
+
+extern void XtStringConversionWarning( /* obsolete */
+ _Xconst _XtString /* from_value */,
+ _Xconst _XtString /* to_type */
+);
+
+extern void XtDisplayStringConversionWarning(
+ Display* /* dpy */,
+ _Xconst _XtString /* from_value */,
+ _Xconst _XtString /* to_type */
+);
+
+externalref XtConvertArgRec const colorConvertArgs[];
+externalref XtConvertArgRec const screenConvertArg[];
+
+extern void XtAppAddConverter( /* obsolete */
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */
+);
+
+extern void XtAddConverter( /* obsolete */
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */
+);
+
+extern void XtSetTypeConverter(
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */
+);
+
+extern void XtAppSetTypeConverter(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */
+);
+
+extern void XtConvert( /* obsolete */
+ Widget /* widget */,
+ _Xconst _XtString /* from_type */,
+ XrmValue* /* from */,
+ _Xconst _XtString /* to_type */,
+ XrmValue* /* to_return */
+);
+
+extern void XtDirectConvert( /* obsolete */
+ XtConverter /* converter */,
+ XrmValuePtr /* args */,
+ Cardinal /* num_args */,
+ XrmValuePtr /* from */,
+ XrmValue* /* to_return */
+);
+
+/****************************************************************
+ *
+ * Translation Management
+ *
+ ****************************************************************/
+
+extern XtTranslations XtParseTranslationTable(
+ _Xconst _XtString /* table */
+);
+
+extern XtAccelerators XtParseAcceleratorTable(
+ _Xconst _XtString /* source */
+);
+
+extern void XtOverrideTranslations(
+ Widget /* widget */,
+ XtTranslations /* translations */
+);
+
+extern void XtAugmentTranslations(
+ Widget /* widget */,
+ XtTranslations /* translations */
+);
+
+extern void XtInstallAccelerators(
+ Widget /* destination */,
+ Widget /* source */
+);
+
+extern void XtInstallAllAccelerators(
+ Widget /* destination */,
+ Widget /* source */
+);
+
+extern void XtUninstallTranslations(
+ Widget /* widget */
+);
+
+extern void XtAppAddActions(
+ XtAppContext /* app_context */,
+ XtActionList /* actions */,
+ Cardinal /* num_actions */
+);
+
+extern void XtAddActions( /* obsolete */
+ XtActionList /* actions */,
+ Cardinal /* num_actions */
+);
+
+extern XtActionHookId XtAppAddActionHook(
+ XtAppContext /* app_context */,
+ XtActionHookProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtRemoveActionHook(
+ XtActionHookId /* id */
+);
+
+extern void XtGetActionList(
+ WidgetClass /* widget_class */,
+ XtActionList* /* actions_return */,
+ Cardinal* /* num_actions_return */
+);
+
+extern void XtCallActionProc(
+ Widget /* widget */,
+ _Xconst _XtString /* action */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal /* num_params */
+);
+
+extern void XtRegisterGrabAction(
+ XtActionProc /* action_proc */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern void XtSetMultiClickTime(
+ Display* /* dpy */,
+ int /* milliseconds */
+);
+
+extern int XtGetMultiClickTime(
+ Display* /* dpy */
+);
+
+extern KeySym XtGetActionKeysym(
+ XEvent* /* event */,
+ Modifiers* /* modifiers_return */
+);
+
+/***************************************************************
+ *
+ * Keycode and Keysym procedures for translation management
+ *
+ ****************************************************************/
+
+extern void XtTranslateKeycode(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+extern void XtTranslateKey(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+extern void XtSetKeyTranslator(
+ Display* /* dpy */,
+ XtKeyProc /* proc */
+);
+
+extern void XtRegisterCaseConverter(
+ Display* /* dpy */,
+ XtCaseProc /* proc */,
+ KeySym /* start */,
+ KeySym /* stop */
+);
+
+extern void XtConvertCase(
+ Display* /* dpy */,
+ KeySym /* keysym */,
+ KeySym* /* lower_return */,
+ KeySym* /* upper_return */
+);
+
+/****************************************************************
+ *
+ * Event Management
+ *
+ ****************************************************************/
+
+/* XtAllEvents is valid only for XtRemoveEventHandler and
+ * XtRemoveRawEventHandler; don't use it to select events!
+ */
+#define XtAllEvents ((EventMask) -1L)
+
+extern void XtAddEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtAddRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtInsertEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern void XtInsertRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern XtEventDispatchProc XtSetEventDispatcher(
+ Display* /* dpy */,
+ int /* event_type */,
+ XtEventDispatchProc /* proc */
+);
+
+extern Boolean XtDispatchEventToWidget(
+ Widget /* widget */,
+ XEvent* /* event */
+);
+
+extern void XtInsertEventTypeHandler(
+ Widget /* widget */,
+ int /* type */,
+ XtPointer /* select_data */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern void XtRemoveEventTypeHandler(
+ Widget /* widget */,
+ int /* type */,
+ XtPointer /* select_data */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern EventMask XtBuildEventMask(
+ Widget /* widget */
+);
+
+extern void XtRegisterExtensionSelector(
+ Display* /* dpy */,
+ int /* min_event_type */,
+ int /* max_event_type */,
+ XtExtensionSelectProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtAddGrab(
+ Widget /* widget */,
+ _XtBoolean /* exclusive */,
+ _XtBoolean /* spring_loaded */
+);
+
+extern void XtRemoveGrab(
+ Widget /* widget */
+);
+
+extern void XtProcessEvent( /* obsolete */
+ XtInputMask /* mask */
+);
+
+extern void XtAppProcessEvent(
+ XtAppContext /* app_context */,
+ XtInputMask /* mask */
+);
+
+extern void XtMainLoop( /* obsolete */
+ void
+);
+
+extern void XtAppMainLoop(
+ XtAppContext /* app_context */
+);
+
+extern void XtAddExposureToRegion(
+ XEvent* /* event */,
+ Region /* region */
+);
+
+extern void XtSetKeyboardFocus(
+ Widget /* subtree */,
+ Widget /* descendent */
+);
+
+extern Widget XtGetKeyboardFocusWidget(
+ Widget /* widget */
+);
+
+extern XEvent* XtLastEventProcessed(
+ Display* /* dpy */
+);
+
+extern Time XtLastTimestampProcessed(
+ Display* /* dpy */
+);
+
+/****************************************************************
+ *
+ * Event Gathering Routines
+ *
+ ****************************************************************/
+
+extern XtIntervalId XtAddTimeOut( /* obsolete */
+ unsigned long /* interval */,
+ XtTimerCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtIntervalId XtAppAddTimeOut(
+ XtAppContext /* app_context */,
+ unsigned long /* interval */,
+ XtTimerCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveTimeOut(
+ XtIntervalId /* timer */
+);
+
+extern XtInputId XtAddInput( /* obsolete */
+ int /* source */,
+ XtPointer /* condition */,
+ XtInputCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtInputId XtAppAddInput(
+ XtAppContext /* app_context */,
+ int /* source */,
+ XtPointer /* condition */,
+ XtInputCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveInput(
+ XtInputId /* id */
+);
+
+extern XtSignalId XtAddSignal(
+ XtSignalCallbackProc /* proc */,
+ XtPointer /* closure */);
+
+extern XtSignalId XtAppAddSignal(
+ XtAppContext /* app_context */,
+ XtSignalCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveSignal(
+ XtSignalId /* id */
+);
+
+extern void XtNoticeSignal(
+ XtSignalId /* id */
+);
+
+extern void XtNextEvent( /* obsolete */
+ XEvent* /* event */
+);
+
+extern void XtAppNextEvent(
+ XtAppContext /* app_context */,
+ XEvent* /* event_return */
+);
+
+#define XtIMXEvent 1
+#define XtIMTimer 2
+#define XtIMAlternateInput 4
+#define XtIMSignal 8
+#define XtIMAll (XtIMXEvent | XtIMTimer | XtIMAlternateInput | XtIMSignal)
+
+extern Boolean XtPending( /* obsolete */
+ void
+);
+
+extern XtInputMask XtAppPending(
+ XtAppContext /* app_context */
+);
+
+extern XtBlockHookId XtAppAddBlockHook(
+ XtAppContext /* app_context */,
+ XtBlockHookProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtRemoveBlockHook(
+ XtBlockHookId /* id */
+);
+
+/****************************************************************
+ *
+ * Random utility routines
+ *
+ ****************************************************************/
+
+#define XtIsRectObj(object) (_XtCheckSubclassFlag(object, (XtEnum)0x02))
+#define XtIsWidget(object) (_XtCheckSubclassFlag(object, (XtEnum)0x04))
+#define XtIsComposite(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x08))
+#define XtIsConstraint(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x10))
+#define XtIsShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x20))
+
+#undef XtIsOverrideShell
+extern Boolean XtIsOverrideShell(Widget /* object */);
+#define XtIsOverrideShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)overrideShellWidgetClass, \
+ (WidgetClass)shellWidgetClass, (XtEnum)0x20))
+
+#define XtIsWMShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x40))
+
+#undef XtIsVendorShell
+extern Boolean XtIsVendorShell(Widget /* object */);
+#define XtIsVendorShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)vendorShellWidgetClass, \
+ (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
+
+#undef XtIsTransientShell
+extern Boolean XtIsTransientShell(Widget /* object */);
+#define XtIsTransientShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)transientShellWidgetClass, \
+ (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
+#define XtIsTopLevelShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x80))
+
+#undef XtIsApplicationShell
+extern Boolean XtIsApplicationShell(Widget /* object */);
+#define XtIsApplicationShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)applicationShellWidgetClass, \
+ (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
+
+#undef XtIsSessionShell
+extern Boolean XtIsSessionShell(Widget /* object */);
+#define XtIsSessionShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)sessionShellWidgetClass, \
+ (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
+
+extern void XtRealizeWidget(
+ Widget /* widget */
+);
+
+void XtUnrealizeWidget(
+ Widget /* widget */
+);
+
+extern void XtDestroyWidget(
+ Widget /* widget */
+);
+
+extern void XtSetSensitive(
+ Widget /* widget */,
+ _XtBoolean /* sensitive */
+);
+
+extern void XtSetMappedWhenManaged(
+ Widget /* widget */,
+ _XtBoolean /* mapped_when_managed */
+);
+
+extern Widget XtNameToWidget(
+ Widget /* reference */,
+ _Xconst _XtString /* names */
+);
+
+extern Widget XtWindowToWidget(
+ Display* /* display */,
+ Window /* window */
+);
+
+extern XtPointer XtGetClassExtension(
+ WidgetClass /* object_class */,
+ Cardinal /* byte_offset */,
+ XrmQuark /* type */,
+ long /* version */,
+ Cardinal /* record_size */
+);
+
+/***************************************************************
+ *
+ * Arg lists
+ *
+ ****************************************************************/
+
+
+#define XtSetArg(arg, n, d) \
+ ((void)( (arg).name = (n), (arg).value = (XtArgVal)(d) ))
+
+extern ArgList XtMergeArgLists(
+ ArgList /* args1 */,
+ Cardinal /* num_args1 */,
+ ArgList /* args2 */,
+ Cardinal /* num_args2 */
+);
+
+/***************************************************************
+ *
+ * Vararg lists
+ *
+ ****************************************************************/
+
+#define XtVaNestedList "XtVaNestedList"
+#define XtVaTypedArg "XtVaTypedArg"
+
+extern XtVarArgsList XtVaCreateArgsList(
+ XtPointer /*unused*/, ...
+) _X_SENTINEL(0);
+
+/*************************************************************
+ *
+ * Information routines
+ *
+ ************************************************************/
+
+#ifndef _XtIntrinsicP_h
+
+/* We're not included from the private file, so define these */
+
+extern Display *XtDisplay(
+ Widget /* widget */
+);
+
+extern Display *XtDisplayOfObject(
+ Widget /* object */
+);
+
+extern Screen *XtScreen(
+ Widget /* widget */
+);
+
+extern Screen *XtScreenOfObject(
+ Widget /* object */
+);
+
+extern Window XtWindow(
+ Widget /* widget */
+);
+
+extern Window XtWindowOfObject(
+ Widget /* object */
+);
+
+extern String XtName(
+ Widget /* object */
+);
+
+extern WidgetClass XtSuperclass(
+ Widget /* object */
+);
+
+extern WidgetClass XtClass(
+ Widget /* object */
+);
+
+extern Widget XtParent(
+ Widget /* widget */
+);
+
+#endif /*_XtIntrinsicP_h*/
+
+#undef XtMapWidget
+extern void XtMapWidget(Widget /* w */);
+#define XtMapWidget(widget) XMapWindow(XtDisplay(widget), XtWindow(widget))
+
+#undef XtUnmapWidget
+extern void XtUnmapWidget(Widget /* w */);
+#define XtUnmapWidget(widget) \
+ XUnmapWindow(XtDisplay(widget), XtWindow(widget))
+
+extern void XtAddCallback(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveCallback(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void XtAddCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackList /* callbacks */
+);
+
+extern void XtRemoveCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackList /* callbacks */
+);
+
+extern void XtRemoveAllCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */
+);
+
+
+extern void XtCallCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallCallbackList(
+ Widget /* widget */,
+ XtCallbackList /* callbacks */,
+ XtPointer /* call_data */
+);
+
+extern XtCallbackStatus XtHasCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */
+);
+
+/****************************************************************
+ *
+ * Geometry Management
+ *
+ ****************************************************************/
+
+
+extern XtGeometryResult XtMakeGeometryRequest(
+ Widget /* widget */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply_return */
+);
+
+extern XtGeometryResult XtQueryGeometry(
+ Widget /* widget */,
+ XtWidgetGeometry* /* intended */,
+ XtWidgetGeometry* /* preferred_return */
+);
+
+extern Widget XtCreatePopupShell(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widgetClass */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaCreatePopupShell(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widgetClass */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtPopup(
+ Widget /* popup_shell */,
+ XtGrabKind /* grab_kind */
+);
+
+extern void XtPopupSpringLoaded(
+ Widget /* popup_shell */
+);
+
+extern void XtCallbackNone(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackNonexclusive(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackExclusive(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtPopdown(
+ Widget /* popup_shell */
+);
+
+extern void XtCallbackPopdown(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtMenuPopupAction(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern Widget XtCreateWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtCreateManagedWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaCreateWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtVaCreateManagedWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtCreateApplicationShell( /* obsolete */
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtAppCreateShell(
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ WidgetClass /* widget_class */,
+ Display* /* display */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaAppCreateShell(
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ WidgetClass /* widget_class */,
+ Display* /* display */,
+ ...
+) _X_SENTINEL(0);
+
+/****************************************************************
+ *
+ * Toolkit initialization
+ *
+ ****************************************************************/
+
+extern void XtToolkitInitialize(
+ void
+);
+
+extern XtLanguageProc XtSetLanguageProc(
+ XtAppContext /* app_context */,
+ XtLanguageProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtDisplayInitialize(
+ XtAppContext /* app_context */,
+ Display* /* dpy */,
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern Widget XtOpenApplication(
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ WidgetClass /* widget_class */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaOpenApplication(
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ WidgetClass /* widget_class */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtAppInitialize( /* obsolete */
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaAppInitialize( /* obsolete */
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtInitialize( /* obsolete */
+ _Xconst _XtString /* shell_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern Display *XtOpenDisplay(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* display_string */,
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern XtAppContext XtCreateApplicationContext(
+ void
+);
+
+extern void XtAppSetFallbackResources(
+ XtAppContext /* app_context */,
+ String* /* specification_list */
+);
+
+extern void XtDestroyApplicationContext(
+ XtAppContext /* app_context */
+);
+
+extern void XtInitializeWidgetClass(
+ WidgetClass /* widget_class */
+);
+
+extern XtAppContext XtWidgetToApplicationContext(
+ Widget /* widget */
+);
+
+extern XtAppContext XtDisplayToApplicationContext(
+ Display* /* dpy */
+);
+
+extern XrmDatabase XtDatabase(
+ Display* /* dpy */
+);
+
+extern XrmDatabase XtScreenDatabase(
+ Screen* /* screen */
+);
+
+extern void XtCloseDisplay(
+ Display* /* dpy */
+);
+
+extern void XtGetApplicationResources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetApplicationResources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetSubresources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* class */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetSubresources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* class */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtSetValues(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaSetValues(
+ Widget /* widget */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetValues(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetValues(
+ Widget /* widget */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtSetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaSetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetResourceList(
+ WidgetClass /* widget_class */,
+ XtResourceList* /* resources_return */,
+ Cardinal* /* num_resources_return */
+);
+
+extern void XtGetConstraintResourceList(
+ WidgetClass /* widget_class */,
+ XtResourceList* /* resources_return */,
+ Cardinal* /* num_resources_return */
+);
+
+#define XtUnspecifiedPixmap ((Pixmap)2)
+#define XtUnspecifiedShellInt (-1)
+#define XtUnspecifiedWindow ((Window)2)
+#define XtUnspecifiedWindowGroup ((Window)3)
+#define XtCurrentDirectory "XtCurrentDirectory"
+#define XtDefaultForeground "XtDefaultForeground"
+#define XtDefaultBackground "XtDefaultBackground"
+#define XtDefaultFont "XtDefaultFont"
+#define XtDefaultFontSet "XtDefaultFontSet"
+
+#if defined(CRAY)
+#define XtOffset(p_type,field) _Offsetof(p_type,field)
+#else /* ! CRAY */
+#define XtOffset(p_type,field) \
+ ((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
+#endif /* !CRAY */
+
+#ifdef offsetof
+#define XtOffsetOf(s_type,field) offsetof(s_type,field)
+#else
+#define XtOffsetOf(s_type,field) XtOffset(s_type*,field)
+#endif
+
+/*************************************************************
+ *
+ * Session Management
+ *
+ ************************************************************/
+
+typedef struct _XtCheckpointTokenRec {
+ int save_type;
+ int interact_style;
+ Boolean shutdown;
+ Boolean fast;
+ Boolean cancel_shutdown;
+ int phase;
+ int interact_dialog_type; /* return */
+ Boolean request_cancel; /* return */
+ Boolean request_next_phase; /* return */
+ Boolean save_success; /* return */
+ int type; /* implementation private */
+ Widget widget; /* implementation private */
+} XtCheckpointTokenRec, *XtCheckpointToken;
+
+XtCheckpointToken XtSessionGetToken(
+ Widget /* widget */
+);
+
+void XtSessionReturnToken(
+ XtCheckpointToken /* token */
+);
+
+/*************************************************************
+ *
+ * Error Handling
+ *
+ ************************************************************/
+
+extern XtErrorMsgHandler XtAppSetErrorMsgHandler(
+ XtAppContext /* app_context */,
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtSetErrorMsgHandler( /* obsolete */
+ XtErrorMsgHandler /* handler */
+);
+
+extern XtErrorMsgHandler XtAppSetWarningMsgHandler(
+ XtAppContext /* app_context */,
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtSetWarningMsgHandler( /* obsolete */
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtAppErrorMsg(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtErrorMsg( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtAppWarningMsg(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtWarningMsg( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern XtErrorHandler XtAppSetErrorHandler(
+ XtAppContext /* app_context */,
+ XtErrorHandler /* handler */
+);
+
+extern void XtSetErrorHandler( /* obsolete */
+ XtErrorHandler /* handler */
+);
+
+extern XtErrorHandler XtAppSetWarningHandler(
+ XtAppContext /* app_context */,
+ XtErrorHandler /* handler */
+);
+
+extern void XtSetWarningHandler( /* obsolete */
+ XtErrorHandler /* handler */
+);
+
+extern void XtAppError(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* message */
+);
+
+extern void XtError( /* obsolete */
+ _Xconst _XtString /* message */
+);
+
+extern void XtAppWarning(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* message */
+);
+
+extern void XtWarning( /* obsolete */
+ _Xconst _XtString /* message */
+);
+
+extern XrmDatabase *XtAppGetErrorDatabase(
+ XtAppContext /* app_context */
+);
+
+extern XrmDatabase *XtGetErrorDatabase( /* obsolete */
+ void
+);
+
+extern void XtAppGetErrorDatabaseText(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String /* buffer_return */,
+ int /* nbytes */,
+ XrmDatabase /* database */
+);
+
+extern void XtGetErrorDatabaseText( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String /* buffer_return */,
+ int /* nbytes */
+);
+
+/****************************************************************
+ *
+ * Memory Management
+ *
+ ****************************************************************/
+
+extern char *XtMalloc(
+ Cardinal /* size */
+);
+
+extern char *XtCalloc(
+ Cardinal /* num */,
+ Cardinal /* size */
+);
+
+extern char *XtRealloc(
+ char* /* ptr */,
+ Cardinal /* num */
+);
+
+extern void XtFree(
+ char* /* ptr */
+);
+
+#ifndef _X_RESTRICT_KYWD
+# define _X_RESTRICT_KYWD
+#endif
+extern Cardinal XtAsprintf(
+ String *new_string,
+ _Xconst char * _X_RESTRICT_KYWD format,
+ ...
+) _X_ATTRIBUTE_PRINTF(2,3);
+
+#ifdef XTTRACEMEMORY
+
+extern char *_XtMalloc( /* implementation-private */
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern char *_XtRealloc( /* implementation-private */
+ char * /* ptr */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern char *_XtCalloc( /* implementation-private */
+ Cardinal /* num */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern void _XtFree( /* implementation-private */
+ char * /* ptr */
+);
+
+#define XtMalloc(size) _XtMalloc(size, __FILE__, __LINE__)
+#define XtRealloc(ptr,size) _XtRealloc(ptr, size, __FILE__, __LINE__)
+#define XtCalloc(num,size) _XtCalloc(num, size, __FILE__, __LINE__)
+#define XtFree(ptr) _XtFree(ptr)
+
+#endif /* ifdef XTTRACEMEMORY */
+
+#define XtNew(type) ((type *) XtMalloc((unsigned) sizeof(type)))
+
+#undef XtNewString
+extern String XtNewString(String /* str */);
+#define XtNewString(str) \
+ ((str) != NULL ? (strcpy(XtMalloc((unsigned)strlen(str) + 1), str)) : NULL)
+
+/*************************************************************
+ *
+ * Work procs
+ *
+ **************************************************************/
+
+extern XtWorkProcId XtAddWorkProc( /* obsolete */
+ XtWorkProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtWorkProcId XtAppAddWorkProc(
+ XtAppContext /* app_context */,
+ XtWorkProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveWorkProc(
+ XtWorkProcId /* id */
+);
+
+
+/****************************************************************
+ *
+ * Graphic Context Management
+ *****************************************************************/
+
+extern GC XtGetGC(
+ Widget /* widget */,
+ XtGCMask /* valueMask */,
+ XGCValues* /* values */
+);
+
+extern GC XtAllocateGC(
+ Widget /* widget */,
+ Cardinal /* depth */,
+ XtGCMask /* valueMask */,
+ XGCValues* /* values */,
+ XtGCMask /* dynamicMask */,
+ XtGCMask /* unusedMask */
+);
+
+/* This implementation of XtDestroyGC differs from the formal specification
+ * for historic backwards compatibility reasons. As other implementations
+ * may conform to the spec, use of XtReleaseGC is strongly encouraged.
+ */
+extern void XtDestroyGC( /* obsolete */
+ GC /* gc */
+);
+
+extern void XtReleaseGC(
+ Widget /* object */,
+ GC /* gc */
+);
+
+
+
+extern void XtAppReleaseCacheRefs(
+ XtAppContext /* app_context */,
+ XtCacheRef* /* cache_ref */
+);
+
+extern void XtCallbackReleaseCacheRef(
+ Widget /* widget */,
+ XtPointer /* closure */, /* XtCacheRef */
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackReleaseCacheRefList(
+ Widget /* widget */,
+ XtPointer /* closure */, /* XtCacheRef* */
+ XtPointer /* call_data */
+);
+
+extern void XtSetWMColormapWindows(
+ Widget /* widget */,
+ Widget* /* list */,
+ Cardinal /* count */
+);
+
+extern String XtFindFile(
+ _Xconst _XtString /* path */,
+ Substitution /* substitutions */,
+ Cardinal /* num_substitutions */,
+ XtFilePredicate /* predicate */
+);
+
+extern String XtResolvePathname(
+ Display* /* dpy */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* filename */,
+ _Xconst _XtString /* suffix */,
+ _Xconst _XtString /* path */,
+ Substitution /* substitutions */,
+ Cardinal /* num_substitutions */,
+ XtFilePredicate /* predicate */
+);
+
+/****************************************************************
+ *
+ * Selections
+ *
+ *****************************************************************/
+
+#define XT_CONVERT_FAIL (Atom)0x80000001
+
+extern void XtDisownSelection(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValue(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom /* target */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer /* closure */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValues(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom* /* targets */,
+ int /* count */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer* /* closures */,
+ Time /* time */
+);
+
+extern void XtAppSetSelectionTimeout(
+ XtAppContext /* app_context */,
+ unsigned long /* timeout */
+);
+
+extern void XtSetSelectionTimeout( /* obsolete */
+ unsigned long /* timeout */
+);
+
+extern unsigned long XtAppGetSelectionTimeout(
+ XtAppContext /* app_context */
+);
+
+extern unsigned long XtGetSelectionTimeout( /* obsolete */
+ void
+);
+
+extern XSelectionRequestEvent *XtGetSelectionRequest(
+ Widget /* widget */,
+ Atom /* selection */,
+ XtRequestId /* request_id */
+);
+
+extern void XtGetSelectionValueIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom /* target */,
+ XtSelectionCallbackProc /* selection_callback */,
+ XtPointer /* client_data */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValuesIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom* /* targets */,
+ int /* count */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer* /* client_data */,
+ Time /* time */
+);
+
+extern void XtSetSelectionParameters(
+ Widget /* requestor */,
+ Atom /* selection */,
+ Atom /* type */,
+ XtPointer /* value */,
+ unsigned long /* length */,
+ int /* format */
+);
+
+extern void XtGetSelectionParameters(
+ Widget /* owner */,
+ Atom /* selection */,
+ XtRequestId /* request_id */,
+ Atom* /* type_return */,
+ XtPointer* /* value_return */,
+ unsigned long* /* length_return */,
+ int* /* format_return */
+);
+
+extern void XtCreateSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */
+);
+
+extern void XtSendSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */,
+ Time /* time */
+);
+
+extern void XtCancelSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */
+);
+
+extern Atom XtReservePropertyAtom(
+ Widget /* widget */
+);
+
+extern void XtReleasePropertyAtom(
+ Widget /* widget */,
+ Atom /* selection */
+);
+
+extern void XtGrabKey(
+ Widget /* widget */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ _XtBoolean /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern void XtUngrabKey(
+ Widget /* widget */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */
+);
+
+extern int XtGrabKeyboard(
+ Widget /* widget */,
+ _XtBoolean /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Time /* time */
+);
+
+extern void XtUngrabKeyboard(
+ Widget /* widget */,
+ Time /* time */
+);
+
+extern void XtGrabButton(
+ Widget /* widget */,
+ int /* button */,
+ Modifiers /* modifiers */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */
+);
+
+extern void XtUngrabButton(
+ Widget /* widget */,
+ unsigned int /* button */,
+ Modifiers /* modifiers */
+);
+
+extern int XtGrabPointer(
+ Widget /* widget */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */,
+ Time /* time */
+);
+
+extern void XtUngrabPointer(
+ Widget /* widget */,
+ Time /* time */
+);
+
+extern void XtGetApplicationNameAndClass(
+ Display* /* dpy */,
+ String* /* name_return */,
+ String* /* class_return */
+);
+
+extern void XtRegisterDrawable(
+ Display* /* dpy */,
+ Drawable /* drawable */,
+ Widget /* widget */
+);
+
+extern void XtUnregisterDrawable(
+ Display* /* dpy */,
+ Drawable /* drawable */
+);
+
+extern Widget XtHooksOfDisplay(
+ Display* /* dpy */
+);
+
+typedef struct {
+ String type;
+ Widget widget;
+ ArgList args;
+ Cardinal num_args;
+} XtCreateHookDataRec, *XtCreateHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtPointer event_data;
+ Cardinal num_event_data;
+} XtChangeHookDataRec, *XtChangeHookData;
+
+typedef struct {
+ Widget old, req;
+ ArgList args;
+ Cardinal num_args;
+} XtChangeHookSetValuesDataRec, *XtChangeHookSetValuesData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtGeometryMask changeMask;
+ XWindowChanges changes;
+} XtConfigureHookDataRec, *XtConfigureHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtWidgetGeometry* request;
+ XtWidgetGeometry* reply;
+ XtGeometryResult result;
+} XtGeometryHookDataRec, *XtGeometryHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+} XtDestroyHookDataRec, *XtDestroyHookData;
+
+extern void XtGetDisplays(
+ XtAppContext /* app_context */,
+ Display*** /* dpy_return */,
+ Cardinal* /* num_dpy_return */
+);
+
+extern Boolean XtToolkitThreadInitialize(
+ void
+);
+
+extern void XtAppSetExitFlag(
+ XtAppContext /* app_context */
+);
+
+extern Boolean XtAppGetExitFlag(
+ XtAppContext /* app_context */
+);
+
+extern void XtAppLock(
+ XtAppContext /* app_context */
+);
+
+extern void XtAppUnlock(
+ XtAppContext /* app_context */
+);
+
+/*
+ * Predefined Resource Converters
+ */
+
+
+/* String converters */
+
+extern Boolean XtCvtStringToAcceleratorTable(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToAtom(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToBool(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToBoolean(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToCommandArgArray(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToCursor(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDimension(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDirectoryString(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDisplay(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFile(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFloat(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFont(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFontSet(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display, locale */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFontStruct(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToGravity(
+ Display* /* dpy */,
+ XrmValuePtr /* args */,
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToInitialState(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToInt(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, Colormap */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtStringToPosition XtCvtStringToShort
+
+extern Boolean XtCvtStringToRestartStyle(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToShort(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToTranslationTable(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToUnsignedChar(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToVisual(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, depth */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* int converters */
+
+extern Boolean XtCvtIntToBool(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToBoolean(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToColor(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, Colormap */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtIntToDimension XtCvtIntToShort
+
+extern Boolean XtCvtIntToFloat(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToFont(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToPixmap(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtIntToPosition XtCvtIntToShort
+
+extern Boolean XtCvtIntToShort(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToUnsignedChar(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* Color converter */
+
+extern Boolean XtCvtColorToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* Pixel converter */
+
+#define XtCvtPixelToColor XtCvtIntToColor
+
+
+_XFUNCPROTOEND
+
+#endif /*_XtIntrinsic_h*/
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/IntrinsicI.h b/X11/IntrinsicI.h
new file mode 100644
index 000000000..5f852388a
--- /dev/null
+++ b/X11/IntrinsicI.h
@@ -0,0 +1,229 @@
+/***********************************************************
+
+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 _XtintrinsicI_h
+#define _XtintrinsicI_h
+
+#include "Xtos.h"
+#include "IntrinsicP.h"
+#ifdef WIN32
+#define _WILLWINSOCK_
+#endif
+#include <X11/Xos.h>
+
+#include "Object.h"
+#include "RectObj.h"
+#include "ObjectP.h"
+#include "RectObjP.h"
+
+#include "ConvertI.h"
+#include "TranslateI.h"
+
+#define RectObjClassFlag 0x02
+#define WidgetClassFlag 0x04
+#define CompositeClassFlag 0x08
+#define ConstraintClassFlag 0x10
+#define ShellClassFlag 0x20
+#define WMShellClassFlag 0x40
+#define TopLevelClassFlag 0x80
+
+/*
+ * The following macros, though very handy, are not suitable for
+ * IntrinsicP.h as they violate the rule that arguments are to
+ * be evaluated exactly once.
+ */
+
+#define XtDisplayOfObject(object) \
+ (XtIsWidget(object) ? (object)->core.screen->display : \
+ _XtIsHookObject(object) ? ((HookObject)(object))->hooks.screen->display : \
+ _XtWindowedAncestor(object)->core.screen->display)
+
+#define XtScreenOfObject(object) \
+ (XtIsWidget(object) ? (object)->core.screen : \
+ _XtIsHookObject(object) ? ((HookObject)(object))->hooks.screen : \
+ _XtWindowedAncestor(object)->core.screen)
+
+#define XtWindowOfObject(object) \
+ ((XtIsWidget(object) ? (object) : _XtWindowedAncestor(object)) \
+ ->core.window)
+
+#define XtIsManaged(object) \
+ (XtIsRectObj(object) ? (object)->core.managed : False)
+
+#define XtIsSensitive(object) \
+ (XtIsRectObj(object) ? ((object)->core.sensitive && \
+ (object)->core.ancestor_sensitive) : False)
+
+
+/****************************************************************
+ *
+ * Byte utilities
+ *
+ ****************************************************************/
+
+#define _XBCOPYFUNC _XtBcopy
+#include <X11/Xfuncs.h>
+
+#define XtMemmove(dst, src, size) \
+ if ((char *)(dst) != (char *)(src)) { \
+ (void) memcpy((char *) (dst), (char *) (src), (int) (size)); \
+ }
+
+#define XtBZero(dst, size) \
+ bzero((char *) (dst), (int) (size))
+
+#define XtMemcmp(b1, b2, size) \
+ memcmp((char *) (b1), (char *) (b2), (int) (size))
+
+
+/****************************************************************
+ *
+ * Stack cache allocation/free
+ *
+ ****************************************************************/
+
+#define XtStackAlloc(size, stack_cache_array) \
+ ((size) <= sizeof(stack_cache_array) \
+ ? (XtPointer)(stack_cache_array) \
+ : XtMalloc((unsigned)(size)))
+
+#define XtStackFree(pointer, stack_cache_array) \
+ { if ((pointer) != ((XtPointer)(stack_cache_array))) XtFree(pointer); }
+
+/***************************************************************
+ *
+ * Filename defines
+ *
+ **************************************************************/
+
+/* used by XtResolvePathname */
+#ifndef XFILESEARCHPATHDEFAULT
+#define XFILESEARCHPATHDEFAULT "/usr/lib/X11/%L/%T/%N%S:/usr/lib/X11/%l/%T/%N%S:/usr/lib/X11/%T/%N%S"
+#endif
+
+/* the following two were both "X Toolkit " prior to R4 */
+#ifndef XTERROR_PREFIX
+#define XTERROR_PREFIX ""
+#endif
+
+#ifndef XTWARNING_PREFIX
+#define XTWARNING_PREFIX ""
+#endif
+
+#ifndef ERRORDB
+#define ERRORDB "/usr/lib/X11/XtErrorDB"
+#endif
+
+_XFUNCPROTOBEGIN
+
+extern String XtCXtToolkitError;
+
+extern void _XtAllocError(
+ String /* alloc_type */
+);
+
+extern void _XtCompileResourceList(
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */
+);
+
+extern XtGeometryResult _XtMakeGeometryRequest(
+ Widget /* widget */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply_return */,
+ Boolean* /* clear_rect_obj */
+);
+
+extern Boolean _XtIsHookObject(
+ Widget /* widget */
+);
+
+extern void _XtAddShellToHookObj(
+ Widget /* widget */
+);
+
+/* GCManager.c */
+extern void _XtGClistFree(Display *dpy, XtPerDisplay pd);
+
+/** GeoTattler stuff */
+
+#ifdef XT_GEO_TATTLER
+
+extern void _XtGeoTab (int);
+extern void _XtGeoTrace (
+ Widget widget,
+ ...
+) _X_ATTRIBUTE_PRINTF(2,3);
+
+#define CALLGEOTAT(f) f
+
+#else /* XT_GEO_TATTLER */
+
+#define CALLGEOTAT(f)
+
+#endif /* XT_GEO_TATTLER */
+
+#ifndef XTTRACEMEMORY
+
+extern char* __XtMalloc (
+ unsigned /* size */
+);
+extern char* __XtCalloc (
+ unsigned /* num */,
+ unsigned /* size */
+);
+
+#else
+
+#define __XtMalloc XtMalloc
+#define __XtCalloc XtCalloc
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtintrinsicI_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/IntrinsicP.h b/X11/IntrinsicP.h
new file mode 100644
index 000000000..d3007ee07
--- /dev/null
+++ b/X11/IntrinsicP.h
@@ -0,0 +1,324 @@
+/***********************************************************
+
+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 _XtintrinsicP_h
+#define _XtintrinsicP_h
+
+#include <X11/Intrinsic.h>
+
+/*
+ * Field sizes and offsets of XrmResource must match those of XtResource.
+ * Type intptr_t is used instead of XrmQuark here because XrmQuark and String
+ * are not the same size on all systems.
+ */
+typedef struct {
+ intptr_t xrm_name; /* Resource name quark */
+ intptr_t xrm_class; /* Resource class quark */
+ intptr_t xrm_type; /* Resource representation type quark */
+ Cardinal xrm_size; /* Size in bytes of representation */
+ int xrm_offset; /* -offset-1 */
+ intptr_t xrm_default_type; /* Default representation type quark */
+ XtPointer xrm_default_addr; /* Default resource address */
+} XrmResource, *XrmResourceList;
+
+typedef unsigned long XtVersionType;
+
+#define XT_VERSION 11
+#ifndef XT_REVISION
+#define XT_REVISION 6
+#endif
+#define XtVersion (XT_VERSION * 1000 + XT_REVISION)
+#define XtVersionDontCheck 0
+
+typedef void (*XtProc)(
+ void
+);
+
+typedef void (*XtWidgetClassProc)(
+ WidgetClass /* class */
+);
+
+typedef void (*XtWidgetProc)(
+ Widget /* widget */
+);
+
+typedef Boolean (*XtAcceptFocusProc)(
+ Widget /* widget */,
+ Time* /* time */
+);
+
+typedef void (*XtArgsProc)(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef void (*XtInitProc)(
+ Widget /* request */,
+ Widget /* new */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef Boolean (*XtSetValuesFunc)(
+ Widget /* old */,
+ Widget /* request */,
+ Widget /* new */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef Boolean (*XtArgsFunc)(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef void (*XtAlmostProc)(
+ Widget /* old */,
+ Widget /* new */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply */
+);
+
+typedef void (*XtExposeProc)(
+ Widget /* widget */,
+ XEvent* /* event */,
+ Region /* region */
+);
+
+/* compress_exposure options*/
+#define XtExposeNoCompress ((XtEnum)False)
+#define XtExposeCompressSeries ((XtEnum)True)
+#define XtExposeCompressMultiple 2
+#define XtExposeCompressMaximal 3
+
+/* modifiers */
+#define XtExposeGraphicsExpose 0x10
+#define XtExposeGraphicsExposeMerged 0x20
+#define XtExposeNoExpose 0x40
+#define XtExposeNoRegion 0x80
+
+typedef void (*XtRealizeProc)(
+ Widget /* widget */,
+ XtValueMask* /* mask */,
+ XSetWindowAttributes* /* attributes */
+);
+
+typedef XtGeometryResult (*XtGeometryHandler)(
+ Widget /* widget */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply */
+);
+
+typedef void (*XtStringProc)(
+ Widget /* widget */,
+ String /* str */
+);
+
+typedef struct {
+ String name; /* resource name */
+ String type; /* representation type name */
+ XtArgVal value; /* representation */
+ int size; /* size of representation */
+} XtTypedArg, *XtTypedArgList;
+
+typedef void (*XtAllocateProc)(
+ WidgetClass /* widget_class */,
+ Cardinal * /* constraint_size */,
+ Cardinal * /* more_bytes */,
+ ArgList /* args */,
+ Cardinal * /* num_args */,
+ XtTypedArgList /* typed_args */,
+ Cardinal * /* num_typed_args */,
+ Widget * /* widget_return */,
+ XtPointer * /* more_bytes_return */
+);
+
+typedef void (*XtDeallocateProc)(
+ Widget /* widget */,
+ XtPointer /* more_bytes */
+);
+
+struct _XtStateRec; /* Forward declare before use for C++ */
+
+typedef struct _XtTMRec {
+ XtTranslations translations; /* private to Translation Manager */
+ XtBoundActions proc_table; /* procedure bindings for actions */
+ struct _XtStateRec *current_state; /* Translation Manager state ptr */
+ unsigned long lastEventTime;
+} XtTMRec, *XtTM;
+
+#include <X11/CoreP.h>
+#include <X11/CompositeP.h>
+#include <X11/ConstrainP.h>
+#include <X11/ObjectP.h>
+#include <X11/RectObjP.h>
+
+#define XtDisplay(widget) DisplayOfScreen((widget)->core.screen)
+#define XtScreen(widget) ((widget)->core.screen)
+#define XtWindow(widget) ((widget)->core.window)
+
+#define XtClass(widget) ((widget)->core.widget_class)
+#define XtSuperclass(widget) (XtClass(widget)->core_class.superclass)
+#define XtIsRealized(object) (XtWindowOfObject(object) != None)
+#define XtParent(widget) ((widget)->core.parent)
+
+#undef XtIsRectObj
+extern Boolean XtIsRectObj(Widget);
+#define XtIsRectObj(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x02)
+
+#undef XtIsWidget
+extern Boolean XtIsWidget(Widget);
+#define XtIsWidget(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x04)
+
+#undef XtIsComposite
+extern Boolean XtIsComposite(Widget);
+#define XtIsComposite(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x08)
+
+#undef XtIsConstraint
+extern Boolean XtIsConstraint(Widget);
+#define XtIsConstraint(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x10)
+
+#undef XtIsShell
+extern Boolean XtIsShell(Widget);
+#define XtIsShell(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x20)
+
+#undef XtIsWMShell
+extern Boolean XtIsWMShell(Widget);
+#define XtIsWMShell(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x40)
+
+#undef XtIsTopLevelShell
+extern Boolean XtIsTopLevelShell(Widget);
+#define XtIsTopLevelShell(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x80)
+
+#ifdef DEBUG
+#define XtCheckSubclass(w, widget_class_ptr, message) \
+ if (!XtIsSubclass(((Widget)(w)), (widget_class_ptr))) { \
+ String params[3]; \
+ Cardinal num_params = 3; \
+ params[0] = ((Widget)(w))->core.widget_class->core_class.class_name;\
+ params[1] = (widget_class_ptr)->core_class.class_name; \
+ params[2] = (message); \
+ XtAppErrorMsg(XtWidgetToApplicationContext((Widget)(w)), \
+ "subclassMismatch", "xtCheckSubclass", "XtToolkitError", \
+ "Widget class %s found when subclass of %s expected: %s",\
+ params, &num_params); \
+ }
+#else
+#define XtCheckSubclass(w, widget_class, message) /* nothing */
+#endif
+
+_XFUNCPROTOBEGIN
+
+extern Widget _XtWindowedAncestor( /* internal; implementation-dependent */
+ Widget /* object */
+);
+
+extern void _XtInherit(
+ void
+);
+
+extern void _XtHandleFocus(
+ Widget /* widget */,
+ XtPointer /* client_data */,
+ XEvent * /* event */,
+ Boolean * /* cont */);
+
+extern void XtCreateWindow(
+ Widget /* widget */,
+ unsigned int /* window_class */,
+ Visual* /* visual */,
+ XtValueMask /* value_mask */,
+ XSetWindowAttributes* /* attributes */
+);
+
+extern void XtResizeWidget(
+ Widget /* widget */,
+ _XtDimension /* width */,
+ _XtDimension /* height */,
+ _XtDimension /* border_width */
+);
+
+extern void XtMoveWidget(
+ Widget /* widget */,
+ _XtPosition /* x */,
+ _XtPosition /* y */
+);
+
+extern void XtConfigureWidget(
+ Widget /* widget */,
+ _XtPosition /* x */,
+ _XtPosition /* y */,
+ _XtDimension /* width */,
+ _XtDimension /* height */,
+ _XtDimension /* border_width */
+);
+
+extern void XtResizeWindow(
+ Widget /* widget */
+);
+
+extern void XtProcessLock(
+ void
+);
+
+extern void XtProcessUnlock(
+ void
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XtIntrinsicP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Object.h b/X11/Object.h
new file mode 100644
index 000000000..666afd357
--- /dev/null
+++ b/X11/Object.h
@@ -0,0 +1,63 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtObject_h
+#define _XtObject_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _ObjectRec *Object;
+typedef struct _ObjectClassRec *ObjectClass;
+
+#ifndef VMS
+externalref WidgetClass objectClass;
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtObject_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ObjectP.h b/X11/ObjectP.h
new file mode 100644
index 000000000..80fb072d4
--- /dev/null
+++ b/X11/ObjectP.h
@@ -0,0 +1,141 @@
+/***********************************************************
+
+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 _Xt_ObjectP_h_
+#define _Xt_ObjectP_h_
+
+#include <X11/Object.h>
+
+_XFUNCPROTOBEGIN
+
+/**********************************************************
+ * Object Instance Data Structures
+ *
+ **********************************************************/
+/* these fields match CorePart and can not be changed */
+
+typedef struct _ObjectPart {
+ Widget self; /* pointer to widget itself */
+ WidgetClass widget_class; /* pointer to Widget's ClassRec */
+ Widget parent; /* parent widget */
+ XrmName xrm_name; /* widget resource name quarkified */
+ Boolean being_destroyed; /* marked for destroy */
+ XtCallbackList destroy_callbacks; /* who to call when widget destroyed */
+ XtPointer constraints; /* constraint record */
+} ObjectPart;
+
+typedef struct _ObjectRec {
+ ObjectPart object;
+} ObjectRec;
+
+/********************************************************
+ * Object Class Data Structures
+ *
+ ********************************************************/
+/* these fields match CoreClassPart and can not be changed */
+/* ideally these structures would only contain the fields required;
+ but because the CoreClassPart cannot be changed at this late date
+ extraneous fields are necessary to make the field offsets match */
+
+typedef struct _ObjectClassPart {
+
+ WidgetClass superclass; /* pointer to superclass ClassRec */
+ String class_name; /* widget resource class name */
+ Cardinal widget_size; /* size in bytes of widget record */
+ XtProc class_initialize; /* class initialization proc */
+ XtWidgetClassProc class_part_initialize; /* dynamic initialization */
+ XtEnum class_inited; /* has class been initialized? */
+ XtInitProc initialize; /* initialize subclass fields */
+ XtArgsProc initialize_hook; /* notify that initialize called */
+ XtProc obj1; /* NULL */
+ XtPointer obj2; /* NULL */
+ Cardinal obj3; /* NULL */
+ XtResourceList resources; /* resources for subclass fields */
+ Cardinal num_resources; /* number of entries in resources */
+ XrmClass xrm_class; /* resource class quarkified */
+ Boolean obj4; /* NULL */
+ XtEnum obj5; /* NULL */
+ Boolean obj6; /* NULL */
+ Boolean obj7; /* NULL */
+ XtWidgetProc destroy; /* free data for subclass pointers */
+ XtProc obj8; /* NULL */
+ XtProc obj9; /* NULL */
+ XtSetValuesFunc set_values; /* set subclass resource values */
+ XtArgsFunc set_values_hook; /* notify that set_values called */
+ XtProc obj10; /* NULL */
+ XtArgsProc get_values_hook; /* notify that get_values called */
+ XtProc obj11; /* NULL */
+ XtVersionType version; /* version of intrinsics used */
+ XtPointer callback_private; /* list of callback offsets */
+ String obj12; /* NULL */
+ XtProc obj13; /* NULL */
+ XtProc obj14; /* NULL */
+ XtPointer extension; /* pointer to extension record */
+}ObjectClassPart;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 required for all extension records */
+ XrmQuark record_type; /* NULLQUARK; when on ObjectClassPart */
+ long version; /* must be XtObjectExtensionVersion */
+ Cardinal record_size; /* sizeof(ObjectClassExtensionRec) */
+ XtAllocateProc allocate;
+ XtDeallocateProc deallocate;
+} ObjectClassExtensionRec, *ObjectClassExtension;
+
+typedef struct _ObjectClassRec {
+ ObjectClassPart object_class;
+} ObjectClassRec;
+
+externalref ObjectClassRec objectClassRec;
+
+_XFUNCPROTOEND
+
+#define XtObjectExtensionVersion 1L
+#define XtInheritAllocate ((XtAllocateProc) _XtInherit)
+#define XtInheritDeallocate ((XtDeallocateProc) _XtInherit)
+
+#endif /*_Xt_ObjectP_h_*/
diff --git a/X11/PassivGraI.h b/X11/PassivGraI.h
new file mode 100644
index 000000000..cd401cd46
--- /dev/null
+++ b/X11/PassivGraI.h
@@ -0,0 +1,185 @@
+/********************************************************
+
+Copyright 1988 by Hewlett-Packard Company
+Copyright 1987, 1988, 1989 by Digital Equipment Corporation, Maynard
+
+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 names of
+Hewlett-Packard or 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.
+
+********************************************************/
+
+/*
+
+Copyright 1987, 1988, 1989, 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.
+
+*/
+
+#ifndef _PDI_h_
+#define _PDI_h_
+
+
+#define KEYBOARD TRUE
+#define POINTER FALSE
+
+_XFUNCPROTOBEGIN
+
+typedef enum {
+ XtNoServerGrab,
+ XtPassiveServerGrab,
+ XtActiveServerGrab,
+ XtPseudoPassiveServerGrab,
+ XtPseudoActiveServerGrab
+}XtServerGrabType;
+
+typedef struct _XtServerGrabRec {
+ struct _XtServerGrabRec *next;
+ Widget widget;
+ unsigned int ownerEvents:1;
+ unsigned int pointerMode:1;
+ unsigned int keyboardMode:1;
+ unsigned int hasExt:1;
+ unsigned int confineToIsWidgetWin:1;
+ KeyCode keybut;
+ unsigned short modifiers;
+ unsigned short eventMask;
+} XtServerGrabRec, *XtServerGrabPtr;
+
+typedef struct _XtGrabExtRec {
+ Mask *pKeyButMask;
+ Mask *pModifiersMask;
+ Window confineTo;
+ Cursor cursor;
+} XtServerGrabExtRec, *XtServerGrabExtPtr;
+
+#define GRABEXT(p) ((XtServerGrabExtPtr)((p)+1))
+
+typedef struct _XtDeviceRec{
+ XtServerGrabRec grab; /* need copy in order to protect
+ during grab */
+ XtServerGrabType grabType;
+}XtDeviceRec, *XtDevice;
+
+#define XtMyAncestor 0
+#define XtMyDescendant 1
+#define XtMyCousin 2
+#define XtMySelf 3
+#define XtUnrelated 4
+typedef char XtGeneology; /* do not use an enum makes PerWidgetInput larger */
+
+typedef struct {
+ Widget focusKid;
+ XtServerGrabPtr keyList, ptrList;
+ Widget queryEventDescendant;
+ unsigned int map_handler_added:1;
+ unsigned int realize_handler_added:1;
+ unsigned int active_handler_added:1;
+ unsigned int haveFocus:1;
+ XtGeneology focalPoint;
+}XtPerWidgetInputRec, *XtPerWidgetInput;
+
+typedef struct XtPerDisplayInputRec{
+ XtGrabList grabList;
+ XtDeviceRec keyboard, pointer;
+ KeyCode activatingKey;
+ Widget *trace;
+ int traceDepth, traceMax;
+ Widget focusWidget;
+}XtPerDisplayInputRec, *XtPerDisplayInput;
+
+#define IsServerGrab(g) ((g == XtPassiveServerGrab) ||\
+ (g == XtActiveServerGrab))
+
+#define IsAnyGrab(g) ((g == XtPassiveServerGrab) ||\
+ (g == XtActiveServerGrab) ||\
+ (g == XtPseudoPassiveServerGrab))
+
+#define IsEitherPassiveGrab(g) ((g == XtPassiveServerGrab) ||\
+ (g == XtPseudoPassiveServerGrab))
+
+#define IsPseudoGrab(g) ((g == XtPseudoPassiveServerGrab))
+
+extern void _XtDestroyServerGrabs(
+ Widget /* w */,
+ XtPointer /* pwi */, /*XtPerWidgetInput*/
+ XtPointer /* call_data */
+);
+
+extern XtPerWidgetInput _XtGetPerWidgetInput(
+ Widget /* widget */,
+ _XtBoolean /* create */
+);
+
+extern XtServerGrabPtr _XtCheckServerGrabsOnWidget(
+ XEvent* /* event */,
+ Widget /* widget */,
+ _XtBoolean /* isKeyboard */
+);
+
+/*
+extern XtGrabList* _XtGetGrabList( XtPerDisplayInput );
+*/
+
+#define _XtGetGrabList(pdi) (&(pdi)->grabList)
+
+extern void _XtFreePerWidgetInput(
+ Widget /* w */,
+ XtPerWidgetInput /* pwi */
+);
+
+extern Widget _XtProcessKeyboardEvent(
+ XKeyEvent* /* event */,
+ Widget /* widget */,
+ XtPerDisplayInput /* pdi */
+);
+
+extern Widget _XtProcessPointerEvent(
+ XButtonEvent* /* event */,
+ Widget /* widget */,
+ XtPerDisplayInput /* pdi */
+);
+
+extern void _XtRegisterPassiveGrabs(
+ Widget /* widget */
+);
+
+extern void _XtClearAncestorCache(
+ Widget /* widget */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _PDI_h_ */
diff --git a/X11/RectObj.h b/X11/RectObj.h
new file mode 100644
index 000000000..d53e68ea1
--- /dev/null
+++ b/X11/RectObj.h
@@ -0,0 +1,63 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtRect_h
+#define _XtRect_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _RectObjRec *RectObj;
+typedef struct _RectObjClassRec *RectObjClass;
+
+#ifndef VMS
+externalref WidgetClass rectObjClass;
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtRect_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/RectObjP.h b/X11/RectObjP.h
new file mode 100644
index 000000000..9bb528f7d
--- /dev/null
+++ b/X11/RectObjP.h
@@ -0,0 +1,131 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _Xt_RectObjP_h_
+#define _Xt_RectObjP_h_
+
+#include <X11/RectObj.h>
+#include <X11/ObjectP.h>
+
+_XFUNCPROTOBEGIN
+
+/**********************************************************
+ * Rectangle Object Instance Data Structures
+ *
+ **********************************************************/
+/* these fields match CorePart and can not be changed */
+
+typedef struct _RectObjPart {
+ Position x, y; /* rectangle position */
+ Dimension width, height; /* rectangle dimensions */
+ Dimension border_width; /* rectangle border width */
+ Boolean managed; /* is widget geometry managed? */
+ Boolean sensitive; /* is widget sensitive to user events*/
+ Boolean ancestor_sensitive; /* are all ancestors sensitive? */
+}RectObjPart;
+
+typedef struct _RectObjRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+} RectObjRec;
+
+
+
+/********************************************************
+ * Rectangle Object Class Data Structures
+ *
+ ********************************************************/
+/* these fields match CoreClassPart and can not be changed */
+/* ideally these structures would only contain the fields required;
+ but because the CoreClassPart cannot be changed at this late date
+ extraneous fields are necessary to make the field offsets match */
+
+typedef struct _RectObjClassPart {
+
+ WidgetClass superclass; /* pointer to superclass ClassRec */
+ String class_name; /* widget resource class name */
+ Cardinal widget_size; /* size in bytes of widget record */
+ XtProc class_initialize; /* class initialization proc */
+ XtWidgetClassProc class_part_initialize; /* dynamic initialization */
+ XtEnum class_inited; /* has class been initialized? */
+ XtInitProc initialize; /* initialize subclass fields */
+ XtArgsProc initialize_hook; /* notify that initialize called */
+ XtProc rect1; /* NULL */
+ XtPointer rect2; /* NULL */
+ Cardinal rect3; /* NULL */
+ XtResourceList resources; /* resources for subclass fields */
+ Cardinal num_resources; /* number of entries in resources */
+ XrmClass xrm_class; /* resource class quarkified */
+ Boolean rect4; /* NULL */
+ XtEnum rect5; /* NULL */
+ Boolean rect6; /* NULL */
+ Boolean rect7; /* NULL */
+ XtWidgetProc destroy; /* free data for subclass pointers */
+ XtWidgetProc resize; /* geom manager changed widget size */
+ XtExposeProc expose; /* rediplay rectangle */
+ XtSetValuesFunc set_values; /* set subclass resource values */
+ XtArgsFunc set_values_hook; /* notify that set_values called */
+ XtAlmostProc set_values_almost; /* set values almost for geometry */
+ XtArgsProc get_values_hook; /* notify that get_values called */
+ XtProc rect9; /* NULL */
+ XtVersionType version; /* version of intrinsics used */
+ XtPointer callback_private; /* list of callback offsets */
+ String rect10; /* NULL */
+ XtGeometryHandler query_geometry; /* return preferred geometry */
+ XtProc rect11; /* NULL */
+ XtPointer extension; /* pointer to extension record */
+} RectObjClassPart;
+
+typedef struct _RectObjClassRec {
+ RectObjClassPart rect_class;
+} RectObjClassRec;
+
+externalref RectObjClassRec rectObjClassRec;
+
+_XFUNCPROTOEND
+
+#endif /*_Xt_RectObjP_h_*/
diff --git a/X11/ResConfigP.h b/X11/ResConfigP.h
new file mode 100644
index 000000000..ed367a792
--- /dev/null
+++ b/X11/ResConfigP.h
@@ -0,0 +1,76 @@
+/*
+
+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.
+
+*/
+/*****************************************************************
+
+(C) COPYRIGHT International Business Machines Corp. 1992,1997
+ All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software.
+
+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 IBM CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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 IBM Corporation 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 IBM
+Corporation.
+
+******************************************************************/
+
+#ifndef _RESCONFIGP_H
+#define _RESCONFIGP_H
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Atom names for resource configuration management customization tool.
+ */
+#define RCM_DATA "Custom Data"
+#define RCM_INIT "Custom Init"
+
+extern void _XtResourceConfigurationEH(
+ Widget /* w */,
+ XtPointer /* client_data */,
+ XEvent * /* event */
+);
+
+_XFUNCPROTOEND
+
+#endif
diff --git a/X11/ResourceI.h b/X11/ResourceI.h
new file mode 100644
index 000000000..578a835cf
--- /dev/null
+++ b/X11/ResourceI.h
@@ -0,0 +1,100 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/****************************************************************
+ *
+ * Resources
+ *
+ ****************************************************************/
+
+#ifndef _XtresourceI_h
+#define _XtresourceI_h
+
+#define StringToQuark(string) XrmStringToQuark(string)
+#define StringToName(string) XrmStringToName(string)
+#define StringToClass(string) XrmStringToClass(string)
+
+_XFUNCPROTOBEGIN
+
+extern void _XtDependencies(
+ XtResourceList * /* class_resp */,
+ Cardinal * /* class_num_resp */,
+ XrmResourceList * /* super_res */,
+ Cardinal /* super_num_res */,
+ Cardinal /* super_widget_size */);
+
+extern void _XtResourceDependencies(
+ WidgetClass /* wc */
+);
+
+extern void _XtConstraintResDependencies(
+ ConstraintWidgetClass /* wc */
+);
+
+extern XtCacheRef* _XtGetResources(
+ Widget /* w */,
+ ArgList /* args */,
+ Cardinal /* num_args */,
+ XtTypedArgList /* typed_args */,
+ Cardinal* /* num_typed_args */
+);
+
+extern void _XtCopyFromParent(
+ Widget /* widget */,
+ int /* offset */,
+ XrmValue* /* value */
+);
+
+extern void _XtCopyToArg(char *src, XtArgVal *dst, unsigned int size);
+extern void _XtCopyFromArg(XtArgVal src, char *dst, unsigned int size);
+extern XrmResourceList* _XtCreateIndirectionTable(XtResourceList resources,
+ Cardinal num_resources);
+extern void _XtResourceListInitialize(void);
+
+_XFUNCPROTOEND
+
+#endif /* _XtresourceI_h */
diff --git a/X11/SelectionI.h b/X11/SelectionI.h
new file mode 100644
index 000000000..ee819ddb3
--- /dev/null
+++ b/X11/SelectionI.h
@@ -0,0 +1,168 @@
+/***********************************************************
+
+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 _XtselectionI_h
+#define _XtselectionI_h
+
+#include "Intrinsic.h"
+
+typedef struct _RequestRec *Request;
+typedef struct _SelectRec *Select;
+
+typedef struct _RequestRec {
+ Select ctx; /* logical owner */
+ Widget widget; /* widget actually receiving Selection events */
+ Window requestor;
+ Atom property;
+ Atom target;
+ Atom type;
+ int format;
+ XtPointer value;
+ unsigned long bytelength;
+ unsigned long offset;
+ XtIntervalId timeout;
+ XSelectionRequestEvent event; /* for XtGetSelectionRequest */
+ Boolean allSent;
+} RequestRec;
+
+typedef struct {
+ Atom prop;
+ Boolean avail;
+} SelectionPropRec, *SelectionProp;
+
+typedef struct {
+ Display *dpy;
+ Atom incr_atom, indirect_atom, timestamp_atom;
+ int propCount;
+ SelectionProp list;
+} PropListRec, *PropList;
+
+typedef struct _SelectRec {
+ Atom selection; /* constant */
+ Display *dpy; /* constant */
+ Widget widget;
+ Time time;
+ unsigned long serial;
+ XtConvertSelectionProc convert;
+ XtLoseSelectionProc loses;
+ XtSelectionDoneProc notify;
+ XtCancelConvertSelectionProc owner_cancel;
+ XtPointer owner_closure;
+ PropList prop_list;
+ Request req; /* state for local non-incr xfer */
+ int ref_count; /* of active transfers */
+ unsigned int incremental:1;
+ unsigned int free_when_done:1;
+ unsigned int was_disowned:1;
+} SelectRec;
+
+typedef struct _ParamRec {
+ Atom selection;
+ Atom param;
+} ParamRec, *Param;
+
+typedef struct _ParamInfoRec {
+ unsigned int count;
+ Param paramlist;
+} ParamInfoRec, *ParamInfo;
+
+typedef struct _QueuedRequestRec {
+ Atom selection;
+ Atom target;
+ Atom param;
+ XtSelectionCallbackProc callback;
+ XtPointer closure;
+ Time time;
+ Boolean incremental;
+} QueuedRequestRec, *QueuedRequest;
+
+typedef struct _QueuedRequestInfoRec {
+ int count;
+ Atom *selections;
+ QueuedRequest *requests;
+} QueuedRequestInfoRec, *QueuedRequestInfo;
+
+typedef struct {
+ XtSelectionCallbackProc *callbacks;
+ XtPointer *req_closure;
+ Atom property;
+ Atom *target;
+ Atom type;
+ int format;
+ char *value;
+ int bytelength;
+ int offset;
+ XtIntervalId timeout;
+ XtEventHandler proc;
+ Widget widget;
+ Time time;
+ Select ctx;
+ Boolean *incremental;
+ int current;
+} CallBackInfoRec, *CallBackInfo;
+
+typedef struct {
+ Atom target;
+ Atom property;
+} IndirectPair;
+
+#define IndirectPairWordSize 2
+
+typedef struct {
+ int active_transfer_count;
+} RequestWindowRec;
+
+#define MAX_SELECTION_INCR(dpy) (((65536 < XMaxRequestSize(dpy)) ? \
+ (65536 << 2) : (XMaxRequestSize(dpy) << 2))-100)
+
+#define MATCH_SELECT(event, info) ((event->time == info->time) && \
+ (event->requestor == XtWindow(info->widget)) && \
+ (event->selection == info->ctx->selection) && \
+ (event->target == *info->target))
+
+#endif /* _XtselectionI_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Shell.h b/X11/Shell.h
new file mode 100644
index 000000000..129ac3953
--- /dev/null
+++ b/X11/Shell.h
@@ -0,0 +1,564 @@
+/***********************************************************
+
+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 _XtShell_h
+#define _XtShell_h
+
+#ifndef XT_NO_SM
+#include <X11/SM/SMlib.h>
+#endif
+#include <X11/Intrinsic.h>
+
+/***********************************************************************
+ *
+ * Shell Widget
+ *
+ ***********************************************************************/
+/*
+ * Shell-specific resources names, classes, and a representation type.
+ */
+
+#ifndef XTSTRINGDEFINES
+#define _XtShell_h_Const const
+#endif
+
+/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */
+/* This file is automatically generated. */
+/* Default ABI version -- Do not edit */
+#ifdef XTSTRINGDEFINES
+#define XtNiconName "iconName"
+#define XtCIconName "IconName"
+#define XtNiconPixmap "iconPixmap"
+#define XtCIconPixmap "IconPixmap"
+#define XtNiconWindow "iconWindow"
+#define XtCIconWindow "IconWindow"
+#define XtNiconMask "iconMask"
+#define XtCIconMask "IconMask"
+#define XtNwindowGroup "windowGroup"
+#define XtCWindowGroup "WindowGroup"
+#define XtNvisual "visual"
+#define XtCVisual "Visual"
+#define XtNtitleEncoding "titleEncoding"
+#define XtCTitleEncoding "TitleEncoding"
+#define XtNsaveUnder "saveUnder"
+#define XtCSaveUnder "SaveUnder"
+#define XtNtransient "transient"
+#define XtCTransient "Transient"
+#define XtNoverrideRedirect "overrideRedirect"
+#define XtCOverrideRedirect "OverrideRedirect"
+#define XtNtransientFor "transientFor"
+#define XtCTransientFor "TransientFor"
+#define XtNiconNameEncoding "iconNameEncoding"
+#define XtCIconNameEncoding "IconNameEncoding"
+#define XtNallowShellResize "allowShellResize"
+#define XtCAllowShellResize "AllowShellResize"
+#define XtNcreatePopupChildProc "createPopupChildProc"
+#define XtCCreatePopupChildProc "CreatePopupChildProc"
+#define XtNtitle "title"
+#define XtCTitle "Title"
+#ifndef XtRAtom
+#define XtRAtom "Atom"
+#endif
+#define XtNargc "argc"
+#define XtCArgc "Argc"
+#define XtNargv "argv"
+#define XtCArgv "Argv"
+#define XtNiconX "iconX"
+#define XtCIconX "IconX"
+#define XtNiconY "iconY"
+#define XtCIconY "IconY"
+#define XtNinput "input"
+#define XtCInput "Input"
+#define XtNiconic "iconic"
+#define XtCIconic "Iconic"
+#define XtNinitialState "initialState"
+#define XtCInitialState "InitialState"
+#define XtNgeometry "geometry"
+#define XtCGeometry "Geometry"
+#define XtNbaseWidth "baseWidth"
+#define XtCBaseWidth "BaseWidth"
+#define XtNbaseHeight "baseHeight"
+#define XtCBaseHeight "BaseHeight"
+#define XtNwinGravity "winGravity"
+#define XtCWinGravity "WinGravity"
+#define XtNminWidth "minWidth"
+#define XtCMinWidth "MinWidth"
+#define XtNminHeight "minHeight"
+#define XtCMinHeight "MinHeight"
+#define XtNmaxWidth "maxWidth"
+#define XtCMaxWidth "MaxWidth"
+#define XtNmaxHeight "maxHeight"
+#define XtCMaxHeight "MaxHeight"
+#define XtNwidthInc "widthInc"
+#define XtCWidthInc "WidthInc"
+#define XtNheightInc "heightInc"
+#define XtCHeightInc "HeightInc"
+#define XtNminAspectY "minAspectY"
+#define XtCMinAspectY "MinAspectY"
+#define XtNmaxAspectY "maxAspectY"
+#define XtCMaxAspectY "MaxAspectY"
+#define XtNminAspectX "minAspectX"
+#define XtCMinAspectX "MinAspectX"
+#define XtNmaxAspectX "maxAspectX"
+#define XtCMaxAspectX "MaxAspectX"
+#define XtNwmTimeout "wmTimeout"
+#define XtCWmTimeout "WmTimeout"
+#define XtNwaitForWm "waitforwm"
+#define XtCWaitForWm "Waitforwm"
+#define XtNwaitforwm "waitforwm"
+#define XtCWaitforwm "Waitforwm"
+#define XtNclientLeader "clientLeader"
+#define XtCClientLeader "ClientLeader"
+#define XtNwindowRole "windowRole"
+#define XtCWindowRole "WindowRole"
+#define XtNurgency "urgency"
+#define XtCUrgency "Urgency"
+#define XtNcancelCallback "cancelCallback"
+#define XtNcloneCommand "cloneCommand"
+#define XtCCloneCommand "CloneCommand"
+#define XtNconnection "connection"
+#define XtCConnection "Connection"
+#define XtNcurrentDirectory "currentDirectory"
+#define XtCCurrentDirectory "CurrentDirectory"
+#define XtNdieCallback "dieCallback"
+#define XtNdiscardCommand "discardCommand"
+#define XtCDiscardCommand "DiscardCommand"
+#define XtNenvironment "environment"
+#define XtCEnvironment "Environment"
+#define XtNinteractCallback "interactCallback"
+#define XtNjoinSession "joinSession"
+#define XtCJoinSession "JoinSession"
+#define XtNprogramPath "programPath"
+#define XtCProgramPath "ProgramPath"
+#define XtNresignCommand "resignCommand"
+#define XtCResignCommand "ResignCommand"
+#define XtNrestartCommand "restartCommand"
+#define XtCRestartCommand "RestartCommand"
+#define XtNrestartStyle "restartStyle"
+#define XtCRestartStyle "RestartStyle"
+#define XtNsaveCallback "saveCallback"
+#define XtNsaveCompleteCallback "saveCompleteCallback"
+#define XtNsessionID "sessionID"
+#define XtCSessionID "SessionID"
+#define XtNshutdownCommand "shutdownCommand"
+#define XtCShutdownCommand "ShutdownCommand"
+#define XtNerrorCallback "errorCallback"
+#else
+extern _XtShell_h_Const char XtShellStrings[];
+#ifndef XtNiconName
+#define XtNiconName ((char*)&XtShellStrings[0])
+#endif
+#ifndef XtCIconName
+#define XtCIconName ((char*)&XtShellStrings[9])
+#endif
+#ifndef XtNiconPixmap
+#define XtNiconPixmap ((char*)&XtShellStrings[18])
+#endif
+#ifndef XtCIconPixmap
+#define XtCIconPixmap ((char*)&XtShellStrings[29])
+#endif
+#ifndef XtNiconWindow
+#define XtNiconWindow ((char*)&XtShellStrings[40])
+#endif
+#ifndef XtCIconWindow
+#define XtCIconWindow ((char*)&XtShellStrings[51])
+#endif
+#ifndef XtNiconMask
+#define XtNiconMask ((char*)&XtShellStrings[62])
+#endif
+#ifndef XtCIconMask
+#define XtCIconMask ((char*)&XtShellStrings[71])
+#endif
+#ifndef XtNwindowGroup
+#define XtNwindowGroup ((char*)&XtShellStrings[80])
+#endif
+#ifndef XtCWindowGroup
+#define XtCWindowGroup ((char*)&XtShellStrings[92])
+#endif
+#ifndef XtNvisual
+#define XtNvisual ((char*)&XtShellStrings[104])
+#endif
+#ifndef XtCVisual
+#define XtCVisual ((char*)&XtShellStrings[111])
+#endif
+#ifndef XtNtitleEncoding
+#define XtNtitleEncoding ((char*)&XtShellStrings[118])
+#endif
+#ifndef XtCTitleEncoding
+#define XtCTitleEncoding ((char*)&XtShellStrings[132])
+#endif
+#ifndef XtNsaveUnder
+#define XtNsaveUnder ((char*)&XtShellStrings[146])
+#endif
+#ifndef XtCSaveUnder
+#define XtCSaveUnder ((char*)&XtShellStrings[156])
+#endif
+#ifndef XtNtransient
+#define XtNtransient ((char*)&XtShellStrings[166])
+#endif
+#ifndef XtCTransient
+#define XtCTransient ((char*)&XtShellStrings[176])
+#endif
+#ifndef XtNoverrideRedirect
+#define XtNoverrideRedirect ((char*)&XtShellStrings[186])
+#endif
+#ifndef XtCOverrideRedirect
+#define XtCOverrideRedirect ((char*)&XtShellStrings[203])
+#endif
+#ifndef XtNtransientFor
+#define XtNtransientFor ((char*)&XtShellStrings[220])
+#endif
+#ifndef XtCTransientFor
+#define XtCTransientFor ((char*)&XtShellStrings[233])
+#endif
+#ifndef XtNiconNameEncoding
+#define XtNiconNameEncoding ((char*)&XtShellStrings[246])
+#endif
+#ifndef XtCIconNameEncoding
+#define XtCIconNameEncoding ((char*)&XtShellStrings[263])
+#endif
+#ifndef XtNallowShellResize
+#define XtNallowShellResize ((char*)&XtShellStrings[280])
+#endif
+#ifndef XtCAllowShellResize
+#define XtCAllowShellResize ((char*)&XtShellStrings[297])
+#endif
+#ifndef XtNcreatePopupChildProc
+#define XtNcreatePopupChildProc ((char*)&XtShellStrings[314])
+#endif
+#ifndef XtCCreatePopupChildProc
+#define XtCCreatePopupChildProc ((char*)&XtShellStrings[335])
+#endif
+#ifndef XtNtitle
+#define XtNtitle ((char*)&XtShellStrings[356])
+#endif
+#ifndef XtCTitle
+#define XtCTitle ((char*)&XtShellStrings[362])
+#endif
+#ifndef XtRAtom
+#define XtRAtom ((char*)&XtShellStrings[368])
+#endif
+#ifndef XtNargc
+#define XtNargc ((char*)&XtShellStrings[373])
+#endif
+#ifndef XtCArgc
+#define XtCArgc ((char*)&XtShellStrings[378])
+#endif
+#ifndef XtNargv
+#define XtNargv ((char*)&XtShellStrings[383])
+#endif
+#ifndef XtCArgv
+#define XtCArgv ((char*)&XtShellStrings[388])
+#endif
+#ifndef XtNiconX
+#define XtNiconX ((char*)&XtShellStrings[393])
+#endif
+#ifndef XtCIconX
+#define XtCIconX ((char*)&XtShellStrings[399])
+#endif
+#ifndef XtNiconY
+#define XtNiconY ((char*)&XtShellStrings[405])
+#endif
+#ifndef XtCIconY
+#define XtCIconY ((char*)&XtShellStrings[411])
+#endif
+#ifndef XtNinput
+#define XtNinput ((char*)&XtShellStrings[417])
+#endif
+#ifndef XtCInput
+#define XtCInput ((char*)&XtShellStrings[423])
+#endif
+#ifndef XtNiconic
+#define XtNiconic ((char*)&XtShellStrings[429])
+#endif
+#ifndef XtCIconic
+#define XtCIconic ((char*)&XtShellStrings[436])
+#endif
+#ifndef XtNinitialState
+#define XtNinitialState ((char*)&XtShellStrings[443])
+#endif
+#ifndef XtCInitialState
+#define XtCInitialState ((char*)&XtShellStrings[456])
+#endif
+#ifndef XtNgeometry
+#define XtNgeometry ((char*)&XtShellStrings[469])
+#endif
+#ifndef XtCGeometry
+#define XtCGeometry ((char*)&XtShellStrings[478])
+#endif
+#ifndef XtNbaseWidth
+#define XtNbaseWidth ((char*)&XtShellStrings[487])
+#endif
+#ifndef XtCBaseWidth
+#define XtCBaseWidth ((char*)&XtShellStrings[497])
+#endif
+#ifndef XtNbaseHeight
+#define XtNbaseHeight ((char*)&XtShellStrings[507])
+#endif
+#ifndef XtCBaseHeight
+#define XtCBaseHeight ((char*)&XtShellStrings[518])
+#endif
+#ifndef XtNwinGravity
+#define XtNwinGravity ((char*)&XtShellStrings[529])
+#endif
+#ifndef XtCWinGravity
+#define XtCWinGravity ((char*)&XtShellStrings[540])
+#endif
+#ifndef XtNminWidth
+#define XtNminWidth ((char*)&XtShellStrings[551])
+#endif
+#ifndef XtCMinWidth
+#define XtCMinWidth ((char*)&XtShellStrings[560])
+#endif
+#ifndef XtNminHeight
+#define XtNminHeight ((char*)&XtShellStrings[569])
+#endif
+#ifndef XtCMinHeight
+#define XtCMinHeight ((char*)&XtShellStrings[579])
+#endif
+#ifndef XtNmaxWidth
+#define XtNmaxWidth ((char*)&XtShellStrings[589])
+#endif
+#ifndef XtCMaxWidth
+#define XtCMaxWidth ((char*)&XtShellStrings[598])
+#endif
+#ifndef XtNmaxHeight
+#define XtNmaxHeight ((char*)&XtShellStrings[607])
+#endif
+#ifndef XtCMaxHeight
+#define XtCMaxHeight ((char*)&XtShellStrings[617])
+#endif
+#ifndef XtNwidthInc
+#define XtNwidthInc ((char*)&XtShellStrings[627])
+#endif
+#ifndef XtCWidthInc
+#define XtCWidthInc ((char*)&XtShellStrings[636])
+#endif
+#ifndef XtNheightInc
+#define XtNheightInc ((char*)&XtShellStrings[645])
+#endif
+#ifndef XtCHeightInc
+#define XtCHeightInc ((char*)&XtShellStrings[655])
+#endif
+#ifndef XtNminAspectY
+#define XtNminAspectY ((char*)&XtShellStrings[665])
+#endif
+#ifndef XtCMinAspectY
+#define XtCMinAspectY ((char*)&XtShellStrings[676])
+#endif
+#ifndef XtNmaxAspectY
+#define XtNmaxAspectY ((char*)&XtShellStrings[687])
+#endif
+#ifndef XtCMaxAspectY
+#define XtCMaxAspectY ((char*)&XtShellStrings[698])
+#endif
+#ifndef XtNminAspectX
+#define XtNminAspectX ((char*)&XtShellStrings[709])
+#endif
+#ifndef XtCMinAspectX
+#define XtCMinAspectX ((char*)&XtShellStrings[720])
+#endif
+#ifndef XtNmaxAspectX
+#define XtNmaxAspectX ((char*)&XtShellStrings[731])
+#endif
+#ifndef XtCMaxAspectX
+#define XtCMaxAspectX ((char*)&XtShellStrings[742])
+#endif
+#ifndef XtNwmTimeout
+#define XtNwmTimeout ((char*)&XtShellStrings[753])
+#endif
+#ifndef XtCWmTimeout
+#define XtCWmTimeout ((char*)&XtShellStrings[763])
+#endif
+#ifndef XtNwaitForWm
+#define XtNwaitForWm ((char*)&XtShellStrings[773])
+#endif
+#ifndef XtCWaitForWm
+#define XtCWaitForWm ((char*)&XtShellStrings[783])
+#endif
+#ifndef XtNwaitforwm
+#define XtNwaitforwm ((char*)&XtShellStrings[793])
+#endif
+#ifndef XtCWaitforwm
+#define XtCWaitforwm ((char*)&XtShellStrings[803])
+#endif
+#ifndef XtNclientLeader
+#define XtNclientLeader ((char*)&XtShellStrings[813])
+#endif
+#ifndef XtCClientLeader
+#define XtCClientLeader ((char*)&XtShellStrings[826])
+#endif
+#ifndef XtNwindowRole
+#define XtNwindowRole ((char*)&XtShellStrings[839])
+#endif
+#ifndef XtCWindowRole
+#define XtCWindowRole ((char*)&XtShellStrings[850])
+#endif
+#ifndef XtNurgency
+#define XtNurgency ((char*)&XtShellStrings[861])
+#endif
+#ifndef XtCUrgency
+#define XtCUrgency ((char*)&XtShellStrings[869])
+#endif
+#ifndef XtNcancelCallback
+#define XtNcancelCallback ((char*)&XtShellStrings[877])
+#endif
+#ifndef XtNcloneCommand
+#define XtNcloneCommand ((char*)&XtShellStrings[892])
+#endif
+#ifndef XtCCloneCommand
+#define XtCCloneCommand ((char*)&XtShellStrings[905])
+#endif
+#ifndef XtNconnection
+#define XtNconnection ((char*)&XtShellStrings[918])
+#endif
+#ifndef XtCConnection
+#define XtCConnection ((char*)&XtShellStrings[929])
+#endif
+#ifndef XtNcurrentDirectory
+#define XtNcurrentDirectory ((char*)&XtShellStrings[940])
+#endif
+#ifndef XtCCurrentDirectory
+#define XtCCurrentDirectory ((char*)&XtShellStrings[957])
+#endif
+#ifndef XtNdieCallback
+#define XtNdieCallback ((char*)&XtShellStrings[974])
+#endif
+#ifndef XtNdiscardCommand
+#define XtNdiscardCommand ((char*)&XtShellStrings[986])
+#endif
+#ifndef XtCDiscardCommand
+#define XtCDiscardCommand ((char*)&XtShellStrings[1001])
+#endif
+#ifndef XtNenvironment
+#define XtNenvironment ((char*)&XtShellStrings[1016])
+#endif
+#ifndef XtCEnvironment
+#define XtCEnvironment ((char*)&XtShellStrings[1028])
+#endif
+#ifndef XtNinteractCallback
+#define XtNinteractCallback ((char*)&XtShellStrings[1040])
+#endif
+#ifndef XtNjoinSession
+#define XtNjoinSession ((char*)&XtShellStrings[1057])
+#endif
+#ifndef XtCJoinSession
+#define XtCJoinSession ((char*)&XtShellStrings[1069])
+#endif
+#ifndef XtNprogramPath
+#define XtNprogramPath ((char*)&XtShellStrings[1081])
+#endif
+#ifndef XtCProgramPath
+#define XtCProgramPath ((char*)&XtShellStrings[1093])
+#endif
+#ifndef XtNresignCommand
+#define XtNresignCommand ((char*)&XtShellStrings[1105])
+#endif
+#ifndef XtCResignCommand
+#define XtCResignCommand ((char*)&XtShellStrings[1119])
+#endif
+#ifndef XtNrestartCommand
+#define XtNrestartCommand ((char*)&XtShellStrings[1133])
+#endif
+#ifndef XtCRestartCommand
+#define XtCRestartCommand ((char*)&XtShellStrings[1148])
+#endif
+#ifndef XtNrestartStyle
+#define XtNrestartStyle ((char*)&XtShellStrings[1163])
+#endif
+#ifndef XtCRestartStyle
+#define XtCRestartStyle ((char*)&XtShellStrings[1176])
+#endif
+#ifndef XtNsaveCallback
+#define XtNsaveCallback ((char*)&XtShellStrings[1189])
+#endif
+#ifndef XtNsaveCompleteCallback
+#define XtNsaveCompleteCallback ((char*)&XtShellStrings[1202])
+#endif
+#ifndef XtNsessionID
+#define XtNsessionID ((char*)&XtShellStrings[1223])
+#endif
+#ifndef XtCSessionID
+#define XtCSessionID ((char*)&XtShellStrings[1233])
+#endif
+#ifndef XtNshutdownCommand
+#define XtNshutdownCommand ((char*)&XtShellStrings[1243])
+#endif
+#ifndef XtCShutdownCommand
+#define XtCShutdownCommand ((char*)&XtShellStrings[1259])
+#endif
+#ifndef XtNerrorCallback
+#define XtNerrorCallback ((char*)&XtShellStrings[1275])
+#endif
+#endif /* XTSTRINGDEFINES */
+
+#ifndef XTSTRINGDEFINES
+#undef _XtShell_h_Const
+#endif
+
+/* Class record constants */
+
+typedef struct _ShellClassRec *ShellWidgetClass;
+typedef struct _OverrideShellClassRec *OverrideShellWidgetClass;
+typedef struct _WMShellClassRec *WMShellWidgetClass;
+typedef struct _TransientShellClassRec *TransientShellWidgetClass;
+typedef struct _TopLevelShellClassRec *TopLevelShellWidgetClass;
+typedef struct _ApplicationShellClassRec *ApplicationShellWidgetClass;
+typedef struct _SessionShellClassRec *SessionShellWidgetClass;
+
+#ifndef SHELL
+externalref WidgetClass shellWidgetClass;
+externalref WidgetClass overrideShellWidgetClass;
+externalref WidgetClass wmShellWidgetClass;
+externalref WidgetClass transientShellWidgetClass;
+externalref WidgetClass topLevelShellWidgetClass;
+externalref WidgetClass applicationShellWidgetClass;
+externalref WidgetClass sessionShellWidgetClass;
+#endif
+
+#endif /* _XtShell_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ShellI.h b/X11/ShellI.h
new file mode 100644
index 000000000..34db03648
--- /dev/null
+++ b/X11/ShellI.h
@@ -0,0 +1,10 @@
+#ifndef _XtShellInternal_h
+#define _XtShellInternal_h
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+extern void _XtShellGetCoordinates(Widget widget, Position *x, Position *y);
+
+#endif /* _XtShellInternal_h */
diff --git a/X11/ShellP.h b/X11/ShellP.h
new file mode 100644
index 000000000..ce7ae3785
--- /dev/null
+++ b/X11/ShellP.h
@@ -0,0 +1,436 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * ShellP.h - Private definitions for Shell widget
+ *
+ * Author: Paul Asente
+ * Digital Equipment Corporation
+ * Western Software Laboratory
+ * Date: Thu Dec 3, 1987
+ */
+
+#ifndef _XtShellPrivate_h
+#define _XtShellPrivate_h
+
+#include <X11/Shell.h>
+
+/* *****
+ * ***** VendorP.h is included later on; it needs fields defined in the first
+ * ***** part of this header file
+ * *****
+ */
+
+_XFUNCPROTOBEGIN
+
+/***********************************************************************
+ *
+ * Shell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the Shell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} ShellClassPart;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 mandated for all extension records */
+ XrmQuark record_type; /* NULLQUARK; on ShellClassPart */
+ long version; /* must be XtShellExtensionVersion */
+ Cardinal record_size; /* sizeof(ShellClassExtensionRec) */
+ XtGeometryHandler root_geometry_manager;
+} ShellClassExtensionRec, *ShellClassExtension;
+
+#define XtShellExtensionVersion 1L
+#define XtInheritRootGeometryManager ((XtGeometryHandler)_XtInherit)
+
+typedef struct _ShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+} ShellClassRec;
+
+externalref ShellClassRec shellClassRec;
+
+/* New fields for the shell widget */
+
+typedef struct {
+ char *geometry;
+ XtCreatePopupChildProc create_popup_child_proc;
+ XtGrabKind grab_kind;
+ Boolean spring_loaded;
+ Boolean popped_up;
+ Boolean allow_shell_resize;
+ Boolean client_specified; /* re-using old name */
+#define _XtShellPositionValid ((Boolean)(1<<0))
+#define _XtShellNotReparented ((Boolean)(1<<1))
+#define _XtShellPPositionOK ((Boolean)(1<<2))
+#define _XtShellGeometryParsed ((Boolean)(1<<3))
+ Boolean save_under;
+ Boolean override_redirect;
+
+ XtCallbackList popup_callback;
+ XtCallbackList popdown_callback;
+ Visual* visual;
+} ShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+} ShellRec, *ShellWidget;
+
+/***********************************************************************
+ *
+ * OverrideShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the OverrideShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} OverrideShellClassPart;
+
+typedef struct _OverrideShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ OverrideShellClassPart override_shell_class;
+} OverrideShellClassRec;
+
+externalref OverrideShellClassRec overrideShellClassRec;
+
+/* No new fields for the override shell widget */
+
+typedef struct {int frabjous;} OverrideShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ OverrideShellPart override;
+} OverrideShellRec, *OverrideShellWidget;
+
+/***********************************************************************
+ *
+ * WMShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the WMShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} WMShellClassPart;
+
+typedef struct _WMShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+} WMShellClassRec;
+
+externalref WMShellClassRec wmShellClassRec;
+
+/* New fields for the WM shell widget */
+
+typedef struct {
+ char *title;
+ int wm_timeout;
+ Boolean wait_for_wm;
+ Boolean transient;
+ Boolean urgency;
+ Widget client_leader;
+ String window_role;
+ struct _OldXSizeHints { /* pre-R4 Xlib structure */
+ long flags;
+ int x, y;
+ int width, height;
+ int min_width, min_height;
+ int max_width, max_height;
+ int width_inc, height_inc;
+ struct {
+ int x;
+ int y;
+ } min_aspect, max_aspect;
+ } size_hints;
+ XWMHints wm_hints;
+ int base_width, base_height;
+ int win_gravity;
+ Atom title_encoding;
+} WMShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+} WMShellRec, *WMShellWidget;
+
+_XFUNCPROTOEND
+
+#include <X11/VendorP.h>
+
+_XFUNCPROTOBEGIN
+
+/***********************************************************************
+ *
+ * TransientShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the TransientShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} TransientShellClassPart;
+
+typedef struct _TransientShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TransientShellClassPart transient_shell_class;
+} TransientShellClassRec;
+
+externalref TransientShellClassRec transientShellClassRec;
+
+/* New fields for the transient shell widget */
+
+typedef struct {
+ Widget transient_for;
+} TransientShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TransientShellPart transient;
+} TransientShellRec, *TransientShellWidget;
+
+/***********************************************************************
+ *
+ * TopLevelShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the TopLevelShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} TopLevelShellClassPart;
+
+typedef struct _TopLevelShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TopLevelShellClassPart top_level_shell_class;
+} TopLevelShellClassRec;
+
+externalref TopLevelShellClassRec topLevelShellClassRec;
+
+/* New fields for the top level shell widget */
+
+typedef struct {
+ char *icon_name;
+ Boolean iconic;
+ Atom icon_name_encoding;
+} TopLevelShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TopLevelShellPart topLevel;
+} TopLevelShellRec, *TopLevelShellWidget;
+
+/***********************************************************************
+ *
+ * ApplicationShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the ApplicationShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} ApplicationShellClassPart;
+
+typedef struct _ApplicationShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TopLevelShellClassPart top_level_shell_class;
+ ApplicationShellClassPart application_shell_class;
+} ApplicationShellClassRec;
+
+externalref ApplicationShellClassRec applicationShellClassRec;
+
+/* New fields for the application shell widget */
+
+typedef struct {
+#if defined(__cplusplus) || defined(c_plusplus)
+ char *c_class;
+#else
+ char *class;
+#endif
+ XrmClass xrm_class;
+ int argc;
+ char **argv;
+} ApplicationShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TopLevelShellPart topLevel;
+ ApplicationShellPart application;
+} ApplicationShellRec, *ApplicationShellWidget;
+
+/***********************************************************************
+ *
+ * SessionShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the SessionShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} SessionShellClassPart;
+
+typedef struct _SessionShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TopLevelShellClassPart top_level_shell_class;
+ ApplicationShellClassPart application_shell_class;
+ SessionShellClassPart session_shell_class;
+} SessionShellClassRec;
+
+externalref SessionShellClassRec sessionShellClassRec;
+
+typedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */
+
+/* New fields for the session shell widget */
+
+typedef struct {
+#ifndef XT_NO_SM
+ SmcConn connection;
+#endif
+ String session_id;
+ String* restart_command;
+ String* clone_command;
+ String* discard_command;
+ String* resign_command;
+ String* shutdown_command;
+ String* environment;
+ String current_dir;
+ String program_path;
+ unsigned char restart_style;
+ unsigned char checkpoint_state;
+ Boolean join_session;
+ XtCallbackList save_callbacks;
+ XtCallbackList interact_callbacks;
+ XtCallbackList cancel_callbacks;
+ XtCallbackList save_complete_callbacks;
+ XtCallbackList die_callbacks;
+ XtCallbackList error_callbacks;
+ XtSaveYourself save;
+ XtInputId input_id;
+ XtPointer ses20;
+ XtPointer ses19;
+ XtPointer ses18;
+ XtPointer ses17;
+ XtPointer ses16;
+ XtPointer ses15;
+ XtPointer ses14;
+ XtPointer ses13;
+ XtPointer ses12;
+ XtPointer ses11;
+ XtPointer ses10;
+ XtPointer ses9;
+ XtPointer ses8;
+ XtPointer ses7;
+ XtPointer ses6;
+ XtPointer ses5;
+ XtPointer ses4;
+ XtPointer ses3;
+ XtPointer ses2;
+ XtPointer ses1;
+} SessionShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TopLevelShellPart topLevel;
+ ApplicationShellPart application;
+ SessionShellPart session;
+} SessionShellRec, *SessionShellWidget;
+
+_XFUNCPROTOEND
+
+#endif /* _XtShellPrivate_h */
diff --git a/X11/StringDefs.h b/X11/StringDefs.h
new file mode 100644
index 000000000..9f6c436e2
--- /dev/null
+++ b/X11/StringDefs.h
@@ -0,0 +1,1085 @@
+/***********************************************************
+
+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 _XtStringDefs_h_
+#define _XtStringDefs_h_
+
+#ifndef XTSTRINGDEFINES
+#define _XtStringDefs_h_Const const
+#endif
+
+/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */
+/* This file is automatically generated. */
+/* Default ABI version -- Do not edit */
+#ifdef XTSTRINGDEFINES
+#define XtNaccelerators "accelerators"
+#define XtNallowHoriz "allowHoriz"
+#define XtNallowVert "allowVert"
+#define XtNancestorSensitive "ancestorSensitive"
+#define XtNbackground "background"
+#define XtNbackgroundPixmap "backgroundPixmap"
+#define XtNbitmap "bitmap"
+#define XtNborderColor "borderColor"
+#define XtNborder "borderColor"
+#define XtNborderPixmap "borderPixmap"
+#define XtNborderWidth "borderWidth"
+#define XtNcallback "callback"
+#define XtNchildren "children"
+#define XtNcolormap "colormap"
+#define XtNdepth "depth"
+#define XtNdestroyCallback "destroyCallback"
+#define XtNeditType "editType"
+#define XtNfile "file"
+#define XtNfont "font"
+#define XtNforceBars "forceBars"
+#define XtNforeground "foreground"
+#define XtNfunction "function"
+#define XtNheight "height"
+#define XtNhighlight "highlight"
+#define XtNhSpace "hSpace"
+#define XtNindex "index"
+#define XtNinitialResourcesPersistent "initialResourcesPersistent"
+#define XtNinnerHeight "innerHeight"
+#define XtNinnerWidth "innerWidth"
+#define XtNinnerWindow "innerWindow"
+#define XtNinsertPosition "insertPosition"
+#define XtNinternalHeight "internalHeight"
+#define XtNinternalWidth "internalWidth"
+#define XtNjumpProc "jumpProc"
+#define XtNjustify "justify"
+#define XtNknobHeight "knobHeight"
+#define XtNknobIndent "knobIndent"
+#define XtNknobPixel "knobPixel"
+#define XtNknobWidth "knobWidth"
+#define XtNlabel "label"
+#define XtNlength "length"
+#define XtNlowerRight "lowerRight"
+#define XtNmappedWhenManaged "mappedWhenManaged"
+#define XtNmenuEntry "menuEntry"
+#define XtNname "name"
+#define XtNnotify "notify"
+#define XtNnumChildren "numChildren"
+#define XtNorientation "orientation"
+#define XtNparameter "parameter"
+#define XtNpixmap "pixmap"
+#define XtNpopupCallback "popupCallback"
+#define XtNpopdownCallback "popdownCallback"
+#define XtNresize "resize"
+#define XtNreverseVideo "reverseVideo"
+#define XtNscreen "screen"
+#define XtNscrollProc "scrollProc"
+#define XtNscrollDCursor "scrollDCursor"
+#define XtNscrollHCursor "scrollHCursor"
+#define XtNscrollLCursor "scrollLCursor"
+#define XtNscrollRCursor "scrollRCursor"
+#define XtNscrollUCursor "scrollUCursor"
+#define XtNscrollVCursor "scrollVCursor"
+#define XtNselection "selection"
+#define XtNselectionArray "selectionArray"
+#define XtNsensitive "sensitive"
+#define XtNshown "shown"
+#define XtNspace "space"
+#define XtNstring "string"
+#define XtNtextOptions "textOptions"
+#define XtNtextSink "textSink"
+#define XtNtextSource "textSource"
+#define XtNthickness "thickness"
+#define XtNthumb "thumb"
+#define XtNthumbProc "thumbProc"
+#define XtNtop "top"
+#define XtNtranslations "translations"
+#define XtNunrealizeCallback "unrealizeCallback"
+#define XtNupdate "update"
+#define XtNuseBottom "useBottom"
+#define XtNuseRight "useRight"
+#define XtNvalue "value"
+#define XtNvSpace "vSpace"
+#define XtNwidth "width"
+#define XtNwindow "window"
+#define XtNx "x"
+#define XtNy "y"
+#define XtCAccelerators "Accelerators"
+#define XtCBackground "Background"
+#define XtCBitmap "Bitmap"
+#define XtCBoolean "Boolean"
+#define XtCBorderColor "BorderColor"
+#define XtCBorderWidth "BorderWidth"
+#define XtCCallback "Callback"
+#define XtCColormap "Colormap"
+#define XtCColor "Color"
+#define XtCCursor "Cursor"
+#define XtCDepth "Depth"
+#define XtCEditType "EditType"
+#define XtCEventBindings "EventBindings"
+#define XtCFile "File"
+#define XtCFont "Font"
+#define XtCForeground "Foreground"
+#define XtCFraction "Fraction"
+#define XtCFunction "Function"
+#define XtCHeight "Height"
+#define XtCHSpace "HSpace"
+#define XtCIndex "Index"
+#define XtCInitialResourcesPersistent "InitialResourcesPersistent"
+#define XtCInsertPosition "InsertPosition"
+#define XtCInterval "Interval"
+#define XtCJustify "Justify"
+#define XtCKnobIndent "KnobIndent"
+#define XtCKnobPixel "KnobPixel"
+#define XtCLabel "Label"
+#define XtCLength "Length"
+#define XtCMappedWhenManaged "MappedWhenManaged"
+#define XtCMargin "Margin"
+#define XtCMenuEntry "MenuEntry"
+#define XtCNotify "Notify"
+#define XtCOrientation "Orientation"
+#define XtCParameter "Parameter"
+#define XtCPixmap "Pixmap"
+#define XtCPosition "Position"
+#define XtCReadOnly "ReadOnly"
+#define XtCResize "Resize"
+#define XtCReverseVideo "ReverseVideo"
+#define XtCScreen "Screen"
+#define XtCScrollProc "ScrollProc"
+#define XtCScrollDCursor "ScrollDCursor"
+#define XtCScrollHCursor "ScrollHCursor"
+#define XtCScrollLCursor "ScrollLCursor"
+#define XtCScrollRCursor "ScrollRCursor"
+#define XtCScrollUCursor "ScrollUCursor"
+#define XtCScrollVCursor "ScrollVCursor"
+#define XtCSelection "Selection"
+#define XtCSensitive "Sensitive"
+#define XtCSelectionArray "SelectionArray"
+#define XtCSpace "Space"
+#define XtCString "String"
+#define XtCTextOptions "TextOptions"
+#define XtCTextPosition "TextPosition"
+#define XtCTextSink "TextSink"
+#define XtCTextSource "TextSource"
+#define XtCThickness "Thickness"
+#define XtCThumb "Thumb"
+#define XtCTranslations "Translations"
+#define XtCValue "Value"
+#define XtCVSpace "VSpace"
+#define XtCWidth "Width"
+#define XtCWindow "Window"
+#define XtCX "X"
+#define XtCY "Y"
+#define XtRAcceleratorTable "AcceleratorTable"
+#ifndef XtRAtom
+#define XtRAtom "Atom"
+#endif
+#define XtRBitmap "Bitmap"
+#define XtRBool "Bool"
+#define XtRBoolean "Boolean"
+#define XtRCallback "Callback"
+#define XtRCallProc "CallProc"
+#define XtRCardinal "Cardinal"
+#define XtRColor "Color"
+#define XtRColormap "Colormap"
+#define XtRCursor "Cursor"
+#define XtRDimension "Dimension"
+#define XtRDisplay "Display"
+#define XtREditMode "EditMode"
+#define XtREnum "Enum"
+#define XtRFile "File"
+#define XtRFloat "Float"
+#define XtRFont "Font"
+#define XtRFontStruct "FontStruct"
+#define XtRFunction "Function"
+#define XtRGeometry "Geometry"
+#define XtRImmediate "Immediate"
+#define XtRInitialState "InitialState"
+#define XtRInt "Int"
+#define XtRJustify "Justify"
+#define XtRLongBoolean "Bool"
+#define XtRObject "Object"
+#define XtROrientation "Orientation"
+#define XtRPixel "Pixel"
+#define XtRPixmap "Pixmap"
+#define XtRPointer "Pointer"
+#define XtRPosition "Position"
+#define XtRScreen "Screen"
+#define XtRShort "Short"
+#define XtRString "String"
+#define XtRStringArray "StringArray"
+#define XtRStringTable "StringTable"
+#define XtRUnsignedChar "UnsignedChar"
+#define XtRTranslationTable "TranslationTable"
+#define XtRVisual "Visual"
+#define XtRWidget "Widget"
+#define XtRWidgetClass "WidgetClass"
+#define XtRWidgetList "WidgetList"
+#define XtRWindow "Window"
+#define XtEoff "off"
+#define XtEfalse "false"
+#define XtEno "no"
+#define XtEon "on"
+#define XtEtrue "true"
+#define XtEyes "yes"
+#define XtEvertical "vertical"
+#define XtEhorizontal "horizontal"
+#define XtEtextRead "read"
+#define XtEtextAppend "append"
+#define XtEtextEdit "edit"
+#define XtExtdefaultbackground "xtdefaultbackground"
+#define XtExtdefaultforeground "xtdefaultforeground"
+#define XtExtdefaultfont "xtdefaultfont"
+#define XtNfontSet "fontSet"
+#define XtRFontSet "FontSet"
+#define XtCFontSet "FontSet"
+#define XtRGravity "Gravity"
+#define XtNcreateHook "createHook"
+#define XtNchangeHook "changeHook"
+#define XtNconfigureHook "configureHook"
+#define XtNgeometryHook "geometryHook"
+#define XtNdestroyHook "destroyHook"
+#define XtNshells "shells"
+#define XtNnumShells "numShells"
+#define XtRCommandArgArray "CommandArgArray"
+#define XtRDirectoryString "DirectoryString"
+#define XtREnvironmentArray "EnvironmentArray"
+#define XtRRestartStyle "RestartStyle"
+#define XtRSmcConn "SmcConn"
+#define XtHcreate "Xtcreate"
+#define XtHsetValues "XtsetValues"
+#define XtHmanageChildren "XtmanageChildren"
+#define XtHunmanageChildren "XtunmanageChildren"
+#define XtHmanageSet "XtmanageSet"
+#define XtHunmanageSet "XtunmanageSet"
+#define XtHrealizeWidget "XtrealizeWidget"
+#define XtHunrealizeWidget "XtunrealizeWidget"
+#define XtHaddCallback "XtaddCallback"
+#define XtHaddCallbacks "XtaddCallbacks"
+#define XtHremoveCallback "XtremoveCallback"
+#define XtHremoveCallbacks "XtremoveCallbacks"
+#define XtHremoveAllCallbacks "XtremoveAllCallbacks"
+#define XtHaugmentTranslations "XtaugmentTranslations"
+#define XtHoverrideTranslations "XtoverrideTranslations"
+#define XtHuninstallTranslations "XtuninstallTranslations"
+#define XtHsetKeyboardFocus "XtsetKeyboardFocus"
+#define XtHsetWMColormapWindows "XtsetWMColormapWindows"
+#define XtHsetMappedWhenManaged "XtsetMappedWhenManaged"
+#define XtHmapWidget "XtmapWidget"
+#define XtHunmapWidget "XtunmapWidget"
+#define XtHpopup "Xtpopup"
+#define XtHpopupSpringLoaded "XtpopupSpringLoaded"
+#define XtHpopdown "Xtpopdown"
+#define XtHconfigure "Xtconfigure"
+#define XtHpreGeometry "XtpreGeometry"
+#define XtHpostGeometry "XtpostGeometry"
+#define XtHdestroy "Xtdestroy"
+#else
+extern _XtStringDefs_h_Const char XtStrings[];
+#ifndef XtNaccelerators
+#define XtNaccelerators ((char*)&XtStrings[0])
+#endif
+#ifndef XtNallowHoriz
+#define XtNallowHoriz ((char*)&XtStrings[13])
+#endif
+#ifndef XtNallowVert
+#define XtNallowVert ((char*)&XtStrings[24])
+#endif
+#ifndef XtNancestorSensitive
+#define XtNancestorSensitive ((char*)&XtStrings[34])
+#endif
+#ifndef XtNbackground
+#define XtNbackground ((char*)&XtStrings[52])
+#endif
+#ifndef XtNbackgroundPixmap
+#define XtNbackgroundPixmap ((char*)&XtStrings[63])
+#endif
+#ifndef XtNbitmap
+#define XtNbitmap ((char*)&XtStrings[80])
+#endif
+#ifndef XtNborderColor
+#define XtNborderColor ((char*)&XtStrings[87])
+#endif
+#ifndef XtNborder
+#define XtNborder ((char*)&XtStrings[99])
+#endif
+#ifndef XtNborderPixmap
+#define XtNborderPixmap ((char*)&XtStrings[111])
+#endif
+#ifndef XtNborderWidth
+#define XtNborderWidth ((char*)&XtStrings[124])
+#endif
+#ifndef XtNcallback
+#define XtNcallback ((char*)&XtStrings[136])
+#endif
+#ifndef XtNchildren
+#define XtNchildren ((char*)&XtStrings[145])
+#endif
+#ifndef XtNcolormap
+#define XtNcolormap ((char*)&XtStrings[154])
+#endif
+#ifndef XtNdepth
+#define XtNdepth ((char*)&XtStrings[163])
+#endif
+#ifndef XtNdestroyCallback
+#define XtNdestroyCallback ((char*)&XtStrings[169])
+#endif
+#ifndef XtNeditType
+#define XtNeditType ((char*)&XtStrings[185])
+#endif
+#ifndef XtNfile
+#define XtNfile ((char*)&XtStrings[194])
+#endif
+#ifndef XtNfont
+#define XtNfont ((char*)&XtStrings[199])
+#endif
+#ifndef XtNforceBars
+#define XtNforceBars ((char*)&XtStrings[204])
+#endif
+#ifndef XtNforeground
+#define XtNforeground ((char*)&XtStrings[214])
+#endif
+#ifndef XtNfunction
+#define XtNfunction ((char*)&XtStrings[225])
+#endif
+#ifndef XtNheight
+#define XtNheight ((char*)&XtStrings[234])
+#endif
+#ifndef XtNhighlight
+#define XtNhighlight ((char*)&XtStrings[241])
+#endif
+#ifndef XtNhSpace
+#define XtNhSpace ((char*)&XtStrings[251])
+#endif
+#ifndef XtNindex
+#define XtNindex ((char*)&XtStrings[258])
+#endif
+#ifndef XtNinitialResourcesPersistent
+#define XtNinitialResourcesPersistent ((char*)&XtStrings[264])
+#endif
+#ifndef XtNinnerHeight
+#define XtNinnerHeight ((char*)&XtStrings[291])
+#endif
+#ifndef XtNinnerWidth
+#define XtNinnerWidth ((char*)&XtStrings[303])
+#endif
+#ifndef XtNinnerWindow
+#define XtNinnerWindow ((char*)&XtStrings[314])
+#endif
+#ifndef XtNinsertPosition
+#define XtNinsertPosition ((char*)&XtStrings[326])
+#endif
+#ifndef XtNinternalHeight
+#define XtNinternalHeight ((char*)&XtStrings[341])
+#endif
+#ifndef XtNinternalWidth
+#define XtNinternalWidth ((char*)&XtStrings[356])
+#endif
+#ifndef XtNjumpProc
+#define XtNjumpProc ((char*)&XtStrings[370])
+#endif
+#ifndef XtNjustify
+#define XtNjustify ((char*)&XtStrings[379])
+#endif
+#ifndef XtNknobHeight
+#define XtNknobHeight ((char*)&XtStrings[387])
+#endif
+#ifndef XtNknobIndent
+#define XtNknobIndent ((char*)&XtStrings[398])
+#endif
+#ifndef XtNknobPixel
+#define XtNknobPixel ((char*)&XtStrings[409])
+#endif
+#ifndef XtNknobWidth
+#define XtNknobWidth ((char*)&XtStrings[419])
+#endif
+#ifndef XtNlabel
+#define XtNlabel ((char*)&XtStrings[429])
+#endif
+#ifndef XtNlength
+#define XtNlength ((char*)&XtStrings[435])
+#endif
+#ifndef XtNlowerRight
+#define XtNlowerRight ((char*)&XtStrings[442])
+#endif
+#ifndef XtNmappedWhenManaged
+#define XtNmappedWhenManaged ((char*)&XtStrings[453])
+#endif
+#ifndef XtNmenuEntry
+#define XtNmenuEntry ((char*)&XtStrings[471])
+#endif
+#ifndef XtNname
+#define XtNname ((char*)&XtStrings[481])
+#endif
+#ifndef XtNnotify
+#define XtNnotify ((char*)&XtStrings[486])
+#endif
+#ifndef XtNnumChildren
+#define XtNnumChildren ((char*)&XtStrings[493])
+#endif
+#ifndef XtNorientation
+#define XtNorientation ((char*)&XtStrings[505])
+#endif
+#ifndef XtNparameter
+#define XtNparameter ((char*)&XtStrings[517])
+#endif
+#ifndef XtNpixmap
+#define XtNpixmap ((char*)&XtStrings[527])
+#endif
+#ifndef XtNpopupCallback
+#define XtNpopupCallback ((char*)&XtStrings[534])
+#endif
+#ifndef XtNpopdownCallback
+#define XtNpopdownCallback ((char*)&XtStrings[548])
+#endif
+#ifndef XtNresize
+#define XtNresize ((char*)&XtStrings[564])
+#endif
+#ifndef XtNreverseVideo
+#define XtNreverseVideo ((char*)&XtStrings[571])
+#endif
+#ifndef XtNscreen
+#define XtNscreen ((char*)&XtStrings[584])
+#endif
+#ifndef XtNscrollProc
+#define XtNscrollProc ((char*)&XtStrings[591])
+#endif
+#ifndef XtNscrollDCursor
+#define XtNscrollDCursor ((char*)&XtStrings[602])
+#endif
+#ifndef XtNscrollHCursor
+#define XtNscrollHCursor ((char*)&XtStrings[616])
+#endif
+#ifndef XtNscrollLCursor
+#define XtNscrollLCursor ((char*)&XtStrings[630])
+#endif
+#ifndef XtNscrollRCursor
+#define XtNscrollRCursor ((char*)&XtStrings[644])
+#endif
+#ifndef XtNscrollUCursor
+#define XtNscrollUCursor ((char*)&XtStrings[658])
+#endif
+#ifndef XtNscrollVCursor
+#define XtNscrollVCursor ((char*)&XtStrings[672])
+#endif
+#ifndef XtNselection
+#define XtNselection ((char*)&XtStrings[686])
+#endif
+#ifndef XtNselectionArray
+#define XtNselectionArray ((char*)&XtStrings[696])
+#endif
+#ifndef XtNsensitive
+#define XtNsensitive ((char*)&XtStrings[711])
+#endif
+#ifndef XtNshown
+#define XtNshown ((char*)&XtStrings[721])
+#endif
+#ifndef XtNspace
+#define XtNspace ((char*)&XtStrings[727])
+#endif
+#ifndef XtNstring
+#define XtNstring ((char*)&XtStrings[733])
+#endif
+#ifndef XtNtextOptions
+#define XtNtextOptions ((char*)&XtStrings[740])
+#endif
+#ifndef XtNtextSink
+#define XtNtextSink ((char*)&XtStrings[752])
+#endif
+#ifndef XtNtextSource
+#define XtNtextSource ((char*)&XtStrings[761])
+#endif
+#ifndef XtNthickness
+#define XtNthickness ((char*)&XtStrings[772])
+#endif
+#ifndef XtNthumb
+#define XtNthumb ((char*)&XtStrings[782])
+#endif
+#ifndef XtNthumbProc
+#define XtNthumbProc ((char*)&XtStrings[788])
+#endif
+#ifndef XtNtop
+#define XtNtop ((char*)&XtStrings[798])
+#endif
+#ifndef XtNtranslations
+#define XtNtranslations ((char*)&XtStrings[802])
+#endif
+#ifndef XtNunrealizeCallback
+#define XtNunrealizeCallback ((char*)&XtStrings[815])
+#endif
+#ifndef XtNupdate
+#define XtNupdate ((char*)&XtStrings[833])
+#endif
+#ifndef XtNuseBottom
+#define XtNuseBottom ((char*)&XtStrings[840])
+#endif
+#ifndef XtNuseRight
+#define XtNuseRight ((char*)&XtStrings[850])
+#endif
+#ifndef XtNvalue
+#define XtNvalue ((char*)&XtStrings[859])
+#endif
+#ifndef XtNvSpace
+#define XtNvSpace ((char*)&XtStrings[865])
+#endif
+#ifndef XtNwidth
+#define XtNwidth ((char*)&XtStrings[872])
+#endif
+#ifndef XtNwindow
+#define XtNwindow ((char*)&XtStrings[878])
+#endif
+#ifndef XtNx
+#define XtNx ((char*)&XtStrings[885])
+#endif
+#ifndef XtNy
+#define XtNy ((char*)&XtStrings[887])
+#endif
+#ifndef XtCAccelerators
+#define XtCAccelerators ((char*)&XtStrings[889])
+#endif
+#ifndef XtCBackground
+#define XtCBackground ((char*)&XtStrings[902])
+#endif
+#ifndef XtCBitmap
+#define XtCBitmap ((char*)&XtStrings[913])
+#endif
+#ifndef XtCBoolean
+#define XtCBoolean ((char*)&XtStrings[920])
+#endif
+#ifndef XtCBorderColor
+#define XtCBorderColor ((char*)&XtStrings[928])
+#endif
+#ifndef XtCBorderWidth
+#define XtCBorderWidth ((char*)&XtStrings[940])
+#endif
+#ifndef XtCCallback
+#define XtCCallback ((char*)&XtStrings[952])
+#endif
+#ifndef XtCColormap
+#define XtCColormap ((char*)&XtStrings[961])
+#endif
+#ifndef XtCColor
+#define XtCColor ((char*)&XtStrings[970])
+#endif
+#ifndef XtCCursor
+#define XtCCursor ((char*)&XtStrings[976])
+#endif
+#ifndef XtCDepth
+#define XtCDepth ((char*)&XtStrings[983])
+#endif
+#ifndef XtCEditType
+#define XtCEditType ((char*)&XtStrings[989])
+#endif
+#ifndef XtCEventBindings
+#define XtCEventBindings ((char*)&XtStrings[998])
+#endif
+#ifndef XtCFile
+#define XtCFile ((char*)&XtStrings[1012])
+#endif
+#ifndef XtCFont
+#define XtCFont ((char*)&XtStrings[1017])
+#endif
+#ifndef XtCForeground
+#define XtCForeground ((char*)&XtStrings[1022])
+#endif
+#ifndef XtCFraction
+#define XtCFraction ((char*)&XtStrings[1033])
+#endif
+#ifndef XtCFunction
+#define XtCFunction ((char*)&XtStrings[1042])
+#endif
+#ifndef XtCHeight
+#define XtCHeight ((char*)&XtStrings[1051])
+#endif
+#ifndef XtCHSpace
+#define XtCHSpace ((char*)&XtStrings[1058])
+#endif
+#ifndef XtCIndex
+#define XtCIndex ((char*)&XtStrings[1065])
+#endif
+#ifndef XtCInitialResourcesPersistent
+#define XtCInitialResourcesPersistent ((char*)&XtStrings[1071])
+#endif
+#ifndef XtCInsertPosition
+#define XtCInsertPosition ((char*)&XtStrings[1098])
+#endif
+#ifndef XtCInterval
+#define XtCInterval ((char*)&XtStrings[1113])
+#endif
+#ifndef XtCJustify
+#define XtCJustify ((char*)&XtStrings[1122])
+#endif
+#ifndef XtCKnobIndent
+#define XtCKnobIndent ((char*)&XtStrings[1130])
+#endif
+#ifndef XtCKnobPixel
+#define XtCKnobPixel ((char*)&XtStrings[1141])
+#endif
+#ifndef XtCLabel
+#define XtCLabel ((char*)&XtStrings[1151])
+#endif
+#ifndef XtCLength
+#define XtCLength ((char*)&XtStrings[1157])
+#endif
+#ifndef XtCMappedWhenManaged
+#define XtCMappedWhenManaged ((char*)&XtStrings[1164])
+#endif
+#ifndef XtCMargin
+#define XtCMargin ((char*)&XtStrings[1182])
+#endif
+#ifndef XtCMenuEntry
+#define XtCMenuEntry ((char*)&XtStrings[1189])
+#endif
+#ifndef XtCNotify
+#define XtCNotify ((char*)&XtStrings[1199])
+#endif
+#ifndef XtCOrientation
+#define XtCOrientation ((char*)&XtStrings[1206])
+#endif
+#ifndef XtCParameter
+#define XtCParameter ((char*)&XtStrings[1218])
+#endif
+#ifndef XtCPixmap
+#define XtCPixmap ((char*)&XtStrings[1228])
+#endif
+#ifndef XtCPosition
+#define XtCPosition ((char*)&XtStrings[1235])
+#endif
+#ifndef XtCReadOnly
+#define XtCReadOnly ((char*)&XtStrings[1244])
+#endif
+#ifndef XtCResize
+#define XtCResize ((char*)&XtStrings[1253])
+#endif
+#ifndef XtCReverseVideo
+#define XtCReverseVideo ((char*)&XtStrings[1260])
+#endif
+#ifndef XtCScreen
+#define XtCScreen ((char*)&XtStrings[1273])
+#endif
+#ifndef XtCScrollProc
+#define XtCScrollProc ((char*)&XtStrings[1280])
+#endif
+#ifndef XtCScrollDCursor
+#define XtCScrollDCursor ((char*)&XtStrings[1291])
+#endif
+#ifndef XtCScrollHCursor
+#define XtCScrollHCursor ((char*)&XtStrings[1305])
+#endif
+#ifndef XtCScrollLCursor
+#define XtCScrollLCursor ((char*)&XtStrings[1319])
+#endif
+#ifndef XtCScrollRCursor
+#define XtCScrollRCursor ((char*)&XtStrings[1333])
+#endif
+#ifndef XtCScrollUCursor
+#define XtCScrollUCursor ((char*)&XtStrings[1347])
+#endif
+#ifndef XtCScrollVCursor
+#define XtCScrollVCursor ((char*)&XtStrings[1361])
+#endif
+#ifndef XtCSelection
+#define XtCSelection ((char*)&XtStrings[1375])
+#endif
+#ifndef XtCSensitive
+#define XtCSensitive ((char*)&XtStrings[1385])
+#endif
+#ifndef XtCSelectionArray
+#define XtCSelectionArray ((char*)&XtStrings[1395])
+#endif
+#ifndef XtCSpace
+#define XtCSpace ((char*)&XtStrings[1410])
+#endif
+#ifndef XtCString
+#define XtCString ((char*)&XtStrings[1416])
+#endif
+#ifndef XtCTextOptions
+#define XtCTextOptions ((char*)&XtStrings[1423])
+#endif
+#ifndef XtCTextPosition
+#define XtCTextPosition ((char*)&XtStrings[1435])
+#endif
+#ifndef XtCTextSink
+#define XtCTextSink ((char*)&XtStrings[1448])
+#endif
+#ifndef XtCTextSource
+#define XtCTextSource ((char*)&XtStrings[1457])
+#endif
+#ifndef XtCThickness
+#define XtCThickness ((char*)&XtStrings[1468])
+#endif
+#ifndef XtCThumb
+#define XtCThumb ((char*)&XtStrings[1478])
+#endif
+#ifndef XtCTranslations
+#define XtCTranslations ((char*)&XtStrings[1484])
+#endif
+#ifndef XtCValue
+#define XtCValue ((char*)&XtStrings[1497])
+#endif
+#ifndef XtCVSpace
+#define XtCVSpace ((char*)&XtStrings[1503])
+#endif
+#ifndef XtCWidth
+#define XtCWidth ((char*)&XtStrings[1510])
+#endif
+#ifndef XtCWindow
+#define XtCWindow ((char*)&XtStrings[1516])
+#endif
+#ifndef XtCX
+#define XtCX ((char*)&XtStrings[1523])
+#endif
+#ifndef XtCY
+#define XtCY ((char*)&XtStrings[1525])
+#endif
+#ifndef XtRAcceleratorTable
+#define XtRAcceleratorTable ((char*)&XtStrings[1527])
+#endif
+#ifndef XtRAtom
+#define XtRAtom ((char*)&XtStrings[1544])
+#endif
+#ifndef XtRBitmap
+#define XtRBitmap ((char*)&XtStrings[1549])
+#endif
+#ifndef XtRBool
+#define XtRBool ((char*)&XtStrings[1556])
+#endif
+#ifndef XtRBoolean
+#define XtRBoolean ((char*)&XtStrings[1561])
+#endif
+#ifndef XtRCallback
+#define XtRCallback ((char*)&XtStrings[1569])
+#endif
+#ifndef XtRCallProc
+#define XtRCallProc ((char*)&XtStrings[1578])
+#endif
+#ifndef XtRCardinal
+#define XtRCardinal ((char*)&XtStrings[1587])
+#endif
+#ifndef XtRColor
+#define XtRColor ((char*)&XtStrings[1596])
+#endif
+#ifndef XtRColormap
+#define XtRColormap ((char*)&XtStrings[1602])
+#endif
+#ifndef XtRCursor
+#define XtRCursor ((char*)&XtStrings[1611])
+#endif
+#ifndef XtRDimension
+#define XtRDimension ((char*)&XtStrings[1618])
+#endif
+#ifndef XtRDisplay
+#define XtRDisplay ((char*)&XtStrings[1628])
+#endif
+#ifndef XtREditMode
+#define XtREditMode ((char*)&XtStrings[1636])
+#endif
+#ifndef XtREnum
+#define XtREnum ((char*)&XtStrings[1645])
+#endif
+#ifndef XtRFile
+#define XtRFile ((char*)&XtStrings[1650])
+#endif
+#ifndef XtRFloat
+#define XtRFloat ((char*)&XtStrings[1655])
+#endif
+#ifndef XtRFont
+#define XtRFont ((char*)&XtStrings[1661])
+#endif
+#ifndef XtRFontStruct
+#define XtRFontStruct ((char*)&XtStrings[1666])
+#endif
+#ifndef XtRFunction
+#define XtRFunction ((char*)&XtStrings[1677])
+#endif
+#ifndef XtRGeometry
+#define XtRGeometry ((char*)&XtStrings[1686])
+#endif
+#ifndef XtRImmediate
+#define XtRImmediate ((char*)&XtStrings[1695])
+#endif
+#ifndef XtRInitialState
+#define XtRInitialState ((char*)&XtStrings[1705])
+#endif
+#ifndef XtRInt
+#define XtRInt ((char*)&XtStrings[1718])
+#endif
+#ifndef XtRJustify
+#define XtRJustify ((char*)&XtStrings[1722])
+#endif
+#ifndef XtRLongBoolean
+#define XtRLongBoolean ((char*)&XtStrings[1730])
+#endif
+#ifndef XtRObject
+#define XtRObject ((char*)&XtStrings[1735])
+#endif
+#ifndef XtROrientation
+#define XtROrientation ((char*)&XtStrings[1742])
+#endif
+#ifndef XtRPixel
+#define XtRPixel ((char*)&XtStrings[1754])
+#endif
+#ifndef XtRPixmap
+#define XtRPixmap ((char*)&XtStrings[1760])
+#endif
+#ifndef XtRPointer
+#define XtRPointer ((char*)&XtStrings[1767])
+#endif
+#ifndef XtRPosition
+#define XtRPosition ((char*)&XtStrings[1775])
+#endif
+#ifndef XtRScreen
+#define XtRScreen ((char*)&XtStrings[1784])
+#endif
+#ifndef XtRShort
+#define XtRShort ((char*)&XtStrings[1791])
+#endif
+#ifndef XtRString
+#define XtRString ((char*)&XtStrings[1797])
+#endif
+#ifndef XtRStringArray
+#define XtRStringArray ((char*)&XtStrings[1804])
+#endif
+#ifndef XtRStringTable
+#define XtRStringTable ((char*)&XtStrings[1816])
+#endif
+#ifndef XtRUnsignedChar
+#define XtRUnsignedChar ((char*)&XtStrings[1828])
+#endif
+#ifndef XtRTranslationTable
+#define XtRTranslationTable ((char*)&XtStrings[1841])
+#endif
+#ifndef XtRVisual
+#define XtRVisual ((char*)&XtStrings[1858])
+#endif
+#ifndef XtRWidget
+#define XtRWidget ((char*)&XtStrings[1865])
+#endif
+#ifndef XtRWidgetClass
+#define XtRWidgetClass ((char*)&XtStrings[1872])
+#endif
+#ifndef XtRWidgetList
+#define XtRWidgetList ((char*)&XtStrings[1884])
+#endif
+#ifndef XtRWindow
+#define XtRWindow ((char*)&XtStrings[1895])
+#endif
+#ifndef XtEoff
+#define XtEoff ((char*)&XtStrings[1902])
+#endif
+#ifndef XtEfalse
+#define XtEfalse ((char*)&XtStrings[1906])
+#endif
+#ifndef XtEno
+#define XtEno ((char*)&XtStrings[1912])
+#endif
+#ifndef XtEon
+#define XtEon ((char*)&XtStrings[1915])
+#endif
+#ifndef XtEtrue
+#define XtEtrue ((char*)&XtStrings[1918])
+#endif
+#ifndef XtEyes
+#define XtEyes ((char*)&XtStrings[1923])
+#endif
+#ifndef XtEvertical
+#define XtEvertical ((char*)&XtStrings[1927])
+#endif
+#ifndef XtEhorizontal
+#define XtEhorizontal ((char*)&XtStrings[1936])
+#endif
+#ifndef XtEtextRead
+#define XtEtextRead ((char*)&XtStrings[1947])
+#endif
+#ifndef XtEtextAppend
+#define XtEtextAppend ((char*)&XtStrings[1952])
+#endif
+#ifndef XtEtextEdit
+#define XtEtextEdit ((char*)&XtStrings[1959])
+#endif
+#ifndef XtExtdefaultbackground
+#define XtExtdefaultbackground ((char*)&XtStrings[1964])
+#endif
+#ifndef XtExtdefaultforeground
+#define XtExtdefaultforeground ((char*)&XtStrings[1984])
+#endif
+#ifndef XtExtdefaultfont
+#define XtExtdefaultfont ((char*)&XtStrings[2004])
+#endif
+#ifndef XtNfontSet
+#define XtNfontSet ((char*)&XtStrings[2018])
+#endif
+#ifndef XtRFontSet
+#define XtRFontSet ((char*)&XtStrings[2026])
+#endif
+#ifndef XtCFontSet
+#define XtCFontSet ((char*)&XtStrings[2034])
+#endif
+#ifndef XtRGravity
+#define XtRGravity ((char*)&XtStrings[2042])
+#endif
+#ifndef XtNcreateHook
+#define XtNcreateHook ((char*)&XtStrings[2050])
+#endif
+#ifndef XtNchangeHook
+#define XtNchangeHook ((char*)&XtStrings[2061])
+#endif
+#ifndef XtNconfigureHook
+#define XtNconfigureHook ((char*)&XtStrings[2072])
+#endif
+#ifndef XtNgeometryHook
+#define XtNgeometryHook ((char*)&XtStrings[2086])
+#endif
+#ifndef XtNdestroyHook
+#define XtNdestroyHook ((char*)&XtStrings[2099])
+#endif
+#ifndef XtNshells
+#define XtNshells ((char*)&XtStrings[2111])
+#endif
+#ifndef XtNnumShells
+#define XtNnumShells ((char*)&XtStrings[2118])
+#endif
+#ifndef XtRCommandArgArray
+#define XtRCommandArgArray ((char*)&XtStrings[2128])
+#endif
+#ifndef XtRDirectoryString
+#define XtRDirectoryString ((char*)&XtStrings[2144])
+#endif
+#ifndef XtREnvironmentArray
+#define XtREnvironmentArray ((char*)&XtStrings[2160])
+#endif
+#ifndef XtRRestartStyle
+#define XtRRestartStyle ((char*)&XtStrings[2177])
+#endif
+#ifndef XtRSmcConn
+#define XtRSmcConn ((char*)&XtStrings[2190])
+#endif
+#ifndef XtHcreate
+#define XtHcreate ((char*)&XtStrings[2198])
+#endif
+#ifndef XtHsetValues
+#define XtHsetValues ((char*)&XtStrings[2207])
+#endif
+#ifndef XtHmanageChildren
+#define XtHmanageChildren ((char*)&XtStrings[2219])
+#endif
+#ifndef XtHunmanageChildren
+#define XtHunmanageChildren ((char*)&XtStrings[2236])
+#endif
+#ifndef XtHmanageSet
+#define XtHmanageSet ((char*)&XtStrings[2255])
+#endif
+#ifndef XtHunmanageSet
+#define XtHunmanageSet ((char*)&XtStrings[2267])
+#endif
+#ifndef XtHrealizeWidget
+#define XtHrealizeWidget ((char*)&XtStrings[2281])
+#endif
+#ifndef XtHunrealizeWidget
+#define XtHunrealizeWidget ((char*)&XtStrings[2297])
+#endif
+#ifndef XtHaddCallback
+#define XtHaddCallback ((char*)&XtStrings[2315])
+#endif
+#ifndef XtHaddCallbacks
+#define XtHaddCallbacks ((char*)&XtStrings[2329])
+#endif
+#ifndef XtHremoveCallback
+#define XtHremoveCallback ((char*)&XtStrings[2344])
+#endif
+#ifndef XtHremoveCallbacks
+#define XtHremoveCallbacks ((char*)&XtStrings[2361])
+#endif
+#ifndef XtHremoveAllCallbacks
+#define XtHremoveAllCallbacks ((char*)&XtStrings[2379])
+#endif
+#ifndef XtHaugmentTranslations
+#define XtHaugmentTranslations ((char*)&XtStrings[2400])
+#endif
+#ifndef XtHoverrideTranslations
+#define XtHoverrideTranslations ((char*)&XtStrings[2422])
+#endif
+#ifndef XtHuninstallTranslations
+#define XtHuninstallTranslations ((char*)&XtStrings[2445])
+#endif
+#ifndef XtHsetKeyboardFocus
+#define XtHsetKeyboardFocus ((char*)&XtStrings[2469])
+#endif
+#ifndef XtHsetWMColormapWindows
+#define XtHsetWMColormapWindows ((char*)&XtStrings[2488])
+#endif
+#ifndef XtHsetMappedWhenManaged
+#define XtHsetMappedWhenManaged ((char*)&XtStrings[2511])
+#endif
+#ifndef XtHmapWidget
+#define XtHmapWidget ((char*)&XtStrings[2534])
+#endif
+#ifndef XtHunmapWidget
+#define XtHunmapWidget ((char*)&XtStrings[2546])
+#endif
+#ifndef XtHpopup
+#define XtHpopup ((char*)&XtStrings[2560])
+#endif
+#ifndef XtHpopupSpringLoaded
+#define XtHpopupSpringLoaded ((char*)&XtStrings[2568])
+#endif
+#ifndef XtHpopdown
+#define XtHpopdown ((char*)&XtStrings[2588])
+#endif
+#ifndef XtHconfigure
+#define XtHconfigure ((char*)&XtStrings[2598])
+#endif
+#ifndef XtHpreGeometry
+#define XtHpreGeometry ((char*)&XtStrings[2610])
+#endif
+#ifndef XtHpostGeometry
+#define XtHpostGeometry ((char*)&XtStrings[2624])
+#endif
+#ifndef XtHdestroy
+#define XtHdestroy ((char*)&XtStrings[2639])
+#endif
+#endif /* XTSTRINGDEFINES */
+
+#ifndef XTSTRINGDEFINES
+#undef _XtStringDefs_h_Const
+#endif
+
+#endif /* _XtStringDefs_h_ */
diff --git a/X11/ThreadsI.h b/X11/ThreadsI.h
new file mode 100644
index 000000000..b6c6b7bac
--- /dev/null
+++ b/X11/ThreadsI.h
@@ -0,0 +1,129 @@
+/************************************************************
+
+Copyright (c) 1993, Oracle and/or its affiliates. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) 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 AUTHORS OR COPYRIGHT HOLDERS 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.
+
+********************************************************/
+
+/*
+
+Copyright 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.
+
+*/
+/* $XFree86: xc/lib/Xt/ThreadsI.h,v 3.5 2001/12/14 19:56:31 dawes Exp $ */
+
+#ifndef _XtThreadsI_h
+#define _XtThreadsI_h
+
+#include <X11/XlibConf.h>
+
+#ifdef XTHREADS
+
+typedef struct _LockRec *LockPtr;
+
+typedef void (*ThreadAppProc)(
+ XtAppContext /* app */
+);
+
+typedef void (*ThreadAppYieldLockProc)(
+ XtAppContext, /* app */
+ Boolean*, /* push_thread */
+ Boolean*, /* pushed_thread */
+ int* /* level */
+);
+
+typedef void (*ThreadAppRestoreLockProc)(
+ XtAppContext /* app */,
+ int, /* level */
+ Boolean* /* pushed_thread */
+);
+
+_XFUNCPROTOBEGIN
+
+extern void (*_XtProcessLock)(
+ void
+);
+
+extern void (*_XtProcessUnlock)(
+ void
+);
+
+extern void (*_XtInitAppLock)(
+ XtAppContext /* app */
+);
+
+_XFUNCPROTOEND
+
+#define INIT_APP_LOCK(app) if(_XtInitAppLock) (*_XtInitAppLock)(app)
+#define FREE_APP_LOCK(app) if(app && app->free_lock)(*app->free_lock)(app)
+
+#define LOCK_PROCESS if(_XtProcessLock)(*_XtProcessLock)()
+#define UNLOCK_PROCESS if(_XtProcessUnlock)(*_XtProcessUnlock)()
+#define LOCK_APP(app) if(app && app->lock)(*app->lock)(app)
+#define UNLOCK_APP(app) if(app && app->unlock)(*app->unlock)(app)
+
+#define YIELD_APP_LOCK(app,push,pushed,level)\
+ if(app && app->yield_lock) (*app->yield_lock)(app,push,pushed,level)
+#define RESTORE_APP_LOCK(app,level,pushed)\
+ if(app && app->restore_lock) (*app->restore_lock)(app,level,pushed)
+
+#define WIDGET_TO_APPCON(w) \
+ XtAppContext app = (w && _XtProcessLock ? \
+ XtWidgetToApplicationContext(w) : NULL)
+
+#define DPY_TO_APPCON(d) \
+ XtAppContext app = (_XtProcessLock ? XtDisplayToApplicationContext(d): NULL)
+
+#else /* defined(XTHREADS) */
+
+#define LOCK_PROCESS
+#define UNLOCK_PROCESS
+#define LOCK_APP(app)
+#define UNLOCK_APP(app)
+
+#define INIT_APP_LOCK(app)
+#define FREE_APP_LOCK(app)
+
+#define WIDGET_TO_APPCON(w)
+#define DPY_TO_APPCON(d)
+
+#endif /* !defined(XTHREADS) */
+#endif /* _XtThreadsI_h */
diff --git a/X11/TranslateI.h b/X11/TranslateI.h
new file mode 100644
index 000000000..9894c3dd4
--- /dev/null
+++ b/X11/TranslateI.h
@@ -0,0 +1,606 @@
+/***********************************************************
+
+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<<TMKEYCACHELOG2)
+
+typedef struct _KeyCacheRec {
+ unsigned char modifiers_return[256]; /* constant per KeyCode, key proc */
+ KeyCode keycode[TMKEYCACHESIZE];
+ unsigned char modifiers[TMKEYCACHESIZE];
+ KeySym keysym[TMKEYCACHESIZE];
+} TMKeyCache;
+
+typedef struct _TMKeyContextRec {
+ XEvent *event;
+ unsigned long serial;
+ KeySym keysym;
+ Modifiers modifiers;
+ TMKeyCache keycache; /* keep this last, to keep offsets to others small */
+} TMKeyContextRec, *TMKeyContext;
+
+typedef struct _TMGlobalRec{
+ TMTypeMatchRec **typeMatchSegmentTbl;
+ TMShortCard numTypeMatches;
+ TMShortCard numTypeMatchSegments;
+ TMShortCard typeMatchSegmentTblSize;
+ TMModifierMatchRec **modMatchSegmentTbl;
+ TMShortCard numModMatches;
+ TMShortCard numModMatchSegments;
+ TMShortCard modMatchSegmentTblSize;
+ Boolean newMatchSemantics;
+#ifdef TRACE_TM
+ XtTranslations *tmTbl;
+ TMShortCard numTms;
+ TMShortCard tmTblSize;
+ struct _TMBindCacheRec **bindCacheTbl;
+ TMShortCard numBindCache;
+ TMShortCard bindCacheTblSize;
+ TMShortCard numLateBindings;
+ TMShortCard numBranchHeads;
+ TMShortCard numComplexStates;
+ TMShortCard numComplexActions;
+#endif /* TRACE_TM */
+}TMGlobalRec;
+
+_XFUNCPROTOBEGIN
+
+extern TMGlobalRec _XtGlobalTM;
+
+#define TM_MOD_SEGMENT_SIZE 16
+#define TM_TYPE_SEGMENT_SIZE 16
+
+#define TMGetTypeMatch(idx) \
+ ((TMTypeMatch) \
+ &((_XtGlobalTM.typeMatchSegmentTbl[((idx) >> 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
diff --git a/X11/VarargsI.h b/X11/VarargsI.h
new file mode 100644
index 000000000..21884e463
--- /dev/null
+++ b/X11/VarargsI.h
@@ -0,0 +1,66 @@
+/*
+
+Copyright 1985, 1986, 1987, 1988, 1989, 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.
+
+*/
+
+#ifndef _VarargsI_h_
+#define _VarargsI_h_
+
+#include <stdarg.h>
+
+/* private routines */
+
+_XFUNCPROTOBEGIN
+
+extern void _XtCountVaList(
+ va_list /*var*/, int* /*total_count*/, int* /*typed_count*/
+);
+
+extern void _XtVaToArgList(
+ Widget /*widget*/, va_list /*var*/, int /*max_count*/, ArgList* /*args_return*/, Cardinal* /*num_args_return*/
+);
+
+extern void _XtVaToTypedArgList(
+ va_list /*var*/, int /*count*/, XtTypedArgList* /*args_return*/, Cardinal* /*num_args_return*/
+);
+
+extern XtTypedArgList _XtVaCreateTypedArgList(
+ va_list /*var*/, int /*count*/
+);
+
+extern void _XtFreeArgList(
+ ArgList /*args*/, int /*total_count*/, int /*typed_count*/
+);
+
+extern void _XtGetApplicationResources(
+ Widget /*w*/, XtPointer /*base*/, XtResourceList /*resources*/, Cardinal /*num_resources*/, ArgList /*args*/, Cardinal /*num_args*/, XtTypedArgList /*typed_args*/, Cardinal /*num_typed_args*/
+);
+
+extern void _XtGetSubresources(
+ Widget /*w*/, XtPointer /*base*/, const char* /*name*/, const char* /*class*/, XtResourceList /*resources*/, Cardinal /*num_resources*/, ArgList /*args*/, Cardinal /*num_args*/, XtTypedArgList /*typed_args*/, Cardinal /*num_typed_args*/
+);
+
+_XFUNCPROTOEND
+
+#endif /* _VarargsI_h_ */
diff --git a/X11/Vendor.h b/X11/Vendor.h
new file mode 100644
index 000000000..b6791b155
--- /dev/null
+++ b/X11/Vendor.h
@@ -0,0 +1,70 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XtVendor_h
+#define _XtVendor_h
+
+#include <X11/Intrinsic.h>
+
+/***********************************************************************
+ *
+ * VendorShell Widget
+ *
+ ***********************************************************************/
+
+/* Class record constants */
+
+typedef struct _VendorShellClassRec *VendorShellWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+externalref WidgetClass vendorShellWidgetClass;
+
+_XFUNCPROTOEND
+
+#endif /* _XtVendor_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/VendorP.h b/X11/VendorP.h
new file mode 100644
index 000000000..7b4d6dab9
--- /dev/null
+++ b/X11/VendorP.h
@@ -0,0 +1,102 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * VendorP.h - Private definitions for VendorShell widget
+ *
+ * Author: Paul Asente
+ * Digital Equipment Corporation
+ * Western Software Laboratory
+ * Date: Thu Dec 3, 1987
+ */
+
+/***********************************************************************
+ *
+ * VendorShell Widget Private Data
+ *
+ ***********************************************************************/
+
+#ifndef _XtVendorPrivate_h
+#define _XtVendorPrivate_h
+
+#include <X11/Vendor.h>
+
+/* New fields for the VendorShell widget class record */
+
+_XFUNCPROTOBEGIN
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} VendorShellClassPart;
+
+typedef struct _VendorShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+} VendorShellClassRec;
+
+externalref VendorShellClassRec vendorShellClassRec;
+
+/* New fields for the vendor shell widget. */
+
+typedef struct {
+ int vendor_specific;
+} VendorShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+} VendorShellRec, *VendorShellWidget;
+
+_XFUNCPROTOEND
+
+#endif /* _XtVendorPrivate_h */
diff --git a/X11/XKBlib.h b/X11/XKBlib.h
new file mode 100644
index 000000000..33a24c1b4
--- /dev/null
+++ b/X11/XKBlib.h
@@ -0,0 +1,1149 @@
+/************************************************************
+Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
+
+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 Silicon Graphics not be
+used in advertising or publicity pertaining to distribution
+of the software without specific prior written permission.
+Silicon Graphics makes no representation about the suitability
+of this software for any purpose. It is provided "as is"
+without any express or implied warranty.
+
+SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+GRAPHICS 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 _X11_XKBLIB_H_
+#define _X11_XKBLIB_H_
+
+#include <X11/Xlib.h>
+#include <X11/extensions/XKBstr.h>
+
+typedef struct _XkbAnyEvent {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* # of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XKB event minor code */
+ unsigned int device; /* device ID */
+} XkbAnyEvent;
+
+typedef struct _XkbNewKeyboardNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbNewKeyboardNotify */
+ int device; /* device ID */
+ int old_device; /* device ID of previous keyboard */
+ int min_key_code; /* minimum key code */
+ int max_key_code; /* maximum key code */
+ int old_min_key_code;/* min key code of previous kbd */
+ int old_max_key_code;/* max key code of previous kbd */
+ unsigned int changed; /* changed aspects of the keyboard */
+ char req_major; /* major and minor opcode of req */
+ char req_minor; /* that caused change, if applicable */
+} XkbNewKeyboardNotifyEvent;
+
+typedef struct _XkbMapNotifyEvent {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbMapNotify */
+ int device; /* device ID */
+ unsigned int changed; /* fields which have been changed */
+ unsigned int flags; /* reserved */
+ int first_type; /* first changed key type */
+ int num_types; /* number of changed key types */
+ KeyCode min_key_code;
+ KeyCode max_key_code;
+ KeyCode first_key_sym;
+ KeyCode first_key_act;
+ KeyCode first_key_behavior;
+ KeyCode first_key_explicit;
+ KeyCode first_modmap_key;
+ KeyCode first_vmodmap_key;
+ int num_key_syms;
+ int num_key_acts;
+ int num_key_behaviors;
+ int num_key_explicit;
+ int num_modmap_keys;
+ int num_vmodmap_keys;
+ unsigned int vmods; /* mask of changed virtual mods */
+} XkbMapNotifyEvent;
+
+typedef struct _XkbStateNotifyEvent {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* # of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbStateNotify */
+ int device; /* device ID */
+ unsigned int changed; /* mask of changed state components */
+ int group; /* keyboard group */
+ int base_group; /* base keyboard group */
+ int latched_group; /* latched keyboard group */
+ int locked_group; /* locked keyboard group */
+ unsigned int mods; /* modifier state */
+ unsigned int base_mods; /* base modifier state */
+ unsigned int latched_mods; /* latched modifiers */
+ unsigned int locked_mods; /* locked modifiers */
+ int compat_state; /* compatibility state */
+ unsigned char grab_mods; /* mods used for grabs */
+ unsigned char compat_grab_mods;/* grab mods for non-XKB clients */
+ unsigned char lookup_mods; /* mods sent to clients */
+ unsigned char compat_lookup_mods; /* mods sent to non-XKB clients */
+ int ptr_buttons; /* pointer button state */
+ KeyCode keycode; /* keycode that caused the change */
+ char event_type; /* KeyPress or KeyRelease */
+ char req_major; /* Major opcode of request */
+ char req_minor; /* Minor opcode of request */
+} XkbStateNotifyEvent;
+
+typedef struct _XkbControlsNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbControlsNotify */
+ int device; /* device ID */
+ unsigned int changed_ctrls; /* controls with changed sub-values */
+ unsigned int enabled_ctrls; /* controls currently enabled */
+ unsigned int enabled_ctrl_changes;/* controls just {en,dis}abled */
+ int num_groups; /* total groups on keyboard */
+ KeyCode keycode; /* key that caused change or 0 */
+ char event_type; /* type of event that caused change */
+ char req_major; /* if keycode==0, major and minor */
+ char req_minor; /* opcode of req that caused change */
+} XkbControlsNotifyEvent;
+
+typedef struct _XkbIndicatorNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbIndicatorNotify */
+ int device; /* device ID */
+ unsigned int changed; /* indicators with new state or map */
+ unsigned int state; /* current state of all indicators */
+} XkbIndicatorNotifyEvent;
+
+typedef struct _XkbNamesNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbNamesNotify */
+ int device; /* device ID */
+ unsigned int changed; /* names that have changed */
+ int first_type; /* first key type with new name */
+ int num_types; /* number of key types with new names */
+ int first_lvl; /* first key type new new level names */
+ int num_lvls; /* # of key types w/new level names */
+ int num_aliases; /* total number of key aliases*/
+ int num_radio_groups;/* total number of radio groups */
+ unsigned int changed_vmods; /* virtual modifiers with new names */
+ unsigned int changed_groups; /* groups with new names */
+ unsigned int changed_indicators;/* indicators with new names */
+ int first_key; /* first key with new name */
+ int num_keys; /* number of keys with new names */
+} XkbNamesNotifyEvent;
+
+typedef struct _XkbCompatMapNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbCompatMapNotify */
+ int device; /* device ID */
+ unsigned int changed_groups; /* groups with new compat maps */
+ int first_si; /* first new symbol interp */
+ int num_si; /* number of new symbol interps */
+ int num_total_si; /* total # of symbol interps */
+} XkbCompatMapNotifyEvent;
+
+typedef struct _XkbBellNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbBellNotify */
+ int device; /* device ID */
+ int percent; /* requested volume as a % of maximum */
+ int pitch; /* requested pitch in Hz */
+ int duration; /* requested duration in useconds */
+ int bell_class; /* (input extension) feedback class */
+ int bell_id; /* (input extension) ID of feedback */
+ Atom name; /* "name" of requested bell */
+ Window window; /* window associated with event */
+ Bool event_only; /* "event only" requested */
+} XkbBellNotifyEvent;
+
+typedef struct _XkbActionMessage {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbActionMessage */
+ int device; /* device ID */
+ KeyCode keycode; /* key that generated the event */
+ Bool press; /* true if act caused by key press */
+ Bool key_event_follows;/* true if key event also generated */
+ int group; /* effective group */
+ unsigned int mods; /* effective mods */
+ char message[XkbActionMessageLength+1];
+ /* message -- leave space for NUL */
+} XkbActionMessageEvent;
+
+typedef struct _XkbAccessXNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbAccessXNotify */
+ int device; /* device ID */
+ int detail; /* XkbAXN_* */
+ int keycode; /* key of event */
+ int sk_delay; /* current slow keys delay */
+ int debounce_delay; /* current debounce delay */
+} XkbAccessXNotifyEvent;
+
+typedef struct _XkbExtensionDeviceNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbExtensionDeviceNotify */
+ int device; /* device ID */
+ unsigned int reason; /* reason for the event */
+ unsigned int supported; /* mask of supported features */
+ unsigned int unsupported; /* mask of unsupported features */
+ /* that some app tried to use */
+ int first_btn; /* first button that changed */
+ int num_btns; /* range of buttons changed */
+ unsigned int leds_defined; /* indicators with names or maps */
+ unsigned int led_state; /* current state of the indicators */
+ int led_class; /* feedback class for led changes */
+ int led_id; /* feedback id for led changes */
+} XkbExtensionDeviceNotifyEvent;
+
+typedef union _XkbEvent {
+ int type;
+ XkbAnyEvent any;
+ XkbNewKeyboardNotifyEvent new_kbd;
+ XkbMapNotifyEvent map;
+ XkbStateNotifyEvent state;
+ XkbControlsNotifyEvent ctrls;
+ XkbIndicatorNotifyEvent indicators;
+ XkbNamesNotifyEvent names;
+ XkbCompatMapNotifyEvent compat;
+ XkbBellNotifyEvent bell;
+ XkbActionMessageEvent message;
+ XkbAccessXNotifyEvent accessx;
+ XkbExtensionDeviceNotifyEvent device;
+ XEvent core;
+} XkbEvent;
+
+typedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr;
+
+ /* XkbOpenDisplay error codes */
+#define XkbOD_Success 0
+#define XkbOD_BadLibraryVersion 1
+#define XkbOD_ConnectionRefused 2
+#define XkbOD_NonXkbServer 3
+#define XkbOD_BadServerVersion 4
+
+ /* Values for XlibFlags */
+#define XkbLC_ForceLatin1Lookup (1<<0)
+#define XkbLC_ConsumeLookupMods (1<<1)
+#define XkbLC_AlwaysConsumeShiftAndLock (1<<2)
+#define XkbLC_IgnoreNewKeyboards (1<<3)
+#define XkbLC_ControlFallback (1<<4)
+#define XkbLC_ConsumeKeysOnComposeFail (1<<29)
+#define XkbLC_ComposeLED (1<<30)
+#define XkbLC_BeepOnComposeFail (1<<31)
+
+#define XkbLC_AllComposeControls (0xc0000000)
+#define XkbLC_AllControls (0xc000001f)
+
+_XFUNCPROTOBEGIN
+
+extern Bool XkbIgnoreExtension(
+ Bool /* ignore */
+);
+
+extern Display *XkbOpenDisplay(
+ char * /* name */,
+ int * /* ev_rtrn */,
+ int * /* err_rtrn */,
+ int * /* major_rtrn */,
+ int * /* minor_rtrn */,
+ int * /* reason */
+);
+
+extern Bool XkbQueryExtension(
+ Display * /* dpy */,
+ int * /* opcodeReturn */,
+ int * /* eventBaseReturn */,
+ int * /* errorBaseReturn */,
+ int * /* majorRtrn */,
+ int * /* minorRtrn */
+);
+
+extern Bool XkbUseExtension(
+ Display * /* dpy */,
+ int * /* major_rtrn */,
+ int * /* minor_rtrn */
+);
+
+extern Bool XkbLibraryVersion(
+ int * /* libMajorRtrn */,
+ int * /* libMinorRtrn */
+);
+
+extern unsigned int XkbSetXlibControls(
+ Display* /* dpy */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern unsigned int XkbGetXlibControls(
+ Display* /* dpy */
+);
+
+extern unsigned int XkbXlibControlsImplemented(void);
+
+typedef Atom (*XkbInternAtomFunc)(
+ Display * /* dpy */,
+ _Xconst char * /* name */,
+ Bool /* only_if_exists */
+);
+
+typedef char * (*XkbGetAtomNameFunc)(
+ Display * /* dpy */,
+ Atom /* atom */
+);
+
+extern void XkbSetAtomFuncs(
+ XkbInternAtomFunc /* getAtom */,
+ XkbGetAtomNameFunc /* getName */
+);
+
+extern KeySym XkbKeycodeToKeysym(
+ Display * /* dpy */,
+#if NeedWidePrototypes
+ unsigned int /* kc */,
+#else
+ KeyCode /* kc */,
+#endif
+ int /* group */,
+ int /* level */
+);
+
+extern unsigned int XkbKeysymToModifiers(
+ Display * /* dpy */,
+ KeySym /* ks */
+);
+
+extern Bool XkbLookupKeySym(
+ Display * /* dpy */,
+ KeyCode /* keycode */,
+ unsigned int /* modifiers */,
+ unsigned int * /* modifiers_return */,
+ KeySym * /* keysym_return */
+);
+
+extern int XkbLookupKeyBinding(
+ Display * /* dpy */,
+ KeySym /* sym_rtrn */,
+ unsigned int /* mods */,
+ char * /* buffer */,
+ int /* nbytes */,
+ int * /* extra_rtrn */
+);
+
+extern Bool XkbTranslateKeyCode(
+ XkbDescPtr /* xkb */,
+ KeyCode /* keycode */,
+ unsigned int /* modifiers */,
+ unsigned int * /* modifiers_return */,
+ KeySym * /* keysym_return */
+);
+
+extern int XkbTranslateKeySym(
+ Display * /* dpy */,
+ register KeySym * /* sym_return */,
+ unsigned int /* modifiers */,
+ char * /* buffer */,
+ int /* nbytes */,
+ int * /* extra_rtrn */
+);
+
+extern Bool XkbSetAutoRepeatRate(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* delay */,
+ unsigned int /* interval */
+);
+
+extern Bool XkbGetAutoRepeatRate(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int * /* delayRtrn */,
+ unsigned int * /* intervalRtrn */
+);
+
+extern Bool XkbChangeEnabledControls(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbDeviceBell(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* deviceSpec */,
+ int /* bellClass */,
+ int /* bellID */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbForceDeviceBell(
+ Display * /* dpy */,
+ int /* deviceSpec */,
+ int /* bellClass */,
+ int /* bellID */,
+ int /* percent */
+);
+
+extern Bool XkbDeviceBellEvent(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* deviceSpec */,
+ int /* bellClass */,
+ int /* bellID */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbBell(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbForceBell(
+ Display * /* dpy */,
+ int /* percent */
+);
+
+extern Bool XkbBellEvent(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbSelectEvents(
+ Display * /* dpy */,
+ unsigned int /* deviceID */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbSelectEventDetails(
+ Display * /* dpy */,
+ unsigned int /* deviceID */,
+ unsigned int /* eventType */,
+ unsigned long /* affect */,
+ unsigned long /* details */
+);
+
+extern void XkbNoteMapChanges(
+ XkbMapChangesPtr /* old */,
+ XkbMapNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+extern void XkbNoteNameChanges(
+ XkbNameChangesPtr /* old */,
+ XkbNamesNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+extern Status XkbGetIndicatorState(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int * /* pStateRtrn */
+);
+
+extern Status XkbGetDeviceIndicatorState(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ unsigned int * /* pStateRtrn */
+);
+
+extern Status XkbGetIndicatorMap(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbSetIndicatorMap(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+#define XkbNoteIndicatorMapChanges(o,n,w) \
+ ((o)->map_changes|=((n)->map_changes&(w)))
+#define XkbNoteIndicatorStateChanges(o,n,w)\
+ ((o)->state_changes|=((n)->state_changes&(w)))
+#define XkbGetIndicatorMapChanges(d,x,c) \
+ (XkbGetIndicatorMap((d),(c)->map_changes,x))
+#define XkbChangeIndicatorMaps(d,x,c) \
+ (XkbSetIndicatorMap((d),(c)->map_changes,x))
+
+extern Bool XkbGetNamedIndicator(
+ Display * /* dpy */,
+ Atom /* name */,
+ int * /* pNdxRtrn */,
+ Bool * /* pStateRtrn */,
+ XkbIndicatorMapPtr /* pMapRtrn */,
+ Bool * /* pRealRtrn */
+);
+
+extern Bool XkbGetNamedDeviceIndicator(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ Atom /* name */,
+ int * /* pNdxRtrn */,
+ Bool * /* pStateRtrn */,
+ XkbIndicatorMapPtr /* pMapRtrn */,
+ Bool * /* pRealRtrn */
+);
+
+extern Bool XkbSetNamedIndicator(
+ Display * /* dpy */,
+ Atom /* name */,
+ Bool /* changeState */,
+ Bool /* state */,
+ Bool /* createNewMap */,
+ XkbIndicatorMapPtr /* pMap */
+);
+
+extern Bool XkbSetNamedDeviceIndicator(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ Atom /* name */,
+ Bool /* changeState */,
+ Bool /* state */,
+ Bool /* createNewMap */,
+ XkbIndicatorMapPtr /* pMap */
+);
+
+extern Bool XkbLockModifiers(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbLatchModifiers(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbLockGroup(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* group */
+);
+
+extern Bool XkbLatchGroup(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* group */
+);
+
+extern Bool XkbSetServerInternalMods(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affectReal */,
+ unsigned int /* realValues */,
+ unsigned int /* affectVirtual */,
+ unsigned int /* virtualValues */
+);
+
+extern Bool XkbSetIgnoreLockMods(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affectReal */,
+ unsigned int /* realValues */,
+ unsigned int /* affectVirtual */,
+ unsigned int /* virtualValues */
+);
+
+
+extern Bool XkbVirtualModsToReal(
+ XkbDescPtr /* xkb */,
+ unsigned int /* virtual_mask */,
+ unsigned int * /* mask_rtrn */
+);
+
+extern Bool XkbComputeEffectiveMap(
+ XkbDescPtr /* xkb */,
+ XkbKeyTypePtr /* type */,
+ unsigned char * /* map_rtrn */
+);
+
+extern Status XkbInitCanonicalKeyTypes(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ int /* keypadVMod */
+);
+
+extern XkbDescPtr XkbAllocKeyboard(
+ void
+);
+
+extern void XkbFreeKeyboard(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeDesc */
+);
+
+extern Status XkbAllocClientMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ unsigned int /* nTypes */
+);
+
+extern Status XkbAllocServerMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ unsigned int /* nActions */
+);
+
+extern void XkbFreeClientMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* what */,
+ Bool /* freeMap */
+);
+
+extern void XkbFreeServerMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* what */,
+ Bool /* freeMap */
+);
+
+extern XkbKeyTypePtr XkbAddKeyType(
+ XkbDescPtr /* xkb */,
+ Atom /* name */,
+ int /* map_count */,
+ Bool /* want_preserve */,
+ int /* num_lvls */
+);
+
+extern Status XkbAllocIndicatorMaps(
+ XkbDescPtr /* xkb */
+);
+
+extern void XkbFreeIndicatorMaps(
+ XkbDescPtr /* xkb */
+);
+
+extern XkbDescPtr XkbGetMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* deviceSpec */
+);
+
+extern Status XkbGetUpdatedMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetMapChanges(
+ Display * /* dpy */,
+ XkbDescPtr /* xkb */,
+ XkbMapChangesPtr /* changes */
+);
+
+
+extern Status XkbRefreshKeyboardMapping(
+ XkbMapNotifyEvent * /* event */
+);
+
+extern Status XkbGetKeyTypes(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbGetKeySyms(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbGetKeyActions(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbGetKeyBehaviors(
+ Display * /* dpy */,
+ unsigned int /* firstKey */,
+ unsigned int /* nKeys */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetVirtualMods(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetKeyExplicitComponents(
+ Display * /* dpy */,
+ unsigned int /* firstKey */,
+ unsigned int /* nKeys */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetKeyModifierMap(
+ Display * /* dpy */,
+ unsigned int /* firstKey */,
+ unsigned int /* nKeys */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetKeyVirtualModMap(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbAllocControls(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which*/
+);
+
+extern void XkbFreeControls(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeMap */
+);
+
+extern Status XkbGetControls(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbSetControls(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern void XkbNoteControlsChanges(
+ XkbControlsChangesPtr /* old */,
+ XkbControlsNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
+#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
+
+extern Status XkbAllocCompatMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ unsigned int /* nInterpret */
+);
+
+extern void XkbFreeCompatMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeMap */
+);
+
+extern Status XkbGetCompatMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* xkb */
+);
+
+extern Bool XkbSetCompatMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* xkb */,
+ Bool /* updateActions */
+);
+
+extern XkbSymInterpretPtr XkbAddSymInterpret(
+ XkbDescPtr /* xkb */,
+ XkbSymInterpretPtr /* si */,
+ Bool /* updateMap */,
+ XkbChangesPtr /* changes */
+);
+
+extern Status XkbAllocNames(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ int /* nTotalRG */,
+ int /* nTotalAliases */
+);
+
+extern Status XkbGetNames(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbSetNames(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* firstType */,
+ unsigned int /* nTypes */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbChangeNames(
+ Display * /* dpy */,
+ XkbDescPtr /* xkb */,
+ XkbNameChangesPtr /* changes */
+);
+
+extern void XkbFreeNames(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeMap */
+);
+
+
+extern Status XkbGetState(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ XkbStatePtr /* rtrnState */
+);
+
+extern Bool XkbSetMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbChangeMap(
+ Display* /* dpy */,
+ XkbDescPtr /* desc */,
+ XkbMapChangesPtr /* changes */
+);
+
+extern Bool XkbSetDetectableAutoRepeat(
+ Display * /* dpy */,
+ Bool /* detectable */,
+ Bool * /* supported */
+);
+
+extern Bool XkbGetDetectableAutoRepeat(
+ Display * /* dpy */,
+ Bool * /* supported */
+);
+
+extern Bool XkbSetAutoResetControls(
+ Display * /* dpy */,
+ unsigned int /* changes */,
+ unsigned int * /* auto_ctrls */,
+ unsigned int * /* auto_values */
+);
+
+extern Bool XkbGetAutoResetControls(
+ Display * /* dpy */,
+ unsigned int * /* auto_ctrls */,
+ unsigned int * /* auto_ctrl_values */
+);
+
+extern Bool XkbSetPerClientControls(
+ Display * /* dpy */,
+ unsigned int /* change */,
+ unsigned int * /* values */
+);
+
+extern Bool XkbGetPerClientControls(
+ Display * /* dpy */,
+ unsigned int * /* ctrls */
+);
+
+extern Status XkbCopyKeyType(
+ XkbKeyTypePtr /* from */,
+ XkbKeyTypePtr /* into */
+);
+
+extern Status XkbCopyKeyTypes(
+ XkbKeyTypePtr /* from */,
+ XkbKeyTypePtr /* into */,
+ int /* num_types */
+);
+
+extern Status XkbResizeKeyType(
+ XkbDescPtr /* xkb */,
+ int /* type_ndx */,
+ int /* map_count */,
+ Bool /* want_preserve */,
+ int /* new_num_lvls */
+);
+
+extern KeySym *XkbResizeKeySyms(
+ XkbDescPtr /* desc */,
+ int /* forKey */,
+ int /* symsNeeded */
+);
+
+extern XkbAction *XkbResizeKeyActions(
+ XkbDescPtr /* desc */,
+ int /* forKey */,
+ int /* actsNeeded */
+);
+
+extern Status XkbChangeTypesOfKey(
+ XkbDescPtr /* xkb */,
+ int /* key */,
+ int /* num_groups */,
+ unsigned int /* groups */,
+ int * /* newTypes */,
+ XkbMapChangesPtr /* pChanges */
+);
+
+extern Status XkbChangeKeycodeRange(
+ XkbDescPtr /* xkb */,
+ int /* minKC */,
+ int /* maxKC */,
+ XkbChangesPtr /* changes */
+);
+
+/***====================================================================***/
+
+extern XkbComponentListPtr XkbListComponents(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ XkbComponentNamesPtr /* ptrns */,
+ int * /* max_inout */
+);
+
+extern void XkbFreeComponentList(
+ XkbComponentListPtr /* list */
+);
+
+extern XkbDescPtr XkbGetKeyboard(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* deviceSpec */
+);
+
+extern XkbDescPtr XkbGetKeyboardByName(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ XkbComponentNamesPtr /* names */,
+ unsigned int /* want */,
+ unsigned int /* need */,
+ Bool /* load */
+);
+
+/***====================================================================***/
+
+extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */
+ XkbDescPtr /* xkb */, /* keyboard device */
+ int /* map_width */, /* width of core KeySym array */
+ KeySym * /* core_syms */, /* always mapWidth symbols */
+ unsigned int /* protected */, /* explicit key types */
+ int * /* types_inout */, /* always four type indices */
+ KeySym * /* xkb_syms_rtrn */ /* must have enough space */
+);
+
+extern Bool XkbApplyCompatMapToKey( /* False only on error */
+ XkbDescPtr /* xkb */, /* keymap to be edited */
+ KeyCode /* key */, /* key to be updated */
+ XkbChangesPtr /* changes */ /* resulting changes to map */
+);
+
+extern Bool XkbUpdateMapFromCore( /* False only on error */
+ XkbDescPtr /* xkb */, /* XKB keyboard to be edited */
+ KeyCode /* first_key */, /* first changed key */
+ int /* num_keys */, /* number of changed keys */
+ int /* map_width */, /* width of core keymap */
+ KeySym * /* core_keysyms */, /* symbols from core keymap */
+ XkbChangesPtr /* changes */ /* resulting changes */
+);
+
+/***====================================================================***/
+
+extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledId */
+);
+
+extern Status XkbResizeDeviceButtonActions(
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* newTotal */
+);
+
+extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
+ unsigned int /* deviceSpec */,
+ unsigned int /* nButtons */,
+ unsigned int /* szLeds */
+);
+
+extern void XkbFreeDeviceInfo(
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* which */,
+ Bool /* freeDevI */
+);
+
+extern void XkbNoteDeviceChanges(
+ XkbDeviceChangesPtr /* old */,
+ XkbExtensionDeviceNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+extern XkbDeviceInfoPtr XkbGetDeviceInfo(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */
+);
+
+extern Status XkbGetDeviceInfoChanges(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ XkbDeviceChangesPtr /* changes */
+);
+
+extern Status XkbGetDeviceButtonActions(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ Bool /* all */,
+ unsigned int /* first */,
+ unsigned int /* nBtns */
+);
+
+extern Status XkbGetDeviceLedInfo(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* ledClass (class, XIDflt, XIAll) */,
+ unsigned int /* ledId (id, XIDflt, XIAll) */,
+ unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */
+);
+
+extern Bool XkbSetDeviceInfo(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDeviceInfoPtr /* devi */
+);
+
+extern Bool XkbChangeDeviceInfo(
+ Display* /* dpy */,
+ XkbDeviceInfoPtr /* desc */,
+ XkbDeviceChangesPtr /* changes */
+);
+
+extern Bool XkbSetDeviceLedInfo(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ unsigned int /* which */
+);
+
+extern Bool XkbSetDeviceButtonActions(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* first */,
+ unsigned int /* nBtns */
+);
+
+/***====================================================================***/
+
+extern char XkbToControl(
+ char /* c */
+);
+
+/***====================================================================***/
+
+extern Bool XkbSetDebuggingFlags(
+ Display * /* dpy */,
+ unsigned int /* mask */,
+ unsigned int /* flags */,
+ char * /* msg */,
+ unsigned int /* ctrls_mask */,
+ unsigned int /* ctrls */,
+ unsigned int * /* rtrn_flags */,
+ unsigned int * /* rtrn_ctrls */
+);
+
+extern Bool XkbApplyVirtualModChanges(
+ XkbDescPtr /* xkb */,
+ unsigned int /* changed */,
+ XkbChangesPtr /* changes */
+);
+
+extern Bool XkbUpdateActionVirtualMods(
+ XkbDescPtr /* xkb */,
+ XkbAction * /* act */,
+ unsigned int /* changed */
+);
+
+extern void XkbUpdateKeyTypeVirtualMods(
+ XkbDescPtr /* xkb */,
+ XkbKeyTypePtr /* type */,
+ unsigned int /* changed */,
+ XkbChangesPtr /* changes */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XKBLIB_H_ */
diff --git a/X11/Xauth.h b/X11/Xauth.h
new file mode 100644
index 000000000..a707bed8c
--- /dev/null
+++ b/X11/Xauth.h
@@ -0,0 +1,149 @@
+/*
+
+Copyright 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.
+
+*/
+
+#ifndef _Xauth_h
+#define _Xauth_h
+
+/* struct xauth is full of implicit padding to properly align the pointers
+ after the length fields. We can't clean that up without breaking ABI,
+ so tell clang not to bother complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+typedef struct xauth {
+ unsigned short family;
+ unsigned short address_length;
+ char *address;
+ unsigned short number_length;
+ char *number;
+ unsigned short name_length;
+ char *name;
+ unsigned short data_length;
+ char *data;
+} Xauth;
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#ifndef _XAUTH_STRUCT_ONLY
+
+# include <X11/Xfuncproto.h>
+# include <X11/Xfuncs.h>
+
+# include <stdio.h>
+
+# define FamilyLocal (256) /* not part of X standard (i.e. X.h) */
+# define FamilyWild (65535)
+# define FamilyNetname (254) /* not part of X standard */
+# define FamilyKrb5Principal (253) /* Kerberos 5 principal name */
+# define FamilyLocalHost (252) /* for local non-net authentication */
+
+
+_XFUNCPROTOBEGIN
+
+char *XauFileName(void);
+
+Xauth *XauReadAuth(
+FILE* /* auth_file */
+);
+
+int XauLockAuth(
+_Xconst char* /* file_name */,
+int /* retries */,
+int /* timeout */,
+long /* dead */
+);
+
+int XauUnlockAuth(
+_Xconst char* /* file_name */
+);
+
+int XauWriteAuth(
+FILE* /* auth_file */,
+Xauth* /* auth */
+);
+
+Xauth *XauGetAuthByAddr(
+#if NeedWidePrototypes
+unsigned int /* family */,
+unsigned int /* address_length */,
+#else
+unsigned short /* family */,
+unsigned short /* address_length */,
+#endif
+_Xconst char* /* address */,
+#if NeedWidePrototypes
+unsigned int /* number_length */,
+#else
+unsigned short /* number_length */,
+#endif
+_Xconst char* /* number */,
+#if NeedWidePrototypes
+unsigned int /* name_length */,
+#else
+unsigned short /* name_length */,
+#endif
+_Xconst char* /* name */
+);
+
+Xauth *XauGetBestAuthByAddr(
+#if NeedWidePrototypes
+unsigned int /* family */,
+unsigned int /* address_length */,
+#else
+unsigned short /* family */,
+unsigned short /* address_length */,
+#endif
+_Xconst char* /* address */,
+#if NeedWidePrototypes
+unsigned int /* number_length */,
+#else
+unsigned short /* number_length */,
+#endif
+_Xconst char* /* number */,
+int /* types_length */,
+char** /* type_names */,
+_Xconst int* /* type_lengths */
+);
+
+void XauDisposeAuth(
+Xauth* /* auth */
+);
+
+_XFUNCPROTOEND
+
+/* Return values from XauLockAuth */
+
+# define LOCK_SUCCESS 0 /* lock succeeded */
+# define LOCK_ERROR 1 /* lock unexpectely failed, check errno */
+# define LOCK_TIMEOUT 2 /* lock failed, timeouts expired */
+
+#endif /* _XAUTH_STRUCT_ONLY */
+
+#endif /* _Xauth_h */
diff --git a/X11/Xaw/AllWidgets.h b/X11/Xaw/AllWidgets.h
new file mode 100644
index 000000000..4c81cc0ce
--- /dev/null
+++ b/X11/Xaw/AllWidgets.h
@@ -0,0 +1,37 @@
+/*
+ *
+Copyright 1990, 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.
+ */
+
+#ifndef _XawAllWidgets_h
+#define _XawAllWidgets_h
+
+#include <X11/Xmu/WidgetNode.h>
+
+/*
+ * This file matches the generated AllWidgets.c
+ */
+extern XmuWidgetNode XawWidgetArray[];
+extern int XawWidgetCount;
+
+#endif /* _XawAllWidgets_h */
diff --git a/X11/Xaw/AsciiSink.h b/X11/Xaw/AsciiSink.h
new file mode 100644
index 000000000..27d8f48c5
--- /dev/null
+++ b/X11/Xaw/AsciiSink.h
@@ -0,0 +1,77 @@
+/***********************************************************
+
+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 _XawAsciiSink_h
+#define _XawAsciiSink_h
+
+/*
+ * AsciiSink Object
+ */
+
+#include <X11/Xaw/TextSink.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ echo Output Boolean True
+ displayNonprinting Output Boolean True
+
+*/
+
+#define XtCOutput "Output"
+
+#define XtNdisplayNonprinting "displayNonprinting"
+#define XtNecho "echo"
+
+/* Class record constants */
+extern WidgetClass asciiSinkObjectClass;
+
+typedef struct _AsciiSinkClassRec *AsciiSinkObjectClass;
+typedef struct _AsciiSinkRec *AsciiSinkObject;
+
+#endif /* _XawAsciiSink_h */
diff --git a/X11/Xaw/AsciiSinkP.h b/X11/Xaw/AsciiSinkP.h
new file mode 100644
index 000000000..4bf440acb
--- /dev/null
+++ b/X11/Xaw/AsciiSinkP.h
@@ -0,0 +1,95 @@
+/***********************************************************
+
+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 _XawAsciiSinkP_h
+#define _XawAsciiSinkP_h
+
+/*
+ * AsciiSink Object Private Data
+ */
+#include <X11/Xaw/TextSinkP.h>
+#include <X11/Xaw/AsciiSink.h>
+
+/* New fields for the AsciiSink object class record */
+typedef struct _AsciiSinkClassPart {
+ XtPointer extension;
+} AsciiSinkClassPart;
+
+/* Full class record declaration */
+typedef struct _AsciiSinkClassRec {
+ ObjectClassPart object_class;
+ TextSinkClassPart text_sink_class;
+ AsciiSinkClassPart ascii_sink_class;
+} AsciiSinkClassRec;
+
+extern AsciiSinkClassRec asciiSinkClassRec;
+
+/* New fields for the AsciiSink object record */
+typedef struct {
+ /* resources */
+ XFontStruct *font; /* Font to draw in. */
+ Boolean echo;
+ Boolean display_nonprinting;
+
+ /* private */
+ GC normgc, invgc, xorgc;
+ XawTextPosition cursor_position;
+ XawTextInsertState laststate;
+ short cursor_x, cursor_y; /* Cursor Location. */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiSinkPart;
+
+/* Full instance record declaration */
+typedef struct _AsciiSinkRec {
+ ObjectPart object;
+ TextSinkPart text_sink;
+ AsciiSinkPart ascii_sink;
+} AsciiSinkRec;
+
+#endif /* _XawAsciiSinkP_h */
diff --git a/X11/Xaw/AsciiSrc.h b/X11/Xaw/AsciiSrc.h
new file mode 100644
index 000000000..08c5f8c26
--- /dev/null
+++ b/X11/Xaw/AsciiSrc.h
@@ -0,0 +1,172 @@
+/*
+
+Copyright 1989, 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.
+
+*/
+
+
+/*
+ * AsciiSrc.h - Public Header file for Ascii Text Source.
+ *
+ * This is the public header file for the Ascii Text Source.
+ * It is intended to be used with the Text widget, the simplest way to use
+ * this text source is to use the AsciiText Object.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+
+#ifndef _XawAsciiSrc_h
+#define _XawAsciiSrc_h
+
+#include <X11/Xaw/TextSrc.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ dataCompression DataCompression Boolean True
+ length Length int (internal)
+ pieceSize PieceSize int BUFSIZ
+ string String String NULL
+ type Type XawAsciiType XawAsciiString
+ useStringInPlace UseStringInPlace Boolean False
+
+*/
+
+extern WidgetClass asciiSrcObjectClass;
+
+typedef struct _AsciiSrcClassRec *AsciiSrcObjectClass;
+typedef struct _AsciiSrcRec *AsciiSrcObject;
+
+#define AsciiSourceObjectClass AsciiSrcObjectClass
+#define AsciiSourceObject AsciiSrcObject
+
+/*
+ * Resource Definitions
+ */
+#define XtCDataCompression "DataCompression"
+#define XtCPieceSize "PieceSize"
+#define XtCType "Type"
+#define XtCUseStringInPlace "UseStringInPlace"
+
+#define XtNdataCompression "dataCompression"
+#define XtNpieceSize "pieceSize"
+#define XtNtype "type"
+#define XtNuseStringInPlace "useStringInPlace"
+
+#define XtRAsciiType "AsciiType"
+
+#define XtEstring "string"
+#define XtEfile "file"
+
+typedef enum {
+ XawAsciiFile,
+ XawAsciiString
+} XawAsciiType;
+
+/*
+ * Public routines
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawAsciiSourceFreeString
+ *
+ * Parameters:
+ * w - AsciiSrc object
+ *
+ * Description:
+ * Frees the string returned by a get values call
+ * on the string when the source is of type string.
+ */
+void XawAsciiSourceFreeString
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawAsciiSave
+ *
+ * Arguments:
+ * w - asciiSrc Object.
+ *
+ * Description:
+ * Saves all the pieces into a file or string as required.
+ *
+ * Returns:
+ * True if the save was successful
+ */
+Bool XawAsciiSave
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawAsciiSaveAsFile
+ *
+ * Parameters:
+ * w - asciiSrc object
+ * name - name of the file to save this file into
+ *
+ * Description:
+ * Save the current buffer as a file.
+ *
+ * Returns:
+ * True if the save was successful
+ */
+Bool XawAsciiSaveAsFile
+(
+ Widget w,
+ _Xconst char *name
+ );
+
+/*
+ * Function:
+ * XawAsciiSourceChanged
+ *
+ * Parameters:
+ * w - asciiSource object
+ *
+ * Description:
+ * Returns true if the source has changed since last saved.
+ *
+ * Returns:
+ * a Boolean (see description)
+ */
+Bool XawAsciiSourceChanged
+(
+ Widget w
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawAsciiSrc_h */
diff --git a/X11/Xaw/AsciiSrcP.h b/X11/Xaw/AsciiSrcP.h
new file mode 100644
index 000000000..1f3f06eec
--- /dev/null
+++ b/X11/Xaw/AsciiSrcP.h
@@ -0,0 +1,139 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * AsciiSrcP.h - Private Header for Ascii Text Source.
+ *
+ * This is the private header file for the Ascii Text Source.
+ * It is intended to be used with the Text widget, the simplest way to use
+ * this text source is to use the AsciiText Object.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawAsciiSrcP_h
+#define _XawAsciiSrcP_h
+
+#include <X11/Xaw/TextSrcP.h>
+#include <X11/Xaw/AsciiSrc.h>
+
+#ifdef L_tmpnam
+#define TMPSIZ L_tmpnam
+#else
+#ifdef PATH_MAX
+#define TMPSIZ PATH_MAX
+#else
+#define TMPSIZ 1024 /* bytes to allocate for tmpnam */
+#endif
+#endif
+
+typedef struct _Piece { /* Piece of the text file of BUFSIZ allocated
+ characters */
+ char *text; /* The text in this buffer */
+ XawTextPosition used; /* The number of characters of this buffer
+ that have been used */
+ struct _Piece *prev, *next; /* linked list pointers */
+} Piece;
+
+typedef struct _AsciiSrcClassPart {
+ XtPointer extension;
+} AsciiSrcClassPart;
+
+/* Full class record */
+typedef struct _AsciiSrcClassRec {
+ ObjectClassPart object_class;
+ TextSrcClassPart text_src_class;
+ AsciiSrcClassPart ascii_src_class;
+} AsciiSrcClassRec;
+
+extern AsciiSrcClassRec asciiSrcClassRec;
+
+/* New fields for the AsciiSrc object */
+typedef struct _AsciiSrcPart {
+ /* resources */
+ char *string; /* either the string, or the
+ file name, depending upon the type */
+ XawAsciiType type; /* either string or disk */
+ XawTextPosition piece_size; /* Size of text buffer for each piece */
+ Boolean data_compression; /* compress to minimum memory automatically
+ on save? */
+#ifdef OLDXAW
+ XtCallbackList callback;
+#endif
+ Boolean use_string_in_place;/* Use the string passed in place */
+ int ascii_length; /* length field for ascii string emulation */
+
+#ifdef ASCII_DISK
+ String filename; /* name of file for Compatability */
+#endif /* ASCII_DISK */
+
+ /* private */
+ Boolean is_tempfile; /* Is this a temporary file? */
+#ifdef OLDXAW
+ Boolean changes;
+#endif
+ Boolean allocated_string; /* Have I allocated the
+ string in ascii_src->string? */
+ XawTextPosition length; /* length of file */
+ Piece *first_piece; /* first piece of the text */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiSrcPart;
+
+/* instance record */
+typedef struct _AsciiSrcRec {
+ ObjectPart object;
+ TextSrcPart text_src;
+ AsciiSrcPart ascii_src;
+} AsciiSrcRec;
+
+#endif /* _XawAsciiSrcP_h */
diff --git a/X11/Xaw/AsciiText.h b/X11/Xaw/AsciiText.h
new file mode 100644
index 000000000..b0b3cd9a6
--- /dev/null
+++ b/X11/Xaw/AsciiText.h
@@ -0,0 +1,123 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * AsciiText.h - Public header file for AsciiText Widget
+ *
+ * This Widget is intended to be used as a simple front end to the
+ * text widget with an ascii source and ascii sink attached to it
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+#ifndef _AsciiText_h
+#define _AsciiText_h
+
+#include <X11/Xaw/Text.h>
+#include <X11/Xaw/AsciiSrc.h>
+#include <X11/Xaw/MultiSrc.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ autoFill AutoFill Boolean False
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ bottomMargin Margin Position 2
+ cursor Cursor Cursor xterm
+ destroyCallback Callback Pointer NULL
+ displayCaret Output Boolean True
+ displayPosition TextPosition int 0
+ editType EditType XawTextEditType XawtextRead
+ font Font XFontStruct* Fixed
+ foreground Foreground Pixel Black
+ height Height Dimension font height
+ insertPosition TextPosition int 0
+ international International Boolean false
+ leftMargin Margin Position 2
+ mappedWhenManaged MappedWhenManaged Boolean True
+ resize Resize XawTextResizeMode XawtextResizeNever
+ rightMargin Margin Position 4
+ scrollHorizontal Scroll XawTextScrollMode XawtextScrollNever
+ scrollVertical Scroll XawTextScrollMode XawtextScrollNever
+ selectTypes SelectTypes Pointer pos/word/line/par/all
+ selection Selection Pointer (empty selection)
+ sensitive Sensitive Boolean True
+ sink TextSink Widget (none)
+ source TextSource Widget (none)
+ string String String NULL
+ topMargin Margin Position 2
+ width Width Dimension 100
+ wrap Wrap XawTextWrapMode XawtextWrapNever
+ x Position Position 0
+ y Position Position 0
+
+ (see also *Src.h and *Sink.h)
+*/
+
+typedef struct _AsciiTextClassRec *AsciiTextWidgetClass;
+typedef struct _AsciiRec *AsciiWidget;
+
+extern WidgetClass asciiTextWidgetClass;
+
+/*
+ * Disk and String Emulation Info
+ */
+#ifdef ASCII_STRING
+extern WidgetClass asciiStringWidgetClass;
+#endif
+
+#ifdef ASCII_DISK
+extern WidgetClass asciiDiskWidgetClass;
+#endif
+
+#endif /* _AsciiText_h */
diff --git a/X11/Xaw/AsciiTextP.h b/X11/Xaw/AsciiTextP.h
new file mode 100644
index 000000000..f91c36241
--- /dev/null
+++ b/X11/Xaw/AsciiTextP.h
@@ -0,0 +1,164 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * AsciiText.c - Private header file for AsciiText Widget.
+ *
+ * This Widget is intended to be used as a simple front end to the
+ * text widget with an ascii source and ascii sink attached to it.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _AsciiTextP_h
+#define _AsciiTextP_h
+
+#include <X11/Xaw/TextP.h>
+#include <X11/Xaw/AsciiText.h>
+#include <X11/Xaw/AsciiSrc.h>
+#include <X11/Xaw/MultiSrc.h>
+
+typedef struct {
+ XtPointer extension;
+} AsciiClassPart;
+
+typedef struct _AsciiTextClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+ AsciiClassPart ascii_class;
+} AsciiTextClassRec;
+
+extern AsciiTextClassRec asciiTextClassRec;
+
+typedef struct {
+ int resource;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiPart;
+
+typedef struct _AsciiRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+ AsciiPart ascii;
+} AsciiRec;
+
+/*
+ * Ascii String Emulation widget
+ */
+#ifdef ASCII_STRING
+typedef struct {
+ XtPointer extension;
+} AsciiStringClassPart;
+
+typedef struct _AsciiStringClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+ AsciiClassPart ascii_class;
+ AsciiStringClassPart string_class;
+} AsciiStringClassRec;
+
+extern AsciiStringClassRec asciiStringClassRec;
+
+typedef struct {
+ int resource;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiStringPart;
+
+typedef struct _AsciiStringRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+ AsciiPart ascii;
+ AsciiStringPart ascii_str;
+} AsciiStringRec;
+#endif /* ASCII_STRING */
+
+#ifdef ASCII_DISK
+/*
+ * Ascii Disk Emulation widget
+ */
+typedef struct {
+ XtPointer extension;
+} AsciiDiskClassPart;
+
+typedef struct _AsciiDiskClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+ AsciiClassPart ascii_class;
+ AsciiDiskClassPart disk_class;
+} AsciiDiskClassRec;
+
+extern AsciiDiskClassRec asciiDiskClassRec;
+
+typedef struct {
+ char resource;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiDiskPart;
+
+typedef struct _AsciiDiskRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+ AsciiPart ascii;
+ AsciiDiskPart ascii_disk;
+} AsciiDiskRec;
+#endif /* ASCII_DISK */
+
+#endif /* _AsciiTextP_h */
diff --git a/X11/Xaw/Box.h b/X11/Xaw/Box.h
new file mode 100644
index 000000000..9eb1884d9
--- /dev/null
+++ b/X11/Xaw/Box.h
@@ -0,0 +1,102 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XawBox_h
+#define _XawBox_h
+
+#include <X11/Xmu/Converters.h>
+
+/*
+ * Box Widget (subclass of CompositeClass)
+ */
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ hSpace HSpace Dimension 4
+ height Height Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ orientation Orientation XtOrientation vertical
+ vSpace VSpace Dimension 4
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#ifndef _XtStringDefs_h_
+#define XtNhSpace "hSpace"
+#define XtNvSpace "vSpace"
+#endif
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+#endif /* OLDXAW */
+
+/* Class record constants */
+extern WidgetClass boxWidgetClass;
+
+typedef struct _BoxClassRec *BoxWidgetClass;
+typedef struct _BoxRec *BoxWidget;
+
+#endif /* _XawBox_h */
diff --git a/X11/Xaw/BoxP.h b/X11/Xaw/BoxP.h
new file mode 100644
index 000000000..b3c2573b1
--- /dev/null
+++ b/X11/Xaw/BoxP.h
@@ -0,0 +1,97 @@
+/***********************************************************
+
+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 _XawBoxP_h
+#define _XawBoxP_h
+
+/*
+ * Box Widget Private Data
+ */
+#include <X11/Xaw/Box.h>
+#include <X11/Xmu/Converters.h>
+#include <X11/Xaw/XawInit.h>
+
+/* New fields for the Box widget class record */
+typedef struct {
+ XtPointer extension;
+} BoxClassPart;
+
+/* Full class record declaration */
+typedef struct _BoxClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ BoxClassPart box_class;
+} BoxClassRec;
+
+extern BoxClassRec boxClassRec;
+
+/* New fields for the Box widget record */
+typedef struct {
+ /* resources */
+ Dimension h_space, v_space;
+ XtOrientation orientation;
+
+ /* private state */
+ Dimension preferred_width, preferred_height;
+ Dimension last_query_width, last_query_height;
+ XtGeometryMask last_query_mode;
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} BoxPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _BoxRec {
+ CorePart core;
+ CompositePart composite;
+ BoxPart box;
+} BoxRec;
+
+#endif /* _XawBoxP_h */
diff --git a/X11/Xaw/Cardinals.h b/X11/Xaw/Cardinals.h
new file mode 100644
index 000000000..1c536208e
--- /dev/null
+++ b/X11/Xaw/Cardinals.h
@@ -0,0 +1,42 @@
+/*
+
+Copyright 1985, 1986, 1987, 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.
+
+*/
+
+#ifndef _Cardinals_h
+#define _Cardinals_h
+
+#define ZERO ((Cardinal)0)
+#define ONE ((Cardinal)1)
+#define TWO ((Cardinal)2)
+#define THREE ((Cardinal)3)
+#define FOUR ((Cardinal)4)
+#define FIVE ((Cardinal)5)
+#define SIX ((Cardinal)6)
+#define SEVEN ((Cardinal)7)
+#define EIGHT ((Cardinal)8)
+#define NINE ((Cardinal)9)
+#define TEN ((Cardinal)10)
+
+#endif /* _Cardinals_h */
diff --git a/X11/Xaw/Command.h b/X11/Xaw/Command.h
new file mode 100644
index 000000000..7011fde6e
--- /dev/null
+++ b/X11/Xaw/Command.h
@@ -0,0 +1,116 @@
+/***********************************************************
+
+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 _XawCommand_h
+#define _XawCommand_h
+
+#include <X11/Xaw/Label.h>
+
+/* Command widget resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ accelerators Accelerators AcceleratorTable NULL
+ ancestorSensitive AncestorSensitive Boolean True
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ bitmap Pixmap Pixmap None
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderWidth BorderWidth Dimension 1
+ callback Callback XtCallbackList NULL
+ colormap Colormap Colormap parent's colormap
+ cornerRoundPercent CornerRoundPercent Dimension 25
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ depth Depth int parent's depth
+ destroyCallback Callback XtCallbackList NULL
+ displayList DisplayList XawDisplayList* NULL
+ encoding Encoding UnsignedChar XawTextEncoding8bit
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ highlightThickness Thickness Dimension 0 if shaped, else 2
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ leftBitmap LeftBitmap Pixmap None
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ resize Resize Boolean True
+ screen Screen Screen parent's Screen
+ sensitive Sensitive Boolean True
+ shapeStyle ShapeStyle ShapeStyle Rectangle
+ translations Translations TranslationTable see doc or source
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNhighlightThickness "highlightThickness"
+
+#define XtNshapeStyle "shapeStyle"
+#define XtCShapeStyle "ShapeStyle"
+#define XtRShapeStyle "ShapeStyle"
+#define XtNcornerRoundPercent "cornerRoundPercent"
+#define XtCCornerRoundPercent "CornerRoundPercent"
+
+#define XawShapeRectangle XmuShapeRectangle
+#define XawShapeOval XmuShapeOval
+#define XawShapeEllipse XmuShapeEllipse
+#define XawShapeRoundedRectangle XmuShapeRoundedRectangle
+
+extern WidgetClass commandWidgetClass;
+
+typedef struct _CommandClassRec *CommandWidgetClass;
+typedef struct _CommandRec *CommandWidget;
+
+#endif /* _XawCommand_h */
diff --git a/X11/Xaw/CommandP.h b/X11/Xaw/CommandP.h
new file mode 100644
index 000000000..d0be64edf
--- /dev/null
+++ b/X11/Xaw/CommandP.h
@@ -0,0 +1,111 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XawCommandP_h
+#define _XawCommandP_h
+
+/*
+ * Command Widget Private Data
+ */
+#include <X11/Xaw/Command.h>
+#include <X11/Xaw/LabelP.h>
+
+typedef enum {
+ HighlightNone, /* Do not highlight */
+ HighlightWhenUnset, /* Highlight only when unset, this is
+ to preserve current command widget
+ functionality */
+ HighlightAlways /* Always highlight, lets the toggle widget
+ and other subclasses do the right thing */
+} XtCommandHighlight;
+
+/* New fields for the Command widget class record */
+typedef struct _CommandClass {
+ XtPointer extension;
+} CommandClassPart;
+
+/* Full class record declaration */
+typedef struct _CommandClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+} CommandClassRec;
+
+extern CommandClassRec commandClassRec;
+
+/* New fields for the Command widget record */
+typedef struct {
+ /* resources */
+ Dimension highlight_thickness;
+ XtCallbackList callbacks;
+
+ /* private state */
+ Pixmap gray_pixmap;
+ GC normal_GC;
+ GC inverse_GC;
+ Boolean set;
+ XtCommandHighlight highlighted;
+
+ /* more resources */
+ int shape_style;
+ Dimension corner_round;
+
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} CommandPart;
+
+/* Full widget declaration */
+typedef struct _CommandRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+} CommandRec;
+
+#endif /* _XawCommandP_h */
diff --git a/X11/Xaw/Dialog.h b/X11/Xaw/Dialog.h
new file mode 100644
index 000000000..442d2d2f7
--- /dev/null
+++ b/X11/Xaw/Dialog.h
@@ -0,0 +1,98 @@
+/***********************************************************
+
+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 _XawDialog_h
+#define _XawDialog_h
+
+#include <X11/Xaw/Form.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ height Height Dimension computed at create
+ icon Icon Pixmap 0
+ label Label String NULL
+ mappedWhenManaged MappedWhenManaged Boolean True
+ sensitive Sensitive Boolean True
+ value Value String NULL
+ width Width Dimension computed at create
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtCIcon "Icon"
+#define XtNicon "icon"
+
+typedef struct _DialogClassRec *DialogWidgetClass;
+typedef struct _DialogRec *DialogWidget;
+
+extern WidgetClass dialogWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+void XawDialogAddButton
+(
+ Widget dialog,
+ _Xconst char *name,
+ XtCallbackProc function,
+ XtPointer client_data
+ );
+
+char *XawDialogGetValueString
+(
+ Widget w
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawDialog_h */
diff --git a/X11/Xaw/DialogP.h b/X11/Xaw/DialogP.h
new file mode 100644
index 000000000..8fb47353c
--- /dev/null
+++ b/X11/Xaw/DialogP.h
@@ -0,0 +1,100 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _DialogP_h
+#define _DialogP_h
+
+#include <X11/Xaw/Dialog.h>
+#include <X11/Xaw/FormP.h>
+
+typedef struct {
+ XtPointer extension;
+} DialogClassPart;
+
+typedef struct _DialogClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ FormClassPart form_class;
+ DialogClassPart dialog_class;
+} DialogClassRec;
+
+extern DialogClassRec dialogClassRec;
+
+typedef struct _DialogPart {
+ /* resources */
+ String label; /* description of the dialog */
+ String value; /* for the user response */
+ Pixmap icon; /* icon bitmap */
+
+ /* private */
+ Widget iconW; /* widget to display the icon */
+ Widget labelW; /* widget to display description */
+ Widget valueW; /* user response TextWidget */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} DialogPart;
+
+typedef struct _DialogRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ FormPart form;
+ DialogPart dialog;
+} DialogRec;
+
+typedef struct {
+ XtPointer extension;
+} DialogConstraintsPart;
+
+typedef struct _DialogConstraintsRec {
+ FormConstraintsPart form;
+ DialogConstraintsPart dialog;
+} DialogConstraintsRec, *DialogConstraints;
+
+#endif /* _DialogP_h */
diff --git a/X11/Xaw/Form.h b/X11/Xaw/Form.h
new file mode 100644
index 000000000..71a0bccee
--- /dev/null
+++ b/X11/Xaw/Form.h
@@ -0,0 +1,167 @@
+/***********************************************************
+
+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 _XawForm_h
+#define _XawForm_h
+
+#include <X11/Intrinsic.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ defaultDistance Thickness int 4
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ height Height Dimension computed at realize
+ mappedWhenManaged MappedWhenManaged Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension computed at realize
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+/* Constraint parameters:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ bottom Edge XtEdgeType XtRubber
+ fromHoriz Widget Widget (left edge of form)
+ fromVert Widget Widget (top of form)
+ horizDistance Thickness int defaultDistance
+ left Edge XtEdgeType XtRubber
+ resizable Boolean Boolean False
+ right Edge XtEdgeType XtRubber
+ top Edge XtEdgeType XtRubber
+ vertDistance Thickness int defaultDistance
+
+*/
+
+
+#ifndef _XtStringDefs_h_
+#define XtNtop "top"
+#define XtRWidget "Widget"
+#endif
+
+#define XtNdefaultDistance "defaultDistance"
+#define XtNbottom "bottom"
+#define XtNleft "left"
+#define XtNright "right"
+#define XtNfromHoriz "fromHoriz"
+#define XtNfromVert "fromVert"
+#define XtNhorizDistance "horizDistance"
+#define XtNvertDistance "vertDistance"
+#define XtNresizable "resizable"
+
+#define XtCEdge "Edge"
+#define XtCWidget "Widget"
+
+typedef enum {
+ XawChainTop, /* Keep this edge a constant distance from
+ the top of the form */
+ XawChainBottom, /* Keep this edge a constant distance from
+ the bottom of the form */
+ XawChainLeft, /* Keep this edge a constant distance from
+ the left of the form */
+ XawChainRight, /* Keep this edge a constant distance from
+ the right of the form */
+ XawRubber /* Keep this edge a proportional distance
+ from the edges of the form */
+} XawEdgeType;
+
+#define XtEdgeType XawEdgeType
+
+#define XtChainTop XawChainTop
+#define XtChainBottom XawChainBottom
+#define XtChainLeft XawChainLeft
+#define XtChainRight XawChainRight
+#define XtRubber XawRubber
+
+#define XtEchainLeft "chainLeft"
+#define XtEchainRight "chainRight"
+#define XtEchainTop "chainTop"
+#define XtEchainBottom "chainBottom"
+#define XtErubber "rubber"
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+#endif
+
+typedef struct _FormClassRec *FormWidgetClass;
+typedef struct _FormRec *FormWidget;
+
+extern WidgetClass formWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+void XawFormDoLayout
+(
+ Widget w,
+#if NeedWidePrototypes
+ Bool do_layout
+#else
+ Boolean do_layout
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawForm_h */
diff --git a/X11/Xaw/FormP.h b/X11/Xaw/FormP.h
new file mode 100644
index 000000000..43a58e9d3
--- /dev/null
+++ b/X11/Xaw/FormP.h
@@ -0,0 +1,139 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/* Form widget private definitions */
+
+#ifndef _XawFormP_h
+#define _XawFormP_h
+
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Form.h>
+#include <X11/Xaw/XawInit.h>
+
+_XFUNCPROTOBEGIN
+
+#define XtREdgeType "EdgeType"
+
+typedef enum {
+ LayoutPending,
+ LayoutInProgress,
+ LayoutDone
+} LayoutState;
+
+#define XtInheritLayout \
+((Boolean (*)(FormWidget, unsigned int, unsigned int, Bool))_XtInherit)
+
+typedef struct {
+ Boolean(*layout)(FormWidget, unsigned int, unsigned int, Bool);
+#ifndef OLDXAW
+ XtPointer extension;
+#endif
+} FormClassPart;
+
+typedef struct _FormClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ FormClassPart form_class;
+} FormClassRec;
+
+extern FormClassRec formClassRec;
+
+typedef struct _FormPart {
+ /* resources */
+ int default_spacing; /* default distance between children */
+
+ /* private */
+ Dimension old_width, old_height; /* reference value for *_virtual */
+ int no_refigure; /* no re-layout while > 0 */
+ Boolean needs_relayout; /* next time no_refigure == 0 */
+ Boolean resize_in_layout; /* should layout() do geom request? */
+ Dimension preferred_width, preferred_height; /* cached from layout */
+ Boolean resize_is_no_op; /* Causes resize to take not action */
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} FormPart;
+
+typedef struct _FormRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ FormPart form;
+} FormRec;
+
+typedef struct _FormConstraintsPart {
+ /* resources */
+ XtEdgeType top, bottom, left, right;/* where to drag edge on resize */
+ int dx; /* desired horiz offset */
+ int dy; /* desired vertical offset */
+ Widget horiz_base; /* measure dx from here if non-null */
+ Widget vert_base; /* measure dy from here if non-null */
+ Boolean allow_resize; /* True if child may request resize */
+
+ /* private */
+ short virtual_width, virtual_height;
+ Position new_x, new_y;
+ LayoutState layout_state; /* temporary layout state */
+ Boolean deferred_resize;/* was resized while no_refigure is set */
+#ifndef OLDXAW
+ short virtual_x, virtual_y;
+ XtPointer pad[2]; /* leave some space for further optimizations
+ * in the form widget geometry
+ */
+#endif
+} FormConstraintsPart;
+
+typedef struct _FormConstraintsRec {
+ FormConstraintsPart form;
+} FormConstraintsRec, *FormConstraints;
+
+_XFUNCPROTOEND
+
+#endif /* _XawFormP_h */
diff --git a/X11/Xaw/Grip.h b/X11/Xaw/Grip.h
new file mode 100644
index 000000000..e8892ae60
--- /dev/null
+++ b/X11/Xaw/Grip.h
@@ -0,0 +1,96 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * Grip.h - Public Definitions for Grip widget (used by VPane Widget)
+ *
+ */
+
+#ifndef _XawGrip_h
+#define _XawGrip_h
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ foreground Foreground Pixel XtDefaultForeground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 0
+ callback Callback Pointer GripAction
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 8
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ sensitive Sensitive Boolean True
+ width Width Dimension 8
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNgripTranslations "gripTranslations"
+
+typedef struct _XawGripCallData {
+ XEvent *event; /* the event causing the GripAction */
+ String *params; /* the TranslationTable params */
+ Cardinal num_params; /* count of params */
+} XawGripCallDataRec, *XawGripCallData,
+ GripCallDataRec, *GripCallData; /* supported for R4 compatibility */
+
+/* Class Record Constant */
+
+extern WidgetClass gripWidgetClass;
+
+typedef struct _GripClassRec *GripWidgetClass;
+typedef struct _GripRec *GripWidget;
+
+#endif /* _XawGrip_h */
diff --git a/X11/Xaw/GripP.h b/X11/Xaw/GripP.h
new file mode 100644
index 000000000..427948afd
--- /dev/null
+++ b/X11/Xaw/GripP.h
@@ -0,0 +1,85 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XawGripP_h
+#define _XawGripP_h
+
+#include <X11/Xaw/Grip.h>
+#include <X11/Xaw/SimpleP.h>
+
+#define DEFAULT_GRIP_SIZE 8
+
+/* New fields for the Grip widget class */
+typedef struct {
+ XtPointer extension;
+} GripClassPart;
+
+/* Full Class record */
+typedef struct _GripClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ GripClassPart grip_class;
+} GripClassRec;
+
+extern GripClassRec gripClassRec;
+
+/* New fields for the Grip widget */
+typedef struct {
+ XtCallbackList grip_action;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} GripPart;
+
+/* Full instance record */
+typedef struct _GripRec {
+ CorePart core;
+ SimplePart simple;
+ GripPart grip;
+} GripRec;
+
+#endif /* _XawGripP_h */
diff --git a/X11/Xaw/Label.h b/X11/Xaw/Label.h
new file mode 100644
index 000000000..175f1c120
--- /dev/null
+++ b/X11/Xaw/Label.h
@@ -0,0 +1,132 @@
+/***********************************************************
+
+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 _XawLabel_h
+#define _XawLabel_h
+
+/*
+ * Label Widget
+ */
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ bitmap Pixmap Pixmap None
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ destroyCallback Callback XtCallbackList NULL
+ encoding Encoding UnsignedChar XawTextEncoding8bit
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ leftBitmap LeftBitmap Pixmap None
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ resize Resize Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XawTextEncoding8bit 0
+#define XawTextEncodingChar2b 1
+
+#define XtNleftBitmap "leftBitmap"
+#define XtCLeftBitmap "LeftBitmap"
+#define XtNencoding "encoding"
+#define XtCEncoding "Encoding"
+
+#ifndef XtNfontSet
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet
+#define XtCFontSet "FontSet"
+#endif
+
+#ifndef _XtStringDefs_h_
+#define XtNbitmap "bitmap"
+#define XtNforeground "foreground"
+#define XtNlabel "label"
+#define XtNfont "font"
+#define XtNinternalWidth "internalWidth"
+#define XtNinternalHeight "internalHeight"
+#define XtNresize "resize"
+#define XtCResize "Resize"
+#define XtCBitmap "Bitmap"
+#endif
+
+#ifndef XtNlabelX
+#define XtNlabelX "labelX"
+#endif
+
+#ifndef XtNlabelY
+#define XtNlabelY "labelY"
+#endif
+
+/* Class record constants */
+
+extern WidgetClass labelWidgetClass;
+
+typedef struct _LabelClassRec *LabelWidgetClass;
+typedef struct _LabelRec *LabelWidget;
+
+#endif /* _XawLabel_h */
diff --git a/X11/Xaw/LabelP.h b/X11/Xaw/LabelP.h
new file mode 100644
index 000000000..e8cc611a0
--- /dev/null
+++ b/X11/Xaw/LabelP.h
@@ -0,0 +1,115 @@
+/***********************************************************
+
+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 _XawLabelP_h
+#define _XawLabelP_h
+
+/*
+ * Label Widget Private Data
+ */
+#include <X11/Xaw/Label.h>
+#include <X11/Xaw/SimpleP.h>
+
+/* New fields for the Label widget class record */
+typedef struct {
+ XtPointer extension;
+} LabelClassPart;
+
+/* Full class record declaration */
+typedef struct _LabelClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+} LabelClassRec;
+
+extern LabelClassRec labelClassRec;
+
+/* New fields for the Label widget record */
+typedef struct {
+ /* resources */
+ Pixel foreground;
+ XFontStruct *font;
+ XFontSet fontset;
+ char *label;
+ XtJustify justify;
+ Dimension internal_width;
+ Dimension internal_height;
+ Pixmap pixmap;
+ Boolean resize;
+ unsigned char encoding;
+ Pixmap left_bitmap;
+
+ /* private state */
+ GC normal_GC;
+ GC gray_GC;
+ Pixmap stipple;
+ Position label_x;
+ Position label_y;
+ Dimension label_width;
+ Dimension label_height;
+ Dimension label_len;
+ int lbm_y; /* where in label */
+ unsigned int lbm_width, lbm_height; /* size of pixmap */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} LabelPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _LabelRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+} LabelRec;
+
+#define LEFT_OFFSET(lw) ((lw)->label.left_bitmap \
+ ? (lw)->label.lbm_width + (lw)->label.internal_width \
+ : 0)
+
+#endif /* _XawLabelP_h */
diff --git a/X11/Xaw/List.h b/X11/Xaw/List.h
new file mode 100644
index 000000000..7fc59f4fe
--- /dev/null
+++ b/X11/Xaw/List.h
@@ -0,0 +1,234 @@
+/*
+Copyright 1989, 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.
+*/
+
+/* This is the List widget, it is useful to display a list, without the
+ * overhead of having a widget for each item in the list. It allows
+ * the user to select an item in a list and notifies the application through
+ * a callback function.
+ *
+ * Created: 8/13/88
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ */
+
+#ifndef _XawList_h
+#define _XawList_h
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ callback Callback XtCallbackList NULL **6
+ columnSpacing Spacing Dimension 6
+ cursor Cursor Cursor left_ptr
+ cursorName Cursor String NULL
+ defaultColumns Columns int 2 **5
+ destroyCallback Callback Pointer NULL
+ font Font XFontStruct* XtDefaultFont
+ forceColumns Columns Boolean False **5
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension 0 **1
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ list List String* NULL **2
+ longest Longest int 0 **3 **4
+ mappedWhenManaged MappedWhenManaged Boolean True
+ numberStrings NumberStrings int 0 **4
+ pasteBuffer Boolean Boolean False
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ rowSpacing Spacing Dimension 4
+ sensitive Sensitive Boolean True
+ verticalList Boolean Boolean False
+ width Width Dimension 0 **1
+ x Position Position 0
+ y Position Position 0
+
+ **1 - If the Width or Height of the list widget is zero (0) then the value
+ is set to the minimum size necessay to fit the entire list.
+
+ If both Width and Height are zero then they are adjusted to fit the
+ entire list that is created width the number of default columns
+ specified in the defaultColumns resource.
+
+ **2 - This is an array of strings the specify elements of the list.
+ This resource must be specified.
+ (What good is a list widget without a list?? :-)
+
+ **3 - Longest is the length of the widest string in pixels.
+
+ **4 - If either of these values are zero (0) then the list widget calculates
+ the correct value.
+
+ (This allows you to make startup faster if you already have
+ this information calculated)
+
+ NOTE: If the numberStrings value is zero the list must
+ be NULL terminated.
+
+ **5 - By setting the List.Columns resource you can force the application to
+ have a given number of columns.
+
+ **6 - This returns the name and index of the item selected in an
+ XawListReturnStruct that is pointed to by the client_data
+ in the CallbackProc.
+
+*/
+
+/*
+ * Value returned when there are no highlighted objects
+ */
+#define XAW_LIST_NONE -1
+
+#define XtCList "List"
+#define XtCSpacing "Spacing"
+#define XtCColumns "Columns"
+#define XtCLongest "Longest"
+#define XtCNumberStrings "NumberStrings"
+
+#define XtNcursor "cursor"
+#define XtNcolumnSpacing "columnSpacing"
+#define XtNdefaultColumns "defaultColumns"
+#define XtNforceColumns "forceColumns"
+#define XtNlist "list"
+#define XtNlongest "longest"
+#define XtNnumberStrings "numberStrings"
+#define XtNpasteBuffer "pasteBuffer"
+#define XtNrowSpacing "rowSpacing"
+#define XtNverticalList "verticalList"
+#define XtNshowCurrent "showCurrent"
+
+#ifndef XtNfontSet
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet
+#define XtCFontSet "FontSet"
+#endif
+
+extern WidgetClass listWidgetClass;
+
+typedef struct _ListClassRec *ListWidgetClass;
+typedef struct _ListRec *ListWidget;
+
+/* list return structure */
+typedef struct _XawListReturnStruct {
+ String string;
+ int list_index;
+} XawListReturnStruct;
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawListChange
+ *
+ * Parameters:
+ * w - list widget
+ * list - new list
+ * nitems - number of items in the list
+ * longest - length (in Pixels) of the longest element in the list
+ * resize - if True the the list widget will try to resize itself
+ *
+ * Description:
+ * Changes the list being used and shown.
+ *
+ * Note:
+ * If nitems of longest are <= 0 then they will be caluculated
+ * If nitems is <= 0 then the list needs to be NULL terminated
+ */
+void XawListChange
+(
+ Widget w,
+ String *list,
+ int nitems,
+ int longest,
+#if NeedWidePrototypes
+ int resize
+#else
+ Boolean resize
+#endif
+ );
+
+/*
+ * Function:
+ * XawListUnhighlight
+ *
+ * Parameters:
+ * w - list widget
+ *
+ * Description:
+ * Unlights the current highlighted element.
+ */
+void XawListUnhighlight
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawListHighlight
+ *
+ * Parameters:
+ * w - list widget
+ * item - item to highlight
+ *
+ * Description:
+ * Highlights the given item.
+ */
+void XawListHighlight
+(
+ Widget w,
+ int item
+ );
+
+
+/*
+ * Function:
+ * XawListShowCurrent
+ *
+ * Paraneters:
+ * w - list widget
+ *
+ * Description:
+ * Returns the currently highlighted object.
+ *
+ * Returns:
+ * The info about the currently highlighted object
+ */
+
+XawListReturnStruct *XawListShowCurrent
+(
+ Widget w
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawList_h */
diff --git a/X11/Xaw/ListP.h b/X11/Xaw/ListP.h
new file mode 100644
index 000000000..5f5398223
--- /dev/null
+++ b/X11/Xaw/ListP.h
@@ -0,0 +1,115 @@
+/*
+Copyright 1989, 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.
+*/
+
+
+/*
+ * This is a List widget. It allows the user to select an item in a list and
+ * notifies the application through a callback function.
+ *
+ * Created: 8/13/88
+ * By: Chris D. Peterson
+ * MIT - Project Athena
+ */
+
+#ifndef _XawListP_h
+#define _XawListP_h
+
+/*
+ * List Widget Private Data
+ */
+#include <X11/Xaw/SimpleP.h>
+#include <X11/Xaw/List.h>
+
+#define NO_HIGHLIGHT XAW_LIST_NONE
+#define OUT_OF_RANGE -1
+#define OKAY 0
+
+/* New fields for the List widget class */
+typedef struct {
+ XtPointer extension;
+} ListClassPart;
+
+/* Full class record */
+typedef struct _ListClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ ListClassPart list_class;
+} ListClassRec;
+
+extern ListClassRec listClassRec;
+
+/* New fields for the List widget */
+typedef struct {
+ /* resources */
+ Pixel foreground;
+ Dimension internal_width; /* if not 3d, user sets directly */
+ Dimension internal_height;
+ Dimension column_space; /* half of *_space is add on
+ top/bot/left of */
+ Dimension row_space; /* each item's text bounding box
+ half added to longest for right */
+ int default_cols;
+ Boolean force_cols;
+ Boolean paste;
+ Boolean vertical_cols;
+ int longest; /* in pixels */
+ int nitems;
+ XFontStruct *font;
+ XFontSet fontset; /* Sheeran, Omron KK, 93/03/05 */
+ String *list; /* for i18n, always in multibyte
+ format */
+ XtCallbackList callback;
+
+ /* private */
+ int is_highlighted; /* set to the item currently
+ highlighted */
+ int highlight; /* set to the item that should be
+ highlighted */
+ int col_width; /* width of each column */
+ int row_height; /* height of each row */
+ int nrows; /* number of rows in the list */
+ int ncols; /* number of columns in the list */
+ GC normgc;
+ GC revgc;
+ GC graygc;
+ int freedoms; /* flags for resizing height
+ and width */
+#ifndef OLDXAW
+ int selected;
+ Boolean show_current;
+ char pad1[(sizeof(XtPointer) - sizeof(Boolean)) +
+ (sizeof(XtPointer) - sizeof(int))];
+ XtPointer pad2[2]; /* for future use and keep binary compatability */
+#endif
+} ListPart;
+
+
+/* Full instance record */
+typedef struct _ListRec {
+ CorePart core;
+ SimplePart simple;
+ ListPart list;
+} ListRec;
+
+#endif /* _XawListP_h */
diff --git a/X11/Xaw/MenuButtoP.h b/X11/Xaw/MenuButtoP.h
new file mode 100644
index 000000000..8ee3195c5
--- /dev/null
+++ b/X11/Xaw/MenuButtoP.h
@@ -0,0 +1,79 @@
+/*
+ *
+Copyright 1989,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.
+ */
+
+/*
+ * MenuButtonP.h - Private Header file for MenuButton widget.
+ *
+ * This is the private header file for the Athena MenuButton widget.
+ * It is intended to provide an easy method of activating pulldown menus.
+ *
+ * Date: May 2, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawMenuButtonP_h
+#define _XawMenuButtonP_h
+
+#include <X11/Xaw/MenuButton.h>
+#include <X11/Xaw/CommandP.h>
+
+/* New fields for the MenuButton widget class */
+typedef struct _MenuButtonClass {
+ XtPointer extension;
+} MenuButtonClassPart;
+
+/* class record declaration */
+typedef struct _MenuButtonClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+ MenuButtonClassPart menuButton_class;
+} MenuButtonClassRec;
+
+extern MenuButtonClassRec menuButtonClassRec;
+
+/* New fields for the MenuButton widget */
+typedef struct {
+ /* resources */
+ String menu_name;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} MenuButtonPart;
+
+/* widget declaration */
+typedef struct _MenuButtonRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+ MenuButtonPart menu_button;
+} MenuButtonRec;
+
+#endif /* _XawMenuButtonP_h */
diff --git a/X11/Xaw/MenuButton.h b/X11/Xaw/MenuButton.h
new file mode 100644
index 000000000..93f096306
--- /dev/null
+++ b/X11/Xaw/MenuButton.h
@@ -0,0 +1,89 @@
+/*
+ *
+Copyright 1989, 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.
+ */
+
+/***********************************************************************
+ *
+ * MenuButton Widget
+ *
+ ***********************************************************************/
+
+/*
+ * MenuButton.h - Public Header file for MenuButton widget.
+ *
+ * This is the public header file for the Athena MenuButton widget.
+ * It is intended to provide an easy method of activating pulldown menus.
+ *
+ * Date: May 2, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawMenuButton_h
+#define _XawMenuButton_h
+
+#include <X11/Xaw/Command.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ bitmap Pixmap Pixmap None
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ callback Callback Pointer NULL
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ highlightThickness Thickness Dimension 2
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ mappedWhenManaged MappedWhenManaged Boolean True
+ menuName MenuName String "menu"
+ resize Resize Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNmenuName "menuName"
+#define XtCMenuName "MenuName"
+
+extern WidgetClass menuButtonWidgetClass;
+
+typedef struct _MenuButtonClassRec *MenuButtonWidgetClass;
+typedef struct _MenuButtonRec *MenuButtonWidget;
+
+#endif /* _XawMenuButton_h */
diff --git a/X11/Xaw/MultiSink.h b/X11/Xaw/MultiSink.h
new file mode 100644
index 000000000..3519acc7a
--- /dev/null
+++ b/X11/Xaw/MultiSink.h
@@ -0,0 +1,110 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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, and that the name OMRON is not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON makes no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+/***********************************************************
+
+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 _XawMultiSink_h
+#define _XawMultiSink_h
+
+/*
+ * MultiSink Object
+ */
+
+#include <X11/Xaw/TextSink.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ echo Output Boolean True
+ displayNonprinting Output Boolean True
+ fontSet FontSet XFontSet XtDefaultFontSet
+
+*/
+
+#define XtCOutput "Output"
+
+#define XtNdisplayNonprinting "displayNonprinting"
+#define XtNecho "echo"
+
+#ifndef XtNfontSet /*Sheeran, Omron KK, 93/03/04*/
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet /*Sheeran, Omron KK, 93/03/04*/
+#define XtCFontSet "FontSet"
+#endif
+
+/* Class record constants */
+extern WidgetClass multiSinkObjectClass;
+
+typedef struct _MultiSinkClassRec *MultiSinkObjectClass;
+typedef struct _MultiSinkRec *MultiSinkObject;
+
+#endif /* _XawMultiSink_h */
diff --git a/X11/Xaw/MultiSinkP.h b/X11/Xaw/MultiSinkP.h
new file mode 100644
index 000000000..019f5f4b8
--- /dev/null
+++ b/X11/Xaw/MultiSinkP.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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, and that the name OMRON not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON make no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+
+/***********************************************************
+
+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 _XawMultiSinkP_h
+#define _XawMultiSinkP_h
+
+#include <X11/Xfuncproto.h>
+
+/*
+ * MultiSink Object Private Data
+ */
+#include <X11/Xaw/TextSinkP.h>
+#include <X11/Xaw/MultiSink.h>
+
+/* new fields for the MultiSink object class */
+typedef struct _MultiSinkClassPart {
+ XtPointer extension;
+} MultiSinkClassPart;
+
+/* Full class record declaration */
+typedef struct _MultiSinkClassRec {
+ ObjectClassPart object_class;
+ TextSinkClassPart text_sink_class;
+ MultiSinkClassPart multi_sink_class;
+} MultiSinkClassRec;
+
+extern MultiSinkClassRec multiSinkClassRec;
+
+/* New fields for the MultiSink object record */
+typedef struct {
+ /* resources */
+ Boolean echo;
+ Boolean display_nonprinting;
+
+ /* private */
+ GC normgc, invgc, xorgc;
+ XawTextPosition cursor_position;
+ XawTextInsertState laststate;
+ short cursor_x, cursor_y; /* Cursor Location */
+ XFontSet fontset; /* font set to draw */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} MultiSinkPart;
+
+/* Full instance record declaration */
+typedef struct _MultiSinkRec {
+ ObjectPart object;
+ TextSinkPart text_sink;
+ MultiSinkPart multi_sink;
+} MultiSinkRec;
+
+/*
+ * Semi-private functions
+ * for use by other Xaw modules only
+ */
+_XFUNCPROTOBEGIN
+
+void _XawMultiSinkPosToXY
+(
+ Widget w,
+ XawTextPosition pos,
+ Position *x,
+ Position *y
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawMultiSinkP_h */
diff --git a/X11/Xaw/MultiSrc.h b/X11/Xaw/MultiSrc.h
new file mode 100644
index 000000000..628da0cc8
--- /dev/null
+++ b/X11/Xaw/MultiSrc.h
@@ -0,0 +1,130 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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, and that the name OMRON not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON makes no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+/*
+
+Copyright 1989, 1991, 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.
+
+*/
+
+/*
+ * This file was modified from AsciiSrc.h.
+ *
+ * By Li Yuhong, Sept. 18, 1990
+ */
+
+#ifndef _XawMultiSrc_h
+#define _XawMultiSrc_h
+
+#include <X11/Xaw/TextSrc.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ dataCompression DataCompression Boolean True
+ length Length int (internal)
+ pieceSize PieceSize int BUFSIZ
+ string String String NULL
+ type Type XawAsciiType XawAsciiString
+ useStringInPlace UseStringInPlace Boolean False
+
+*/
+
+extern WidgetClass multiSrcObjectClass;
+
+typedef struct _MultiSrcClassRec *MultiSrcObjectClass;
+typedef struct _MultiSrcRec *MultiSrcObject;
+
+#define MultiSourceObjectClass MultiSrcObjectClass
+#define MultiSourceObject MultiSrcObject
+
+#define XtCDataCompression "DataCompression"
+#define XtCPieceSize "PieceSize"
+#define XtCType "Type"
+#define XtCUseStringInPlace "UseStringInPlace"
+
+#define XtNdataCompression "dataCompression"
+#define XtNpieceSize "pieceSize"
+#define XtNtype "type"
+#define XtNuseStringInPlace "useStringInPlace"
+
+#define XtRMultiType "MultiType"
+
+#define XtEstring "string"
+#define XtEfile "file"
+
+/************************************************************
+ *
+ * THESE ROUTINES ARE NOT PUBLIC: Source should call
+ *
+ * the AsciiSrc API which currently forwards requests here.
+ *
+ * future versions (like theres going to be an R7 Xaw!) may
+ *
+ * eliminate this file or at least these functions entirely.
+ *
+ ************************************************************/
+
+_XFUNCPROTOBEGIN
+
+void XawMultiSourceFreeString
+(
+ Widget w
+ );
+
+Bool _XawMultiSave
+(
+ Widget w
+);
+
+Bool _XawMultiSaveAsFile
+(
+ Widget w,
+ _Xconst char *name
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawMultiSrc_h */
diff --git a/X11/Xaw/MultiSrcP.h b/X11/Xaw/MultiSrcP.h
new file mode 100644
index 000000000..95642a43b
--- /dev/null
+++ b/X11/Xaw/MultiSrcP.h
@@ -0,0 +1,179 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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, and that the name OMRON not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON make no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+
+/***********************************************************
+
+Copyright 1987, 1988, 1991, 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.
+
+******************************************************************/
+
+/*
+ * MultiSrcP.h - Private Header for Multi Text Source.
+ *
+ * This is the private header file for the Multi Text Source.
+ * It is intended to be used with the Text widget, the simplest way to use
+ * this text source is to use the MultiText Object.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+/*
+ * This file was changed from AsciiSrcP.h.
+ *
+ * By Li Yuhong, Sept. 18, 1990
+ */
+
+#ifndef _XawMultiSrcP_h
+#define _XawMultiSrcP_h
+
+#include <X11/Xfuncproto.h>
+#include <X11/Xaw/TextSrcP.h>
+#include <X11/Xaw/MultiSrc.h>
+
+#ifdef L_tmpnam
+#define TMPSIZ L_tmpnam
+#else
+#ifdef PATH_MAX
+#define TMPSIZ PATH_MAX
+#else
+#define TMPSIZ 1024 /* bytes to allocate for tmpnam */
+#endif
+#endif
+
+typedef struct _MultiPiece { /* Piece of the text file of BUFSIZ allocated
+ characters */
+ wchar_t* text; /* The text in this buffer */
+ XawTextPosition used; /* The number of characters of this buffer
+ that have been used */
+ struct _MultiPiece *prev, *next; /* linked list pointers */
+} MultiPiece;
+
+/* New fields for the MultiSrc object class */
+typedef struct _MultiSrcClassPart {
+ XtPointer extension;
+} MultiSrcClassPart;
+
+/* Full class record */
+typedef struct _MultiSrcClassRec {
+ ObjectClassPart object_class;
+ TextSrcClassPart text_src_class;
+ MultiSrcClassPart multi_src_class;
+} MultiSrcClassRec;
+
+extern MultiSrcClassRec multiSrcClassRec;
+
+/* New fields for the MultiSrc object */
+typedef struct _MultiSrcPart {
+ /* resources */
+ XIC ic; /* for X Input Method */
+ XtPointer string; /* either the string, or the file name, depend-
+ ing upon the `type'. ALWAYS IN MB FORMAT */
+ XawAsciiType type; /* either string or disk */
+ XawTextPosition piece_size; /* Size of text buffer for each piece */
+ Boolean data_compression; /* compress to minimum memory automatically
+ on save? */
+#ifdef OLDXAW
+ XtCallbackList callback;
+#endif
+ Boolean use_string_in_place;/* Use the string passed in place */
+ int multi_length; /* length field for multi string emulation */
+
+ /* private */
+
+ Boolean is_tempfile; /* Is this a temporary file? */
+#ifdef OLDXAW
+ Boolean changes;
+#endif
+ Boolean allocated_string; /* Have I allocated the
+ string in multi_src->string? */
+ XawTextPosition length; /* length of file - IN CHARACTERS, NOT BYTES */
+ MultiPiece *first_piece; /* first piece of the text */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} MultiSrcPart;
+
+/* Full instance record */
+typedef struct _MultiSrcRec {
+ ObjectPart object;
+ TextSrcPart text_src;
+ MultiSrcPart multi_src;
+} MultiSrcRec;
+
+_XFUNCPROTOBEGIN
+
+void _XawMultiSourceFreeString
+(
+ Widget w
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawMultiSrcP_h */
diff --git a/X11/Xaw/Paned.h b/X11/Xaw/Paned.h
new file mode 100644
index 000000000..4b7e1158f
--- /dev/null
+++ b/X11/Xaw/Paned.h
@@ -0,0 +1,258 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * Paned.h - Paned Composite Widget's public header file.
+ *
+ * Updated and significantly modifided from the Athena VPaned Widget.
+ *
+ * Date: March 1, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawPaned_h
+#define _XawPaned_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xmu/Converters.h>
+
+/* RESOURCES:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ betweenCursor Cursor Cursor **
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ gripIndent GripIndent Position 16
+ gripCursor Cursor Cursor **
+ horizontalGripCursol Cursor Cursor sb_h_double_arrow
+ horizontalBetweencursor Cursor Cursor sb_up_arrow
+ internalBorderColor BorderColor Pixel XtDefaultForeground
+ internalBorderWidth BorderWidth Position 1
+ leftCursor Cursor Cursor sb_left_arrow
+ lowerCursor Cursor Cursor sb_down_arrow
+ mappedWhenManaged MappedWhenManaged Boolean True
+ orientation Orientation XtOrientation XtorientVertical
+ refigureMode Boolean Boolean On
+ rightCursor Cursor Cursor sb_right_arrow
+ sensitive Sensitive Boolean True
+ upperCursor Cursor Cursor sb_up_arrow
+ verticalBetweenCursor Cursor Cursor sb_left_arrow
+ verticalGripCursor Cursor Cursor sb_v_double_arrow
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+** These resources now are set to the vertical or horizontal cursor
+ depending upon orientation, by default. If a value is specified here
+ then that cursor will be used reguardless of orientation.
+
+
+CONSTRAINT RESOURCES:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ allowResize Boolean Boolean False
+ max Max Dimension unlimited
+ min Min Dimension Grip Size
+ preferredPaneSize PreferredPaneSize Dimension PANED_ASK_CHILD
+ resizeToPreferred Boolean Boolean False
+ showGrip ShowGrip Boolean True
+ skipAdjust Boolean Boolean False
+
+*/
+
+#define PANED_ASK_CHILD 0
+#define PANED_GRIP_SIZE 0
+
+#define XtNallowResize "allowResize"
+#define XtNbetweenCursor "betweenCursor"
+#define XtNverticalBetweenCursor "verticalBetweenCursor"
+#define XtNhorizontalBetweenCursor "horizontalBetweenCursor"
+#define XtNgripCursor "gripCursor"
+#define XtNgripIndent "gripIndent"
+#define XtNhorizontalGripCursor "horizontalGripCursor"
+#define XtNinternalBorderColor "internalBorderColor"
+#define XtNinternalBorderWidth "internalBorderWidth"
+#define XtNleftCursor "leftCursor"
+#define XtNlowerCursor "lowerCursor"
+#define XtNrefigureMode "refigureMode"
+#define XtNposition "position"
+#define XtNmin "min"
+#define XtNmax "max"
+#define XtNpreferredPaneSize "preferredPaneSize"
+#define XtNresizeToPreferred "resizeToPreferred"
+#define XtNrightCursor "rightCursor"
+#define XtNshowGrip "showGrip"
+#define XtNskipAdjust "skipAdjust"
+#define XtNupperCursor "upperCursor"
+#define XtNverticalGripCursor "verticalGripCursor"
+
+#define XtCGripIndent "GripIndent"
+#define XtCMin "Min"
+#define XtCMax "Max"
+#define XtCPreferredPaneSize "PreferredPaneSize"
+#define XtCShowGrip "ShowGrip"
+
+/* Class record constant */
+extern WidgetClass panedWidgetClass;
+
+typedef struct _PanedClassRec *PanedWidgetClass;
+typedef struct _PanedRec *PanedWidget;
+
+/*
+ * Public Procedures
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawPanedSetMinMax
+ *
+ * Parameters:
+ * widget - widget that is a child of the Paned widget
+ * min - new min and max size for the pane
+ * max - ""
+ *
+ * Description:
+ * Sets the min and max size for a pane.
+ */
+void XawPanedSetMinMax
+(
+ Widget w,
+ int min,
+ int max
+ );
+
+/*
+ * Function:
+ * XawPanedGetMinMax
+ *
+ * Parameters:
+ * widget - widget that is a child of the Paned widget
+ * min - return the current min and max size for the pane
+ * max - ""
+ *
+ * Description:
+ * Gets the min and max size for a pane.
+ */
+void XawPanedGetMinMax
+(
+ Widget w,
+ int *min_return,
+ int *max_return
+ );
+
+/*
+ * Function:
+ * XawPanedSetRefigureMode
+ *
+ * Parameters:
+ * w - paned widget
+ * mode - if False then inhibit refigure
+ *
+ * Description:
+ * Allows a flag to be set the will inhibit the paned widgets
+ * relayout routine.
+ */
+void XawPanedSetRefigureMode
+(
+ Widget w,
+#if NeedWidePrototypes
+ int mode
+#else
+ Boolean mode
+#endif
+ );
+
+/*
+ * Function:
+ * XawPanedGetNumSub
+ *
+ * Parameters:
+ * w - paned widget
+ *
+ * Returns:
+ * Number of panes in the paned widget.
+ */
+int XawPanedGetNumSub
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawPanedAllowResize
+ *
+ * Parameters:
+ * widget - child of the paned widget
+ *
+ * Description:
+ * Allows a flag to be set that determines if the paned widget will
+ * allow geometry requests from this child
+ */
+void XawPanedAllowResize
+(
+ Widget w,
+#if NeedWidePrototypes
+ int allow_resize
+#else
+ Boolean allow_resize
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawPaned_h */
diff --git a/X11/Xaw/PanedP.h b/X11/Xaw/PanedP.h
new file mode 100644
index 000000000..4e40eafb6
--- /dev/null
+++ b/X11/Xaw/PanedP.h
@@ -0,0 +1,176 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+/*
+ * Updated and significantly modified from the Athena VPaned Widget.
+ *
+ * Date: March 1, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawPanedP_h
+#define _XawPanedP_h
+
+#include <X11/Xaw/Paned.h>
+
+/* New fields for the Paned widget class record */
+typedef struct _PanedClassPart {
+ XtPointer extension;
+} PanedClassPart;
+
+/* Full Class record declaration */
+typedef struct _PanedClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ PanedClassPart paned_class;
+} PanedClassRec;
+
+extern PanedClassRec panedClassRec;
+
+/* Paned constraint record */
+typedef struct _PanedConstraintsPart {
+ /* Resources */
+ Dimension min; /* Minimum height */
+ Dimension max; /* Maximum height */
+ Boolean allow_resize; /* True if child resize requests are ok */
+ Boolean show_grip; /* True if child will have grip below it,
+ when it is not the bottom pane */
+ Boolean skip_adjust; /* True if child's height should not be
+ changed without explicit user action */
+ int position; /* position location in Paned (relative to
+ other children) ** NIY ** */
+ Dimension preferred_size; /* The Preferred size of the pane.
+ If this is zero then ask child for size*/
+ Boolean resize_to_pref; /* resize this pane to its preferred size
+ on a resize or change managed after
+ realize */
+
+ /* Private state */
+ Position delta; /* Desired Location */
+ Position olddelta; /* The last value of dy */
+ Boolean paned_adjusted_me; /* Has the vpaned adjusted this widget w/o
+ user interaction to make things fit? */
+ Dimension wp_size; /* widget's preferred size */
+ int size; /* the size the widget will actually get */
+ Widget grip; /* The grip for this child */
+} PanedConstraintsPart, *Pane;
+
+typedef struct _PanedConstraintsRec {
+ PanedConstraintsPart paned;
+} PanedConstraintsRec, *PanedConstraints;
+
+/*
+ * The Pane Stack Structure
+ */
+typedef struct _PaneStack {
+ struct _PaneStack *next; /* The next element on the stack */
+ Pane pane; /* The pane in this element on the stack */
+ int start_size; /* The size of this element when it
+ was pushed onto the stack */
+} PaneStack;
+
+/* New Fields for the Paned widget record */
+typedef struct {
+ /* resources */
+ Position grip_indent; /* Location of grips (offset
+ from right margin) */
+ Boolean refiguremode; /* Whether to refigure changes
+ right now */
+ XtTranslations grip_translations; /* grip translation table */
+ Pixel internal_bp; /* color of internal borders */
+ Dimension internal_bw; /* internal border width */
+ XtOrientation orientation; /* Orientation of paned widget */
+
+ Cursor cursor; /* Cursor for paned window */
+ Cursor grip_cursor; /* inactive grip cursor */
+ Cursor v_grip_cursor; /* inactive vert grip cursor */
+ Cursor h_grip_cursor; /* inactive horiz grip cursor */
+ Cursor adjust_this_cursor; /* active grip cursor: T */
+ Cursor v_adjust_this_cursor; /* active vert grip cursor: T */
+ Cursor h_adjust_this_cursor; /* active horiz grip cursor: T */
+
+ /* vertical */
+ Cursor adjust_upper_cursor; /* active grip cursor: U */
+ Cursor adjust_lower_cursor; /* active grip cursor: D */
+
+ /* horizontal */
+ Cursor adjust_left_cursor; /* active grip cursor: U */
+ Cursor adjust_right_cursor; /* active grip cursor: D */
+
+ /* private */
+ Boolean recursively_called; /* for ChangeManaged */
+ Boolean resize_children_to_pref; /* override constrain resources
+ and resize all children to
+ preferred size */
+ int start_loc; /* mouse origin when adjusting */
+ Widget whichadd; /* Which pane to add changes to */
+ Widget whichsub; /* Which pane to sub changes from */
+ GC normgc; /* GC to use when drawing borders */
+ GC invgc; /* GC to use when erasing borders */
+ GC flipgc; /* GC to use when animating borders */
+ int num_panes; /* count of managed panes */
+ PaneStack *stack; /* The pane stack for this widget */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} PanedPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _PanedRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ PanedPart paned;
+} PanedRec;
+
+#endif /* _XawPanedP_h */
diff --git a/X11/Xaw/Panner.h b/X11/Xaw/Panner.h
new file mode 100644
index 000000000..dd376027e
--- /dev/null
+++ b/X11/Xaw/Panner.h
@@ -0,0 +1,105 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPanner_h
+#define _XawPanner_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Reports.h>
+
+/*****************************************************************************
+ *
+ * Panner Widget (subclass of Simple)
+ *
+ * This widget is used to represent navigation in a 2d coordinate system
+ *
+ * Resources:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * allowOff AllowOff Boolean FALSE
+ * background Background Pixel XtDefaultBackground
+ * backgroundStipple BackgroundStipple String NULL
+ * canvasWidth CanvasWidth Dimension 0
+ * canvasHeight CanvasHeight Dimension 0
+ * defaultScale DefaultScale Dimension 8 percent
+ * foreground Foreground Pixel XtDefaultBackground
+ * internalSpace InternalSpace Dimension 4
+ * lineWidth LineWidth Dimension 0
+ * reportCallback ReportCallback XtCallbackList NULL
+ * resize Resize Boolean TRUE
+ * rubberBand RubberBand Boolean FALSE
+ * shadowColor ShadowColor Pixel XtDefaultForeground
+ * shadowThickness ShadowThickness Dimension 2
+ * sliderX SliderX Position 0
+ * sliderY SliderY Position 0
+ * sliderWidth SliderWidth Dimension 0
+ * sliderHeight SliderHeight Dimension 0
+ *
+ *****************************************************************************/
+
+#ifndef _XtStringDefs_h_
+#define XtNresize "resize"
+#define XtCResize "Resize"
+#endif
+
+#define XtNallowOff "allowOff"
+#define XtCAllowOff "AllowOff"
+#define XtNbackgroundStipple "backgroundStipple"
+#define XtCBackgroundStipple "BackgroundStipple"
+#define XtNdefaultScale "defaultScale"
+#define XtCDefaultScale "DefaultScale"
+#define XtNcanvasWidth "canvasWidth"
+#define XtCCanvasWidth "CanvasWidth"
+#define XtNcanvasHeight "canvasHeight"
+#define XtCCanvasHeight "CanvasHeight"
+#define XtNinternalSpace "internalSpace"
+#define XtCInternalSpace "InternalSpace"
+#define XtNlineWidth "lineWidth"
+#define XtCLineWidth "LineWidth"
+#define XtNrubberBand "rubberBand"
+#define XtCRubberBand "RubberBand"
+#define XtNshadowThickness "shadowThickness"
+#define XtCShadowThickness "ShadowThickness"
+#define XtNshadowColor "shadowColor"
+#define XtCShadowColor "ShadowColor"
+#define XtNsliderX "sliderX"
+#define XtCSliderX "SliderX"
+#define XtNsliderY "sliderY"
+#define XtCSliderY "SliderY"
+#define XtNsliderWidth "sliderWidth"
+#define XtCSliderWidth "SliderWidth"
+#define XtNsliderHeight "sliderHeight"
+#define XtCSliderHeight "SliderHeight"
+
+extern WidgetClass pannerWidgetClass;
+
+typedef struct _PannerClassRec *PannerWidgetClass;
+typedef struct _PannerRec *PannerWidget;
+
+#endif /* _XawPanner_h */
diff --git a/X11/Xaw/PannerP.h b/X11/Xaw/PannerP.h
new file mode 100644
index 000000000..893f5ca74
--- /dev/null
+++ b/X11/Xaw/PannerP.h
@@ -0,0 +1,106 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPannerP_h
+#define _XawPannerP_h
+
+#include <X11/Xaw/Panner.h>
+#include <X11/Xaw/SimpleP.h>
+
+/* new fields in widget class */
+typedef struct {
+ XtPointer extension;
+} PannerClassPart;
+
+/* Panner widget class */
+typedef struct _PannerClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ PannerClassPart panner_class;
+} PannerClassRec;
+
+/* new fields in widget */
+typedef struct {
+ /* resources */
+ XtCallbackList report_callbacks; /* callback/Callback */
+ Boolean allow_off; /* allowOff/AllowOff */
+ Boolean resize_to_pref; /* resizeToPreferred/Boolean */
+ Pixel foreground; /* foreground/Foreground */
+ Pixel shadow_color; /* shadowColor/ShadowColor */
+ Dimension shadow_thickness; /* shadowThickness/ShadowThickness */
+ Dimension default_scale; /* defaultScale/DefaultScale */
+ Dimension line_width; /* lineWidth/LineWidth */
+ Dimension canvas_width; /* canvasWidth/CanvasWidth */
+ Dimension canvas_height; /* canvasHeight/CanvasHeight */
+ Position slider_x; /* sliderX/SliderX */
+ Position slider_y; /* sliderY/SliderY */
+ Dimension slider_width; /* sliderWidth/SliderWidth */
+ Dimension slider_height; /* sliderHeight/SliderHeight */
+ Dimension internal_border; /* internalBorderWidth/BorderWidth */
+ String stipple_name; /* backgroundStipple/BackgroundStipple
+ */
+ /* private */
+ GC slider_gc; /* background of slider */
+ GC shadow_gc; /* edge of slider and shadow */
+ GC xor_gc; /* for doing XOR tmp graphics */
+ double haspect, vaspect; /* aspect ratio of core to canvas */
+ Boolean rubber_band; /* true = rubber band, false = move */
+ struct {
+ Boolean doing; /* tmp graphics in progress */
+ Boolean showing; /* true if tmp graphics displayed */
+ Position startx, starty; /* initial position of slider */
+ Position dx, dy; /* offset loc for tmp graphics */
+ Position x, y; /* location for tmp graphics */
+ } tmp;
+ Position knob_x, knob_y; /* real upper left of knob in canvas */
+ Dimension knob_width, knob_height; /* real size of knob in canvas */
+ Boolean shadow_valid; /* true if rects are valid */
+ XRectangle shadow_rects[2]; /* location of shadows */
+ Position last_x, last_y; /* previous location of knob */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} PannerPart;
+
+typedef struct _PannerRec {
+ CorePart core;
+ SimplePart simple;
+ PannerPart panner;
+} PannerRec;
+
+#define PANNER_HSCALE(pw,val) ((pw)->panner.haspect * ((double)(val)))
+#define PANNER_VSCALE(pw,val) ((pw)->panner.vaspect * ((double)(val)))
+
+#define PANNER_DSCALE(pw,val) (Dimension) \
+((((unsigned long)(val)) * (unsigned long)pw->panner.default_scale) / 100L)
+
+#define PANNER_DEFAULT_SCALE 8 /* percent */
+#define PANNER_OUTOFRANGE -30000
+
+extern PannerClassRec pannerClassRec;
+
+#endif /* _XawPannerP_h */
diff --git a/X11/Xaw/Porthole.h b/X11/Xaw/Porthole.h
new file mode 100644
index 000000000..2dbcf1890
--- /dev/null
+++ b/X11/Xaw/Porthole.h
@@ -0,0 +1,61 @@
+/*
+ *
+Copyright 1990, 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.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPorthole_h
+#define _XawPorthole_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Reports.h>
+
+/*****************************************************************************
+ *
+ * Porthole Widget (subclass of Composite)
+ *
+ * This widget is similar to a viewport without scrollbars. Child movement
+ * is done by external panners or scrollbars.
+ *
+ * Parameters:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * background Background Pixel XtDefaultBackground
+ * border BorderColor Pixel XtDefaultForeground
+ * borderWidth BorderWidth Dimension 1
+ * height Height Dimension 0
+ * reportCallback ReportCallback Pointer NULL
+ * width Width Dimension 0
+ * x Position Position 0
+ * y Position Position 0
+ *
+ *****************************************************************************/
+
+extern WidgetClass portholeWidgetClass;
+typedef struct _PortholeClassRec *PortholeWidgetClass;
+typedef struct _PortholeRec *PortholeWidget;
+
+#endif /* _XawPorthole_h */
diff --git a/X11/Xaw/PortholeP.h b/X11/Xaw/PortholeP.h
new file mode 100644
index 000000000..043fb51e8
--- /dev/null
+++ b/X11/Xaw/PortholeP.h
@@ -0,0 +1,62 @@
+/*
+ *
+Copyright 1990, 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.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPortholeP_h
+#define _XawPortholeP_h
+
+#include <X11/Xaw/Porthole.h>
+
+/* new fields in widget class */
+typedef struct {
+ XtPointer extension;
+} PortholeClassPart;
+
+/* widget class */
+typedef struct _PortholeClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ PortholeClassPart porthole_class;
+} PortholeClassRec;
+
+/* new fields in widget */
+typedef struct {
+ /* resources */
+ XtCallbackList report_callbacks; /* callback/Callback */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} PortholePart;
+
+typedef struct _PortholeRec {
+ CorePart core;
+ CompositePart composite;
+ PortholePart porthole;
+} PortholeRec;
+
+extern PortholeClassRec portholeClassRec;
+
+#endif /* _XawPortholeP_h */
diff --git a/X11/Xaw/Repeater.h b/X11/Xaw/Repeater.h
new file mode 100644
index 000000000..6b712cace
--- /dev/null
+++ b/X11/Xaw/Repeater.h
@@ -0,0 +1,73 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawRepeater_h
+#define _XawRepeater_h
+
+#include <X11/Xaw/Command.h>
+
+/*****************************************************************************
+ *
+ * Repeater Widget (subclass of Command)
+ *
+ * This widget is a push button that repeatedly fires when held down
+ *
+ * Parameters:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * decay Decay int 5 milliseconds
+ * flash Boolean Boolean FALSE
+ * initialDelay Delay int 200 milliseconds
+ * minimumDelay MinimumDelay int 10 milliseconds
+ * repeatDelay Delay int 50 milliseconds
+ * startCallback StartCallback XtCallbackList NULL
+ * stopCallback StopCallback XtCallbackList NULL
+ *
+ *****************************************************************************/
+
+#define XtNdecay "decay"
+#define XtCDecay "Decay"
+#define XtNinitialDelay "initialDelay"
+#define XtCDelay "Delay"
+#define XtNminimumDelay "minimumDelay"
+#define XtCMinimumDelay "MinimumDelay"
+#define XtNrepeatDelay "repeatDelay"
+#define XtNflash "flash"
+#define XtNstartCallback "startCallback"
+#define XtCStartCallback "StartCallback"
+#define XtNstopCallback "stopCallback"
+#define XtCStopCallback "StopCallback"
+
+
+extern WidgetClass repeaterWidgetClass;
+
+typedef struct _RepeaterClassRec *RepeaterWidgetClass;
+typedef struct _RepeaterRec *RepeaterWidget;
+
+#endif /* _XawRepeater_h */
diff --git a/X11/Xaw/RepeaterP.h b/X11/Xaw/RepeaterP.h
new file mode 100644
index 000000000..b2646e3e0
--- /dev/null
+++ b/X11/Xaw/RepeaterP.h
@@ -0,0 +1,82 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawRepeaterP_h
+#define _XawRepeaterP_h
+
+#include <X11/Xaw/CommandP.h>
+#include <X11/Xaw/Repeater.h>
+
+/* new fields in widget class */
+typedef struct {
+ XtPointer extension;
+} RepeaterClassPart;
+
+/* repeater widget class */
+typedef struct _RepeaterClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+ RepeaterClassPart repeater_class;
+} RepeaterClassRec;
+
+typedef struct {
+ /* resources */
+ int initial_delay; /* initialDelay/Delay */
+ int repeat_delay; /* repeatDelay/Delay */
+ int minimum_delay; /* minimumDelay/MinimumDelay */
+ int decay; /* decay to minimum delay */
+ Boolean flash; /* flash/Boolean */
+ XtCallbackList start_callbacks; /* startCallback/StartCallback */
+ XtCallbackList stop_callbacks; /* stopCallback/StopCallback */
+
+ /* private */
+ int next_delay; /* next amount for timer */
+ XtIntervalId timer; /* timer that will fire */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} RepeaterPart;
+
+typedef struct _RepeaterRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+ RepeaterPart repeater;
+} RepeaterRec;
+
+ /* milliseconds */
+#define REP_DEF_DECAY 5
+#define REP_DEF_INITIAL_DELAY 200
+#define REP_DEF_MINIMUM_DELAY 10
+#define REP_DEF_REPEAT_DELAY 50
+
+extern RepeaterClassRec repeaterClassRec;
+
+#endif /* _XawRepeaterP_h */
diff --git a/X11/Xaw/Reports.h b/X11/Xaw/Reports.h
new file mode 100644
index 000000000..c49834219
--- /dev/null
+++ b/X11/Xaw/Reports.h
@@ -0,0 +1,55 @@
+/*
+ *
+Copyright 1990, 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.
+ */
+
+#ifndef _Xaw_Reports_h
+#define _Xaw_Reports_h
+
+#include <X11/Intrinsic.h>
+
+/*
+ * XawPannerReport - this structure is used by the reportCallback of the
+ * Panner, Porthole, Viewport, and Scrollbar widgets to report its position.
+ * All fields must be filled in, although the changed field may be used as
+ * a hint as to which fields have been altered since the last report.
+ */
+typedef struct {
+ unsigned int changed; /* mask, see below */
+ Position slider_x, slider_y; /* location of slider within outer */
+ Dimension slider_width, slider_height; /* size of slider */
+ Dimension canvas_width, canvas_height; /* size of canvas */
+} XawPannerReport;
+
+#define XawPRSliderX (1 << 0)
+#define XawPRSliderY (1 << 1)
+#define XawPRSliderWidth (1 << 2)
+#define XawPRSliderHeight (1 << 3)
+#define XawPRCanvasWidth (1 << 4)
+#define XawPRCanvasHeight (1 << 5)
+#define XawPRAll (63) /* union of above */
+
+#define XtNreportCallback "reportCallback"
+#define XtCReportCallback "reportCallback"
+
+#endif /* _Xaw_Reports_h */
diff --git a/X11/Xaw/Scrollbar.h b/X11/Xaw/Scrollbar.h
new file mode 100644
index 000000000..904aad908
--- /dev/null
+++ b/X11/Xaw/Scrollbar.h
@@ -0,0 +1,133 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _Scrollbar_h
+#define _Scrollbar_h
+
+/*
+ * Scrollbar Widget
+ */
+
+#include <X11/Xmu/Converters.h>
+#include <X11/Xfuncproto.h>
+
+/* Scrollbar resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ accelerators Accelerators AcceleratorTable NULL
+ ancestorSensitive AncestorSensitive Boolean True
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderWidth BorderWidth Dimension 1
+ colormap Colormap Colormap parent's colormap
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ depth Depth int parent's depth
+ destroyCallback Callback XtCallbackList NULL
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension length or thickness
+ insensitiveBorder Insensitive Pixmap GreyPixmap
+ jumpProc Callback XtCallbackList NULL
+ length Length Dimension 1
+ mappedWhenManaged MappedWhenManaged Boolean True
+ minimumThumb MinimumThumb Dimension 7
+ orientation Orientation XtOrientation XtorientVertical
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ screen Screen Screen parent's screen
+ scrollDCursor Cursor Cursor XC_sb_down_arrow
+ scrollHCursor Cursor Cursor XC_sb_h_double_arrow
+ scrollLCursor Cursor Cursor XC_sb_left_arrow
+ scrollProc Callback XtCallbackList NULL
+ scrollRCursor Cursor Cursor XC_sb_right_arrow
+ scrollUCursor Cursor Cursor XC_sb_up_arrow
+ scrollVCursor Cursor Cursor XC_sb_v_double_arrow
+ sensitive Sensitive Boolean True
+ shown Shown Float 0.0
+ thickness Thickness Dimension 14
+ thumb Thumb Bitmap GreyPixmap
+ thumbProc Callback XtCallbackList NULL
+ topOfThumb TopOfThumb Float 0.0
+ translations Translations TranslationTable see source or doc
+ width Width Dimension thickness or length
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtCMinimumThumb "MinimumThumb"
+#define XtCShown "Shown"
+#define XtCTopOfThumb "TopOfThumb"
+
+#define XtNminimumThumb "minimumThumb"
+#define XtNtopOfThumb "topOfThumb"
+
+typedef struct _ScrollbarRec *ScrollbarWidget;
+typedef struct _ScrollbarClassRec *ScrollbarWidgetClass;
+
+extern WidgetClass scrollbarWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+void XawScrollbarSetThumb
+(
+ Widget scrollbar,
+#if NeedWidePrototypes
+ double top,
+ double shown
+#else
+ float top,
+ float shown
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _Scrollbar_h */
diff --git a/X11/Xaw/ScrollbarP.h b/X11/Xaw/ScrollbarP.h
new file mode 100644
index 000000000..b36472d4d
--- /dev/null
+++ b/X11/Xaw/ScrollbarP.h
@@ -0,0 +1,103 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _ScrollbarP_h
+#define _ScrollbarP_h
+
+#include <X11/Xaw/Scrollbar.h>
+#include <X11/Xaw/SimpleP.h>
+
+typedef struct {
+ /* resources */
+ Pixel foreground; /* thumb foreground color */
+ XtOrientation orientation; /* horizontal or vertical */
+ XtCallbackList scrollProc; /* proportional scroll */
+ XtCallbackList thumbProc; /* jump (to position) scroll */
+ XtCallbackList jumpProc; /* same as thumbProc but pass data by ref */
+ Pixmap thumb; /* thumb pixmap */
+ Cursor upCursor; /* scroll up cursor */
+ Cursor downCursor; /* scroll down cursor */
+ Cursor leftCursor; /* scroll left cursor */
+ Cursor rightCursor; /* scroll right cursor */
+ Cursor verCursor; /* scroll vertical cursor */
+ Cursor horCursor; /* scroll horizontal cursor */
+ float top;
+ float shown;
+ Dimension length; /* either height or width */
+ Dimension thickness; /* either width or height */
+ Dimension min_thumb; /* minium size for the thumb */
+
+ /* private */
+ Cursor inactiveCursor; /* The normal cursor for scrollbar */
+ char direction; /* a scroll has started; which direction */
+ GC gc; /* a (shared) gc */
+ Position topLoc; /* Pixel that corresponds to top */
+ Dimension shownLength; /* Num pixels corresponding to shown */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} ScrollbarPart;
+
+typedef struct _ScrollbarRec {
+ CorePart core;
+ SimplePart simple;
+ ScrollbarPart scrollbar;
+} ScrollbarRec;
+
+typedef struct {
+ XtPointer extension;
+} ScrollbarClassPart;
+
+typedef struct _ScrollbarClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ ScrollbarClassPart scrollbar_class;
+} ScrollbarClassRec;
+
+extern ScrollbarClassRec scrollbarClassRec;
+
+#endif /* _ScrollbarP_h */
diff --git a/X11/Xaw/Simple.h b/X11/Xaw/Simple.h
new file mode 100644
index 000000000..ff38f16cc
--- /dev/null
+++ b/X11/Xaw/Simple.h
@@ -0,0 +1,113 @@
+/***********************************************************
+
+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 _Simple_h
+#define _Simple_h
+
+#include <X11/Xmu/Converters.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ height Height Dimension 0
+ insensitiveBorder Insensitive Pixmap Gray
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ sensitive Sensitive Boolean True
+ tip Tip String NULL
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNcursor "cursor"
+#define XtNcursorName "cursorName"
+#define XtNinsensitiveBorder "insensitiveBorder"
+
+#define XtCInsensitive "Insensitive"
+
+#ifndef XtCInternational
+#define XtCInternational "International"
+#endif
+
+#ifndef XtNinternational
+#define XtNinternational "international"
+#endif
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+
+#define XtNtip "tip"
+#define XtCTip "Tip"
+#endif /* OLDXAW */
+
+typedef struct _SimpleClassRec *SimpleWidgetClass;
+typedef struct _SimpleRec *SimpleWidget;
+
+extern WidgetClass simpleWidgetClass;
+
+#endif /* _Simple_h */
diff --git a/X11/Xaw/SimpleMenP.h b/X11/Xaw/SimpleMenP.h
new file mode 100644
index 000000000..e01c151ea
--- /dev/null
+++ b/X11/Xaw/SimpleMenP.h
@@ -0,0 +1,99 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ */
+
+/*
+ * SimpleMenuP.h - Private Header file for SimpleMenu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SimpleMenuP_h
+#define _SimpleMenuP_h
+
+#include <X11/Xaw/SimpleMenu.h>
+#include <X11/Xaw/SmeP.h>
+#include <X11/ShellP.h>
+#include <X11/Xaw/XawInit.h>
+
+typedef struct {
+ XtPointer extension; /* For future needs */
+} SimpleMenuClassPart;
+
+typedef struct _SimpleMenuClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ OverrideShellClassPart override_shell_class;
+ SimpleMenuClassPart simpleMenu_class;
+} SimpleMenuClassRec;
+
+extern SimpleMenuClassRec simpleMenuClassRec;
+
+typedef struct _SimpleMenuPart {
+ /* resources */
+ String label_string; /* The string for the label or NULL */
+ SmeObject label; /* If label_string is non-NULL then this is
+ the label widget */
+ WidgetClass label_class; /* Widget Class of the menu label object */
+ Dimension top_margin; /* Top and bottom margins */
+ Dimension bottom_margin;
+ Dimension row_height; /* height of each row (menu entry) */
+ Cursor cursor; /* The menu's cursor */
+ SmeObject popup_entry; /* The entry to position the cursor on for
+ when using XawPositionSimpleMenu */
+ Boolean menu_on_screen; /* Force the menus to be fully on the screen*/
+ int backing_store; /* What type of backing store to use */
+
+ /* private */
+ Boolean recursive_set_values; /* contain a possible infinite loop */
+ Boolean menu_width; /* If true then force width to remain
+ core.width */
+ Boolean menu_height; /* Just like menu_width, but for height */
+ SmeObject entry_set; /* The entry that is currently set or
+ highlighted */
+#ifndef OLDXAW
+ Dimension left_margin;
+ Dimension right_margin;
+ XawDisplayList *display_list;
+ Widget sub_menu;
+ unsigned char state;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SimpleMenuPart;
+
+typedef struct _SimpleMenuRec {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ OverrideShellPart override;
+ SimpleMenuPart simple_menu;
+} SimpleMenuRec;
+
+#endif /* _SimpleMenuP_h */
diff --git a/X11/Xaw/SimpleMenu.h b/X11/Xaw/SimpleMenu.h
new file mode 100644
index 000000000..79f7216ef
--- /dev/null
+++ b/X11/Xaw/SimpleMenu.h
@@ -0,0 +1,171 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+/*
+ * SimpleMenu.h - Public Header file for SimpleMenu widget.
+ *
+ * This is the public header file for the Athena SimpleMenu widget.
+ * It is intended to provide one pane pulldown and popup menus within
+ * the framework of the X Toolkit. As the name implies it is a first and
+ * by no means complete implementation of menu code. It does not attempt to
+ * fill the needs of all applications, but does allow a resource oriented
+ * interface to menus.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SimpleMenu_h
+#define _SimpleMenu_h
+
+#include <X11/Shell.h>
+#include <X11/Xmu/Converters.h>
+
+/*
+ * SimpleMenu widget
+ */
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap BackgroundPixmap Pixmap None
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap BorderPixmap Pixmap None
+ borderWidth BorderWidth Dimension 1
+ bottomMargin VerticalMargins Dimension VerticalSpace
+ columnWidth ColumnWidth Dimension Width of widest text
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ height Height Dimension 0
+ label Label String NULL (No label)
+ labelClass LabelClass Pointer smeBSBObjectClass
+ leftMargin HorizontalMargins Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ rightMargin HorizontalMargins Dimension 0
+ rowHeight RowHeight Dimension Height of Font
+ sensitive Sensitive Boolean True
+ topMargin VerticalMargins Dimension VerticalSpace
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+typedef struct _SimpleMenuClassRec* SimpleMenuWidgetClass;
+typedef struct _SimpleMenuRec* SimpleMenuWidget;
+
+extern WidgetClass simpleMenuWidgetClass;
+
+#define XtNcursor "cursor"
+#define XtNbottomMargin "bottomMargin"
+#define XtNcolumnWidth "columnWidth"
+#define XtNlabelClass "labelClass"
+#define XtNmenuOnScreen "menuOnScreen"
+#define XtNpopupOnEntry "popupOnEntry"
+#define XtNrowHeight "rowHeight"
+#define XtNtopMargin "topMargin"
+#define XtNleftMargin "leftMargin"
+#define XtNrightMargin "rightMargin"
+
+#define XtCColumnWidth "ColumnWidth"
+#define XtCLabelClass "LabelClass"
+#define XtCMenuOnScreen "MenuOnScreen"
+#define XtCPopupOnEntry "PopupOnEntry"
+#define XtCRowHeight "RowHeight"
+
+#define XtCVerticalMargins "VerticalMargins"
+
+#ifndef OLDXAW
+#define XtCHorizontalMargins "HorizontalMargins"
+#define XawNdisplayList "displayList"
+#define XawCDisplayList "DisplayList"
+#define XawRDisplayList "XawDisplayList"
+#endif
+
+/*
+ * Public Functions
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawSimpleMenuAddGlobalActions
+ *
+ * Parameters:
+ * app_con - appcontext
+ *
+ * Description:
+ * Adds the global actions to the simple menu widget.
+ */
+void XawSimpleMenuAddGlobalActions
+(
+ XtAppContext app_con
+ );
+
+/*
+ * Function:
+ * XawSimpleMenuGetActiveEntry
+ *
+ * Parameters:
+ * w - smw widget
+ *
+ * Description:
+ * Gets the currently active (set) entry.
+ *
+ * Returns:
+ * The currently set entry or NULL if none is set
+ */
+Widget XawSimpleMenuGetActiveEntry
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawSimpleMenuClearActiveEntry
+ *
+ * Parameters:
+ * w - smw widget
+ *
+ * Description:
+ * Unsets the currently active (set) entry.
+ */
+void XawSimpleMenuClearActiveEntry
+(
+ Widget w
+);
+
+_XFUNCPROTOEND
+
+#endif /* _SimpleMenu_h */
diff --git a/X11/Xaw/SimpleP.h b/X11/Xaw/SimpleP.h
new file mode 100644
index 000000000..d8011621a
--- /dev/null
+++ b/X11/Xaw/SimpleP.h
@@ -0,0 +1,98 @@
+/***********************************************************
+
+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 _SimpleP_h
+#define _SimpleP_h
+
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Simple.h>
+
+_XFUNCPROTOBEGIN
+
+#include <X11/Xaw/XawInit.h>
+
+typedef struct {
+ Bool (*change_sensitive)(Widget);
+#ifndef OLDXAW
+ XtPointer extension;
+#endif
+} SimpleClassPart;
+
+#define XtInheritChangeSensitive ((Bool (*)(Widget))_XtInherit)
+
+typedef struct _SimpleClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+} SimpleClassRec;
+
+extern SimpleClassRec simpleClassRec;
+
+typedef struct {
+ /* resources */
+ Cursor cursor;
+ Pixmap insensitive_border;
+ String cursor_name; /* cursor specified by name */
+ Pixel pointer_fg, pointer_bg; /* Pointer colors */
+ Boolean international;
+
+ /* private */
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ String tip;
+ XtPointer pad[3]; /* for future use and keep binary compatability */
+#endif
+} SimplePart;
+
+typedef struct _SimpleRec {
+ CorePart core;
+ SimplePart simple;
+} SimpleRec;
+
+_XFUNCPROTOEND
+
+#endif /* _SimpleP_h */
diff --git a/X11/Xaw/Sme.h b/X11/Xaw/Sme.h
new file mode 100644
index 000000000..b395ae7b8
--- /dev/null
+++ b/X11/Xaw/Sme.h
@@ -0,0 +1,71 @@
+/*
+ *
+Copyright 1989, 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.
+ */
+
+/*
+ * This is the public header file for the Athena Sme object.
+ * It is intended to be used with the simple menu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _Sme_h
+#define _Sme_h
+
+#include <X11/Intrinsic.h>
+#include <X11/RectObj.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Pointer NULL
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ sensitive Sensitive Boolean True
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#ifndef XtCInternational
+#define XtCInternational "International"
+#endif
+
+#ifndef XtNinternational
+#define XtNinternational "international"
+#endif
+
+
+typedef struct _SmeClassRec *SmeObjectClass;
+typedef struct _SmeRec *SmeObject;
+
+extern WidgetClass smeObjectClass;
+
+#endif /* _Sme_h */
diff --git a/X11/Xaw/SmeBSB.h b/X11/Xaw/SmeBSB.h
new file mode 100644
index 000000000..ab6fda7a8
--- /dev/null
+++ b/X11/Xaw/SmeBSB.h
@@ -0,0 +1,96 @@
+/*
+ *
+Copyright 1989, 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.
+ */
+
+/*
+ * SmeBSB.h - Public Header file for SmeBSB object.
+ *
+ * This is the public header file for the Athena BSB Sme object.
+ * It is intended to be used with the simple menu widget. This object
+ * provides bitmap - string - bitmap style entries.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SmeBSB_h
+#define _SmeBSB_h
+
+#include <X11/Xmu/Converters.h>
+#include <X11/Xaw/Sme.h>
+
+/* BSB Menu Entry Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Callback NULL
+ destroyCallback Callback Pointer NULL
+ font Font XFontStruct * XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension 0
+ label Label String Name of entry
+ leftBitmap LeftBitmap Pixmap None
+ leftMargin HorizontalMargins Dimension 4
+ menuName MenuName String NULL
+ rightBitmap RightBitmap Pixmap None
+ rightMargin HorizontalMargins Dimension 4
+ sensitive Sensitive Boolean True
+ vertSpace VertSpace int 25
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+typedef struct _SmeBSBClassRec *SmeBSBObjectClass;
+typedef struct _SmeBSBRec *SmeBSBObject;
+
+extern WidgetClass smeBSBObjectClass;
+
+#define XtNleftBitmap "leftBitmap"
+#define XtNleftMargin "leftMargin"
+#define XtNrightBitmap "rightBitmap"
+#define XtNrightMargin "rightMargin"
+#define XtNvertSpace "vertSpace"
+
+#define XtNmenuName "menuName"
+#define XtCMenuName "MenuName"
+
+#ifndef XtNfontSet
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet
+#define XtCFontSet "FontSet"
+#endif
+
+#define XtCLeftBitmap "LeftBitmap"
+#define XtCHorizontalMargins "HorizontalMargins"
+#define XtCRightBitmap "RightBitmap"
+#define XtCVertSpace "VertSpace"
+
+#endif /* _SmeBSB_h */
diff --git a/X11/Xaw/SmeBSBP.h b/X11/Xaw/SmeBSBP.h
new file mode 100644
index 000000000..03247d072
--- /dev/null
+++ b/X11/Xaw/SmeBSBP.h
@@ -0,0 +1,92 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+#ifndef _XawSmeBSBP_h
+#define _XawSmeBSBP_h
+
+/*
+ * Sme Object Private Data
+ */
+#include <X11/Xaw/SmeP.h>
+#include <X11/Xaw/SmeBSB.h>
+
+typedef struct _SmeBSBClassPart {
+ XtPointer extension;
+} SmeBSBClassPart;
+
+/* Full class record declaration */
+typedef struct _SmeBSBClassRec {
+ RectObjClassPart rect_class;
+ SmeClassPart sme_class;
+ SmeBSBClassPart sme_bsb_class;
+} SmeBSBClassRec;
+
+extern SmeBSBClassRec smeBSBClassRec;
+
+/* New fields for the Sme Object record */
+typedef struct {
+ /* resources */
+ String label; /* The entry label */
+ int vert_space; /* extra vert space to leave, as a
+ percentage of the font height of
+ the label */
+ Pixmap left_bitmap, right_bitmap; /* bitmaps to show */
+ Dimension left_margin, right_margin;/* left and right margins */
+ Pixel foreground; /* foreground color */
+ XFontStruct *font; /* The font to show label in */
+ XFontSet fontset; /* or fontset */
+ XtJustify justify; /* Justification for the label. */
+
+ /* private */
+ Boolean set_values_area_cleared; /* do we need to unhighlight? */
+ GC norm_gc; /* noral color gc */
+ GC rev_gc; /* reverse color gc */
+ GC norm_gray_gc; /* Normal color (grayed out) gc */
+ GC invert_gc; /* gc for flipping colors */
+ Dimension left_bitmap_width; /* size of each bitmap */
+ Dimension left_bitmap_height;
+ Dimension right_bitmap_width;
+ Dimension right_bitmap_height;
+
+#ifndef OLDXAW
+ /* new resources */
+ String menu_name; /* name of nested sub menu or NULL */
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SmeBSBPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _SmeBSBRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+ SmePart sme;
+ SmeBSBPart sme_bsb;
+} SmeBSBRec;
+
+#endif /* _XawSmeBSBP_h */
diff --git a/X11/Xaw/SmeLine.h b/X11/Xaw/SmeLine.h
new file mode 100644
index 000000000..af4406f3d
--- /dev/null
+++ b/X11/Xaw/SmeLine.h
@@ -0,0 +1,69 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ */
+
+/*
+ * This is the public header file for the Athena SmeLine object.
+ * It is intended to be used with the simple menu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SmeLine_h
+#define _SmeLine_h
+
+#include <X11/Xaw/Sme.h>
+#include <X11/Xmu/Converters.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Pointer NULL
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ sensitive Sensitive Boolean True
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtCLineWidth "LineWidth"
+#define XtCStipple "Stipple"
+
+#define XtNlineWidth "lineWidth"
+#define XtNstipple "stipple"
+
+typedef struct _SmeLineClassRec *SmeLineObjectClass;
+typedef struct _SmeLineRec *SmeLineObject;
+
+extern WidgetClass smeLineObjectClass;
+
+#endif /* _SmeLine_h */
diff --git a/X11/Xaw/SmeLineP.h b/X11/Xaw/SmeLineP.h
new file mode 100644
index 000000000..0f9fa7076
--- /dev/null
+++ b/X11/Xaw/SmeLineP.h
@@ -0,0 +1,73 @@
+/*
+ *
+Copyright 1989, 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.
+ *
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+#ifndef _XawSmeLineP_h
+#define _XawSmeLineP_h
+
+/*
+ * SmeLine Widget Private Data
+ */
+#include <X11/Xaw/SmeP.h>
+#include <X11/Xaw/SmeLine.h>
+
+/* New fields for the SmeLine widget class */
+typedef struct _SmeLineClassPart {
+ XtPointer extension;
+} SmeLineClassPart;
+
+/* Full class record */
+typedef struct _SmeLineClassRec {
+ RectObjClassPart rect_class;
+ SmeClassPart sme_class;
+ SmeLineClassPart sme_line_class;
+} SmeLineClassRec;
+
+extern SmeLineClassRec smeLineClassRec;
+
+/* New fields for the SmeLine widget */
+typedef struct {
+ /* resources */
+ Pixel foreground; /* Foreground color */
+ Pixmap stipple; /* Line Stipple */
+ Dimension line_width; /* Width of the line */
+
+ /* private */
+ GC gc; /* Graphics context for drawing line */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SmeLinePart;
+
+/* Full instance record */
+typedef struct _SmeLineRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+ SmePart sme;
+ SmeLinePart sme_line;
+} SmeLineRec;
+
+#endif /* _XawSmeLineP_h */
diff --git a/X11/Xaw/SmeP.h b/X11/Xaw/SmeP.h
new file mode 100644
index 000000000..bd4bd9da7
--- /dev/null
+++ b/X11/Xaw/SmeP.h
@@ -0,0 +1,88 @@
+/*
+ *
+Copyright 1989, 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.
+ */
+
+/*
+ * This is the private header file for the Athena Sme object.
+ * This object is intended to be used with the simple menu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawSmeP_h
+#define _XawSmeP_h
+
+/*
+ * Sme Widget Private Data
+ */
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Sme.h>
+
+_XFUNCPROTOBEGIN
+
+/* New fields for the Sme widget class */
+typedef struct _SmeClassPart {
+ XtWidgetProc highlight;
+ XtWidgetProc unhighlight;
+ XtWidgetProc notify;
+ XtPointer extension;
+} SmeClassPart;
+
+/* Full class record */
+typedef struct _SmeClassRec {
+ RectObjClassPart rect_class;
+ SmeClassPart sme_class;
+} SmeClassRec;
+
+extern SmeClassRec smeClassRec;
+
+/* New fields for the Sme widget */
+typedef struct {
+ /* resources */
+ XtCallbackList callbacks;
+ Boolean international;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SmePart;
+
+/* Full instance record */
+typedef struct _SmeRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+ SmePart sme;
+} SmeRec;
+
+#define XtInheritHighlight ((XtWidgetProc)_XtInherit)
+#define XtInheritUnhighlight XtInheritHighlight
+#define XtInheritNotify XtInheritHighlight
+
+_XFUNCPROTOEND
+
+#endif /* _XawSmeP_h */
diff --git a/X11/Xaw/StripCharP.h b/X11/Xaw/StripCharP.h
new file mode 100644
index 000000000..a0085b43d
--- /dev/null
+++ b/X11/Xaw/StripCharP.h
@@ -0,0 +1,104 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XawStripChartP_h
+#define _XawStripChartP_h
+
+#include <X11/Xaw/StripChart.h>
+#include <X11/Xaw/SimpleP.h>
+
+#define NO_GCS 0
+#define FOREGROUND (1 << 0)
+#define HIGHLIGHT (1 << 1)
+#define ALL_GCS (FOREGROUND | HIGHLIGHT)
+
+/* new fields for the stripChart widget */
+typedef struct {
+ /* resources */
+ Pixel fgpixel; /* color index for graph */
+ Pixel hipixel; /* color index for lines */
+ GC fgGC; /* graphics context for fgpixel */
+ GC hiGC; /* graphics context for hipixel */
+
+ /* private */
+ int update; /* update frequence */
+ int scale; /* scale factor */
+ int min_scale; /* smallest scale factor */
+ int interval; /* data point interval */
+ XPoint *points; /* Poly point for repairing graph lines */
+ double max_value; /* Max Value in window */
+ double valuedata[2048]; /* record of data points */
+ XtIntervalId interval_id;
+ XtCallbackList get_value; /* proc to call to fetch load pt */
+ int jump_val; /* Amount to jump on each scroll */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} StripChartPart;
+
+/* instance record declaration */
+typedef struct _StripChartRec {
+ CorePart core;
+ SimplePart simple;
+ StripChartPart strip_chart;
+} StripChartRec;
+
+/* new fields for the StripChart widget class record */
+typedef struct {
+ XtPointer extension;
+} StripChartClassPart;
+
+/* class record declaration */
+typedef struct _StripChartClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ StripChartClassPart strip_chart_class;
+} StripChartClassRec;
+
+extern StripChartClassRec stripChartClassRec;
+
+#endif /* _XawStripChartP_h */
diff --git a/X11/Xaw/StripChart.h b/X11/Xaw/StripChart.h
new file mode 100644
index 000000000..17e929991
--- /dev/null
+++ b/X11/Xaw/StripChart.h
@@ -0,0 +1,116 @@
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _XawStripChart_h
+#define _XawStripChart_h
+
+#include <X11/Intrinsic.h>
+
+/***********************************************************************
+ *
+ * StripChart Widget
+ *
+ ***********************************************************************/
+
+/* StripChart resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ accelerators Accelerators AcceleratorTable NULL
+ ancestorSensitive AncestorSensitive Boolean True
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderWidth BorderWidth Dimension 1
+ colormap Colormap Colormap parent's colormap
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ depth Depth int parent's depth
+ destroyCallback Callback XtCallbackList NULL
+ foreground Foreground Pixel XtDefaultForeground
+ getValue Callback XtCallbackList NULL
+ height Height Dimension 120
+ highlight Foreground Pixel XtDefaultForeground
+ insensitiveBorder Insensitive Pixmap GreyPixmap
+ jumpScroll JumpScroll int 1/2 width
+ mappedWhenManaged MappedWhenManaged Boolean True
+ minScale Scale int 1
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ screen Screen Screen parent's screen
+ sensitive Sensitive Boolean True
+ translations Translations TranslationTable NULL
+ update Interval int 10 (seconds)
+ width Width Dimension 120
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define DEFAULT_JUMP -1
+
+#ifndef _XtStringDefs_h_
+#define XtNhighlight "highlight"
+#define XtNupdate "update"
+#endif
+
+#define XtCJumpScroll "JumpScroll"
+#define XtCScale "Scale"
+
+#define XtNgetValue "getValue"
+#define XtNjumpScroll "jumpScroll"
+#define XtNminScale "minScale"
+#define XtNscale "scale"
+#define XtNvmunix "vmunix"
+
+typedef struct _StripChartRec *StripChartWidget;
+typedef struct _StripChartClassRec *StripChartWidgetClass;
+
+extern WidgetClass stripChartWidgetClass;
+
+#endif /* _XawStripChart_h */
diff --git a/X11/Xaw/Template.c b/X11/Xaw/Template.c
new file mode 100644
index 000000000..c563b302f
--- /dev/null
+++ b/X11/Xaw/Template.c
@@ -0,0 +1,195 @@
+/*
+
+Copyright 1987, 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.
+
+*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <X11/IntrinsicP.h>
+#include <X11/StringDefs.h>
+#include <X11/Xaw/TemplateP.h>
+
+/*
+ * Class Methods
+ */
+static void TemplateInitialize(Widget, Widget, ArgList, Cardinal*);
+
+/*
+ * Prototypes
+ */
+static Bool TemplateFunction(TemplateWidget, int, int, Bool);
+
+/*
+ * Actions
+ */
+static void TemplateAction(Widget, XEvent*, String*, Cardinal*);
+
+/*
+ * Initialization
+ */
+#define offset(field) XtOffsetOf(TemplateRec, template.field)
+static XtResource resources[] = {
+/*{
+ name,
+ class,
+ type,
+ size,
+ offset,
+ default_type,
+ default_addr
+ },*/
+ {
+ XtNtemplateResource,
+ XtCTemplateResource,
+ XtRTemplateResource,
+ sizeof(char*),
+ offset(resource),
+ XtRString,
+ (XtPointer)"default"
+ },
+};
+#undef offset
+
+static XtActionsRec actions[] =
+{
+ /*{name, procedure},*/
+ {"template", TemplateAction},
+};
+
+static char translations[] =
+"<Key>:" "template()\n"
+;
+
+#define Superclass (&widgetClassRec)
+TemplateClassRec templateClassRec = {
+ /* core */
+ {
+ (WidgetClass)Superclass, /* superclass */
+ "Template", /* class_name */
+ sizeof(TemplateRec), /* widget_size */
+ NULL, /* class_initialize */
+ NULL, /* class_part_initialize */
+ False, /* class_inited */
+ TemplateInitialize, /* initialize */
+ NULL, /* initialize_hook */
+ XtInheritRealize, /* realize */
+ actions, /* actions */
+ XtNumber(actions), /* num_actions */
+ resources, /* resources */
+ XtNumber(resources), /* num_resources */
+ NULLQUARK, /* xrm_class */
+ True, /* compress_motion */
+ True, /* compress_exposure */
+ True, /* compress_enterleave */
+ False, /* visible_interest */
+ NULL, /* destroy */
+ NULL, /* resize */
+ NULL, /* expose */
+ NULL, /* set_values */
+ NULL, /* set_values_hook */
+ XtInheritSetValuesAlmost, /* set_values_almost */
+ NULL, /* get_values_hook */
+ NULL, /* accept_focus */
+ XtVersion, /* version */
+ NULL, /* callback_private */
+ translations, /* tm_table */
+ XtInheritQueryGeometry, /* query_geometry */
+ XtInheritDisplayAccelerator, /* display_accelerator */
+ NULL, /* extension */
+ },
+ /* template */
+ {
+ NULL, /* extension */
+ }
+};
+
+WidgetClass templateWidgetClass = (WidgetClass)&templateClassRec;
+
+/*
+ * Implementation
+ */
+/*
+ * Function:
+ * TemplateInitialize
+ *
+ * Parameters:
+ * request - requested widget
+ * w - the widget
+ * args - arguments
+ * num_args - number of arguments
+ *
+ * Description:
+ * Initializes widget instance.
+ */
+/*ARGSUSED*/
+static void
+TemplateInitialize(Widget request, Widget w, ArgList args, Cardinal *num_args)
+{
+ TemplateWidget tw = (TemplateWidget)w;
+
+ tw->template.private = NULL;
+}
+
+/*
+ * Function:
+ * TemplateFunction
+ *
+ * Parameters:
+ * tw - template widget
+ * x - x coordinate
+ * y - y coordinate
+ * force - force action
+ *
+ * Description:
+ * This function does nothing.
+ *
+ * Return:
+ * Parameter force
+ */
+/*ARGSUSED*/
+static Bool
+TemplateFunction(TemplateWidget tw, int x, int y, Bool force)
+{
+ return (force);
+}
+
+/*
+ * Function:
+ * TemplateAction
+ *
+ * Parameters:
+ * w - template widget
+ * event - event that caused this action
+ * params - parameters
+ * num_params - number of parameters
+ *
+ * Description:
+ * This function does nothing.
+ */
+/*ARGSUSED*/
+static void
+TemplateAction(Widget w, XEvent *event, String *params, Cardinal *num_params)
+{
+}
diff --git a/X11/Xaw/Template.h b/X11/Xaw/Template.h
new file mode 100644
index 000000000..a46ac32bc
--- /dev/null
+++ b/X11/Xaw/Template.h
@@ -0,0 +1,67 @@
+/*
+
+Copyright 1987, 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.
+
+*/
+
+#ifndef _Template_h
+#define _Template_h
+
+#include <X11/Intrinsic.h>
+
+/****************************************************************
+ *
+ * Template widget
+ *
+ ****************************************************************/
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+/* define any special resource names here that are not in <X11/StringDefs.h> */
+#define XtNtemplateResource "templateResource"
+
+#define XtCTemplateResource "TemplateResource"
+
+/* declare specific TemplateWidget class and instance datatypes */
+typedef struct _TemplateClassRec *TemplateWidgetClass;
+typedef struct _TemplateRec *TemplateWidget;
+
+/* declare the class constant */
+extern WidgetClass templateWidgetClass;
+
+#endif /* _Template_h */
diff --git a/X11/Xaw/TemplateP.h b/X11/Xaw/TemplateP.h
new file mode 100644
index 000000000..f61a059ab
--- /dev/null
+++ b/X11/Xaw/TemplateP.h
@@ -0,0 +1,65 @@
+/*
+
+Copyright 1987, 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.
+
+*/
+
+#ifndef _TemplateP_h
+#define _TemplateP_h
+
+#include <X11/Xaw/Template.h>
+
+/* include superclass private header file */
+#include <X11/CoreP.h>
+
+/* define unique representation types not found in <X11/StringDefs.h> */
+#define XtRTemplateResource "TemplateResource"
+
+typedef struct {
+ XtPointer extension;
+} TemplateClassPart;
+
+typedef struct _TemplateClassRec {
+ CoreClassPart core_class;
+ TemplateClassPart template_class;
+} TemplateClassRec;
+
+extern TemplateClassRec templateClassRec;
+
+typedef struct {
+ /* resources */
+ char* resource;
+ /* private */
+ char *private;
+} TemplatePart;
+
+typedef struct _TemplateRec {
+ CorePart core;
+#if defined(__cplusplus) || defined(c_plusplus)
+ TemplatePart c_template;
+#else
+ TemplatePart template;
+#endif
+} TemplateRec;
+
+#endif /* _TemplateP_h */
diff --git a/X11/Xaw/Text.h b/X11/Xaw/Text.h
new file mode 100644
index 000000000..78c147894
--- /dev/null
+++ b/X11/Xaw/Text.h
@@ -0,0 +1,370 @@
+/***********************************************************
+
+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 _XawText_h
+#define _XawText_h
+
+#include <X11/Xaw/Simple.h>
+
+/*
+
+ Class: textWidgetClass
+ Class Name: Text
+ Superclass: Simple
+
+ Resources added by the Text widget:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ autoFill AutoFill Boolean False
+ bottomMargin Margin Position 2
+ displayPosition TextPosition XawTextPosition 0
+ insertPosition TextPosition XawTextPosition 0
+ justify JustifyMode JustifyMode left
+ leftColumn Column Column 0
+ rightColumn Column Column 0
+ leftMargin Margin Position 2
+ rightMargin Margin Position 4
+ positionCallback Callback Callback NULL
+ scrollHorizontal Scroll Boolean False
+ scrollVertical Scroll Boolean False
+ selectTypes SelectTypes Pointer see documentation
+ textSink TextSink Widget NULL
+ textSource TextSource Widget NULL
+ topMargin Margin Position 2
+ unrealizeCallback Callback Callback NULL
+ wrap Wrap XawTextWrapMode XawTextWrapNever
+
+*/
+
+typedef long XawTextPosition;
+
+#ifndef notdef
+typedef enum {
+ XawtextScrollNever,
+ XawtextScrollWhenNeeded,
+ XawtextScrollAlways
+} XawTextScrollMode;
+
+typedef enum {
+ XawtextResizeNever,
+ XawtextResizeWidth,
+ XawtextResizeHeight,
+ XawtextResizeBoth
+} XawTextResizeMode;
+#endif
+
+typedef enum {
+ XawtextWrapNever,
+ XawtextWrapLine,
+ XawtextWrapWord
+} XawTextWrapMode;
+
+typedef enum {
+ XawsdLeft,
+ XawsdRight
+} XawTextScanDirection;
+
+typedef enum {
+ XawtextRead,
+ XawtextAppend,
+ XawtextEdit
+} XawTextEditType;
+
+typedef enum {
+ XawselectNull,
+ XawselectPosition,
+ XawselectChar,
+ XawselectWord,
+ XawselectLine,
+ XawselectParagraph,
+ XawselectAll,
+ XawselectAlphaNumeric
+} XawTextSelectType;
+
+typedef enum {
+ XawjustifyLeft,
+ XawjustifyRight,
+ XawjustifyCenter,
+ XawjustifyFull
+} XawTextJustifyMode;
+
+typedef struct {
+ int firstPos;
+ int length;
+ char *ptr;
+ unsigned long format;
+} XawTextBlock, *XawTextBlockPtr;
+
+#ifndef OLDXAW
+typedef struct {
+ int line_number;
+ int column_number;
+ XawTextPosition insert_position;
+ XawTextPosition last_position;
+ Boolean overwrite_mode;
+} XawTextPositionInfo;
+
+typedef struct {
+ XawTextPosition left, right;
+ XawTextBlock *block;
+} XawTextPropertyInfo;
+
+typedef struct _XawTextAnchor XawTextAnchor;
+typedef struct _XawTextEntity XawTextEntity;
+typedef struct _XawTextProperty XawTextProperty;
+typedef struct _XawTextPropertyList XawTextPropertyList;
+#endif
+
+#include <X11/Xaw/TextSink.h>
+#include <X11/Xaw/TextSrc.h>
+
+#define XtEtextScrollNever "never"
+#define XtEtextScrollWhenNeeded "whenneeded"
+#define XtEtextScrollAlways "always"
+#define XtEtextResizeNever "never"
+#define XtEtextResizeWidth "width"
+#define XtEtextResizeHeight "height"
+#define XtEtextResizeBoth "both"
+
+#define XtEtextWrapNever "never"
+#define XtEtextWrapLine "line"
+#define XtEtextWrapWord "word"
+
+#define XtNautoFill "autoFill"
+#define XtNbottomMargin "bottomMargin"
+#define XtNdialogHOffset "dialogHOffset"
+#define XtNdialogVOffset "dialogVOffset"
+#define XtNdisplayCaret "displayCaret"
+#define XtNdisplayPosition "displayPosition"
+#define XtNleftMargin "leftMargin"
+#define XtNrightMargin "rightMargin"
+#define XtNpositionCallback "positionCallback"
+#define XtNscrollVertical "scrollVertical"
+#define XtNscrollHorizontal "scrollHorizontal"
+#define XtNselectTypes "selectTypes"
+#define XtNtopMargin "topMargin"
+#define XtNwrap "wrap"
+
+#define XtCColumn "Column"
+#define XtNleftColumn "leftColumn"
+#define XtNrightColumn "rightColumn"
+
+#define XtCJustifyMode XtCJustify
+#define XtNjustifyMode XtNjustify
+#define XtEtextJustifyLeft "left"
+#define XtEtextJustifyRight "right"
+#define XtEtextJustifyCenter "center"
+#define XtEtextJustifyFull "full"
+
+#define XtCAutoFill "AutoFill"
+#define XtCSelectTypes "SelectTypes"
+#define XtCWrap "Wrap"
+#ifndef notdef
+#define XtCScroll "Scroll"
+#endif
+
+#ifndef _XtStringDefs_h_
+#define XtNinsertPosition "insertPosition"
+#ifndef notdef
+#define XtNresize "resize"
+#define XtCResize "Resize"
+#endif
+#define XtNselection "selection"
+#endif
+
+/* return Error code for XawTextSearch */
+#define XawTextSearchError (-12345L)
+
+/* return codes from XawTextReplace */
+#define XawReplaceError -1
+#define XawEditDone 0
+#define XawEditError 1
+#define XawPositionError 2
+
+/* XrmQuark is not unsigned long */
+#define XawTextFormat(tw,fmt) ((unsigned long)_XawTextFormat(tw) == (fmt))
+
+extern unsigned long FMT8BIT;
+extern unsigned long XawFmt8Bit;
+extern unsigned long XawFmtWide;
+
+extern WidgetClass textWidgetClass;
+
+typedef struct _TextClassRec *TextWidgetClass;
+typedef struct _TextRec *TextWidget;
+
+_XFUNCPROTOBEGIN
+
+XrmQuark _XawTextFormat
+(
+ TextWidget tw
+ );
+
+void XawTextDisplay
+(
+ Widget w
+ );
+
+void XawTextEnableRedisplay
+(
+ Widget w
+ );
+
+void XawTextDisableRedisplay
+(
+ Widget w
+ );
+
+void XawTextSetSelectionArray
+(
+ Widget w,
+ XawTextSelectType *sarray
+ );
+
+void XawTextGetSelectionPos
+(
+ Widget w,
+ XawTextPosition *begin_return,
+ XawTextPosition *end_return
+ );
+
+void XawTextSetSource
+(
+ Widget w,
+ Widget source,
+ XawTextPosition top
+ );
+
+int XawTextReplace
+(
+ Widget w,
+ XawTextPosition start,
+ XawTextPosition end,
+ XawTextBlock *text
+ );
+
+XawTextPosition XawTextTopPosition
+(
+ Widget w
+ );
+
+XawTextPosition XawTextLastPosition
+(
+ Widget w
+ );
+
+void XawTextSetInsertionPoint
+(
+ Widget w,
+ XawTextPosition position
+ );
+
+XawTextPosition XawTextGetInsertionPoint
+(
+ Widget w
+ );
+
+void XawTextUnsetSelection
+(
+ Widget w
+ );
+
+void XawTextSetSelection
+(
+ Widget w,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+
+void XawTextInvalidate
+(
+ Widget w,
+ XawTextPosition from,
+ XawTextPosition to
+);
+
+Widget XawTextGetSource
+(
+ Widget w
+ );
+
+Widget XawTextGetSink
+(
+ Widget w
+ );
+
+XawTextPosition XawTextSearch
+(
+ Widget w,
+#if NeedWidePrototypes
+ int dir,
+#else
+ XawTextScanDirection dir,
+#endif
+ XawTextBlock *text
+ );
+
+void XawTextDisplayCaret
+(
+ Widget w,
+#if NeedWidePrototypes
+ int visible
+#else
+ Boolean visible
+#endif
+ );
+
+_XFUNCPROTOEND
+
+/*
+ * For R3 compatability only
+ */
+#include <X11/Xaw/AsciiSrc.h>
+#include <X11/Xaw/AsciiSink.h>
+
+#endif /* _XawText_h */
diff --git a/X11/Xaw/TextP.h b/X11/Xaw/TextP.h
new file mode 100644
index 000000000..60f462421
--- /dev/null
+++ b/X11/Xaw/TextP.h
@@ -0,0 +1,317 @@
+/***********************************************************
+
+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 _XawTextP_h
+#define _XawTextP_h
+
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Text.h>
+#include <X11/Xaw/SimpleP.h>
+
+_XFUNCPROTOBEGIN
+
+#define MAXCUT 30000 /* Maximum number of characters that can be cut */
+
+#define XawTextGetLastPosition(ctx) \
+ XawTextSourceScan((ctx)->text.source, 0, \
+ XawstAll, XawsdRight, 1, True)
+#define GETLASTPOS XawTextGetLastPosition(ctx)
+
+#define zeroPosition ((XawTextPosition)0)
+
+extern XtActionsRec _XawTextActionsTable[];
+extern Cardinal _XawTextActionsTableCount;
+
+extern char _XawDefaultTextTranslations[];
+
+#define XawLF 0x0a
+#define XawCR 0x0d
+#define XawTAB 0x09
+#define XawBS 0x08
+#define XawSP 0x20
+#define XawDEL 0x7f
+#define XawESC 0x1b
+#define XawBSLASH '\\'
+
+/* constants that subclasses may want to know */
+#define DEFAULT_TEXT_HEIGHT ((Dimension)~0)
+#define DEFAULT_TAB_SIZE 8
+
+/* displayable text management data structures */
+typedef struct {
+ XawTextPosition position;
+ Position y;
+#ifndef OLDXAW
+ unsigned int textWidth;
+#else
+ Dimension textWidth;
+#endif
+} XawTextLineTableEntry, *XawTextLineTableEntryPtr;
+
+typedef struct {
+ XawTextPosition left, right;
+ XawTextSelectType type;
+ Atom *selections;
+ int atom_count;
+ int array_size;
+} XawTextSelection;
+
+typedef struct _XawTextSelectionSalt {
+ struct _XawTextSelectionSalt *next;
+ XawTextSelection s;
+ /*
+ * The element "contents" stores the CT string which is gotten in the
+ * function _XawTextSaltAwaySelection()
+ */
+ char *contents;
+ int length;
+} XawTextSelectionSalt;
+
+#ifndef OLDXAW
+typedef struct _XawTextKillRing {
+ struct _XawTextKillRing *next;
+ char *contents;
+ int length;
+ unsigned refcount;
+ unsigned long format;
+} XawTextKillRing;
+
+extern XawTextKillRing *xaw_text_kill_ring;
+#endif
+
+/* Line Tables are n+1 long - last position displayed is in last lt entry */
+typedef struct {
+ XawTextPosition top; /* Top of the displayed text */
+ int lines; /* How many lines in this table */
+#ifndef OLDXAW
+ int base_line; /* line number of first entry */
+#endif
+ XawTextLineTableEntry *info; /* A dynamic array, one entry per line */
+} XawTextLineTable, *XawTextLineTablePtr;
+
+typedef struct _XawTextMargin {
+ Position left, right, top, bottom;
+} XawTextMargin;
+
+typedef struct _XmuScanline XmuTextUpdate;
+
+#define VMargins(ctx) ((ctx)->text.margin.top + (ctx)->text.margin.bottom)
+#define HMargins(ctx) ((ctx)->text.left_margin + (ctx)->text.margin.right)
+#define RVMargins(ctx) ((ctx)->text.r_margin.top + (ctx)->text.r_margin.bottom)
+#define RHMargins(ctx) ((ctx)->text.r_margin.left + (ctx)->text.r_margin.right)
+
+#define IsPositionVisible(ctx, pos) \
+(pos >= ctx->text.lt.info[0].position && \
+ pos < ctx->text.lt.info[ctx->text.lt.lines].position)
+
+/*
+ * Search & Replace data structure
+ */
+struct SearchAndReplace {
+ Boolean selection_changed; /* flag so that the selection cannot be
+ changed out from underneath query-replace.*/
+ Widget search_popup; /* The poppup widget that allows searches.*/
+ Widget label1; /* The label widgets for the search window. */
+ Widget label2;
+ Widget left_toggle; /* The left search toggle radioGroup. */
+ Widget right_toggle; /* The right search toggle radioGroup. */
+ Widget rep_label; /* The Replace label string. */
+ Widget rep_text; /* The Replace text field. */
+ Widget search_text; /* The Search text field. */
+ Widget rep_one; /* The Replace one button. */
+ Widget rep_all; /* The Replace all button. */
+#ifndef OLDXAW
+ Widget case_sensitive; /* The "Case Sensitive" toggle */
+#endif
+};
+
+/* New fields for the Text widget class record */
+typedef struct {
+ XtPointer extension;
+} TextClassPart;
+
+/* Full class record declaration */
+typedef struct _TextClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+} TextClassRec;
+
+extern TextClassRec textClassRec;
+
+/* New fields for the Text widget record */
+typedef struct _TextPart {
+ /* resources */
+ Widget source, sink;
+ XawTextPosition insertPos;
+ XawTextSelection s;
+ XawTextSelectType *sarray; /* Array to cycle for selections */
+ XawTextSelectionSalt *salt; /* salted away selections */
+ int left_margin;
+ int dialog_horiz_offset, dialog_vert_offset; /* position for popup dialog */
+ Boolean display_caret; /* insertion pt visible iff T */
+ Boolean auto_fill; /* Auto fill mode? */
+ XawTextScrollMode scroll_vert, scroll_horiz;
+ XawTextWrapMode wrap; /* The type of wrapping */
+ XawTextResizeMode resize;
+ XawTextMargin r_margin; /* The real margins */
+#ifndef OLDXAW
+ XtCallbackList position_callbacks;
+#else
+ XtPointer pad1;
+#endif
+
+ /* private state */
+ XawTextMargin margin; /* The current margins */
+ XawTextLineTable lt;
+ XawTextScanDirection extendDir;
+ XawTextSelection origSel; /* the selection being modified */
+ Time lasttime; /* timestamp of last processed action */
+ Time time; /* time of last key or button action */
+ Position ev_x, ev_y; /* x, y coords for key or button action */
+ Widget vbar, hbar; /* The scroll bars (none = NULL) */
+ struct SearchAndReplace *search; /* Search and replace structure */
+ Widget file_insert; /* The file insert popup widget */
+ XmuTextUpdate *update; /* Position intervals to update */
+#ifndef OLDXAW
+ int line_number;
+ short column_number;
+ unsigned char kill_ring;
+ Boolean selection_state;
+#else
+ XtPointer pad2;
+ int pad3;
+#endif
+ int from_left; /* Cursor position */
+ XawTextPosition lastPos; /* Last position of source */
+ GC gc;
+ Boolean showposition; /* True if we need to show the position */
+ Boolean hasfocus; /* TRUE if we currently have input focus*/
+ Boolean update_disabled; /* TRUE if display updating turned off */
+ Boolean clear_to_eol; /* Clear to eol when painting text? */
+ XawTextPosition old_insert; /* Last insertPos for batched updates */
+ short mult; /* Multiplier */
+#ifndef OLDXAW
+ XawTextKillRing *kill_ring_ptr;
+#else
+ XtPointer pad4;
+#endif
+
+ /* private state, shared w/Source and Sink */
+ Boolean redisplay_needed; /* in SetValues */
+ XawTextSelectionSalt *salt2; /* salted away selections */
+
+#ifndef OLDXAW
+ char numeric;
+ char source_changed;
+ Boolean overwrite; /* Overwrite mode */
+
+ /* new resources and states, for text edition
+ * Note: a fixed width font is required for these resources/states.
+ */
+ short left_column, right_column;
+ XawTextJustifyMode justify;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} TextPart;
+
+#define XtRWrapMode "WrapMode"
+#define XtRScrollMode "ScrollMode"
+#define XtRResizeMode "ResizeMode"
+#define XtRJustifyMode "JustifyMode"
+
+/* full instance record */
+typedef struct _TextRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+} TextRec;
+
+/*
+ * Semi-private functions
+ * for use by other Xaw modules only
+ */
+void _XawTextBuildLineTable
+(
+ TextWidget ctx,
+ XawTextPosition top_pos,
+ _XtBoolean force_rebuild
+ );
+
+char *_XawTextGetSTRING
+(
+ TextWidget ctx,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+
+void _XawTextSaltAwaySelection
+(
+ TextWidget ctx,
+ Atom *selections,
+ int num_atoms
+ );
+
+void _XawTextPosToXY
+(
+ Widget w,
+ XawTextPosition pos,
+ Position *x,
+ Position *y
+ );
+
+void _XawTextNeedsUpdating
+(
+ TextWidget ctx,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextP_h */
diff --git a/X11/Xaw/TextSink.h b/X11/Xaw/TextSink.h
new file mode 100644
index 000000000..f3dd96855
--- /dev/null
+++ b/X11/Xaw/TextSink.h
@@ -0,0 +1,359 @@
+/***********************************************************
+
+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 _XawTextSink_h
+#define _XawTextSink_h
+
+#include <X11/Xaw/Text.h>
+
+/***********************************************************************
+ *
+ * TextSink Object
+ *
+ ***********************************************************************/
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ font Font XFontStruct * XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ background Background Pixel XtDefaultBackground
+ cursorColor Color Pixel XtDefaultForeground
+*/
+
+/* Class record constants */
+
+extern WidgetClass textSinkObjectClass;
+
+typedef struct _TextSinkClassRec *TextSinkObjectClass;
+typedef struct _TextSinkRec *TextSinkObject;
+
+typedef enum {XawisOn, XawisOff} XawTextInsertState;
+
+#ifndef OLDXAW
+#ifndef XtNcursorColor
+#define XtNcursorColor "cursorColor"
+#endif
+
+#define XawNtextProperties "textProperties"
+#define XawCTextProperties "TextProperties"
+#define XawRTextProperties "XawTextProperties"
+#endif
+
+/*
+ * Public Functions
+ */
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawTextSinkDisplayText
+ *
+ * Parameters:
+ * w - the TextSink Object
+ * x - location to start drawing text
+ * y - ""
+ * pos1 - location of starting and ending points in the text buffer
+ * pos2 - ""
+ * highlight - hightlight this text?
+ *
+ * Description:
+ * Stub function that in subclasses will display text.
+ *
+ * Note:
+ * This function doesn't actually display anything, it is only a place
+ * holder.
+ */
+void XawTextSinkDisplayText
+(
+ Widget w,
+#if NeedWidePrototypes
+ int x,
+ int y,
+#else
+ Position x,
+ Position y,
+#endif
+ XawTextPosition pos1,
+ XawTextPosition pos2,
+#if NeedWidePrototypes
+ int highlight
+#else
+ Boolean highlight
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkInsertCursor
+ *
+ * Parameters:
+ * w - the TextSink Object.
+ * x - location for the cursor.
+ * y - ""
+ * state - whether to turn the cursor on, or off
+ *
+ * Description:
+ * Places the InsertCursor.
+ *
+ * Note:
+ * This function doesn't actually display anything, it is only a place
+ * holder.
+ */
+void XawTextSinkInsertCursor
+(
+ Widget w,
+#if NeedWidePrototypes
+ int x,
+ int y,
+ int state
+#else
+ Position x,
+ Position y,
+ XawTextInsertState state
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkClearToBackground
+ *
+ * Parameters:
+ * w - TextSink Object
+ * x - location of area to clear
+ * y - ""
+ * width - size of area to clear
+ * height - ""
+ *
+ * Description:
+ * Clears a region of the sink to the background color.
+ *
+ * Note:
+ * This function doesn't actually display anything, it is only a place
+ * holder.
+ */
+void XawTextSinkClearToBackground
+(
+ Widget w,
+#if NeedWidePrototypes
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height
+#else
+ Position x,
+ Position y,
+ Dimension width,
+ Dimension height
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkFindPosition
+ *
+ * Parameters:
+ * w - TextSink Object
+ * fromPos - reference position
+ * fromX - reference location
+ * width - width of section to paint text
+ * stopAtWordBreak - returned position is a word break?
+ * resPos - Position to return
+ * resWidth - Width actually used
+ * resHeight - Height actually used
+ *
+ * Description:
+ * Finds a position in the text.
+ */
+void XawTextSinkFindPosition
+(
+ Widget w,
+ XawTextPosition fromPos,
+ int fromX,
+ int width,
+#if NeedWidePrototypes
+ int stopAtWordBreak,
+#else
+ Boolean stopAtWordBreak,
+#endif
+ XawTextPosition* pos_return,
+ int *width_return,
+ int *height_return
+ );
+
+/*
+ * Function:
+ * XawTextSinkFindDistance
+ *
+ * Parameters:
+ * w - TextSink Object
+ * fromPos - starting Position
+ * fromX - x location of starting Position
+ * toPos - end Position
+ * resWidth - Distance between fromPos and toPos
+ * resPos - Acutal toPos used
+ * resHeight - Height required by this text
+ *
+ * Description:
+ * Find the Pixel Distance between two text Positions.
+ */
+void XawTextSinkFindDistance
+(
+ Widget w,
+ XawTextPosition fromPos,
+ int fromX,
+ XawTextPosition toPos,
+ int *width_return,
+ XawTextPosition *pos_return,
+ int *height_return
+ );
+
+/*
+ * Function:
+ * XawTextSinkResolve
+ *
+ * Parameters:
+ * w - TextSink Object
+ * pos - reference Position
+ * fromx - reference Location
+ * width - width to move
+ * resPos - resulting position
+ *
+ * Description:
+ * Resloves a location to a position.
+ */
+void XawTextSinkResolve
+(
+ Widget w,
+ XawTextPosition fromPos,
+ int fromX,
+ int width,
+ XawTextPosition *pos_return
+ );
+
+/*
+ * Function:
+ * XawTextSinkMaxLines
+ *
+ * Parameters:
+ * w - TextSink Object
+ * height - height to fit lines into
+ *
+ * Returns:
+ * Number of lines that will fit
+ *
+ * Description:
+ * Finds the Maximum number of lines that will fit in a given height.
+ */
+int XawTextSinkMaxLines
+(
+ Widget w,
+#if NeedWidePrototypes
+ unsigned int height
+#else
+ Dimension height
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkMaxHeight
+ *
+ * Parameters:
+ * w - TextSink Object
+ * lines - number of lines
+ *
+ * Returns:
+ * Height
+ *
+ * Description:
+ * Finds the Minium height that will contain a given number lines.
+ */
+int XawTextSinkMaxHeight
+(
+ Widget w,
+ int lines
+);
+
+/*
+ * Function:
+ * XawTextSinkSetTabs
+ *
+ * Parameters:
+ * w - TextSink Object
+ * tab_count - number of tabs in the list
+ * tabs - text positions of the tabs
+ * Description:
+ * Sets the Tab stops.
+ */
+void XawTextSinkSetTabs
+(
+ Widget w,
+ int tab_count,
+ int *tabs
+);
+
+/*
+ * Function:
+ * XawTextSinkGetCursorBounds
+ *
+ * Parameters:
+ * w - TextSink Object
+ * rect - X rectance containing the cursor bounds
+ * Description:
+ * Finds the bounding box for the insert curor (caret).
+ */
+void XawTextSinkGetCursorBounds
+(
+ Widget w,
+ XRectangle *rect_return
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextSink_h */
diff --git a/X11/Xaw/TextSinkP.h b/X11/Xaw/TextSinkP.h
new file mode 100644
index 000000000..78f41d29c
--- /dev/null
+++ b/X11/Xaw/TextSinkP.h
@@ -0,0 +1,300 @@
+/***********************************************************
+
+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 _XawTextSinkP_h
+#define _XawTextSinkP_h
+
+/*
+ * TextSink Object Private Data
+ */
+#include <X11/Xaw/TextSink.h>
+#include <X11/Xaw/TextP.h> /* This sink works with the Text widget */
+#include <X11/Xaw/TextSrcP.h> /* This sink works with the Text Source */
+#include <X11/Xmu/Xmu.h>
+
+#ifndef OLDXAW
+/* font/fontset defined? */
+#define XAW_TPROP_FONT (1<<0)
+#define XAW_TPROP_FONTSET (1<<1)
+
+/* extra attributes */
+#define XAW_TPROP_FOREGROUND (1<<2)
+#define XAW_TPROP_BACKGROUND (1<<3)
+#define XAW_TPROP_FPIXMAP (1<<4)
+#define XAW_TPROP_BPIXMAP (1<<5)
+#define XAW_TPROP_UNDERLINE (1<<6)
+#define XAW_TPROP_OVERSTRIKE (1<<7)
+#define XAW_TPROP_SUBSCRIPT (1<<8)
+#define XAW_TPROP_SUPERSCRIPT (1<<9)
+
+/* xlfd attributes */
+#define XAW_TPROP_FOUNDRY (1<<0)
+#define XAW_TPROP_FAMILY (1<<1)
+#define XAW_TPROP_WEIGHT (1<<2)
+#define XAW_TPROP_SLANT (1<<3)
+#define XAW_TPROP_SETWIDTH (1<<4)
+#define XAW_TPROP_ADDSTYLE (1<<5)
+#define XAW_TPROP_PIXELSIZE (1<<6)
+#define XAW_TPROP_POINTSIZE (1<<7)
+#define XAW_TPROP_RESX (1<<8)
+#define XAW_TPROP_RESY (1<<9)
+#define XAW_TPROP_SPACING (1<<10)
+#define XAW_TPROP_AVGWIDTH (1<<11)
+#define XAW_TPROP_REGISTRY (1<<12)
+#define XAW_TPROP_ENCODING (1<<13)
+struct _XawTextProperty { /* to be extended/modified */
+ XrmQuark identifier, code;
+ unsigned long mask;
+ XFontStruct *font;
+ XFontSet fontset;
+ Pixel foreground, background;
+ Pixmap foreground_pixmap, background_pixmap;
+ XrmQuark xlfd;
+
+ unsigned long xlfd_mask;
+ XrmQuark foundry, family, weight, slant, setwidth, addstyle, pixel_size,
+ point_size, res_x, res_y, spacing, avgwidth, registry, encoding;
+
+ short underline_position, underline_thickness;
+};
+
+struct _XawTextPropertyList {
+ XrmQuark identifier;
+ Screen *screen;
+ Colormap colormap;
+ int depth;
+ XawTextProperty **properties;
+ Cardinal num_properties;
+ XawTextPropertyList *next;
+};
+
+typedef struct _XawTextPaintStruct XawTextPaintStruct;
+struct _XawTextPaintStruct {
+ XawTextPaintStruct *next;
+ int x, y, width;
+ char *text; /* formatted text */
+ Cardinal length; /* length of text */
+ XawTextProperty *property;
+ int max_ascent, max_descent;
+ XmuArea *backtabs;
+ Boolean highlight;
+};
+
+typedef struct {
+ XmuArea *clip, *hightabs; /* clip list */
+ XawTextPaintStruct *paint, *bearings; /* drawing information */
+} XawTextPaintList;
+
+typedef struct {
+ XtPointer next_extension;
+ XrmQuark record_type;
+ long version;
+ Cardinal record_size;
+ Bool (*BeginPaint)(Widget);
+ void (*PreparePaint)(Widget, int, int,
+ XawTextPosition, XawTextPosition, Bool);
+ void (*DoPaint)(Widget);
+ Bool (*EndPaint)(Widget);
+} TextSinkExtRec, *TextSinkExt;
+#endif
+
+typedef void (*_XawSinkDisplayTextProc)
+ (Widget, int, int, XawTextPosition, XawTextPosition, Bool);
+
+typedef void (*_XawSinkInsertCursorProc)
+ (Widget, int, int, XawTextInsertState);
+
+typedef void (*_XawSinkClearToBackgroundProc)
+ (Widget, int, int, unsigned int, unsigned int);
+
+typedef void (*_XawSinkFindPositionProc)
+ (Widget, XawTextPosition, int, int, Bool, XawTextPosition*, int*, int*);
+
+typedef void (*_XawSinkFindDistanceProc)
+ (Widget, XawTextPosition, int, XawTextPosition, int*,
+ XawTextPosition*, int*);
+
+typedef void (*_XawSinkResolveProc)
+ (Widget, XawTextPosition, int, int, XawTextPosition*);
+
+typedef int (*_XawSinkMaxLinesProc)
+ (Widget, unsigned int);
+
+typedef int (*_XawSinkMaxHeightProc)
+ (Widget, int);
+
+typedef void (*_XawSinkSetTabsProc)
+ (Widget, int, short*);
+
+typedef void (*_XawSinkGetCursorBoundsProc)
+ (Widget, XRectangle*);
+
+typedef struct _TextSinkClassPart {
+ _XawSinkDisplayTextProc DisplayText;
+ _XawSinkInsertCursorProc InsertCursor;
+ _XawSinkClearToBackgroundProc ClearToBackground;
+ _XawSinkFindPositionProc FindPosition;
+ _XawSinkFindDistanceProc FindDistance;
+ _XawSinkResolveProc Resolve;
+ _XawSinkMaxLinesProc MaxLines;
+ _XawSinkMaxHeightProc MaxHeight;
+ _XawSinkSetTabsProc SetTabs;
+ _XawSinkGetCursorBoundsProc GetCursorBounds;
+#ifndef OLDXAW
+ TextSinkExt extension;
+#endif
+} TextSinkClassPart;
+
+/* Full class record */
+typedef struct _TextSinkClassRec {
+ ObjectClassPart object_class;
+ TextSinkClassPart text_sink_class;
+} TextSinkClassRec;
+
+extern TextSinkClassRec textSinkClassRec;
+
+/* New fields for the TextSink object */
+typedef struct {
+ /* resources */
+ Pixel foreground; /* Foreground color */
+ Pixel background; /* Background color */
+
+ /* private */
+ Position *tabs; /* The tab stops as pixel values */
+ short *char_tabs; /* The tabs stops as character values */
+ int tab_count; /* number of items in tabs */
+
+#ifndef OLDXAW
+ /* more resources */
+ Pixel cursor_color;
+ XawTextPropertyList *properties;
+ XawTextPaintList *paint;
+ XtPointer pad[2]; /* for future use and keep binary compatability */
+#endif
+} TextSinkPart;
+
+/* Full instance record */
+typedef struct _TextSinkRec {
+ ObjectPart object;
+ TextSinkPart text_sink;
+} TextSinkRec;
+
+/* Semi private routines */
+#ifndef OLDXAW
+XawTextPropertyList *XawTextSinkConvertPropertyList
+(
+ String name,
+ String spec,
+ Screen *screen,
+ Colormap Colormap,
+ int depth
+ );
+
+XawTextProperty *XawTextSinkGetProperty
+(
+ Widget w,
+ XrmQuark property
+ );
+
+XawTextProperty *XawTextSinkCopyProperty
+(
+ Widget w,
+ XrmQuark property
+ );
+
+XawTextProperty *XawTextSinkAddProperty
+(
+ Widget w,
+ XawTextProperty *property
+ );
+
+XawTextProperty *XawTextSinkCombineProperty
+(
+ Widget w,
+ XawTextProperty *result_in_out,
+ XawTextProperty *property,
+ Bool override
+ );
+
+Bool XawTextSinkBeginPaint
+(
+ Widget w
+ );
+
+void XawTextSinkPreparePaint
+(
+ Widget w,
+ int y,
+ int line,
+ XawTextPosition from,
+ XawTextPosition to,
+ Bool highlight
+);
+
+void XawTextSinkDoPaint
+(
+ Widget w
+ );
+
+Bool XawTextSinkEndPaint
+(
+ Widget w
+ );
+#endif
+
+#define XtInheritDisplayText ((_XawSinkDisplayTextProc)_XtInherit)
+#define XtInheritInsertCursor ((_XawSinkInsertCursorProc)_XtInherit)
+#define XtInheritClearToBackground ((_XawSinkClearToBackgroundProc)_XtInherit)
+#define XtInheritFindPosition ((_XawSinkFindPositionProc)_XtInherit)
+#define XtInheritFindDistance ((_XawSinkFindDistanceProc)_XtInherit)
+#define XtInheritResolve ((_XawSinkResolveProc)_XtInherit)
+#define XtInheritMaxLines ((_XawSinkMaxLinesProc)_XtInherit)
+#define XtInheritMaxHeight ((_XawSinkMaxHeightProc)_XtInherit)
+#define XtInheritSetTabs ((_XawSinkSetTabsProc)_XtInherit)
+#define XtInheritGetCursorBounds ((_XawSinkGetCursorBoundsProc)_XtInherit)
+
+#endif /* _XawTextSinkP_h */
diff --git a/X11/Xaw/TextSrc.h b/X11/Xaw/TextSrc.h
new file mode 100644
index 000000000..2c65e6677
--- /dev/null
+++ b/X11/Xaw/TextSrc.h
@@ -0,0 +1,275 @@
+/***********************************************************
+
+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 _XawTextSrc_h
+#define _XawTextSrc_h
+
+#include <X11/Xaw/Text.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Callback NULL
+ editType EditType XawTextEditType XawtextRead
+ enableUndo Undo Boolean False
+ sourceChanged Changed Boolean False
+
+*/
+
+/* Class record constants */
+extern WidgetClass textSrcObjectClass;
+
+typedef struct _TextSrcClassRec *TextSrcObjectClass;
+typedef struct _TextSrcRec *TextSrcObject;
+
+typedef enum {
+ XawstPositions,
+ XawstWhiteSpace,
+ XawstEOL,
+ XawstParagraph,
+ XawstAll,
+ XawstAlphaNumeric
+ } XawTextScanType;
+
+typedef enum {
+ Normal,
+ Selected
+} highlightType;
+
+typedef enum {
+ XawsmTextSelect,
+ XawsmTextExtend
+} XawTextSelectionMode;
+
+typedef enum {
+ XawactionStart,
+ XawactionAdjust,
+ XawactionEnd
+} XawTextSelectionAction;
+
+#define XawTextReadError -1
+#define XawTextScanError -1
+
+#ifndef OLDXAW
+#define XtNenableUndo "enableUndo"
+#define XtCUndo "Undo"
+
+#define XtNsourceChanged "sourceChanged"
+#define XtCChanged "Changed"
+
+#define XtNpropertyCallback "propertyCallback"
+#endif
+
+/*
+ * Public Functions
+ */
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawTextSourceRead
+ *
+ * Parameters:
+ * w - TextSrc Object
+ * pos - position of the text to retreive
+ * text - text block that will contain returned text
+ * length - maximum number of characters to read
+ *
+ * Description:
+ * This function reads the source.
+ *
+ * Returns:
+ * The number of characters read into the buffer
+ */
+XawTextPosition XawTextSourceRead
+(
+ Widget w,
+ XawTextPosition pos,
+ XawTextBlock *text_return,
+ int length
+ );
+
+/*
+ * Function:
+ * XawTextSourceReplace
+ *
+ * Parameters:
+ * src - Text Source Object
+ * startPos - ends of text that will be removed
+ * endPos - ""
+ * text - new text to be inserted into buffer at startPos
+ *
+ * Description:
+ * Replaces a block of text with new text
+ *
+ * Returns:
+ * XawEditError or XawEditDone
+ */
+int XawTextSourceReplace
+(
+ Widget w,
+ XawTextPosition start,
+ XawTextPosition end,
+ XawTextBlock *text
+ );
+
+/*
+ * Function:
+ * XawTextSourceScan
+ *
+ * Parameters:
+ * w - TextSrc Object
+ * position - position to start scanning
+ * type - type of thing to scan for
+ * dir - direction to scan
+ * count - which occurance if this thing to search for
+ * include - whether or not to include the character found in
+ * the position that is returned.
+ *
+ * Description:
+ * Scans the text source for the number and type of item specified.
+ *
+ * Returns:
+ * The position of the text
+ */
+XawTextPosition XawTextSourceScan
+(
+ Widget w,
+ XawTextPosition position,
+#if NeedWidePrototypes
+ int type,
+ int dir,
+ int count,
+ int include
+#else
+ XawTextScanType type,
+ XawTextScanDirection dir,
+ int count,
+ Boolean include
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSourceSearch
+ *
+ * Parameters:
+ * w - TextSource Object
+ * position - position to start scanning
+ * dir - direction to search
+ * text - the text block to search for
+ *
+ * Description:
+ * Searchs the text source for the text block passed.
+ *
+ * Returns:
+ * The position of the text we are searching for or XawTextSearchError
+ */
+XawTextPosition XawTextSourceSearch
+(
+ Widget w,
+ XawTextPosition position,
+#if NeedWidePrototypes
+ int dir,
+#else
+ XawTextScanDirection dir,
+#endif
+ XawTextBlock *text
+ );
+
+/*
+ * Function:
+ * XawTextSourceConvertSelection
+ *
+ * Parameters:
+ * w - TextSrc object
+ * selection - current selection atom
+ * target - current target atom
+ * type - type to conver the selection to
+ * value - return value that has been converted
+ * length - ""
+ * format - format of the returned value
+ *
+ * Returns:
+ * True if the selection has been converted
+ */
+Boolean XawTextSourceConvertSelection
+(
+ Widget w,
+ Atom *selection,
+ Atom *target,
+ Atom *type,
+ XtPointer *value_return,
+ unsigned long *length_return,
+ int *format_return
+ );
+
+/*
+ * Function:
+ * XawTextSourceSetSelection
+ *
+ * Parameters:
+ * w - TextSrc object
+ * left - bounds of the selection
+ * right - ""
+ * selection - selection atom
+ *
+ * Description:
+ * Allows special setting of the selection.
+ */
+void XawTextSourceSetSelection
+(
+ Widget w,
+ XawTextPosition start,
+ XawTextPosition end,
+ Atom selection
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextSrc_h */
diff --git a/X11/Xaw/TextSrcP.h b/X11/Xaw/TextSrcP.h
new file mode 100644
index 000000000..27514c218
--- /dev/null
+++ b/X11/Xaw/TextSrcP.h
@@ -0,0 +1,258 @@
+/***********************************************************
+
+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 _XawTextSrcP_h
+#define _XawTextSrcP_h
+
+/*
+ * TextSrc Object Private Data
+ */
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/TextSrc.h>
+#include <X11/Xaw/TextP.h> /* This source works with the Text widget */
+
+_XFUNCPROTOBEGIN
+
+#ifndef OLDXAW
+struct _XawTextAnchor {
+ XawTextPosition position;
+ XawTextEntity *entities, *cache;
+};
+
+#define XAW_TENTF_HIDE 0x0001
+#define XAW_TENTF_READ 0x0002
+#define XAW_TENTF_REPLACE 0x0004
+struct _XawTextEntity {
+ short type;
+ short flags;
+ XawTextEntity *next;
+ XtPointer data;
+ XawTextPosition offset; /* from the anchor */
+ Cardinal length;
+ XrmQuark property;
+};
+#endif
+
+#if 0 /* no longer used */
+/* New fields for the TextSrc object class */
+typedef struct {
+ XtPointer next_extension;
+ XrmQuark record_type;
+ long version;
+ Cardinal record_size;
+ int (*Input)();
+} TextSrcExtRec, *TextSrcExt;
+#endif
+
+typedef XawTextPosition (*_XawSrcReadProc)
+ (Widget, XawTextPosition, XawTextBlock*, int);
+
+typedef int (*_XawSrcReplaceProc)
+ (Widget, XawTextPosition, XawTextPosition, XawTextBlock*);
+
+typedef XawTextPosition (*_XawSrcScanProc)
+ (Widget, XawTextPosition, XawTextScanType, XawTextScanDirection,
+ int, Bool);
+
+typedef XawTextPosition (*_XawSrcSearchProc)
+ (Widget, XawTextPosition, XawTextScanDirection, XawTextBlock*);
+
+typedef void (*_XawSrcSetSelectionProc)
+ (Widget, XawTextPosition, XawTextPosition, Atom);
+
+typedef Boolean (*_XawSrcConvertSelectionProc)
+ (Widget, Atom*, Atom*, Atom*, XtPointer*, unsigned long*, int*);
+
+typedef struct _TextSrcClassPart {
+ _XawSrcReadProc Read;
+ _XawSrcReplaceProc Replace;
+ _XawSrcScanProc Scan;
+ _XawSrcSearchProc Search;
+ _XawSrcSetSelectionProc SetSelection;
+ _XawSrcConvertSelectionProc ConvertSelection;
+#ifndef OLDXAW
+ XtPointer extension;
+#endif
+} TextSrcClassPart;
+
+/* Full class record */
+typedef struct _TextSrcClassRec {
+ ObjectClassPart object_class;
+ TextSrcClassPart textSrc_class;
+} TextSrcClassRec;
+
+extern TextSrcClassRec textSrcClassRec;
+
+#ifndef OLDXAW
+typedef struct _XawTextUndo XawTextUndo;
+#endif
+
+/* New fields for the TextSrc object */
+typedef struct {
+ /* resources */
+ XawTextEditType edit_mode;
+ XrmQuark text_format; /* 2 formats: FMT8BIT for Ascii
+ FMTWIDE for ISO 10646 */
+#ifndef OLDXAW
+ XtCallbackList callback; /* A callback list to call when the
+ source is changed */
+ Boolean changed;
+ Boolean enable_undo;
+
+ /* private state */
+ Boolean undo_state; /* to protect undo manipulation */
+ XawTextUndo *undo;
+ WidgetList text; /* TextWidget's using this source */
+ Cardinal num_text;
+ XtCallbackList property_callback;
+ XawTextAnchor **anchors;
+ int num_anchors;
+ XtPointer pad[1]; /* for future use and keep binary compatability */
+#endif
+} TextSrcPart;
+
+/* Full instance record */
+typedef struct _TextSrcRec {
+ ObjectPart object;
+ TextSrcPart textSrc;
+} TextSrcRec;
+
+/*
+ * Semiprivate declarations of functions used in other modules
+ */
+char* _XawTextWCToMB
+(
+ Display *display,
+ wchar_t *wstr,
+ int *len_in_out
+ );
+
+wchar_t* _XawTextMBToWC
+(
+ Display *display,
+ char *str,
+ int *len_in_out
+ );
+
+#ifndef OLDXAW
+XawTextAnchor *XawTextSourceAddAnchor
+(
+ Widget source,
+ XawTextPosition position
+ );
+
+XawTextAnchor *XawTextSourceFindAnchor
+(
+ Widget source,
+ XawTextPosition position
+ );
+
+XawTextAnchor *XawTextSourceNextAnchor
+(
+ Widget source,
+ XawTextAnchor *anchor
+ );
+
+XawTextAnchor *XawTextSourcePrevAnchor
+(
+ Widget source,
+ XawTextAnchor *anchor
+ );
+
+XawTextAnchor *XawTextSourceRemoveAnchor
+(
+ Widget source,
+ XawTextAnchor *anchor
+ );
+
+Bool XawTextSourceAnchorAndEntity
+(
+ Widget w,
+ XawTextPosition position,
+ XawTextAnchor **anchor_return,
+ XawTextEntity **entity_return
+ );
+
+XawTextEntity *XawTextSourceAddEntity
+(
+ Widget source,
+ int type,
+ int flags,
+ XtPointer data,
+ XawTextPosition position,
+ Cardinal length,
+ XrmQuark property
+ );
+
+void XawTextSourceClearEntities
+(
+ Widget w,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+#endif
+
+#if 0 /* no longer used */
+typedef XawTextPosition (*_XawTextPositionFunc)();
+#endif
+
+#define XtInheritInput ((_XawTextPositionFunc)_XtInherit)
+#define XtInheritRead ((_XawSrcReadProc)_XtInherit)
+#define XtInheritReplace ((_XawSrcReplaceProc)_XtInherit)
+#define XtInheritScan ((_XawSrcScanProc)_XtInherit)
+#define XtInheritSearch ((_XawSrcSearchProc)_XtInherit)
+#define XtInheritSetSelection ((_XawSrcSetSelectionProc)_XtInherit)
+#define XtInheritConvertSelection ((_XawSrcConvertSelectionProc)_XtInherit)
+#if 0
+#define XtTextSrcExtVersion 1
+#define XtTextSrcExtTypeString "XT_TEXTSRC_EXT"
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextSrcP_h */
diff --git a/X11/Xaw/Tip.h b/X11/Xaw/Tip.h
new file mode 100644
index 000000000..d3c1da5ad
--- /dev/null
+++ b/X11/Xaw/Tip.h
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 1999 by The XFree86 Project, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * 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 XFREE86 PROJECT 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 XFree86 Project 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
+ * XFree86 Project.
+ *
+ * Author: Paulo César Pereira de Andrade
+ */
+
+#ifndef _XawTip_h
+#define _XawTip_h
+
+/*
+ * Tip Widget
+ */
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap BackgroundPixmap Pixmap XtUnspecifiedPixmap
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ bottomMargin VerticalMargins Dimension 2
+ destroyCallback Callback XtCallbackList NULL
+ displayList DisplayList XawDisplayList* NULL
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ leftMargin HorizontalMargins Dimension 6
+ rightMargin HorizontalMargins Dimension 6
+ timeout Timeout Int 500
+ topMargin VerticalMargins Dimension 2
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+typedef struct _TipClassRec *TipWidgetClass;
+typedef struct _TipRec *TipWidget;
+
+extern WidgetClass tipWidgetClass;
+
+#define XtNbottomMargin "bottomMargin"
+#define XawNdisplayList "displayList"
+#define XtNencoding "encoding"
+#define XtNleftMargin "leftMargin"
+#define XtNrightMargin "rightMargin"
+#define XtNtimeout "timeout"
+#define XtNtopMargin "topMargin"
+#define XtNtip "tip"
+
+#define XawCDisplayList "DisplayList"
+#define XtCHorizontalMargins "HorizontalMargins"
+#define XtCTimeout "Timeout"
+#define XtCVerticalMargins "VerticalMargins"
+#define XtCTip "Tip"
+
+#define XawRDisplayList "XawDisplayList"
+
+/*
+ * Public Functions
+ */
+/*
+ * Function:
+ * XawTipEnable
+ *
+ * Parameters:
+ * w - widget
+ *
+ * Description:
+ * Enables the tip event handler for this widget.
+ */
+void XawTipEnable
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawTipEnable
+ *
+ * Parameters:
+ * w - widget
+ *
+ * Description:
+ * Disables the tip event handler for this widget.
+ */
+void XawTipDisable
+(
+ Widget w
+ );
+
+#endif /* _XawTip_h */
diff --git a/X11/Xaw/TipP.h b/X11/Xaw/TipP.h
new file mode 100644
index 000000000..f72f20a97
--- /dev/null
+++ b/X11/Xaw/TipP.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 1999 by The XFree86 Project, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * 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 XFREE86 PROJECT 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 XFree86 Project 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
+ * XFree86 Project.
+ *
+ * Author: Paulo César Pereira de Andrade
+ */
+
+#ifndef _XawTipP_h
+#define _XawTipP_h
+
+#include <X11/Xaw/Tip.h>
+#include <X11/CoreP.h>
+#include <X11/Xaw/XawInit.h>
+
+typedef struct {
+ XtPointer extension;
+} TipClassPart;
+
+typedef struct _TipClassRec {
+ CoreClassPart core_class;
+ TipClassPart tip_class;
+} TipClassRec;
+
+extern TipClassRec tipClassRec;
+
+typedef struct _TipPart {
+ /* resources */
+ Pixel foreground;
+ XFontStruct *font;
+ XFontSet fontset;
+ Dimension top_margin;
+ Dimension bottom_margin;
+ Dimension left_margin;
+ Dimension right_margin;
+ int backing_store;
+ int timeout;
+ XawDisplayList *display_list;
+
+ /* private */
+ GC gc;
+ XtIntervalId timer;
+ String label;
+ Boolean international;
+ unsigned char encoding;
+ XtPointer pad[4];
+} TipPart;
+
+typedef struct _TipRec {
+ CorePart core;
+ TipPart tip;
+} TipRec;
+
+#endif /* _XawTipP_h */
diff --git a/X11/Xaw/Toggle.h b/X11/Xaw/Toggle.h
new file mode 100644
index 000000000..f6c6b970e
--- /dev/null
+++ b/X11/Xaw/Toggle.h
@@ -0,0 +1,179 @@
+/*
+ *
+Copyright 1989, 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.
+ */
+
+/*
+ * ToggleP.h - Private definitions for Toggle widget
+ *
+ * Author: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ *
+ * Date: January 12, 1989
+ */
+
+#ifndef _XawToggle_h
+#define _XawToggle_h
+
+#include <X11/Xaw/Command.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ radioGroup RadioGroup Widget NULL +
+ radioData RadioData Pointer (XPointer) Widget ++
+ state State Boolean Off
+
+ background Background Pixel XtDefaultBackground
+ bitmap Pixmap Pixmap None
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ callback Callback Pointer NULL
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ font Font XFontStructx* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ highlightThickness Thickness Dimension 2
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ mappedWhenManaged MappedWhenManaged Boolean True
+ resize Resize Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
++ To use the toggle as a radio toggle button, set this resource to point to
+ any other widget in the radio group.
+
+++ This is the data returned from a call to XtToggleGetCurrent, by default
+ this is set to the name of toggle widget.
+
+*/
+
+/*
+ * These should be in StringDefs.h but aren't so we will define
+ * them here if they are needed
+ */
+#define XtCWidget "Widget"
+#define XtCState "State"
+#define XtCRadioGroup "RadioGroup"
+#define XtCRadioData "RadioData"
+
+#ifndef _XtStringDefs_h_
+#define XtRWidget "Widget"
+#endif
+
+#define XtNstate "state"
+#define XtNradioGroup "radioGroup"
+#define XtNradioData "radioData"
+
+extern WidgetClass toggleWidgetClass;
+
+typedef struct _ToggleClassRec *ToggleWidgetClass;
+typedef struct _ToggleRec *ToggleWidget;
+
+/*
+ * Public Functions
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawToggleChangeRadioGroup
+ *
+ * Parameters:
+ * w - toggle widget to change lists
+ * radio_group - any widget in the new list
+ *
+ * Description:
+ * Allows a toggle widget to change radio lists.
+ */
+void XawToggleChangeRadioGroup
+(
+ Widget w,
+ Widget radio_group
+ );
+
+/*
+ * Function:
+ * XawToggleGetCurrent
+ *
+ * Parameters:
+ * radio_group - any toggle widget in the toggle list
+ *
+ * Description:
+ * Returns the RadioData associated with the toggle
+ * widget that is currently active in a toggle list.
+ * Returns:
+ * The XtNradioData associated with the toggle widget
+ */
+
+XtPointer XawToggleGetCurrent
+(
+ Widget radio_group
+ );
+
+/*
+ * Function:
+ * XawToggleSetCurrent
+ *
+ * Parameters:
+ * radio_group - any toggle widget in the toggle list
+ * radio_data - radio data of the toggle widget to set
+ *
+ * Description:
+ * Sets the Toggle widget associated with the radio_data specified.
+ */
+void XawToggleSetCurrent
+(
+ Widget radio_group,
+ XtPointer radio_data
+ );
+
+/*
+ * Function:
+ * XawToggleUnsetCurrent
+ *
+ * Parameters:
+ * radio_group - any toggle widget in the toggle list
+ *
+ * Description:
+ * Unsets all Toggles in the radio_group specified.
+ */
+void XawToggleUnsetCurrent
+(
+ Widget radio_group
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawToggle_h */
diff --git a/X11/Xaw/ToggleP.h b/X11/Xaw/ToggleP.h
new file mode 100644
index 000000000..a81659801
--- /dev/null
+++ b/X11/Xaw/ToggleP.h
@@ -0,0 +1,92 @@
+/*
+
+Copyright 1989, 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.
+
+*/
+
+/*
+ * Author: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ *
+ * Date: January 12, 1989
+ *
+ */
+
+#ifndef _XawToggleP_h
+#define _XawToggleP_h
+
+#include <X11/Xaw/Toggle.h>
+#include <X11/Xaw/CommandP.h>
+
+/*
+ * Toggle Widget Private Data
+ */
+#define streq(a, b) (strcmp((a), (b)) == 0)
+
+typedef struct _RadioGroup {
+ struct _RadioGroup *prev, *next; /* Pointers to other elements in group */
+ Widget widget; /* Widget corrosponding to this element */
+} RadioGroup;
+
+/* New fields for the Toggle widget class */
+typedef struct _ToggleClass {
+ XtActionProc Set;
+ XtActionProc Unset;
+ XtPointer extension;
+} ToggleClassPart;
+
+/* class record declaration */
+typedef struct _ToggleClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+ ToggleClassPart toggle_class;
+} ToggleClassRec;
+
+extern ToggleClassRec toggleClassRec;
+
+/* New fields for the Toggle widget */
+typedef struct {
+ /* resources */
+ Widget widget;
+ XtPointer radio_data;
+
+ /* private */
+ RadioGroup *radio_group;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} TogglePart;
+
+/* Full widget declaration */
+typedef struct _ToggleRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+ TogglePart toggle;
+} ToggleRec;
+
+#endif /* _XawToggleP_h */
diff --git a/X11/Xaw/Tree.h b/X11/Xaw/Tree.h
new file mode 100644
index 000000000..1747a7844
--- /dev/null
+++ b/X11/Xaw/Tree.h
@@ -0,0 +1,135 @@
+/*
+ *
+
+Copyright 1990, 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 1989 Prentice Hall
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation.
+ *
+ * Prentice Hall and the authors disclaim all warranties with regard
+ * to this software, including all implied warranties of merchantability and
+ * fitness. In no event shall Prentice Hall or the authors be liable
+ * for any special, indirect or cosequential 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.
+ *
+ * Authors: Jim Fulton, MIT X Consortium,
+ * based on a version by Douglas Young, Prentice Hall
+ *
+ * This widget is based on the Tree widget described on pages 397-419 of
+ * Douglas Young's book "The X Window System, Programming and Applications
+ * with Xt OSF/Motif Edition." The layout code has been rewritten to use
+ * additional blank space to make the structure of the graph easier to see
+ * as well as to support vertical trees.
+ */
+
+#ifndef _XawTree_h
+#define _XawTree_h
+
+#include <X11/Xmu/Converters.h>
+
+/******************************************************************************
+ *
+ * Tree Widget (subclass of ConstraintClass)
+ *
+ ******************************************************************************
+ *
+ * Parameters:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * autoReconfigure AutoReconfigure Boolean FALSE
+ * background Background Pixel XtDefaultBackground
+ * foreground Foreground Pixel XtDefaultForeground
+ * gravity Gravity XtGravity West
+ * hSpace HSpace Dimension 20
+ * lineWidth LineWidth Dimension 0
+ * vSpace VSpace Dimension 6
+ *
+ *
+ * Constraint Resources attached to children:
+ *
+ * treeGC TreeGC GC NULL
+ * treeParent TreeParent Widget NULL
+ *
+ *
+ *****************************************************************************/
+
+ /* new instance field names */
+#ifndef _XtStringDefs_h_
+#define XtNhSpace "hSpace"
+#define XtNvSpace "vSpace"
+#define XtCHSpace "HSpace"
+#define XtCVSpace "VSpace"
+#endif
+
+#define XtNautoReconfigure "autoReconfigure"
+#define XtNlineWidth "lineWidth"
+#define XtNtreeGC "treeGC"
+#define XtNtreeParent "treeParent"
+#define XtNgravity "gravity"
+
+ /* new class field names */
+#define XtCAutoReconfigure "AutoReconfigure"
+#define XtCLineWidth "LineWidth"
+#define XtCTreeGC "TreeGC"
+#define XtCTreeParent "TreeParent"
+#define XtCGravity "Gravity"
+
+#define XtRGC "GC"
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+#endif
+ /* external declarations */
+extern WidgetClass treeWidgetClass;
+
+typedef struct _TreeClassRec *TreeWidgetClass;
+typedef struct _TreeRec *TreeWidget;
+
+_XFUNCPROTOBEGIN
+
+void XawTreeForceLayout
+(
+ Widget tree
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawTree_h */
diff --git a/X11/Xaw/TreeP.h b/X11/Xaw/TreeP.h
new file mode 100644
index 000000000..01d2bdc88
--- /dev/null
+++ b/X11/Xaw/TreeP.h
@@ -0,0 +1,137 @@
+/*
+
+Copyright 1990, 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 1989 Prentice Hall
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation.
+ *
+ * Prentice Hall and the authors disclaim all warranties with regard
+ * to this software, including all implied warranties of merchantability and
+ * fitness. In no event shall Prentice Hall or the authors be liable
+ * for any special, indirect or cosequential 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.
+ *
+ * Authors: Jim Fulton, MIT X Consortium,
+ * based on a version by Douglas Young, Prentice Hall
+ *
+ * This widget is based on the Tree widget described on pages 397-419 of
+ * Douglas Young's book "The X Window System, Programming and Applications
+ * with Xt OSF/Motif Edition." The layout code has been rewritten to use
+ * additional blank space to make the structure of the graph easier to see
+ * as well as to support vertical trees.
+ */
+
+#ifndef _XawTreeP_h
+#define _XawTreeP_h
+
+#include <X11/Xaw/Tree.h>
+
+typedef struct _TreeClassPart {
+ XtPointer extension;
+} TreeClassPart;
+
+typedef struct _TreeClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ TreeClassPart tree_class;
+} TreeClassRec;
+
+extern TreeClassRec treeClassRec;
+
+typedef struct {
+ /* fields available through resources */
+ Dimension hpad; /* hSpace/HSpace */
+ Dimension vpad; /* vSpace/VSpace */
+ Dimension line_width; /* lineWidth/LineWidth */
+ Pixel foreground; /* foreground/Foreground */
+ XtGravity gravity; /* gravity/Gravity */
+ Boolean auto_reconfigure; /* autoReconfigure/AutoReconfigure */
+ /* private fields */
+ GC gc; /* used to draw lines */
+ Widget tree_root; /* hidden root off all children */
+ Dimension *largest; /* list of largest per depth */
+ int n_largest; /* number of elements in largest */
+ Dimension maxwidth, maxheight; /* for shrink wrapping */
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} TreePart;
+
+
+typedef struct _TreeRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ TreePart tree;
+} TreeRec;
+
+
+/*
+ * structure attached to all children
+ */
+typedef struct _TreeConstraintsPart {
+ /* resources */
+ Widget parent; /* treeParent/TreeParent */
+ GC gc; /* treeGC/TreeGC */
+ /* private data */
+ Widget *children;
+ int n_children;
+ int max_children;
+ Dimension bbsubwidth, bbsubheight; /* bounding box of sub tree */
+ Dimension bbwidth, bbheight; /* bounding box including node */
+ Position x, y;
+#ifndef OLDXAW
+ XtPointer pad[2]; /* leave some space for future optimizations, and
+ * keep binary compatability
+ */
+#endif
+} TreeConstraintsPart;
+
+typedef struct _TreeConstraintsRec {
+ TreeConstraintsPart tree;
+} TreeConstraintsRec, *TreeConstraints;
+
+
+/*
+ * useful macros
+ */
+
+#define TREE_CONSTRAINT(w) \
+ ((TreeConstraints)((w)->core.constraints))
+
+#define TREE_INITIAL_DEPTH 10 /* for allocating largest array */
+#define TREE_HORIZONTAL_DEFAULT_SPACING 20
+#define TREE_VERTICAL_DEFAULT_SPACING 6
+
+#endif /* _XawTreeP_h */
+
+
+
diff --git a/X11/Xaw/VendorEP.h b/X11/Xaw/VendorEP.h
new file mode 100644
index 000000000..b91f10a81
--- /dev/null
+++ b/X11/Xaw/VendorEP.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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, and that the name of OMRON not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. OMRON makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * OMRON 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 TORTUOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ *
+ * Author: Seiji Kuwari OMRON Corporation
+ * kuwa@omron.co.jp
+ * kuwa%omron.co.jp@uunet.uu.net
+ */
+
+/*
+
+Copyright 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.
+
+*/
+
+#ifndef _VendorEP_h
+#define _VendorEP_h
+
+#include <X11/Xaw/XawImP.h>
+
+typedef struct {
+ XtPointer extension;
+} XawVendorShellExtClassPart;
+
+typedef struct _VendorShellExtClassRec {
+ ObjectClassPart object_class;
+ XawVendorShellExtClassPart vendor_shell_ext_class;
+} XawVendorShellExtClassRec;
+
+typedef struct {
+ Widget parent;
+ XawImPart im;
+ XawIcPart ic;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} XawVendorShellExtPart;
+
+typedef struct XawVendorShellExtRec {
+ ObjectPart object;
+ XawVendorShellExtPart vendor_ext;
+} XawVendorShellExtRec, *XawVendorShellExtWidget;
+
+#endif /* _VendorEP_h */
diff --git a/X11/Xaw/Viewport.h b/X11/Xaw/Viewport.h
new file mode 100644
index 000000000..36fab4496
--- /dev/null
+++ b/X11/Xaw/Viewport.h
@@ -0,0 +1,118 @@
+/************************************************************
+
+Copyright 1987, 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 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 _XawViewport_h
+#define _XawViewport_h
+
+#include <X11/Xaw/Form.h>
+#include <X11/Xaw/Reports.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ allowHoriz Boolean Boolean False
+ allowVert Boolean Boolean False
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ forceBars Boolean Boolean False
+ height Height Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ reportCallback ReportCallback Pointer NULL
+ sensitive Sensitive Boolean True
+ useBottom Boolean Boolean False
+ useRight Boolean Boolean False
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#ifndef _XtStringDefs_h_
+#define XtNforceBars "forceBars"
+#define XtNallowHoriz "allowHoriz"
+#define XtNallowVert "allowVert"
+#define XtNuseBottom "useBottom"
+#define XtNuseRight "useRight"
+#endif
+
+extern WidgetClass viewportWidgetClass;
+
+typedef struct _ViewportClassRec *ViewportWidgetClass;
+typedef struct _ViewportRec *ViewportWidget;
+
+_XFUNCPROTOBEGIN
+
+void XawViewportSetLocation
+(
+ Widget gw,
+#if NeedWidePrototypes
+ double xoff,
+ double yoff
+#else
+ float xoff,
+ float yoff
+#endif
+ );
+
+void XawViewportSetCoordinates
+(
+ Widget gw,
+#if NeedWidePrototypes
+ int x,
+ int y
+#else
+ Position x,
+ Position y
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawViewport_h */
diff --git a/X11/Xaw/ViewportP.h b/X11/Xaw/ViewportP.h
new file mode 100644
index 000000000..2aeb8a5df
--- /dev/null
+++ b/X11/Xaw/ViewportP.h
@@ -0,0 +1,107 @@
+/*
+ * Private declarations for ViewportWidgetClass
+ */
+
+/************************************************************
+
+Copyright 1987, 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 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 _ViewportP_h
+#define _ViewportP_h
+
+#include <X11/Xaw/Viewport.h>
+#include <X11/Xaw/FormP.h>
+
+typedef struct {
+ XtPointer extension;
+} ViewportClassPart;
+
+typedef struct _ViewportClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ FormClassPart form_class;
+ ViewportClassPart viewport_class;
+} ViewportClassRec;
+
+extern ViewportClassRec viewportClassRec;
+
+typedef struct _ViewportPart {
+ /* resources */
+ Boolean forcebars; /* Whether we should always display
+ the selected scrollbars */
+ Boolean allowhoriz; /* Whether we allow horizontal scrollbars */
+ Boolean allowvert; /* Whether we allow vertical scrollbars */
+ Boolean usebottom; /* True if horiz bars appear at bottom */
+ Boolean useright; /* True if vert bars appear at right */
+ XtCallbackList report_callbacks;/* when size/position changes */
+
+ /* private */
+ Widget clip, child; /* The clipping and (scrolled) child widgets */
+ Widget horiz_bar, vert_bar; /* What scrollbars we currently have */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} ViewportPart;
+
+typedef struct _ViewportRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ FormPart form;
+ ViewportPart viewport;
+} ViewportRec;
+
+typedef struct {
+ Bool reparented; /* True if child has been re-parented */
+} ViewportConstraintsPart;
+
+typedef struct _ViewportConstraintsRec {
+ FormConstraintsPart form;
+ ViewportConstraintsPart viewport;
+} ViewportConstraintsRec, *ViewportConstraints;
+
+#endif /* _ViewportP_h */
diff --git a/X11/Xaw/XawImP.h b/X11/Xaw/XawImP.h
new file mode 100644
index 000000000..a03eef60e
--- /dev/null
+++ b/X11/Xaw/XawImP.h
@@ -0,0 +1,210 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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, and that the name of OMRON not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. OMRON makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * OMRON 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 TORTUOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ *
+ * Author: Seiji Kuwari OMRON Corporation
+ * kuwa@omron.co.jp
+ * kuwa%omron.co.jp@uunet.uu.net
+ */
+
+/*
+
+Copyright 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.
+
+*/
+
+#ifndef _XawImP_h
+#define _XawImP_h
+
+#define XtNinputMethod "inputMethod"
+#define XtCInputMethod "InputMethod"
+#define XtNpreeditType "preeditType"
+#define XtCPreeditType "PreeditType"
+#define XtNopenIm "openIm"
+#define XtCOpenIm "OpenIm"
+#define XtNsharedIc "sharedIc"
+#define XtCSharedIc "SharedIc"
+
+#include <X11/Xaw/Text.h>
+
+#define CIICFocus (1 << 0)
+#define CIFontSet (1 << 1)
+#define CIFg (1 << 2)
+#define CIBg (1 << 3)
+#define CIBgPixmap (1 << 4)
+#define CICursorP (1 << 5)
+#define CILineS (1 << 6)
+
+typedef struct _XawImPart {
+ XIM xim;
+ XrmResourceList resources;
+ Cardinal num_resources;
+ Boolean open_im;
+ Boolean initialized;
+ Dimension area_height;
+ String input_method;
+ String preedit_type;
+} XawImPart;
+
+typedef struct _XawIcTablePart {
+ Widget widget;
+ XIC xic;
+ XIMStyle input_style;
+ unsigned long flg;
+ unsigned long prev_flg;
+ Boolean ic_focused;
+ XFontSet font_set;
+ Pixel foreground;
+ Pixel background;
+ Pixmap bg_pixmap;
+ XawTextPosition cursor_position;
+ unsigned long line_spacing;
+ Boolean openic_error;
+ struct _XawIcTablePart *next;
+} XawIcTablePart, *XawIcTableList;
+
+typedef struct _XawIcPart {
+ XIMStyle input_style;
+ Boolean shared_ic;
+ XawIcTableList shared_ic_table;
+ XawIcTableList current_ic_table;
+ XawIcTableList ic_table;
+} XawIcPart;
+
+typedef struct _contextDataRec {
+ Widget parent;
+ Widget ve;
+} contextDataRec;
+
+typedef struct _contextErrDataRec {
+ Widget widget;
+ XIM xim;
+} contextErrDataRec;
+
+void _XawImResizeVendorShell
+(
+ Widget w
+ );
+
+Dimension _XawImGetShellHeight
+(
+ Widget w
+);
+
+void _XawImRealize
+(
+ Widget w
+ );
+
+void _XawImInitialize
+(
+ Widget w,
+ Widget ext
+ );
+
+void _XawImReconnect
+(
+ Widget w
+ );
+
+void _XawImRegister
+(
+ Widget w
+ );
+
+void _XawImUnregister
+(
+ Widget w
+ );
+
+void _XawImSetValues
+(
+ Widget w,
+ ArgList args,
+ Cardinal num_args
+ );
+
+void _XawImSetFocusValues
+(
+ Widget w,
+ ArgList args,
+ Cardinal num_args
+);
+
+void _XawImUnsetFocus
+(
+ Widget w
+ );
+
+int _XawImWcLookupString
+(
+ Widget w,
+ XKeyPressedEvent *event,
+ wchar_t *buffer_return,
+ int bytes_buffer,
+ KeySym *keysym_return
+ );
+
+int _XawLookupString
+(
+ Widget w,
+ XKeyEvent *event,
+ char *buffer_return,
+ int buffer_size,
+ KeySym *keysym_return
+ );
+
+int _XawImGetImAreaHeight
+(
+ Widget w
+ );
+
+void _XawImCallVendorShellExtResize
+(
+ Widget w
+ );
+
+void _XawImDestroy
+(
+ Widget w,
+ Widget ext
+ );
+
+#endif /* _XawImP_h */
diff --git a/X11/Xaw/XawInit.h b/X11/Xaw/XawInit.h
new file mode 100644
index 000000000..7d2cee138
--- /dev/null
+++ b/X11/Xaw/XawInit.h
@@ -0,0 +1,62 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+Copyright 2003-2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+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.
+ */
+#ifndef _XawInit_h
+#define _XawInit_h
+
+#define XawVendor XVENDORNAMESHORT
+
+#ifdef OLDXAW
+#define XawVersion 6700002L
+#else
+#define XawVersion 7000002L
+
+typedef struct _XawDL XawDisplayList;
+#endif /* OLDXAW */
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void XawInitializeWidgetSet(void);
+#ifndef OLDXAW
+void XawInitializeDefaultConverters(void);
+#endif
+
+extern Widget XawOpenApplication(
+ XtAppContext *app_context_return,
+ Display *dpy,
+ Screen *screen,
+ String application_name,
+ String application_class,
+ WidgetClass widget_class,
+ int *argc,
+ String *argv
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawInit_h */
diff --git a/X11/Xcms.h b/X11/Xcms.h
new file mode 100644
index 000000000..663185410
--- /dev/null
+++ b/X11/Xcms.h
@@ -0,0 +1,815 @@
+
+/*
+ * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
+ * All Rights Reserved
+ *
+ * This file is a component of an X Window System-specific implementation
+ * of Xcms based on the TekColor Color Management System. Permission is
+ * hereby granted to use, copy, modify, sell, and otherwise distribute this
+ * software and its documentation for any purpose and without fee, provided
+ * that this copyright, permission, and disclaimer notice is reproduced in
+ * all copies of this software and in supporting documentation. TekColor
+ * is a trademark of Tektronix, Inc.
+ *
+ * Tektronix makes no representation about the suitability of this software
+ * for any purpose. It is provided "as is" and with all faults.
+ *
+ * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
+ * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX 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 THE PERFORMANCE OF THIS SOFTWARE.
+ *
+ *
+ * DESCRIPTION
+ * Public include file for X Color Management System
+ */
+#ifndef _X11_XCMS_H_
+#define _X11_XCMS_H_
+
+#include <X11/Xlib.h>
+
+/* The Xcms structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+ /*
+ * XCMS Status Values
+ */
+#define XcmsFailure 0
+#define XcmsSuccess 1
+#define XcmsSuccessWithCompression 2
+
+ /*
+ * Color Space Format ID's
+ * Color Space ID's are of XcmsColorFormat type.
+ *
+ * bit 31
+ * 0 == Device-Independent
+ * 1 == Device-Dependent
+ *
+ * bit 30:
+ * 0 == Registered with X Consortium
+ * 1 == Unregistered
+ */
+#define XcmsUndefinedFormat (XcmsColorFormat)0x00000000
+#define XcmsCIEXYZFormat (XcmsColorFormat)0x00000001
+#define XcmsCIEuvYFormat (XcmsColorFormat)0x00000002
+#define XcmsCIExyYFormat (XcmsColorFormat)0x00000003
+#define XcmsCIELabFormat (XcmsColorFormat)0x00000004
+#define XcmsCIELuvFormat (XcmsColorFormat)0x00000005
+#define XcmsTekHVCFormat (XcmsColorFormat)0x00000006
+#define XcmsRGBFormat (XcmsColorFormat)0x80000000
+#define XcmsRGBiFormat (XcmsColorFormat)0x80000001
+
+ /*
+ * State of XcmsPerScrnInfo
+ */
+#define XcmsInitNone 0x00 /* no initialization attempted */
+#define XcmsInitSuccess 0x01 /* initialization successful */
+#define XcmsInitFailure 0xff /* failure, use defaults */
+
+#define DisplayOfCCC(ccc) ((ccc)->dpy)
+#define ScreenNumberOfCCC(ccc) ((ccc)->screenNumber)
+#define VisualOfCCC(ccc) ((ccc)->visual)
+#define ClientWhitePointOfCCC(ccc) (&(ccc)->clientWhitePt)
+#define ScreenWhitePointOfCCC(ccc) (&(ccc)->pPerScrnInfo->screenWhitePt)
+#define FunctionSetOfCCC(ccc) ((ccc)->pPerScrnInfo->functionSet)
+
+typedef unsigned long XcmsColorFormat; /* Color Space Format ID */
+
+typedef double XcmsFloat;
+
+ /*
+ * Device RGB
+ */
+typedef struct {
+ unsigned short red; /* scaled from 0x0000 to 0xffff */
+ unsigned short green; /* scaled from 0x0000 to 0xffff */
+ unsigned short blue; /* scaled from 0x0000 to 0xffff */
+} XcmsRGB;
+
+ /*
+ * RGB Intensity
+ */
+typedef struct {
+ XcmsFloat red; /* 0.0 - 1.0 */
+ XcmsFloat green; /* 0.0 - 1.0 */
+ XcmsFloat blue; /* 0.0 - 1.0 */
+} XcmsRGBi;
+
+ /*
+ * CIE XYZ
+ */
+typedef struct {
+ XcmsFloat X;
+ XcmsFloat Y;
+ XcmsFloat Z;
+} XcmsCIEXYZ;
+
+ /*
+ * CIE u'v'Y
+ */
+typedef struct {
+ XcmsFloat u_prime; /* 0.0 - 1.0 */
+ XcmsFloat v_prime; /* 0.0 - 1.0 */
+ XcmsFloat Y; /* 0.0 - 1.0 */
+} XcmsCIEuvY;
+
+ /*
+ * CIE xyY
+ */
+typedef struct {
+ XcmsFloat x; /* 0.0 - 1.0 */
+ XcmsFloat y; /* 0.0 - 1.0 */
+ XcmsFloat Y; /* 0.0 - 1.0 */
+} XcmsCIExyY;
+
+ /*
+ * CIE L*a*b*
+ */
+typedef struct {
+ XcmsFloat L_star; /* 0.0 - 100.0 */
+ XcmsFloat a_star;
+ XcmsFloat b_star;
+} XcmsCIELab;
+
+ /*
+ * CIE L*u*v*
+ */
+typedef struct {
+ XcmsFloat L_star; /* 0.0 - 100.0 */
+ XcmsFloat u_star;
+ XcmsFloat v_star;
+} XcmsCIELuv;
+
+ /*
+ * TekHVC
+ */
+typedef struct {
+ XcmsFloat H; /* 0.0 - 360.0 */
+ XcmsFloat V; /* 0.0 - 100.0 */
+ XcmsFloat C; /* 0.0 - 100.0 */
+} XcmsTekHVC;
+
+ /*
+ * PAD
+ */
+typedef struct {
+ XcmsFloat pad0;
+ XcmsFloat pad1;
+ XcmsFloat pad2;
+ XcmsFloat pad3;
+} XcmsPad;
+
+
+ /*
+ * XCMS Color Structure
+ */
+typedef struct {
+ union {
+ XcmsRGB RGB;
+ XcmsRGBi RGBi;
+ XcmsCIEXYZ CIEXYZ;
+ XcmsCIEuvY CIEuvY;
+ XcmsCIExyY CIExyY;
+ XcmsCIELab CIELab;
+ XcmsCIELuv CIELuv;
+ XcmsTekHVC TekHVC;
+ XcmsPad Pad;
+ } spec; /* the color specification */
+ unsigned long pixel; /* pixel value (as needed) */
+ XcmsColorFormat format; /* the specification format */
+} XcmsColor;
+
+
+ /*
+ * XCMS Per Screen related data
+ */
+
+typedef struct _XcmsPerScrnInfo {
+ XcmsColor screenWhitePt; /* Screen White point */
+ XPointer functionSet; /* pointer to Screen Color Characterization */
+ /* Function Set structure */
+ XPointer screenData; /* pointer to corresponding Screen Color*/
+ /* Characterization Data */
+ unsigned char state; /* XcmsInitNone, XcmsInitSuccess, XcmsInitFailure */
+ char pad[3];
+} XcmsPerScrnInfo;
+
+typedef struct _XcmsCCC *XcmsCCC;
+
+typedef Status (*XcmsCompressionProc)( /* Gamut Compression Proc */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+typedef Status (*XcmsWhiteAdjustProc)( /* White Point Adjust Proc */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+ /*
+ * XCMS Color Conversion Context
+ */
+typedef struct _XcmsCCC {
+ Display *dpy; /* X Display */
+ int screenNumber; /* X screen number */
+ Visual *visual; /* X Visual */
+ XcmsColor clientWhitePt; /* Client White Point */
+ XcmsCompressionProc gamutCompProc; /* Gamut Compression Function */
+ XPointer gamutCompClientData; /* Gamut Comp Func Client Data */
+ XcmsWhiteAdjustProc whitePtAdjProc; /* White Point Adjustment Function */
+ XPointer whitePtAdjClientData; /* White Pt Adj Func Client Data */
+ XcmsPerScrnInfo *pPerScrnInfo; /* pointer to per screen information */
+ /* associated with the above display */
+ /* screenNumber */
+} XcmsCCCRec;
+
+typedef Status (*XcmsScreenInitProc)( /* Screen Initialization Proc */
+ Display* /* dpy */,
+ int /* screen_number */,
+ XcmsPerScrnInfo* /* screen_info */
+);
+
+typedef void (*XcmsScreenFreeProc)(
+ XPointer /* screenData */
+);
+
+ /*
+ * Function List Pointer -- pointer to an array of function pointers.
+ * The end of list is indicated by a NULL pointer.
+ */
+/*
+ * XXX: The use of the XcmsConversionProc type is broken. The
+ * device-independent colour conversion code uses it as:
+
+typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, XcmsColor *,
+ unsigned int);
+
+ * while the device-dependent code uses it as:
+
+typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, unsigned int,
+ Bool *);
+
+ * Until this is reworked, it's probably best to leave it unprotoized.
+ * The code works regardless.
+ */
+typedef Status (*XcmsDDConversionProc)( /* using device-dependent version */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* pcolors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* pCompressed */
+ );
+
+typedef Status (*XcmsDIConversionProc)( /* using device-independent version */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* pcolors_in_out */,
+ unsigned int /* ncolors */
+ );
+
+typedef XcmsDIConversionProc XcmsConversionProc;
+typedef XcmsConversionProc *XcmsFuncListPtr;
+
+typedef int (*XcmsParseStringProc)( /* Color String Parsing Proc */
+ char* /* color_string */,
+ XcmsColor* /* color_return */
+);
+
+ /*
+ * Color Space -- per Color Space related data (Device-Independent
+ * or Device-Dependent)
+ */
+typedef struct _XcmsColorSpace {
+ const char *prefix; /* Prefix of string format. */
+ XcmsColorFormat id; /* Format ID number. */
+ XcmsParseStringProc parseString;
+ /* String format parsing function */
+ XcmsFuncListPtr to_CIEXYZ; /* Pointer to an array of function */
+ /* pointers such that when the */
+ /* functions are executed in sequence */
+ /* will convert a XcmsColor structure */
+ /* from this color space to CIEXYZ */
+ /* space. */
+ XcmsFuncListPtr from_CIEXYZ;/* Pointer to an array of function */
+ /* pointers such that when the */
+ /* functions are executed in sequence */
+ /* will convert a XcmsColor structure */
+ /* from CIEXYZ space to this color */
+ /* space. */
+ int inverse_flag; /* If 1, indicates that for 0 <= i < n */
+ /* where n is the number of function */
+ /* pointers in the lists to_CIEXYZ */
+ /* and from_CIEXYZ; for each function */
+ /* to_CIEXYZ[i] its inverse function */
+ /* is from_CIEXYZ[n - i]. */
+
+} XcmsColorSpace;
+
+ /*
+ * Screen Color Characterization Function Set -- per device class
+ * color space conversion functions.
+ */
+typedef struct _XcmsFunctionSet {
+ XcmsColorSpace **DDColorSpaces;
+ /* Pointer to an array of pointers to */
+ /* Device-DEPENDENT color spaces */
+ /* understood by this SCCFuncSet. */
+ XcmsScreenInitProc screenInitProc;
+ /* Screen initialization function that */
+ /* reads Screen Color Characterization*/
+ /* Data off properties on the screen's*/
+ /* root window. */
+ XcmsScreenFreeProc screenFreeProc;
+ /* Function that frees the SCCData */
+ /* structures. */
+} XcmsFunctionSet;
+
+_XFUNCPROTOBEGIN
+
+extern Status XcmsAddColorSpace (
+ XcmsColorSpace* /* pColorSpace */
+);
+
+extern Status XcmsAddFunctionSet (
+ XcmsFunctionSet* /* functionSet */
+);
+
+extern Status XcmsAllocColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* color_in_out */,
+ XcmsColorFormat /* result_format */
+);
+
+extern Status XcmsAllocNamedColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_string */,
+ XcmsColor* /* color_scrn_return */,
+ XcmsColor* /* color_exact_return */,
+ XcmsColorFormat /* result_format */
+);
+
+extern XcmsCCC XcmsCCCOfColormap (
+ Display* /* dpy */,
+ Colormap /* colormap */
+);
+
+extern Status XcmsCIELabClipab(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELabClipL(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELabClipLab(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELabQueryMaxC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* L_star */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabQueryMaxL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabQueryMaxLC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabQueryMinL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIELabWhiteShiftColors(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvClipL(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvClipLuv(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvClipuv(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvQueryMaxC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* L_star */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvQueryMaxL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvQueryMaxLC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvQueryMinL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvToCIEuvY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIELuvWhiteShiftColors(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIEXYZToCIELab (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEXYZToCIEuvY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEXYZToCIExyY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEXYZToRGBi (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIEuvYToCIELuv (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEuvYToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEuvYToTekHVC (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIExyYToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern XcmsColor *XcmsClientWhitePointOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern Status XcmsConvertColors (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colorArry_in_out */,
+ unsigned int /* nColors */,
+ XcmsColorFormat /* targetFormat */,
+ Bool* /* compArry_return */
+);
+
+extern XcmsCCC XcmsCreateCCC (
+ Display* /* dpy */,
+ int /* screenNumber */,
+ Visual* /* visual */,
+ XcmsColor* /* clientWhitePt */,
+ XcmsCompressionProc /* gamutCompProc */,
+ XPointer /* gamutCompClientData */,
+ XcmsWhiteAdjustProc /* whitePtAdjProc */,
+ XPointer /* whitePtAdjClientData */
+);
+
+extern XcmsCCC XcmsDefaultCCC (
+ Display* /* dpy */,
+ int /* screenNumber */
+);
+
+extern Display *XcmsDisplayOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern XcmsColorFormat XcmsFormatOfPrefix (
+ char* /* prefix */
+);
+
+extern void XcmsFreeCCC (
+ XcmsCCC /* ccc */
+);
+
+extern Status XcmsLookupColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_string */,
+ XcmsColor* /* pColor_exact_in_out */,
+ XcmsColor* /* pColor_scrn_in_out */,
+ XcmsColorFormat /* result_format */
+);
+
+extern char *XcmsPrefixOfFormat (
+ XcmsColorFormat /* id */
+);
+
+extern Status XcmsQueryBlack (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryBlue (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* pColor_in_out */,
+ XcmsColorFormat /* result_format */
+);
+
+extern Status XcmsQueryColors (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* colorArry_in_out */,
+ unsigned int /* nColors */,
+ XcmsColorFormat /* result_format */
+);
+
+extern Status XcmsQueryGreen (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryRed (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryWhite (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsRGBiToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsRGBiToRGB (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsRGBToRGBi (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern int XcmsScreenNumberOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern XcmsColor *XcmsScreenWhitePointOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern XcmsCCC XcmsSetCCCOfColormap(
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsCCC /* ccc */
+);
+
+extern XcmsCompressionProc XcmsSetCompressionProc (
+ XcmsCCC /* ccc */,
+ XcmsCompressionProc /* compression_proc */,
+ XPointer /* client_data */
+);
+
+extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc (
+ XcmsCCC /* ccc */,
+ XcmsWhiteAdjustProc /* white_adjust_proc */,
+ XPointer /* client_data */
+);
+
+extern Status XcmsSetWhitePoint (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* color */
+);
+
+extern Status XcmsStoreColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* pColor_in */
+);
+
+extern Status XcmsStoreColors (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* colorArry_in */,
+ unsigned int /* nColors */,
+ Bool* /* compArry_return */
+);
+
+extern Status XcmsTekHVCClipC(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsTekHVCClipV(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsTekHVCClipVC(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsTekHVCQueryMaxC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsFloat /* value */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCQueryMaxV (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCQueryMaxVC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCQueryMaxVSamples (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsColor* /* colors_return */,
+ unsigned int /* nsamples */
+);
+
+extern Status XcmsTekHVCQueryMinV (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCToCIEuvY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsTekHVCWhiteShiftColors(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Visual *XcmsVisualOfCCC (
+ XcmsCCC /* ccc */
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XCMS_H_ */
diff --git a/X11/Xdmcp.h b/X11/Xdmcp.h
new file mode 100644
index 000000000..0b531de78
--- /dev/null
+++ b/X11/Xdmcp.h
@@ -0,0 +1,181 @@
+/*
+ * Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
+ *
+ * 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 N.C.D. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. N.C.D. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ */
+
+#ifndef _XDMCP_H_
+#define _XDMCP_H_
+
+#include <X11/Xmd.h>
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+#define XDM_PROTOCOL_VERSION 1
+#define XDM_UDP_PORT 177
+
+/* IANA has assigned FF0X:0:0:0:0:0:0:12B as the permanently assigned
+ * multicast addresses for XDMCP, where X in the prefix may be replaced
+ * by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local,
+ * 5 for Site-Local, and so on. We set the default here to the Link-Local
+ * version to most closely match the old IPv4 subnet broadcast behavior.
+ * Both xdm and X -query allow specifying a different address if a different
+ * scope is defined.
+ */
+#define XDM_DEFAULT_MCAST_ADDR6 "ff02:0:0:0:0:0:0:12b"
+
+#define XDM_MAX_MSGLEN 8192
+#define XDM_MIN_RTX 2
+#define XDM_MAX_RTX 32
+#define XDM_RTX_LIMIT 7
+#define XDM_KA_RTX_LIMIT 4
+#define XDM_DEF_DORMANCY (3 * 60) /* 3 minutes */
+#define XDM_MAX_DORMANCY (24 * 60 * 60) /* 24 hours */
+
+typedef enum {
+ BROADCAST_QUERY = 1, QUERY, INDIRECT_QUERY, FORWARD_QUERY,
+ WILLING, UNWILLING, REQUEST, ACCEPT, DECLINE, MANAGE, REFUSE,
+ FAILED, KEEPALIVE, ALIVE
+} xdmOpCode;
+
+typedef enum {
+ XDM_QUERY, XDM_BROADCAST, XDM_INDIRECT, XDM_COLLECT_QUERY,
+ XDM_COLLECT_BROADCAST_QUERY, XDM_COLLECT_INDIRECT_QUERY,
+ XDM_START_CONNECTION, XDM_AWAIT_REQUEST_RESPONSE,
+ XDM_AWAIT_MANAGE_RESPONSE, XDM_MANAGE, XDM_RUN_SESSION, XDM_OFF,
+ XDM_AWAIT_USER_INPUT, XDM_KEEPALIVE, XDM_AWAIT_ALIVE_RESPONSE,
+#if defined(IPv6) && defined(AF_INET6)
+ XDM_MULTICAST, XDM_COLLECT_MULTICAST_QUERY,
+#endif
+ XDM_KEEP_ME_LAST
+} xdmcp_states;
+
+#ifdef NOTDEF
+/* table of hosts */
+
+#define XDM_MAX_STR_LEN 21
+#define XDM_MAX_HOSTS 20
+struct xdm_host_table {
+ struct sockaddr_in sockaddr;
+ char name[XDM_MAX_STR_LEN];
+ char status[XDM_MAX_STR_LEN];
+};
+#endif /* NOTDEF */
+
+typedef CARD8 *CARD8Ptr;
+typedef CARD16 *CARD16Ptr;
+typedef CARD32 *CARD32Ptr;
+
+typedef struct _ARRAY8 {
+ CARD16 length;
+ CARD8Ptr data;
+} ARRAY8, *ARRAY8Ptr;
+
+typedef struct _ARRAY16 {
+ CARD8 length;
+ CARD16Ptr data;
+} ARRAY16, *ARRAY16Ptr;
+
+typedef struct _ARRAY32 {
+ CARD8 length;
+ CARD32Ptr data;
+} ARRAY32, *ARRAY32Ptr;
+
+typedef struct _ARRAYofARRAY8 {
+ CARD8 length;
+ ARRAY8Ptr data;
+} ARRAYofARRAY8, *ARRAYofARRAY8Ptr;
+
+typedef struct _XdmcpHeader {
+ CARD16 version, opcode, length;
+} XdmcpHeader, *XdmcpHeaderPtr;
+
+typedef struct _XdmcpBuffer {
+ BYTE *data;
+ int size; /* size of buffer pointed by to data */
+ int pointer; /* current index into data */
+ int count; /* bytes read from network into data */
+} XdmcpBuffer, *XdmcpBufferPtr;
+
+typedef struct _XdmAuthKey {
+ BYTE data[8];
+} XdmAuthKeyRec, *XdmAuthKeyPtr;
+
+
+/* implementation-independent network address structure.
+ Equiv to sockaddr* for sockets. */
+
+typedef char *XdmcpNetaddr;
+
+extern int XdmcpWriteARRAY16(XdmcpBufferPtr buffer, const ARRAY16Ptr array);
+extern int XdmcpWriteARRAY32(XdmcpBufferPtr buffer, const ARRAY32Ptr array);
+extern int XdmcpWriteARRAY8(XdmcpBufferPtr buffer, const ARRAY8Ptr array);
+extern int XdmcpWriteARRAYofARRAY8(XdmcpBufferPtr buffer, const ARRAYofARRAY8Ptr array);
+extern int XdmcpWriteCARD16(XdmcpBufferPtr buffer, unsigned value);
+extern int XdmcpWriteCARD32(XdmcpBufferPtr buffer, unsigned value);
+extern int XdmcpWriteCARD8(XdmcpBufferPtr buffer, unsigned value);
+extern int XdmcpWriteHeader(XdmcpBufferPtr buffer, const XdmcpHeaderPtr header);
+
+extern int XdmcpFlush(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr to, int tolen);
+
+extern int XdmcpReadARRAY16(XdmcpBufferPtr buffer, ARRAY16Ptr array);
+extern int XdmcpReadARRAY32(XdmcpBufferPtr buffer, ARRAY32Ptr array);
+extern int XdmcpReadARRAY8(XdmcpBufferPtr buffer, ARRAY8Ptr array);
+extern int XdmcpReadARRAYofARRAY8(XdmcpBufferPtr buffer, ARRAYofARRAY8Ptr array);
+extern int XdmcpReadCARD16(XdmcpBufferPtr buffer, CARD16Ptr valuep);
+extern int XdmcpReadCARD32(XdmcpBufferPtr buffer, CARD32Ptr valuep);
+extern int XdmcpReadCARD8(XdmcpBufferPtr buffer, CARD8Ptr valuep);
+extern int XdmcpReadHeader(XdmcpBufferPtr buffer, XdmcpHeaderPtr header);
+
+extern int XdmcpFill(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr from, int *fromlen);
+
+extern int XdmcpReadRemaining(const XdmcpBufferPtr buffer);
+
+extern void XdmcpDisposeARRAY8(ARRAY8Ptr array);
+extern void XdmcpDisposeARRAY16(ARRAY16Ptr array);
+extern void XdmcpDisposeARRAY32(ARRAY32Ptr array);
+extern void XdmcpDisposeARRAYofARRAY8(ARRAYofARRAY8Ptr array);
+
+extern int XdmcpCopyARRAY8(const ARRAY8Ptr src, ARRAY8Ptr dst);
+
+extern int XdmcpARRAY8Equal(const ARRAY8Ptr array1, const ARRAY8Ptr array2);
+
+extern void XdmcpGenerateKey (XdmAuthKeyPtr key);
+extern void XdmcpIncrementKey (XdmAuthKeyPtr key);
+extern void XdmcpDecrementKey (XdmAuthKeyPtr key);
+#ifdef HASXDMAUTH
+extern void XdmcpWrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
+extern void XdmcpUnwrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+extern int XdmcpCompareKeys (const XdmAuthKeyPtr a, const XdmAuthKeyPtr b);
+
+extern int XdmcpAllocARRAY16 (ARRAY16Ptr array, int length);
+extern int XdmcpAllocARRAY32 (ARRAY32Ptr array, int length);
+extern int XdmcpAllocARRAY8 (ARRAY8Ptr array, int length);
+extern int XdmcpAllocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
+
+extern int XdmcpReallocARRAY16 (ARRAY16Ptr array, int length);
+extern int XdmcpReallocARRAY32 (ARRAY32Ptr array, int length);
+extern int XdmcpReallocARRAY8 (ARRAY8Ptr array, int length);
+extern int XdmcpReallocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
+
+_XFUNCPROTOEND
+
+#endif /* _XDMCP_H_ */
diff --git a/X11/Xfuncproto.h b/X11/Xfuncproto.h
new file mode 100644
index 000000000..13d443ce3
--- /dev/null
+++ b/X11/Xfuncproto.h
@@ -0,0 +1,126 @@
+/*
+ *
+Copyright 1989, 1991, 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.
+ *
+ */
+
+/* Definitions to make function prototypes manageable */
+
+#ifndef _XFUNCPROTO_H_
+#define _XFUNCPROTO_H_
+
+#ifndef NeedFunctionPrototypes
+#define NeedFunctionPrototypes 1
+#endif /* NeedFunctionPrototypes */
+
+#ifndef NeedVarargsPrototypes
+#define NeedVarargsPrototypes 1
+#endif /* NeedVarargsPrototypes */
+
+#if NeedFunctionPrototypes
+
+#ifndef NeedNestedPrototypes
+#define NeedNestedPrototypes 1
+#endif /* NeedNestedPrototypes */
+
+#ifndef _Xconst
+#define _Xconst const
+#endif /* _Xconst */
+
+/* Function prototype configuration (see configure for more info) */
+#ifndef NARROWPROTO
+/* #undef NARROWPROTO */
+#endif
+#ifndef FUNCPROTO
+/* #undef FUNCPROTO */
+#endif
+
+#ifndef NeedWidePrototypes
+#ifdef NARROWPROTO
+#define NeedWidePrototypes 0
+#else
+#define NeedWidePrototypes 1 /* default to make interropt. easier */
+#endif
+#endif /* NeedWidePrototypes */
+
+#endif /* NeedFunctionPrototypes */
+
+#ifndef _XFUNCPROTOBEGIN
+#if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */
+#define _XFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */
+#define _XFUNCPROTOEND }
+#else
+#define _XFUNCPROTOBEGIN
+#define _XFUNCPROTOEND
+#endif
+#endif /* _XFUNCPROTOBEGIN */
+
+#if defined(__GNUC__) && (__GNUC__ >= 4)
+# define _X_SENTINEL(x) __attribute__ ((__sentinel__(x)))
+# define _X_ATTRIBUTE_PRINTF(x,y) __attribute__((__format__(__printf__,x,y)))
+#else
+# define _X_SENTINEL(x)
+# define _X_ATTRIBUTE_PRINTF(x,y)
+#endif /* GNUC >= 4 */
+
+#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__CYGWIN__)
+# define _X_EXPORT __attribute__((visibility("default")))
+# define _X_HIDDEN __attribute__((visibility("hidden")))
+# define _X_INTERNAL __attribute__((visibility("internal")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+# define _X_EXPORT __global
+# define _X_HIDDEN __hidden
+# define _X_INTERNAL __hidden
+#else /* not gcc >= 4 and not Sun Studio >= 8 */
+# define _X_EXPORT
+# define _X_HIDDEN
+# define _X_INTERNAL
+#endif /* GNUC >= 4 */
+
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303)
+# define _X_LIKELY(x) __builtin_expect(!!(x), 1)
+# define _X_UNLIKELY(x) __builtin_expect(!!(x), 0)
+# define _X_INLINE inline
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+# define _X_LIKELY(x) (x)
+# define _X_UNLIKELY(x) (x)
+# define _X_INLINE inline
+#else /* not gcc >= 3.3 and not Sun Studio >= 8 */
+# define _X_LIKELY(x) (x)
+# define _X_UNLIKELY(x) (x)
+# define _X_INLINE
+#endif
+
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)
+# define _X_DEPRECATED __attribute__((deprecated))
+#else /* not gcc >= 3.1 */
+# define _X_DEPRECATED
+#endif
+
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)
+# define _X_NORETURN __attribute((noreturn))
+#else
+# define _X_NORETURN
+#endif /* GNUC */
+
+#endif /* _XFUNCPROTO_H_ */
diff --git a/X11/Xlib-xcb.h b/X11/Xlib-xcb.h
new file mode 100644
index 000000000..a0339de12
--- /dev/null
+++ b/X11/Xlib-xcb.h
@@ -0,0 +1,20 @@
+/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett
+ * This file is licensed under the MIT license. See the file COPYING. */
+
+#ifndef _X11_XLIB_XCB_H_
+#define _X11_XLIB_XCB_H_
+
+#include <xcb/xcb.h>
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+xcb_connection_t *XGetXCBConnection(Display *dpy);
+
+enum XEventQueueOwner { XlibOwnsEventQueue = 0, XCBOwnsEventQueue };
+void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner);
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XLIB_XCB_H_ */
diff --git a/X11/Xlib.h b/X11/Xlib.h
new file mode 100644
index 000000000..8ecaea48f
--- /dev/null
+++ b/X11/Xlib.h
@@ -0,0 +1,4015 @@
+/*
+
+Copyright 1985, 1986, 1987, 1991, 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.
+
+*/
+
+
+/*
+ * Xlib.h - Header definition and support file for the C subroutine
+ * interface library (Xlib) to the X Window System Protocol (V11).
+ * Structures and symbols starting with "_" are private to the library.
+ */
+#ifndef _X11_XLIB_H_
+#define _X11_XLIB_H_
+
+#define XlibSpecificationRelease 6
+
+#include <sys/types.h>
+
+#if defined(__SCO__) || defined(__UNIXWARE__)
+#include <stdint.h>
+#endif
+
+#include <X11/X.h>
+
+/* applications should not depend on these two headers being included! */
+#include <X11/Xfuncproto.h>
+#include <X11/Xosdefs.h>
+
+#ifndef X_WCHAR
+#include <stddef.h>
+#else
+#ifdef __UNIXOS2__
+#include <stdlib.h>
+#else
+/* replace this with #include or typedef appropriate for your system */
+typedef unsigned long wchar_t;
+#endif
+#endif
+
+
+extern int
+_Xmblen(
+ char *str,
+ int len
+ );
+
+/* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
+ November 2000. Its presence is indicated through the following macro. */
+#define X_HAVE_UTF8_STRING 1
+
+/* The Xlib structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+typedef char *XPointer;
+
+typedef int Bool;
+typedef int Status;
+#define True 1
+#define False 0
+
+#define QueuedAlready 0
+#define QueuedAfterReading 1
+#define QueuedAfterFlush 2
+
+#define ConnectionNumber(dpy) (((_XPrivDisplay)dpy)->fd)
+#define RootWindow(dpy, scr) (ScreenOfDisplay(dpy,scr)->root)
+#define DefaultScreen(dpy) (((_XPrivDisplay)dpy)->default_screen)
+#define DefaultRootWindow(dpy) (ScreenOfDisplay(dpy,DefaultScreen(dpy))->root)
+#define DefaultVisual(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_visual)
+#define DefaultGC(dpy, scr) (ScreenOfDisplay(dpy,scr)->default_gc)
+#define BlackPixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->black_pixel)
+#define WhitePixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->white_pixel)
+#define AllPlanes ((unsigned long)~0L)
+#define QLength(dpy) (((_XPrivDisplay)dpy)->qlen)
+#define DisplayWidth(dpy, scr) (ScreenOfDisplay(dpy,scr)->width)
+#define DisplayHeight(dpy, scr) (ScreenOfDisplay(dpy,scr)->height)
+#define DisplayWidthMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mwidth)
+#define DisplayHeightMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mheight)
+#define DisplayPlanes(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
+#define DisplayCells(dpy, scr) (DefaultVisual(dpy,scr)->map_entries)
+#define ScreenCount(dpy) (((_XPrivDisplay)dpy)->nscreens)
+#define ServerVendor(dpy) (((_XPrivDisplay)dpy)->vendor)
+#define ProtocolVersion(dpy) (((_XPrivDisplay)dpy)->proto_major_version)
+#define ProtocolRevision(dpy) (((_XPrivDisplay)dpy)->proto_minor_version)
+#define VendorRelease(dpy) (((_XPrivDisplay)dpy)->release)
+#define DisplayString(dpy) (((_XPrivDisplay)dpy)->display_name)
+#define DefaultDepth(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
+#define DefaultColormap(dpy, scr)(ScreenOfDisplay(dpy,scr)->cmap)
+#define BitmapUnit(dpy) (((_XPrivDisplay)dpy)->bitmap_unit)
+#define BitmapBitOrder(dpy) (((_XPrivDisplay)dpy)->bitmap_bit_order)
+#define BitmapPad(dpy) (((_XPrivDisplay)dpy)->bitmap_pad)
+#define ImageByteOrder(dpy) (((_XPrivDisplay)dpy)->byte_order)
+#define NextRequest(dpy) (((_XPrivDisplay)dpy)->request + 1)
+#define LastKnownRequestProcessed(dpy) (((_XPrivDisplay)dpy)->last_request_read)
+
+/* macros for screen oriented applications (toolkit) */
+#define ScreenOfDisplay(dpy, scr)(&((_XPrivDisplay)dpy)->screens[scr])
+#define DefaultScreenOfDisplay(dpy) ScreenOfDisplay(dpy,DefaultScreen(dpy))
+#define DisplayOfScreen(s) ((s)->display)
+#define RootWindowOfScreen(s) ((s)->root)
+#define BlackPixelOfScreen(s) ((s)->black_pixel)
+#define WhitePixelOfScreen(s) ((s)->white_pixel)
+#define DefaultColormapOfScreen(s)((s)->cmap)
+#define DefaultDepthOfScreen(s) ((s)->root_depth)
+#define DefaultGCOfScreen(s) ((s)->default_gc)
+#define DefaultVisualOfScreen(s)((s)->root_visual)
+#define WidthOfScreen(s) ((s)->width)
+#define HeightOfScreen(s) ((s)->height)
+#define WidthMMOfScreen(s) ((s)->mwidth)
+#define HeightMMOfScreen(s) ((s)->mheight)
+#define PlanesOfScreen(s) ((s)->root_depth)
+#define CellsOfScreen(s) (DefaultVisualOfScreen((s))->map_entries)
+#define MinCmapsOfScreen(s) ((s)->min_maps)
+#define MaxCmapsOfScreen(s) ((s)->max_maps)
+#define DoesSaveUnders(s) ((s)->save_unders)
+#define DoesBackingStore(s) ((s)->backing_store)
+#define EventMaskOfScreen(s) ((s)->root_input_mask)
+
+/*
+ * Extensions need a way to hang private data on some structures.
+ */
+typedef struct _XExtData {
+ int number; /* number returned by XRegisterExtension */
+ struct _XExtData *next; /* next item on list of data for structure */
+ int (*free_private)( /* called to free private storage */
+ struct _XExtData *extension
+ );
+ XPointer private_data; /* data private to this extension. */
+} XExtData;
+
+/*
+ * This file contains structures used by the extension mechanism.
+ */
+typedef struct { /* public to extension, cannot be changed */
+ int extension; /* extension number */
+ int major_opcode; /* major op-code assigned by server */
+ int first_event; /* first event number for the extension */
+ int first_error; /* first error number for the extension */
+} XExtCodes;
+
+/*
+ * Data structure for retrieving info about pixmap formats.
+ */
+
+typedef struct {
+ int depth;
+ int bits_per_pixel;
+ int scanline_pad;
+} XPixmapFormatValues;
+
+
+/*
+ * Data structure for setting graphics context.
+ */
+typedef struct {
+ int function; /* logical operation */
+ unsigned long plane_mask;/* plane mask */
+ unsigned long foreground;/* foreground pixel */
+ unsigned long background;/* background pixel */
+ int line_width; /* line width */
+ int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */
+ int cap_style; /* CapNotLast, CapButt,
+ CapRound, CapProjecting */
+ int join_style; /* JoinMiter, JoinRound, JoinBevel */
+ int fill_style; /* FillSolid, FillTiled,
+ FillStippled, FillOpaeueStippled */
+ int fill_rule; /* EvenOddRule, WindingRule */
+ int arc_mode; /* ArcChord, ArcPieSlice */
+ Pixmap tile; /* tile pixmap for tiling operations */
+ Pixmap stipple; /* stipple 1 plane pixmap for stipping */
+ int ts_x_origin; /* offset for tile or stipple operations */
+ int ts_y_origin;
+ Font font; /* default text font for text operations */
+ int subwindow_mode; /* ClipByChildren, IncludeInferiors */
+ Bool graphics_exposures;/* boolean, should exposures be generated */
+ int clip_x_origin; /* origin for clipping */
+ int clip_y_origin;
+ Pixmap clip_mask; /* bitmap clipping; other calls for rects */
+ int dash_offset; /* patterned/dashed line information */
+ char dashes;
+} XGCValues;
+
+/*
+ * Graphics context. The contents of this structure are implementation
+ * dependent. A GC should be treated as opaque by application code.
+ */
+
+typedef struct _XGC
+#ifdef XLIB_ILLEGAL_ACCESS
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ GContext gid; /* protocol ID for graphics context */
+ /* there is more to this structure, but it is private to Xlib */
+}
+#endif
+*GC;
+
+/*
+ * Visual structure; contains information about colormapping possible.
+ */
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ VisualID visualid; /* visual id of this visual */
+#if defined(__cplusplus) || defined(c_plusplus)
+ int c_class; /* C++ class of screen (monochrome, etc.) */
+#else
+ int class; /* class of screen (monochrome, etc.) */
+#endif
+ unsigned long red_mask, green_mask, blue_mask; /* mask values */
+ int bits_per_rgb; /* log base 2 of distinct color values */
+ int map_entries; /* color map entries */
+} Visual;
+
+/*
+ * Depth structure; contains information for each possible depth.
+ */
+typedef struct {
+ int depth; /* this depth (Z) of the depth */
+ int nvisuals; /* number of Visual types at this depth */
+ Visual *visuals; /* list of visuals possible at this depth */
+} Depth;
+
+/*
+ * Information about the screen. The contents of this structure are
+ * implementation dependent. A Screen should be treated as opaque
+ * by application code.
+ */
+
+struct _XDisplay; /* Forward declare before use for C++ */
+
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XDisplay *display;/* back pointer to display structure */
+ Window root; /* Root window id. */
+ int width, height; /* width and height of screen */
+ int mwidth, mheight; /* width and height of in millimeters */
+ int ndepths; /* number of depths possible */
+ Depth *depths; /* list of allowable depths on the screen */
+ int root_depth; /* bits per pixel */
+ Visual *root_visual; /* root visual */
+ GC default_gc; /* GC for the root root visual */
+ Colormap cmap; /* default color map */
+ unsigned long white_pixel;
+ unsigned long black_pixel; /* White and Black pixel values */
+ int max_maps, min_maps; /* max and min color maps */
+ int backing_store; /* Never, WhenMapped, Always */
+ Bool save_unders;
+ long root_input_mask; /* initial root input mask */
+} Screen;
+
+/*
+ * Format structure; describes ZFormat data the screen will understand.
+ */
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ int depth; /* depth of this image format */
+ int bits_per_pixel; /* bits/pixel at this depth */
+ int scanline_pad; /* scanline must padded to this multiple */
+} ScreenFormat;
+
+/*
+ * Data structure for setting window attributes.
+ */
+typedef struct {
+ Pixmap background_pixmap; /* background or None or ParentRelative */
+ unsigned long background_pixel; /* background pixel */
+ Pixmap border_pixmap; /* border of the window */
+ unsigned long border_pixel; /* border pixel value */
+ int bit_gravity; /* one of bit gravity values */
+ int win_gravity; /* one of the window gravity values */
+ int backing_store; /* NotUseful, WhenMapped, Always */
+ unsigned long backing_planes;/* planes to be preseved if possible */
+ unsigned long backing_pixel;/* value to use in restoring planes */
+ Bool save_under; /* should bits under be saved? (popups) */
+ long event_mask; /* set of events that should be saved */
+ long do_not_propagate_mask; /* set of events that should not propagate */
+ Bool override_redirect; /* boolean value for override-redirect */
+ Colormap colormap; /* color map to be associated with window */
+ Cursor cursor; /* cursor to be displayed (or None) */
+} XSetWindowAttributes;
+
+typedef struct {
+ int x, y; /* location of window */
+ int width, height; /* width and height of window */
+ int border_width; /* border width of window */
+ int depth; /* depth of window */
+ Visual *visual; /* the associated visual structure */
+ Window root; /* root of screen containing window */
+#if defined(__cplusplus) || defined(c_plusplus)
+ int c_class; /* C++ InputOutput, InputOnly*/
+#else
+ int class; /* InputOutput, InputOnly*/
+#endif
+ int bit_gravity; /* one of bit gravity values */
+ int win_gravity; /* one of the window gravity values */
+ int backing_store; /* NotUseful, WhenMapped, Always */
+ unsigned long backing_planes;/* planes to be preserved if possible */
+ unsigned long backing_pixel;/* value to be used when restoring planes */
+ Bool save_under; /* boolean, should bits under be saved? */
+ Colormap colormap; /* color map to be associated with window */
+ Bool map_installed; /* boolean, is color map currently installed*/
+ int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
+ long all_event_masks; /* set of events all people have interest in*/
+ long your_event_mask; /* my event mask */
+ long do_not_propagate_mask; /* set of events that should not propagate */
+ Bool override_redirect; /* boolean value for override-redirect */
+ Screen *screen; /* back pointer to correct screen */
+} XWindowAttributes;
+
+/*
+ * Data structure for host setting; getting routines.
+ *
+ */
+
+typedef struct {
+ int family; /* for example FamilyInternet */
+ int length; /* length of address, in bytes */
+ char *address; /* pointer to where to find the bytes */
+} XHostAddress;
+
+/*
+ * Data structure for ServerFamilyInterpreted addresses in host routines
+ */
+typedef struct {
+ int typelength; /* length of type string, in bytes */
+ int valuelength; /* length of value string, in bytes */
+ char *type; /* pointer to where to find the type string */
+ char *value; /* pointer to where to find the address */
+} XServerInterpretedAddress;
+
+/*
+ * Data structure for "image" data, used by image manipulation routines.
+ */
+typedef struct _XImage {
+ int width, height; /* size of image */
+ int xoffset; /* number of pixels offset in X direction */
+ int format; /* XYBitmap, XYPixmap, ZPixmap */
+ char *data; /* pointer to image data */
+ int byte_order; /* data byte order, LSBFirst, MSBFirst */
+ int bitmap_unit; /* quant. of scanline 8, 16, 32 */
+ int bitmap_bit_order; /* LSBFirst, MSBFirst */
+ int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */
+ int depth; /* depth of image */
+ int bytes_per_line; /* accelarator to next line */
+ int bits_per_pixel; /* bits per pixel (ZPixmap) */
+ unsigned long red_mask; /* bits in z arrangment */
+ unsigned long green_mask;
+ unsigned long blue_mask;
+ XPointer obdata; /* hook for the object routines to hang on */
+ struct funcs { /* image manipulation routines */
+ struct _XImage *(*create_image)(
+ struct _XDisplay* /* display */,
+ Visual* /* visual */,
+ unsigned int /* depth */,
+ int /* format */,
+ int /* offset */,
+ char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* bitmap_pad */,
+ int /* bytes_per_line */);
+ int (*destroy_image) (struct _XImage *);
+ unsigned long (*get_pixel) (struct _XImage *, int, int);
+ int (*put_pixel) (struct _XImage *, int, int, unsigned long);
+ struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
+ int (*add_pixel) (struct _XImage *, long);
+ } f;
+} XImage;
+
+/*
+ * Data structure for XReconfigureWindow
+ */
+typedef struct {
+ int x, y;
+ int width, height;
+ int border_width;
+ Window sibling;
+ int stack_mode;
+} XWindowChanges;
+
+/*
+ * Data structure used by color operations
+ */
+typedef struct {
+ unsigned long pixel;
+ unsigned short red, green, blue;
+ char flags; /* do_red, do_green, do_blue */
+ char pad;
+} XColor;
+
+/*
+ * Data structures for graphics operations. On most machines, these are
+ * congruent with the wire protocol structures, so reformatting the data
+ * can be avoided on these architectures.
+ */
+typedef struct {
+ short x1, y1, x2, y2;
+} XSegment;
+
+typedef struct {
+ short x, y;
+} XPoint;
+
+typedef struct {
+ short x, y;
+ unsigned short width, height;
+} XRectangle;
+
+typedef struct {
+ short x, y;
+ unsigned short width, height;
+ short angle1, angle2;
+} XArc;
+
+
+/* Data structure for XChangeKeyboardControl */
+
+typedef struct {
+ int key_click_percent;
+ int bell_percent;
+ int bell_pitch;
+ int bell_duration;
+ int led;
+ int led_mode;
+ int key;
+ int auto_repeat_mode; /* On, Off, Default */
+} XKeyboardControl;
+
+/* Data structure for XGetKeyboardControl */
+
+typedef struct {
+ int key_click_percent;
+ int bell_percent;
+ unsigned int bell_pitch, bell_duration;
+ unsigned long led_mask;
+ int global_auto_repeat;
+ char auto_repeats[32];
+} XKeyboardState;
+
+/* Data structure for XGetMotionEvents. */
+
+typedef struct {
+ Time time;
+ short x, y;
+} XTimeCoord;
+
+/* Data structure for X{Set,Get}ModifierMapping */
+
+typedef struct {
+ int max_keypermod; /* The server's max # of keys per modifier */
+ KeyCode *modifiermap; /* An 8 by max_keypermod array of modifiers */
+} XModifierKeymap;
+
+
+/*
+ * Display datatype maintaining display specific data.
+ * The contents of this structure are implementation dependent.
+ * A Display should be treated as opaque by application code.
+ */
+#ifndef XLIB_ILLEGAL_ACCESS
+typedef struct _XDisplay Display;
+#endif
+
+struct _XPrivate; /* Forward declare before use for C++ */
+struct _XrmHashBucketRec;
+
+typedef struct
+#ifdef XLIB_ILLEGAL_ACCESS
+_XDisplay
+#endif
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XPrivate *private1;
+ int fd; /* Network socket. */
+ int private2;
+ int proto_major_version;/* major version of server's X protocol */
+ int proto_minor_version;/* minor version of servers X protocol */
+ char *vendor; /* vendor of the server hardware */
+ XID private3;
+ XID private4;
+ XID private5;
+ int private6;
+ XID (*resource_alloc)( /* allocator function */
+ struct _XDisplay*
+ );
+ int byte_order; /* screen byte order, LSBFirst, MSBFirst */
+ int bitmap_unit; /* padding and data requirements */
+ int bitmap_pad; /* padding requirements on bitmaps */
+ int bitmap_bit_order; /* LeastSignificant or MostSignificant */
+ int nformats; /* number of pixmap formats in list */
+ ScreenFormat *pixmap_format; /* pixmap format list */
+ int private8;
+ int release; /* release of the server */
+ struct _XPrivate *private9, *private10;
+ int qlen; /* Length of input event queue */
+ unsigned long last_request_read; /* seq number of last event read */
+ unsigned long request; /* sequence number of last request. */
+ XPointer private11;
+ XPointer private12;
+ XPointer private13;
+ XPointer private14;
+ unsigned max_request_size; /* maximum number 32 bit words in request*/
+ struct _XrmHashBucketRec *db;
+ int (*private15)(
+ struct _XDisplay*
+ );
+ char *display_name; /* "host:display" string used on this connect*/
+ int default_screen; /* default screen for operations */
+ int nscreens; /* number of screens on this server*/
+ Screen *screens; /* pointer to list of screens */
+ unsigned long motion_buffer; /* size of motion buffer */
+ unsigned long private16;
+ int min_keycode; /* minimum defined keycode */
+ int max_keycode; /* maximum defined keycode */
+ XPointer private17;
+ XPointer private18;
+ int private19;
+ char *xdefaults; /* contents of defaults from server */
+ /* there is more to this structure, but it is private to Xlib */
+}
+#ifdef XLIB_ILLEGAL_ACCESS
+Display,
+#endif
+*_XPrivDisplay;
+
+#undef _XEVENT_
+#ifndef _XEVENT_
+/*
+ * Definitions of specific events.
+ */
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window it is reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ unsigned int state; /* key or button mask */
+ unsigned int keycode; /* detail */
+ Bool same_screen; /* same screen flag */
+} XKeyEvent;
+typedef XKeyEvent XKeyPressedEvent;
+typedef XKeyEvent XKeyReleasedEvent;
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window it is reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ unsigned int state; /* key or button mask */
+ unsigned int button; /* detail */
+ Bool same_screen; /* same screen flag */
+} XButtonEvent;
+typedef XButtonEvent XButtonPressedEvent;
+typedef XButtonEvent XButtonReleasedEvent;
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ unsigned int state; /* key or button mask */
+ char is_hint; /* detail */
+ Bool same_screen; /* same screen flag */
+} XMotionEvent;
+typedef XMotionEvent XPointerMovedEvent;
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
+ int detail;
+ /*
+ * NotifyAncestor, NotifyVirtual, NotifyInferior,
+ * NotifyNonlinear,NotifyNonlinearVirtual
+ */
+ Bool same_screen; /* same screen flag */
+ Bool focus; /* boolean focus */
+ unsigned int state; /* key or button mask */
+} XCrossingEvent;
+typedef XCrossingEvent XEnterWindowEvent;
+typedef XCrossingEvent XLeaveWindowEvent;
+
+typedef struct {
+ int type; /* FocusIn or FocusOut */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* window of event */
+ int mode; /* NotifyNormal, NotifyWhileGrabbed,
+ NotifyGrab, NotifyUngrab */
+ int detail;
+ /*
+ * NotifyAncestor, NotifyVirtual, NotifyInferior,
+ * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer,
+ * NotifyPointerRoot, NotifyDetailNone
+ */
+} XFocusChangeEvent;
+typedef XFocusChangeEvent XFocusInEvent;
+typedef XFocusChangeEvent XFocusOutEvent;
+
+/* generated on EnterWindow and FocusIn when KeyMapState selected */
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ char key_vector[32];
+} XKeymapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ int x, y;
+ int width, height;
+ int count; /* if non-zero, at least this many more */
+} XExposeEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Drawable drawable;
+ int x, y;
+ int width, height;
+ int count; /* if non-zero, at least this many more */
+ int major_code; /* core is CopyArea or CopyPlane */
+ int minor_code; /* not defined in the core */
+} XGraphicsExposeEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Drawable drawable;
+ int major_code; /* core is CopyArea or CopyPlane */
+ int minor_code; /* not defined in the core */
+} XNoExposeEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ int state; /* Visibility state */
+} XVisibilityEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent; /* parent of the window */
+ Window window; /* window id of window created */
+ int x, y; /* window location */
+ int width, height; /* size of window */
+ int border_width; /* border width */
+ Bool override_redirect; /* creation should be overridden */
+} XCreateWindowEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+} XDestroyWindowEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ Bool from_configure;
+} XUnmapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ Bool override_redirect; /* boolean, is override set... */
+} XMapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent;
+ Window window;
+} XMapRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ Window parent;
+ int x, y;
+ Bool override_redirect;
+} XReparentEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ int x, y;
+ int width, height;
+ int border_width;
+ Window above;
+ Bool override_redirect;
+} XConfigureEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ int x, y;
+} XGravityEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ int width, height;
+} XResizeRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent;
+ Window window;
+ int x, y;
+ int width, height;
+ int border_width;
+ Window above;
+ int detail; /* Above, Below, TopIf, BottomIf, Opposite */
+ unsigned long value_mask;
+} XConfigureRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ int place; /* PlaceOnTop, PlaceOnBottom */
+} XCirculateEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent;
+ Window window;
+ int place; /* PlaceOnTop, PlaceOnBottom */
+} XCirculateRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Atom atom;
+ Time time;
+ int state; /* NewValue, Deleted */
+} XPropertyEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Atom selection;
+ Time time;
+} XSelectionClearEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window owner;
+ Window requestor;
+ Atom selection;
+ Atom target;
+ Atom property;
+ Time time;
+} XSelectionRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window requestor;
+ Atom selection;
+ Atom target;
+ Atom property; /* ATOM or None */
+ Time time;
+} XSelectionEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Colormap colormap; /* COLORMAP or None */
+#if defined(__cplusplus) || defined(c_plusplus)
+ Bool c_new; /* C++ */
+#else
+ Bool new;
+#endif
+ int state; /* ColormapInstalled, ColormapUninstalled */
+} XColormapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Atom message_type;
+ int format;
+ union {
+ char b[20];
+ short s[10];
+ long l[5];
+ } data;
+} XClientMessageEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* unused */
+ int request; /* one of MappingModifier, MappingKeyboard,
+ MappingPointer */
+ int first_keycode; /* first keycode */
+ int count; /* defines range of change w. first_keycode*/
+} XMappingEvent;
+
+typedef struct {
+ int type;
+ Display *display; /* Display the event was read from */
+ XID resourceid; /* resource id */
+ unsigned long serial; /* serial number of failed request */
+ unsigned char error_code; /* error code of failed request */
+ unsigned char request_code; /* Major op-code of failed request */
+ unsigned char minor_code; /* Minor op-code of failed request */
+} XErrorEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display;/* Display the event was read from */
+ Window window; /* window on which event was requested in event mask */
+} XAnyEvent;
+
+
+/***************************************************************
+ *
+ * GenericEvent. This event is the standard event for all newer extensions.
+ */
+
+typedef struct
+ {
+ int type; /* of event. Always GenericEvent */
+ unsigned long serial; /* # of last request processed */
+ Bool send_event; /* true if from SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* major opcode of extension that caused the event */
+ int evtype; /* actual event type. */
+ } XGenericEvent;
+
+typedef struct {
+ int type; /* of event. Always GenericEvent */
+ unsigned long serial; /* # of last request processed */
+ Bool send_event; /* true if from SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* major opcode of extension that caused the event */
+ int evtype; /* actual event type. */
+ unsigned int cookie;
+ void *data;
+} XGenericEventCookie;
+
+/*
+ * this union is defined so Xlib can always use the same sized
+ * event structure internally, to avoid memory fragmentation.
+ */
+typedef union _XEvent {
+ int type; /* must not be changed; first element */
+ XAnyEvent xany;
+ XKeyEvent xkey;
+ XButtonEvent xbutton;
+ XMotionEvent xmotion;
+ XCrossingEvent xcrossing;
+ XFocusChangeEvent xfocus;
+ XExposeEvent xexpose;
+ XGraphicsExposeEvent xgraphicsexpose;
+ XNoExposeEvent xnoexpose;
+ XVisibilityEvent xvisibility;
+ XCreateWindowEvent xcreatewindow;
+ XDestroyWindowEvent xdestroywindow;
+ XUnmapEvent xunmap;
+ XMapEvent xmap;
+ XMapRequestEvent xmaprequest;
+ XReparentEvent xreparent;
+ XConfigureEvent xconfigure;
+ XGravityEvent xgravity;
+ XResizeRequestEvent xresizerequest;
+ XConfigureRequestEvent xconfigurerequest;
+ XCirculateEvent xcirculate;
+ XCirculateRequestEvent xcirculaterequest;
+ XPropertyEvent xproperty;
+ XSelectionClearEvent xselectionclear;
+ XSelectionRequestEvent xselectionrequest;
+ XSelectionEvent xselection;
+ XColormapEvent xcolormap;
+ XClientMessageEvent xclient;
+ XMappingEvent xmapping;
+ XErrorEvent xerror;
+ XKeymapEvent xkeymap;
+ XGenericEvent xgeneric;
+ XGenericEventCookie xcookie;
+ long pad[24];
+} XEvent;
+#endif
+
+#define XAllocID(dpy) ((*((_XPrivDisplay)dpy)->resource_alloc)((dpy)))
+
+/*
+ * per character font metric information.
+ */
+typedef struct {
+ short lbearing; /* origin to left edge of raster */
+ short rbearing; /* origin to right edge of raster */
+ short width; /* advance to next char's origin */
+ short ascent; /* baseline to top edge of raster */
+ short descent; /* baseline to bottom edge of raster */
+ unsigned short attributes; /* per char flags (not predefined) */
+} XCharStruct;
+
+/*
+ * To allow arbitrary information with fonts, there are additional properties
+ * returned.
+ */
+typedef struct {
+ Atom name;
+ unsigned long card32;
+} XFontProp;
+
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ Font fid; /* Font id for this font */
+ unsigned direction; /* hint about direction the font is painted */
+ unsigned min_char_or_byte2;/* first character */
+ unsigned max_char_or_byte2;/* last character */
+ unsigned min_byte1; /* first row that exists */
+ unsigned max_byte1; /* last row that exists */
+ Bool all_chars_exist;/* flag if all characters have non-zero size*/
+ unsigned default_char; /* char to print for undefined character */
+ int n_properties; /* how many properties there are */
+ XFontProp *properties; /* pointer to array of additional properties*/
+ XCharStruct min_bounds; /* minimum bounds over all existing char*/
+ XCharStruct max_bounds; /* maximum bounds over all existing char*/
+ XCharStruct *per_char; /* first_char to last_char information */
+ int ascent; /* log. extent above baseline for spacing */
+ int descent; /* log. descent below baseline for spacing */
+} XFontStruct;
+
+/*
+ * PolyText routines take these as arguments.
+ */
+typedef struct {
+ char *chars; /* pointer to string */
+ int nchars; /* number of characters */
+ int delta; /* delta between strings */
+ Font font; /* font to print it in, None don't change */
+} XTextItem;
+
+typedef struct { /* normal 16 bit characters are two bytes */
+ unsigned char byte1;
+ unsigned char byte2;
+} XChar2b;
+
+typedef struct {
+ XChar2b *chars; /* two byte characters */
+ int nchars; /* number of characters */
+ int delta; /* delta between strings */
+ Font font; /* font to print it in, None don't change */
+} XTextItem16;
+
+
+typedef union { Display *display;
+ GC gc;
+ Visual *visual;
+ Screen *screen;
+ ScreenFormat *pixmap_format;
+ XFontStruct *font; } XEDataObject;
+
+typedef struct {
+ XRectangle max_ink_extent;
+ XRectangle max_logical_extent;
+} XFontSetExtents;
+
+/* unused:
+typedef void (*XOMProc)();
+ */
+
+typedef struct _XOM *XOM;
+typedef struct _XOC *XOC, *XFontSet;
+
+typedef struct {
+ char *chars;
+ int nchars;
+ int delta;
+ XFontSet font_set;
+} XmbTextItem;
+
+typedef struct {
+ wchar_t *chars;
+ int nchars;
+ int delta;
+ XFontSet font_set;
+} XwcTextItem;
+
+#define XNRequiredCharSet "requiredCharSet"
+#define XNQueryOrientation "queryOrientation"
+#define XNBaseFontName "baseFontName"
+#define XNOMAutomatic "omAutomatic"
+#define XNMissingCharSet "missingCharSet"
+#define XNDefaultString "defaultString"
+#define XNOrientation "orientation"
+#define XNDirectionalDependentDrawing "directionalDependentDrawing"
+#define XNContextualDrawing "contextualDrawing"
+#define XNFontInfo "fontInfo"
+
+typedef struct {
+ int charset_count;
+ char **charset_list;
+} XOMCharSetList;
+
+typedef enum {
+ XOMOrientation_LTR_TTB,
+ XOMOrientation_RTL_TTB,
+ XOMOrientation_TTB_LTR,
+ XOMOrientation_TTB_RTL,
+ XOMOrientation_Context
+} XOrientation;
+
+typedef struct {
+ int num_orientation;
+ XOrientation *orientation; /* Input Text description */
+} XOMOrientation;
+
+typedef struct {
+ int num_font;
+ XFontStruct **font_struct_list;
+ char **font_name_list;
+} XOMFontInfo;
+
+typedef struct _XIM *XIM;
+typedef struct _XIC *XIC;
+
+typedef void (*XIMProc)(
+ XIM,
+ XPointer,
+ XPointer
+);
+
+typedef Bool (*XICProc)(
+ XIC,
+ XPointer,
+ XPointer
+);
+
+typedef void (*XIDProc)(
+ Display*,
+ XPointer,
+ XPointer
+);
+
+typedef unsigned long XIMStyle;
+
+typedef struct {
+ unsigned short count_styles;
+ XIMStyle *supported_styles;
+} XIMStyles;
+
+#define XIMPreeditArea 0x0001L
+#define XIMPreeditCallbacks 0x0002L
+#define XIMPreeditPosition 0x0004L
+#define XIMPreeditNothing 0x0008L
+#define XIMPreeditNone 0x0010L
+#define XIMStatusArea 0x0100L
+#define XIMStatusCallbacks 0x0200L
+#define XIMStatusNothing 0x0400L
+#define XIMStatusNone 0x0800L
+
+#define XNVaNestedList "XNVaNestedList"
+#define XNQueryInputStyle "queryInputStyle"
+#define XNClientWindow "clientWindow"
+#define XNInputStyle "inputStyle"
+#define XNFocusWindow "focusWindow"
+#define XNResourceName "resourceName"
+#define XNResourceClass "resourceClass"
+#define XNGeometryCallback "geometryCallback"
+#define XNDestroyCallback "destroyCallback"
+#define XNFilterEvents "filterEvents"
+#define XNPreeditStartCallback "preeditStartCallback"
+#define XNPreeditDoneCallback "preeditDoneCallback"
+#define XNPreeditDrawCallback "preeditDrawCallback"
+#define XNPreeditCaretCallback "preeditCaretCallback"
+#define XNPreeditStateNotifyCallback "preeditStateNotifyCallback"
+#define XNPreeditAttributes "preeditAttributes"
+#define XNStatusStartCallback "statusStartCallback"
+#define XNStatusDoneCallback "statusDoneCallback"
+#define XNStatusDrawCallback "statusDrawCallback"
+#define XNStatusAttributes "statusAttributes"
+#define XNArea "area"
+#define XNAreaNeeded "areaNeeded"
+#define XNSpotLocation "spotLocation"
+#define XNColormap "colorMap"
+#define XNStdColormap "stdColorMap"
+#define XNForeground "foreground"
+#define XNBackground "background"
+#define XNBackgroundPixmap "backgroundPixmap"
+#define XNFontSet "fontSet"
+#define XNLineSpace "lineSpace"
+#define XNCursor "cursor"
+
+#define XNQueryIMValuesList "queryIMValuesList"
+#define XNQueryICValuesList "queryICValuesList"
+#define XNVisiblePosition "visiblePosition"
+#define XNR6PreeditCallback "r6PreeditCallback"
+#define XNStringConversionCallback "stringConversionCallback"
+#define XNStringConversion "stringConversion"
+#define XNResetState "resetState"
+#define XNHotKey "hotKey"
+#define XNHotKeyState "hotKeyState"
+#define XNPreeditState "preeditState"
+#define XNSeparatorofNestedList "separatorofNestedList"
+
+#define XBufferOverflow -1
+#define XLookupNone 1
+#define XLookupChars 2
+#define XLookupKeySym 3
+#define XLookupBoth 4
+
+typedef void *XVaNestedList;
+
+typedef struct {
+ XPointer client_data;
+ XIMProc callback;
+} XIMCallback;
+
+typedef struct {
+ XPointer client_data;
+ XICProc callback;
+} XICCallback;
+
+typedef unsigned long XIMFeedback;
+
+#define XIMReverse 1L
+#define XIMUnderline (1L<<1)
+#define XIMHighlight (1L<<2)
+#define XIMPrimary (1L<<5)
+#define XIMSecondary (1L<<6)
+#define XIMTertiary (1L<<7)
+#define XIMVisibleToForward (1L<<8)
+#define XIMVisibleToBackword (1L<<9)
+#define XIMVisibleToCenter (1L<<10)
+
+typedef struct _XIMText {
+ unsigned short length;
+ XIMFeedback *feedback;
+ Bool encoding_is_wchar;
+ union {
+ char *multi_byte;
+ wchar_t *wide_char;
+ } string;
+} XIMText;
+
+typedef unsigned long XIMPreeditState;
+
+#define XIMPreeditUnKnown 0L
+#define XIMPreeditEnable 1L
+#define XIMPreeditDisable (1L<<1)
+
+typedef struct _XIMPreeditStateNotifyCallbackStruct {
+ XIMPreeditState state;
+} XIMPreeditStateNotifyCallbackStruct;
+
+typedef unsigned long XIMResetState;
+
+#define XIMInitialState 1L
+#define XIMPreserveState (1L<<1)
+
+typedef unsigned long XIMStringConversionFeedback;
+
+#define XIMStringConversionLeftEdge (0x00000001)
+#define XIMStringConversionRightEdge (0x00000002)
+#define XIMStringConversionTopEdge (0x00000004)
+#define XIMStringConversionBottomEdge (0x00000008)
+#define XIMStringConversionConcealed (0x00000010)
+#define XIMStringConversionWrapped (0x00000020)
+
+typedef struct _XIMStringConversionText {
+ unsigned short length;
+ XIMStringConversionFeedback *feedback;
+ Bool encoding_is_wchar;
+ union {
+ char *mbs;
+ wchar_t *wcs;
+ } string;
+} XIMStringConversionText;
+
+typedef unsigned short XIMStringConversionPosition;
+
+typedef unsigned short XIMStringConversionType;
+
+#define XIMStringConversionBuffer (0x0001)
+#define XIMStringConversionLine (0x0002)
+#define XIMStringConversionWord (0x0003)
+#define XIMStringConversionChar (0x0004)
+
+typedef unsigned short XIMStringConversionOperation;
+
+#define XIMStringConversionSubstitution (0x0001)
+#define XIMStringConversionRetrieval (0x0002)
+
+typedef enum {
+ XIMForwardChar, XIMBackwardChar,
+ XIMForwardWord, XIMBackwardWord,
+ XIMCaretUp, XIMCaretDown,
+ XIMNextLine, XIMPreviousLine,
+ XIMLineStart, XIMLineEnd,
+ XIMAbsolutePosition,
+ XIMDontChange
+} XIMCaretDirection;
+
+typedef struct _XIMStringConversionCallbackStruct {
+ XIMStringConversionPosition position;
+ XIMCaretDirection direction;
+ XIMStringConversionOperation operation;
+ unsigned short factor;
+ XIMStringConversionText *text;
+} XIMStringConversionCallbackStruct;
+
+typedef struct _XIMPreeditDrawCallbackStruct {
+ int caret; /* Cursor offset within pre-edit string */
+ int chg_first; /* Starting change position */
+ int chg_length; /* Length of the change in character count */
+ XIMText *text;
+} XIMPreeditDrawCallbackStruct;
+
+typedef enum {
+ XIMIsInvisible, /* Disable caret feedback */
+ XIMIsPrimary, /* UI defined caret feedback */
+ XIMIsSecondary /* UI defined caret feedback */
+} XIMCaretStyle;
+
+typedef struct _XIMPreeditCaretCallbackStruct {
+ int position; /* Caret offset within pre-edit string */
+ XIMCaretDirection direction; /* Caret moves direction */
+ XIMCaretStyle style; /* Feedback of the caret */
+} XIMPreeditCaretCallbackStruct;
+
+typedef enum {
+ XIMTextType,
+ XIMBitmapType
+} XIMStatusDataType;
+
+typedef struct _XIMStatusDrawCallbackStruct {
+ XIMStatusDataType type;
+ union {
+ XIMText *text;
+ Pixmap bitmap;
+ } data;
+} XIMStatusDrawCallbackStruct;
+
+typedef struct _XIMHotKeyTrigger {
+ KeySym keysym;
+ int modifier;
+ int modifier_mask;
+} XIMHotKeyTrigger;
+
+typedef struct _XIMHotKeyTriggers {
+ int num_hot_key;
+ XIMHotKeyTrigger *key;
+} XIMHotKeyTriggers;
+
+typedef unsigned long XIMHotKeyState;
+
+#define XIMHotKeyStateON (0x0001L)
+#define XIMHotKeyStateOFF (0x0002L)
+
+typedef struct {
+ unsigned short count_values;
+ char **supported_values;
+} XIMValuesList;
+
+_XFUNCPROTOBEGIN
+
+#if defined(WIN32) && !defined(_XLIBINT_)
+#define _Xdebug (*_Xdebug_p)
+#endif
+
+extern int _Xdebug;
+
+extern XFontStruct *XLoadQueryFont(
+ Display* /* display */,
+ _Xconst char* /* name */
+);
+
+extern XFontStruct *XQueryFont(
+ Display* /* display */,
+ XID /* font_ID */
+);
+
+
+extern XTimeCoord *XGetMotionEvents(
+ Display* /* display */,
+ Window /* w */,
+ Time /* start */,
+ Time /* stop */,
+ int* /* nevents_return */
+);
+
+extern XModifierKeymap *XDeleteModifiermapEntry(
+ XModifierKeymap* /* modmap */,
+#if NeedWidePrototypes
+ unsigned int /* keycode_entry */,
+#else
+ KeyCode /* keycode_entry */,
+#endif
+ int /* modifier */
+);
+
+extern XModifierKeymap *XGetModifierMapping(
+ Display* /* display */
+);
+
+extern XModifierKeymap *XInsertModifiermapEntry(
+ XModifierKeymap* /* modmap */,
+#if NeedWidePrototypes
+ unsigned int /* keycode_entry */,
+#else
+ KeyCode /* keycode_entry */,
+#endif
+ int /* modifier */
+);
+
+extern XModifierKeymap *XNewModifiermap(
+ int /* max_keys_per_mod */
+);
+
+extern XImage *XCreateImage(
+ Display* /* display */,
+ Visual* /* visual */,
+ unsigned int /* depth */,
+ int /* format */,
+ int /* offset */,
+ char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* bitmap_pad */,
+ int /* bytes_per_line */
+);
+extern Status XInitImage(
+ XImage* /* image */
+);
+extern XImage *XGetImage(
+ Display* /* display */,
+ Drawable /* d */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned long /* plane_mask */,
+ int /* format */
+);
+extern XImage *XGetSubImage(
+ Display* /* display */,
+ Drawable /* d */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned long /* plane_mask */,
+ int /* format */,
+ XImage* /* dest_image */,
+ int /* dest_x */,
+ int /* dest_y */
+);
+
+/*
+ * X function declarations.
+ */
+extern Display *XOpenDisplay(
+ _Xconst char* /* display_name */
+);
+
+extern void XrmInitialize(
+ void
+);
+
+extern char *XFetchBytes(
+ Display* /* display */,
+ int* /* nbytes_return */
+);
+extern char *XFetchBuffer(
+ Display* /* display */,
+ int* /* nbytes_return */,
+ int /* buffer */
+);
+extern char *XGetAtomName(
+ Display* /* display */,
+ Atom /* atom */
+);
+extern Status XGetAtomNames(
+ Display* /* dpy */,
+ Atom* /* atoms */,
+ int /* count */,
+ char** /* names_return */
+);
+extern char *XGetDefault(
+ Display* /* display */,
+ _Xconst char* /* program */,
+ _Xconst char* /* option */
+);
+extern char *XDisplayName(
+ _Xconst char* /* string */
+);
+extern char *XKeysymToString(
+ KeySym /* keysym */
+);
+
+extern int (*XSynchronize(
+ Display* /* display */,
+ Bool /* onoff */
+))(
+ Display* /* display */
+);
+extern int (*XSetAfterFunction(
+ Display* /* display */,
+ int (*) (
+ Display* /* display */
+ ) /* procedure */
+))(
+ Display* /* display */
+);
+extern Atom XInternAtom(
+ Display* /* display */,
+ _Xconst char* /* atom_name */,
+ Bool /* only_if_exists */
+);
+extern Status XInternAtoms(
+ Display* /* dpy */,
+ char** /* names */,
+ int /* count */,
+ Bool /* onlyIfExists */,
+ Atom* /* atoms_return */
+);
+extern Colormap XCopyColormapAndFree(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+extern Colormap XCreateColormap(
+ Display* /* display */,
+ Window /* w */,
+ Visual* /* visual */,
+ int /* alloc */
+);
+extern Cursor XCreatePixmapCursor(
+ Display* /* display */,
+ Pixmap /* source */,
+ Pixmap /* mask */,
+ XColor* /* foreground_color */,
+ XColor* /* background_color */,
+ unsigned int /* x */,
+ unsigned int /* y */
+);
+extern Cursor XCreateGlyphCursor(
+ Display* /* display */,
+ Font /* source_font */,
+ Font /* mask_font */,
+ unsigned int /* source_char */,
+ unsigned int /* mask_char */,
+ XColor _Xconst * /* foreground_color */,
+ XColor _Xconst * /* background_color */
+);
+extern Cursor XCreateFontCursor(
+ Display* /* display */,
+ unsigned int /* shape */
+);
+extern Font XLoadFont(
+ Display* /* display */,
+ _Xconst char* /* name */
+);
+extern GC XCreateGC(
+ Display* /* display */,
+ Drawable /* d */,
+ unsigned long /* valuemask */,
+ XGCValues* /* values */
+);
+extern GContext XGContextFromGC(
+ GC /* gc */
+);
+extern void XFlushGC(
+ Display* /* display */,
+ GC /* gc */
+);
+extern Pixmap XCreatePixmap(
+ Display* /* display */,
+ Drawable /* d */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int /* depth */
+);
+extern Pixmap XCreateBitmapFromData(
+ Display* /* display */,
+ Drawable /* d */,
+ _Xconst char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+extern Pixmap XCreatePixmapFromBitmapData(
+ Display* /* display */,
+ Drawable /* d */,
+ char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned long /* fg */,
+ unsigned long /* bg */,
+ unsigned int /* depth */
+);
+extern Window XCreateSimpleWindow(
+ Display* /* display */,
+ Window /* parent */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int /* border_width */,
+ unsigned long /* border */,
+ unsigned long /* background */
+);
+extern Window XGetSelectionOwner(
+ Display* /* display */,
+ Atom /* selection */
+);
+extern Window XCreateWindow(
+ Display* /* display */,
+ Window /* parent */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int /* border_width */,
+ int /* depth */,
+ unsigned int /* class */,
+ Visual* /* visual */,
+ unsigned long /* valuemask */,
+ XSetWindowAttributes* /* attributes */
+);
+extern Colormap *XListInstalledColormaps(
+ Display* /* display */,
+ Window /* w */,
+ int* /* num_return */
+);
+extern char **XListFonts(
+ Display* /* display */,
+ _Xconst char* /* pattern */,
+ int /* maxnames */,
+ int* /* actual_count_return */
+);
+extern char **XListFontsWithInfo(
+ Display* /* display */,
+ _Xconst char* /* pattern */,
+ int /* maxnames */,
+ int* /* count_return */,
+ XFontStruct** /* info_return */
+);
+extern char **XGetFontPath(
+ Display* /* display */,
+ int* /* npaths_return */
+);
+extern char **XListExtensions(
+ Display* /* display */,
+ int* /* nextensions_return */
+);
+extern Atom *XListProperties(
+ Display* /* display */,
+ Window /* w */,
+ int* /* num_prop_return */
+);
+extern XHostAddress *XListHosts(
+ Display* /* display */,
+ int* /* nhosts_return */,
+ Bool* /* state_return */
+);
+_X_DEPRECATED
+extern KeySym XKeycodeToKeysym(
+ Display* /* display */,
+#if NeedWidePrototypes
+ unsigned int /* keycode */,
+#else
+ KeyCode /* keycode */,
+#endif
+ int /* index */
+);
+extern KeySym XLookupKeysym(
+ XKeyEvent* /* key_event */,
+ int /* index */
+);
+extern KeySym *XGetKeyboardMapping(
+ Display* /* display */,
+#if NeedWidePrototypes
+ unsigned int /* first_keycode */,
+#else
+ KeyCode /* first_keycode */,
+#endif
+ int /* keycode_count */,
+ int* /* keysyms_per_keycode_return */
+);
+extern KeySym XStringToKeysym(
+ _Xconst char* /* string */
+);
+extern long XMaxRequestSize(
+ Display* /* display */
+);
+extern long XExtendedMaxRequestSize(
+ Display* /* display */
+);
+extern char *XResourceManagerString(
+ Display* /* display */
+);
+extern char *XScreenResourceString(
+ Screen* /* screen */
+);
+extern unsigned long XDisplayMotionBufferSize(
+ Display* /* display */
+);
+extern VisualID XVisualIDFromVisual(
+ Visual* /* visual */
+);
+
+/* multithread routines */
+
+extern Status XInitThreads(
+ void
+);
+
+extern void XLockDisplay(
+ Display* /* display */
+);
+
+extern void XUnlockDisplay(
+ Display* /* display */
+);
+
+/* routines for dealing with extensions */
+
+extern XExtCodes *XInitExtension(
+ Display* /* display */,
+ _Xconst char* /* name */
+);
+
+extern XExtCodes *XAddExtension(
+ Display* /* display */
+);
+extern XExtData *XFindOnExtensionList(
+ XExtData** /* structure */,
+ int /* number */
+);
+extern XExtData **XEHeadOfExtensionList(
+ XEDataObject /* object */
+);
+
+/* these are routines for which there are also macros */
+extern Window XRootWindow(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Window XDefaultRootWindow(
+ Display* /* display */
+);
+extern Window XRootWindowOfScreen(
+ Screen* /* screen */
+);
+extern Visual *XDefaultVisual(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Visual *XDefaultVisualOfScreen(
+ Screen* /* screen */
+);
+extern GC XDefaultGC(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern GC XDefaultGCOfScreen(
+ Screen* /* screen */
+);
+extern unsigned long XBlackPixel(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern unsigned long XWhitePixel(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern unsigned long XAllPlanes(
+ void
+);
+extern unsigned long XBlackPixelOfScreen(
+ Screen* /* screen */
+);
+extern unsigned long XWhitePixelOfScreen(
+ Screen* /* screen */
+);
+extern unsigned long XNextRequest(
+ Display* /* display */
+);
+extern unsigned long XLastKnownRequestProcessed(
+ Display* /* display */
+);
+extern char *XServerVendor(
+ Display* /* display */
+);
+extern char *XDisplayString(
+ Display* /* display */
+);
+extern Colormap XDefaultColormap(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Colormap XDefaultColormapOfScreen(
+ Screen* /* screen */
+);
+extern Display *XDisplayOfScreen(
+ Screen* /* screen */
+);
+extern Screen *XScreenOfDisplay(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Screen *XDefaultScreenOfDisplay(
+ Display* /* display */
+);
+extern long XEventMaskOfScreen(
+ Screen* /* screen */
+);
+
+extern int XScreenNumberOfScreen(
+ Screen* /* screen */
+);
+
+typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */
+ Display* /* display */,
+ XErrorEvent* /* error_event */
+);
+
+extern XErrorHandler XSetErrorHandler (
+ XErrorHandler /* handler */
+);
+
+
+typedef int (*XIOErrorHandler) ( /* WARNING, this type not in Xlib spec */
+ Display* /* display */
+);
+
+extern XIOErrorHandler XSetIOErrorHandler (
+ XIOErrorHandler /* handler */
+);
+
+
+extern XPixmapFormatValues *XListPixmapFormats(
+ Display* /* display */,
+ int* /* count_return */
+);
+extern int *XListDepths(
+ Display* /* display */,
+ int /* screen_number */,
+ int* /* count_return */
+);
+
+/* ICCCM routines for things that don't require special include files; */
+/* other declarations are given in Xutil.h */
+extern Status XReconfigureWMWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* screen_number */,
+ unsigned int /* mask */,
+ XWindowChanges* /* changes */
+);
+
+extern Status XGetWMProtocols(
+ Display* /* display */,
+ Window /* w */,
+ Atom** /* protocols_return */,
+ int* /* count_return */
+);
+extern Status XSetWMProtocols(
+ Display* /* display */,
+ Window /* w */,
+ Atom* /* protocols */,
+ int /* count */
+);
+extern Status XIconifyWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* screen_number */
+);
+extern Status XWithdrawWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* screen_number */
+);
+extern Status XGetCommand(
+ Display* /* display */,
+ Window /* w */,
+ char*** /* argv_return */,
+ int* /* argc_return */
+);
+extern Status XGetWMColormapWindows(
+ Display* /* display */,
+ Window /* w */,
+ Window** /* windows_return */,
+ int* /* count_return */
+);
+extern Status XSetWMColormapWindows(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* colormap_windows */,
+ int /* count */
+);
+extern void XFreeStringList(
+ char** /* list */
+);
+extern int XSetTransientForHint(
+ Display* /* display */,
+ Window /* w */,
+ Window /* prop_window */
+);
+
+/* The following are given in alphabetical order */
+
+extern int XActivateScreenSaver(
+ Display* /* display */
+);
+
+extern int XAddHost(
+ Display* /* display */,
+ XHostAddress* /* host */
+);
+
+extern int XAddHosts(
+ Display* /* display */,
+ XHostAddress* /* hosts */,
+ int /* num_hosts */
+);
+
+extern int XAddToExtensionList(
+ struct _XExtData** /* structure */,
+ XExtData* /* ext_data */
+);
+
+extern int XAddToSaveSet(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern Status XAllocColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* screen_in_out */
+);
+
+extern Status XAllocColorCells(
+ Display* /* display */,
+ Colormap /* colormap */,
+ Bool /* contig */,
+ unsigned long* /* plane_masks_return */,
+ unsigned int /* nplanes */,
+ unsigned long* /* pixels_return */,
+ unsigned int /* npixels */
+);
+
+extern Status XAllocColorPlanes(
+ Display* /* display */,
+ Colormap /* colormap */,
+ Bool /* contig */,
+ unsigned long* /* pixels_return */,
+ int /* ncolors */,
+ int /* nreds */,
+ int /* ngreens */,
+ int /* nblues */,
+ unsigned long* /* rmask_return */,
+ unsigned long* /* gmask_return */,
+ unsigned long* /* bmask_return */
+);
+
+extern Status XAllocNamedColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_name */,
+ XColor* /* screen_def_return */,
+ XColor* /* exact_def_return */
+);
+
+extern int XAllowEvents(
+ Display* /* display */,
+ int /* event_mode */,
+ Time /* time */
+);
+
+extern int XAutoRepeatOff(
+ Display* /* display */
+);
+
+extern int XAutoRepeatOn(
+ Display* /* display */
+);
+
+extern int XBell(
+ Display* /* display */,
+ int /* percent */
+);
+
+extern int XBitmapBitOrder(
+ Display* /* display */
+);
+
+extern int XBitmapPad(
+ Display* /* display */
+);
+
+extern int XBitmapUnit(
+ Display* /* display */
+);
+
+extern int XCellsOfScreen(
+ Screen* /* screen */
+);
+
+extern int XChangeActivePointerGrab(
+ Display* /* display */,
+ unsigned int /* event_mask */,
+ Cursor /* cursor */,
+ Time /* time */
+);
+
+extern int XChangeGC(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* valuemask */,
+ XGCValues* /* values */
+);
+
+extern int XChangeKeyboardControl(
+ Display* /* display */,
+ unsigned long /* value_mask */,
+ XKeyboardControl* /* values */
+);
+
+extern int XChangeKeyboardMapping(
+ Display* /* display */,
+ int /* first_keycode */,
+ int /* keysyms_per_keycode */,
+ KeySym* /* keysyms */,
+ int /* num_codes */
+);
+
+extern int XChangePointerControl(
+ Display* /* display */,
+ Bool /* do_accel */,
+ Bool /* do_threshold */,
+ int /* accel_numerator */,
+ int /* accel_denominator */,
+ int /* threshold */
+);
+
+extern int XChangeProperty(
+ Display* /* display */,
+ Window /* w */,
+ Atom /* property */,
+ Atom /* type */,
+ int /* format */,
+ int /* mode */,
+ _Xconst unsigned char* /* data */,
+ int /* nelements */
+);
+
+extern int XChangeSaveSet(
+ Display* /* display */,
+ Window /* w */,
+ int /* change_mode */
+);
+
+extern int XChangeWindowAttributes(
+ Display* /* display */,
+ Window /* w */,
+ unsigned long /* valuemask */,
+ XSetWindowAttributes* /* attributes */
+);
+
+extern Bool XCheckIfEvent(
+ Display* /* display */,
+ XEvent* /* event_return */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* event */,
+ XPointer /* arg */
+ ) /* predicate */,
+ XPointer /* arg */
+);
+
+extern Bool XCheckMaskEvent(
+ Display* /* display */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern Bool XCheckTypedEvent(
+ Display* /* display */,
+ int /* event_type */,
+ XEvent* /* event_return */
+);
+
+extern Bool XCheckTypedWindowEvent(
+ Display* /* display */,
+ Window /* w */,
+ int /* event_type */,
+ XEvent* /* event_return */
+);
+
+extern Bool XCheckWindowEvent(
+ Display* /* display */,
+ Window /* w */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern int XCirculateSubwindows(
+ Display* /* display */,
+ Window /* w */,
+ int /* direction */
+);
+
+extern int XCirculateSubwindowsDown(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XCirculateSubwindowsUp(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XClearArea(
+ Display* /* display */,
+ Window /* w */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ Bool /* exposures */
+);
+
+extern int XClearWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XCloseDisplay(
+ Display* /* display */
+);
+
+extern int XConfigureWindow(
+ Display* /* display */,
+ Window /* w */,
+ unsigned int /* value_mask */,
+ XWindowChanges* /* values */
+);
+
+extern int XConnectionNumber(
+ Display* /* display */
+);
+
+extern int XConvertSelection(
+ Display* /* display */,
+ Atom /* selection */,
+ Atom /* target */,
+ Atom /* property */,
+ Window /* requestor */,
+ Time /* time */
+);
+
+extern int XCopyArea(
+ Display* /* display */,
+ Drawable /* src */,
+ Drawable /* dest */,
+ GC /* gc */,
+ int /* src_x */,
+ int /* src_y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* dest_x */,
+ int /* dest_y */
+);
+
+extern int XCopyGC(
+ Display* /* display */,
+ GC /* src */,
+ unsigned long /* valuemask */,
+ GC /* dest */
+);
+
+extern int XCopyPlane(
+ Display* /* display */,
+ Drawable /* src */,
+ Drawable /* dest */,
+ GC /* gc */,
+ int /* src_x */,
+ int /* src_y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* dest_x */,
+ int /* dest_y */,
+ unsigned long /* plane */
+);
+
+extern int XDefaultDepth(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDefaultDepthOfScreen(
+ Screen* /* screen */
+);
+
+extern int XDefaultScreen(
+ Display* /* display */
+);
+
+extern int XDefineCursor(
+ Display* /* display */,
+ Window /* w */,
+ Cursor /* cursor */
+);
+
+extern int XDeleteProperty(
+ Display* /* display */,
+ Window /* w */,
+ Atom /* property */
+);
+
+extern int XDestroyWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XDestroySubwindows(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XDoesBackingStore(
+ Screen* /* screen */
+);
+
+extern Bool XDoesSaveUnders(
+ Screen* /* screen */
+);
+
+extern int XDisableAccessControl(
+ Display* /* display */
+);
+
+
+extern int XDisplayCells(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayHeight(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayHeightMM(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayKeycodes(
+ Display* /* display */,
+ int* /* min_keycodes_return */,
+ int* /* max_keycodes_return */
+);
+
+extern int XDisplayPlanes(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayWidth(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayWidthMM(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDrawArc(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* angle1 */,
+ int /* angle2 */
+);
+
+extern int XDrawArcs(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XArc* /* arcs */,
+ int /* narcs */
+);
+
+extern int XDrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* string */,
+ int /* length */
+);
+
+extern int XDrawImageString16(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst XChar2b* /* string */,
+ int /* length */
+);
+
+extern int XDrawLine(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x1 */,
+ int /* y1 */,
+ int /* x2 */,
+ int /* y2 */
+);
+
+extern int XDrawLines(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XPoint* /* points */,
+ int /* npoints */,
+ int /* mode */
+);
+
+extern int XDrawPoint(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */
+);
+
+extern int XDrawPoints(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XPoint* /* points */,
+ int /* npoints */,
+ int /* mode */
+);
+
+extern int XDrawRectangle(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XDrawRectangles(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XRectangle* /* rectangles */,
+ int /* nrectangles */
+);
+
+extern int XDrawSegments(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XSegment* /* segments */,
+ int /* nsegments */
+);
+
+extern int XDrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* string */,
+ int /* length */
+);
+
+extern int XDrawString16(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst XChar2b* /* string */,
+ int /* length */
+);
+
+extern int XDrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XTextItem* /* items */,
+ int /* nitems */
+);
+
+extern int XDrawText16(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XTextItem16* /* items */,
+ int /* nitems */
+);
+
+extern int XEnableAccessControl(
+ Display* /* display */
+);
+
+extern int XEventsQueued(
+ Display* /* display */,
+ int /* mode */
+);
+
+extern Status XFetchName(
+ Display* /* display */,
+ Window /* w */,
+ char** /* window_name_return */
+);
+
+extern int XFillArc(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* angle1 */,
+ int /* angle2 */
+);
+
+extern int XFillArcs(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XArc* /* arcs */,
+ int /* narcs */
+);
+
+extern int XFillPolygon(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XPoint* /* points */,
+ int /* npoints */,
+ int /* shape */,
+ int /* mode */
+);
+
+extern int XFillRectangle(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XFillRectangles(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XRectangle* /* rectangles */,
+ int /* nrectangles */
+);
+
+extern int XFlush(
+ Display* /* display */
+);
+
+extern int XForceScreenSaver(
+ Display* /* display */,
+ int /* mode */
+);
+
+extern int XFree(
+ void* /* data */
+);
+
+extern int XFreeColormap(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+
+extern int XFreeColors(
+ Display* /* display */,
+ Colormap /* colormap */,
+ unsigned long* /* pixels */,
+ int /* npixels */,
+ unsigned long /* planes */
+);
+
+extern int XFreeCursor(
+ Display* /* display */,
+ Cursor /* cursor */
+);
+
+extern int XFreeExtensionList(
+ char** /* list */
+);
+
+extern int XFreeFont(
+ Display* /* display */,
+ XFontStruct* /* font_struct */
+);
+
+extern int XFreeFontInfo(
+ char** /* names */,
+ XFontStruct* /* free_info */,
+ int /* actual_count */
+);
+
+extern int XFreeFontNames(
+ char** /* list */
+);
+
+extern int XFreeFontPath(
+ char** /* list */
+);
+
+extern int XFreeGC(
+ Display* /* display */,
+ GC /* gc */
+);
+
+extern int XFreeModifiermap(
+ XModifierKeymap* /* modmap */
+);
+
+extern int XFreePixmap(
+ Display* /* display */,
+ Pixmap /* pixmap */
+);
+
+extern int XGeometry(
+ Display* /* display */,
+ int /* screen */,
+ _Xconst char* /* position */,
+ _Xconst char* /* default_position */,
+ unsigned int /* bwidth */,
+ unsigned int /* fwidth */,
+ unsigned int /* fheight */,
+ int /* xadder */,
+ int /* yadder */,
+ int* /* x_return */,
+ int* /* y_return */,
+ int* /* width_return */,
+ int* /* height_return */
+);
+
+extern int XGetErrorDatabaseText(
+ Display* /* display */,
+ _Xconst char* /* name */,
+ _Xconst char* /* message */,
+ _Xconst char* /* default_string */,
+ char* /* buffer_return */,
+ int /* length */
+);
+
+extern int XGetErrorText(
+ Display* /* display */,
+ int /* code */,
+ char* /* buffer_return */,
+ int /* length */
+);
+
+extern Bool XGetFontProperty(
+ XFontStruct* /* font_struct */,
+ Atom /* atom */,
+ unsigned long* /* value_return */
+);
+
+extern Status XGetGCValues(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* valuemask */,
+ XGCValues* /* values_return */
+);
+
+extern Status XGetGeometry(
+ Display* /* display */,
+ Drawable /* d */,
+ Window* /* root_return */,
+ int* /* x_return */,
+ int* /* y_return */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */,
+ unsigned int* /* border_width_return */,
+ unsigned int* /* depth_return */
+);
+
+extern Status XGetIconName(
+ Display* /* display */,
+ Window /* w */,
+ char** /* icon_name_return */
+);
+
+extern int XGetInputFocus(
+ Display* /* display */,
+ Window* /* focus_return */,
+ int* /* revert_to_return */
+);
+
+extern int XGetKeyboardControl(
+ Display* /* display */,
+ XKeyboardState* /* values_return */
+);
+
+extern int XGetPointerControl(
+ Display* /* display */,
+ int* /* accel_numerator_return */,
+ int* /* accel_denominator_return */,
+ int* /* threshold_return */
+);
+
+extern int XGetPointerMapping(
+ Display* /* display */,
+ unsigned char* /* map_return */,
+ int /* nmap */
+);
+
+extern int XGetScreenSaver(
+ Display* /* display */,
+ int* /* timeout_return */,
+ int* /* interval_return */,
+ int* /* prefer_blanking_return */,
+ int* /* allow_exposures_return */
+);
+
+extern Status XGetTransientForHint(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* prop_window_return */
+);
+
+extern int XGetWindowProperty(
+ Display* /* display */,
+ Window /* w */,
+ Atom /* property */,
+ long /* long_offset */,
+ long /* long_length */,
+ Bool /* delete */,
+ Atom /* req_type */,
+ Atom* /* actual_type_return */,
+ int* /* actual_format_return */,
+ unsigned long* /* nitems_return */,
+ unsigned long* /* bytes_after_return */,
+ unsigned char** /* prop_return */
+);
+
+extern Status XGetWindowAttributes(
+ Display* /* display */,
+ Window /* w */,
+ XWindowAttributes* /* window_attributes_return */
+);
+
+extern int XGrabButton(
+ Display* /* display */,
+ unsigned int /* button */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */
+);
+
+extern int XGrabKey(
+ Display* /* display */,
+ int /* keycode */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern int XGrabKeyboard(
+ Display* /* display */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Time /* time */
+);
+
+extern int XGrabPointer(
+ Display* /* display */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */,
+ Time /* time */
+);
+
+extern int XGrabServer(
+ Display* /* display */
+);
+
+extern int XHeightMMOfScreen(
+ Screen* /* screen */
+);
+
+extern int XHeightOfScreen(
+ Screen* /* screen */
+);
+
+extern int XIfEvent(
+ Display* /* display */,
+ XEvent* /* event_return */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* event */,
+ XPointer /* arg */
+ ) /* predicate */,
+ XPointer /* arg */
+);
+
+extern int XImageByteOrder(
+ Display* /* display */
+);
+
+extern int XInstallColormap(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+
+extern KeyCode XKeysymToKeycode(
+ Display* /* display */,
+ KeySym /* keysym */
+);
+
+extern int XKillClient(
+ Display* /* display */,
+ XID /* resource */
+);
+
+extern Status XLookupColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_name */,
+ XColor* /* exact_def_return */,
+ XColor* /* screen_def_return */
+);
+
+extern int XLowerWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMapRaised(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMapSubwindows(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMapWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMaskEvent(
+ Display* /* display */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern int XMaxCmapsOfScreen(
+ Screen* /* screen */
+);
+
+extern int XMinCmapsOfScreen(
+ Screen* /* screen */
+);
+
+extern int XMoveResizeWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XMoveWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* x */,
+ int /* y */
+);
+
+extern int XNextEvent(
+ Display* /* display */,
+ XEvent* /* event_return */
+);
+
+extern int XNoOp(
+ Display* /* display */
+);
+
+extern Status XParseColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* spec */,
+ XColor* /* exact_def_return */
+);
+
+extern int XParseGeometry(
+ _Xconst char* /* parsestring */,
+ int* /* x_return */,
+ int* /* y_return */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern int XPeekEvent(
+ Display* /* display */,
+ XEvent* /* event_return */
+);
+
+extern int XPeekIfEvent(
+ Display* /* display */,
+ XEvent* /* event_return */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* event */,
+ XPointer /* arg */
+ ) /* predicate */,
+ XPointer /* arg */
+);
+
+extern int XPending(
+ Display* /* display */
+);
+
+extern int XPlanesOfScreen(
+ Screen* /* screen */
+);
+
+extern int XProtocolRevision(
+ Display* /* display */
+);
+
+extern int XProtocolVersion(
+ Display* /* display */
+);
+
+
+extern int XPutBackEvent(
+ Display* /* display */,
+ XEvent* /* event */
+);
+
+extern int XPutImage(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XImage* /* image */,
+ int /* src_x */,
+ int /* src_y */,
+ int /* dest_x */,
+ int /* dest_y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XQLength(
+ Display* /* display */
+);
+
+extern Status XQueryBestCursor(
+ Display* /* display */,
+ Drawable /* d */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern Status XQueryBestSize(
+ Display* /* display */,
+ int /* class */,
+ Drawable /* which_screen */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern Status XQueryBestStipple(
+ Display* /* display */,
+ Drawable /* which_screen */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern Status XQueryBestTile(
+ Display* /* display */,
+ Drawable /* which_screen */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern int XQueryColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* def_in_out */
+);
+
+extern int XQueryColors(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* defs_in_out */,
+ int /* ncolors */
+);
+
+extern Bool XQueryExtension(
+ Display* /* display */,
+ _Xconst char* /* name */,
+ int* /* major_opcode_return */,
+ int* /* first_event_return */,
+ int* /* first_error_return */
+);
+
+extern int XQueryKeymap(
+ Display* /* display */,
+ char [32] /* keys_return */
+);
+
+extern Bool XQueryPointer(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* root_return */,
+ Window* /* child_return */,
+ int* /* root_x_return */,
+ int* /* root_y_return */,
+ int* /* win_x_return */,
+ int* /* win_y_return */,
+ unsigned int* /* mask_return */
+);
+
+extern int XQueryTextExtents(
+ Display* /* display */,
+ XID /* font_ID */,
+ _Xconst char* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern int XQueryTextExtents16(
+ Display* /* display */,
+ XID /* font_ID */,
+ _Xconst XChar2b* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern Status XQueryTree(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* root_return */,
+ Window* /* parent_return */,
+ Window** /* children_return */,
+ unsigned int* /* nchildren_return */
+);
+
+extern int XRaiseWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XReadBitmapFile(
+ Display* /* display */,
+ Drawable /* d */,
+ _Xconst char* /* filename */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */,
+ Pixmap* /* bitmap_return */,
+ int* /* x_hot_return */,
+ int* /* y_hot_return */
+);
+
+extern int XReadBitmapFileData(
+ _Xconst char* /* filename */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */,
+ unsigned char** /* data_return */,
+ int* /* x_hot_return */,
+ int* /* y_hot_return */
+);
+
+extern int XRebindKeysym(
+ Display* /* display */,
+ KeySym /* keysym */,
+ KeySym* /* list */,
+ int /* mod_count */,
+ _Xconst unsigned char* /* string */,
+ int /* bytes_string */
+);
+
+extern int XRecolorCursor(
+ Display* /* display */,
+ Cursor /* cursor */,
+ XColor* /* foreground_color */,
+ XColor* /* background_color */
+);
+
+extern int XRefreshKeyboardMapping(
+ XMappingEvent* /* event_map */
+);
+
+extern int XRemoveFromSaveSet(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XRemoveHost(
+ Display* /* display */,
+ XHostAddress* /* host */
+);
+
+extern int XRemoveHosts(
+ Display* /* display */,
+ XHostAddress* /* hosts */,
+ int /* num_hosts */
+);
+
+extern int XReparentWindow(
+ Display* /* display */,
+ Window /* w */,
+ Window /* parent */,
+ int /* x */,
+ int /* y */
+);
+
+extern int XResetScreenSaver(
+ Display* /* display */
+);
+
+extern int XResizeWindow(
+ Display* /* display */,
+ Window /* w */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XRestackWindows(
+ Display* /* display */,
+ Window* /* windows */,
+ int /* nwindows */
+);
+
+extern int XRotateBuffers(
+ Display* /* display */,
+ int /* rotate */
+);
+
+extern int XRotateWindowProperties(
+ Display* /* display */,
+ Window /* w */,
+ Atom* /* properties */,
+ int /* num_prop */,
+ int /* npositions */
+);
+
+extern int XScreenCount(
+ Display* /* display */
+);
+
+extern int XSelectInput(
+ Display* /* display */,
+ Window /* w */,
+ long /* event_mask */
+);
+
+extern Status XSendEvent(
+ Display* /* display */,
+ Window /* w */,
+ Bool /* propagate */,
+ long /* event_mask */,
+ XEvent* /* event_send */
+);
+
+extern int XSetAccessControl(
+ Display* /* display */,
+ int /* mode */
+);
+
+extern int XSetArcMode(
+ Display* /* display */,
+ GC /* gc */,
+ int /* arc_mode */
+);
+
+extern int XSetBackground(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* background */
+);
+
+extern int XSetClipMask(
+ Display* /* display */,
+ GC /* gc */,
+ Pixmap /* pixmap */
+);
+
+extern int XSetClipOrigin(
+ Display* /* display */,
+ GC /* gc */,
+ int /* clip_x_origin */,
+ int /* clip_y_origin */
+);
+
+extern int XSetClipRectangles(
+ Display* /* display */,
+ GC /* gc */,
+ int /* clip_x_origin */,
+ int /* clip_y_origin */,
+ XRectangle* /* rectangles */,
+ int /* n */,
+ int /* ordering */
+);
+
+extern int XSetCloseDownMode(
+ Display* /* display */,
+ int /* close_mode */
+);
+
+extern int XSetCommand(
+ Display* /* display */,
+ Window /* w */,
+ char** /* argv */,
+ int /* argc */
+);
+
+extern int XSetDashes(
+ Display* /* display */,
+ GC /* gc */,
+ int /* dash_offset */,
+ _Xconst char* /* dash_list */,
+ int /* n */
+);
+
+extern int XSetFillRule(
+ Display* /* display */,
+ GC /* gc */,
+ int /* fill_rule */
+);
+
+extern int XSetFillStyle(
+ Display* /* display */,
+ GC /* gc */,
+ int /* fill_style */
+);
+
+extern int XSetFont(
+ Display* /* display */,
+ GC /* gc */,
+ Font /* font */
+);
+
+extern int XSetFontPath(
+ Display* /* display */,
+ char** /* directories */,
+ int /* ndirs */
+);
+
+extern int XSetForeground(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* foreground */
+);
+
+extern int XSetFunction(
+ Display* /* display */,
+ GC /* gc */,
+ int /* function */
+);
+
+extern int XSetGraphicsExposures(
+ Display* /* display */,
+ GC /* gc */,
+ Bool /* graphics_exposures */
+);
+
+extern int XSetIconName(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* icon_name */
+);
+
+extern int XSetInputFocus(
+ Display* /* display */,
+ Window /* focus */,
+ int /* revert_to */,
+ Time /* time */
+);
+
+extern int XSetLineAttributes(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned int /* line_width */,
+ int /* line_style */,
+ int /* cap_style */,
+ int /* join_style */
+);
+
+extern int XSetModifierMapping(
+ Display* /* display */,
+ XModifierKeymap* /* modmap */
+);
+
+extern int XSetPlaneMask(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* plane_mask */
+);
+
+extern int XSetPointerMapping(
+ Display* /* display */,
+ _Xconst unsigned char* /* map */,
+ int /* nmap */
+);
+
+extern int XSetScreenSaver(
+ Display* /* display */,
+ int /* timeout */,
+ int /* interval */,
+ int /* prefer_blanking */,
+ int /* allow_exposures */
+);
+
+extern int XSetSelectionOwner(
+ Display* /* display */,
+ Atom /* selection */,
+ Window /* owner */,
+ Time /* time */
+);
+
+extern int XSetState(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* foreground */,
+ unsigned long /* background */,
+ int /* function */,
+ unsigned long /* plane_mask */
+);
+
+extern int XSetStipple(
+ Display* /* display */,
+ GC /* gc */,
+ Pixmap /* stipple */
+);
+
+extern int XSetSubwindowMode(
+ Display* /* display */,
+ GC /* gc */,
+ int /* subwindow_mode */
+);
+
+extern int XSetTSOrigin(
+ Display* /* display */,
+ GC /* gc */,
+ int /* ts_x_origin */,
+ int /* ts_y_origin */
+);
+
+extern int XSetTile(
+ Display* /* display */,
+ GC /* gc */,
+ Pixmap /* tile */
+);
+
+extern int XSetWindowBackground(
+ Display* /* display */,
+ Window /* w */,
+ unsigned long /* background_pixel */
+);
+
+extern int XSetWindowBackgroundPixmap(
+ Display* /* display */,
+ Window /* w */,
+ Pixmap /* background_pixmap */
+);
+
+extern int XSetWindowBorder(
+ Display* /* display */,
+ Window /* w */,
+ unsigned long /* border_pixel */
+);
+
+extern int XSetWindowBorderPixmap(
+ Display* /* display */,
+ Window /* w */,
+ Pixmap /* border_pixmap */
+);
+
+extern int XSetWindowBorderWidth(
+ Display* /* display */,
+ Window /* w */,
+ unsigned int /* width */
+);
+
+extern int XSetWindowColormap(
+ Display* /* display */,
+ Window /* w */,
+ Colormap /* colormap */
+);
+
+extern int XStoreBuffer(
+ Display* /* display */,
+ _Xconst char* /* bytes */,
+ int /* nbytes */,
+ int /* buffer */
+);
+
+extern int XStoreBytes(
+ Display* /* display */,
+ _Xconst char* /* bytes */,
+ int /* nbytes */
+);
+
+extern int XStoreColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* color */
+);
+
+extern int XStoreColors(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* color */,
+ int /* ncolors */
+);
+
+extern int XStoreName(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */
+);
+
+extern int XStoreNamedColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* color */,
+ unsigned long /* pixel */,
+ int /* flags */
+);
+
+extern int XSync(
+ Display* /* display */,
+ Bool /* discard */
+);
+
+extern int XTextExtents(
+ XFontStruct* /* font_struct */,
+ _Xconst char* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern int XTextExtents16(
+ XFontStruct* /* font_struct */,
+ _Xconst XChar2b* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern int XTextWidth(
+ XFontStruct* /* font_struct */,
+ _Xconst char* /* string */,
+ int /* count */
+);
+
+extern int XTextWidth16(
+ XFontStruct* /* font_struct */,
+ _Xconst XChar2b* /* string */,
+ int /* count */
+);
+
+extern Bool XTranslateCoordinates(
+ Display* /* display */,
+ Window /* src_w */,
+ Window /* dest_w */,
+ int /* src_x */,
+ int /* src_y */,
+ int* /* dest_x_return */,
+ int* /* dest_y_return */,
+ Window* /* child_return */
+);
+
+extern int XUndefineCursor(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XUngrabButton(
+ Display* /* display */,
+ unsigned int /* button */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */
+);
+
+extern int XUngrabKey(
+ Display* /* display */,
+ int /* keycode */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */
+);
+
+extern int XUngrabKeyboard(
+ Display* /* display */,
+ Time /* time */
+);
+
+extern int XUngrabPointer(
+ Display* /* display */,
+ Time /* time */
+);
+
+extern int XUngrabServer(
+ Display* /* display */
+);
+
+extern int XUninstallColormap(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+
+extern int XUnloadFont(
+ Display* /* display */,
+ Font /* font */
+);
+
+extern int XUnmapSubwindows(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XUnmapWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XVendorRelease(
+ Display* /* display */
+);
+
+extern int XWarpPointer(
+ Display* /* display */,
+ Window /* src_w */,
+ Window /* dest_w */,
+ int /* src_x */,
+ int /* src_y */,
+ unsigned int /* src_width */,
+ unsigned int /* src_height */,
+ int /* dest_x */,
+ int /* dest_y */
+);
+
+extern int XWidthMMOfScreen(
+ Screen* /* screen */
+);
+
+extern int XWidthOfScreen(
+ Screen* /* screen */
+);
+
+extern int XWindowEvent(
+ Display* /* display */,
+ Window /* w */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern int XWriteBitmapFile(
+ Display* /* display */,
+ _Xconst char* /* filename */,
+ Pixmap /* bitmap */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* x_hot */,
+ int /* y_hot */
+);
+
+extern Bool XSupportsLocale (void);
+
+extern char *XSetLocaleModifiers(
+ const char* /* modifier_list */
+);
+
+extern XOM XOpenOM(
+ Display* /* display */,
+ struct _XrmHashBucketRec* /* rdb */,
+ _Xconst char* /* res_name */,
+ _Xconst char* /* res_class */
+);
+
+extern Status XCloseOM(
+ XOM /* om */
+);
+
+extern char *XSetOMValues(
+ XOM /* om */,
+ ...
+) _X_SENTINEL(0);
+
+extern char *XGetOMValues(
+ XOM /* om */,
+ ...
+) _X_SENTINEL(0);
+
+extern Display *XDisplayOfOM(
+ XOM /* om */
+);
+
+extern char *XLocaleOfOM(
+ XOM /* om */
+);
+
+extern XOC XCreateOC(
+ XOM /* om */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XDestroyOC(
+ XOC /* oc */
+);
+
+extern XOM XOMOfOC(
+ XOC /* oc */
+);
+
+extern char *XSetOCValues(
+ XOC /* oc */,
+ ...
+) _X_SENTINEL(0);
+
+extern char *XGetOCValues(
+ XOC /* oc */,
+ ...
+) _X_SENTINEL(0);
+
+extern XFontSet XCreateFontSet(
+ Display* /* display */,
+ _Xconst char* /* base_font_name_list */,
+ char*** /* missing_charset_list */,
+ int* /* missing_charset_count */,
+ char** /* def_string */
+);
+
+extern void XFreeFontSet(
+ Display* /* display */,
+ XFontSet /* font_set */
+);
+
+extern int XFontsOfFontSet(
+ XFontSet /* font_set */,
+ XFontStruct*** /* font_struct_list */,
+ char*** /* font_name_list */
+);
+
+extern char *XBaseFontNameListOfFontSet(
+ XFontSet /* font_set */
+);
+
+extern char *XLocaleOfFontSet(
+ XFontSet /* font_set */
+);
+
+extern Bool XContextDependentDrawing(
+ XFontSet /* font_set */
+);
+
+extern Bool XDirectionalDependentDrawing(
+ XFontSet /* font_set */
+);
+
+extern Bool XContextualDrawing(
+ XFontSet /* font_set */
+);
+
+extern XFontSetExtents *XExtentsOfFontSet(
+ XFontSet /* font_set */
+);
+
+extern int XmbTextEscapement(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern int XwcTextEscapement(
+ XFontSet /* font_set */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */
+);
+
+extern int Xutf8TextEscapement(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern int XmbTextExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern int XwcTextExtents(
+ XFontSet /* font_set */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern int Xutf8TextExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern Status XmbTextPerCharExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* ink_extents_buffer */,
+ XRectangle* /* logical_extents_buffer */,
+ int /* buffer_size */,
+ int* /* num_chars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern Status XwcTextPerCharExtents(
+ XFontSet /* font_set */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */,
+ XRectangle* /* ink_extents_buffer */,
+ XRectangle* /* logical_extents_buffer */,
+ int /* buffer_size */,
+ int* /* num_chars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern Status Xutf8TextPerCharExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* ink_extents_buffer */,
+ XRectangle* /* logical_extents_buffer */,
+ int /* buffer_size */,
+ int* /* num_chars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern void XmbDrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XmbTextItem* /* text_items */,
+ int /* nitems */
+);
+
+extern void XwcDrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XwcTextItem* /* text_items */,
+ int /* nitems */
+);
+
+extern void Xutf8DrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XmbTextItem* /* text_items */,
+ int /* nitems */
+);
+
+extern void XmbDrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern void XwcDrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */
+);
+
+extern void Xutf8DrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern void XmbDrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern void XwcDrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */
+);
+
+extern void Xutf8DrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern XIM XOpenIM(
+ Display* /* dpy */,
+ struct _XrmHashBucketRec* /* rdb */,
+ char* /* res_name */,
+ char* /* res_class */
+);
+
+extern Status XCloseIM(
+ XIM /* im */
+);
+
+extern char *XGetIMValues(
+ XIM /* im */, ...
+) _X_SENTINEL(0);
+
+extern char *XSetIMValues(
+ XIM /* im */, ...
+) _X_SENTINEL(0);
+
+extern Display *XDisplayOfIM(
+ XIM /* im */
+);
+
+extern char *XLocaleOfIM(
+ XIM /* im*/
+);
+
+extern XIC XCreateIC(
+ XIM /* im */, ...
+) _X_SENTINEL(0);
+
+extern void XDestroyIC(
+ XIC /* ic */
+);
+
+extern void XSetICFocus(
+ XIC /* ic */
+);
+
+extern void XUnsetICFocus(
+ XIC /* ic */
+);
+
+extern wchar_t *XwcResetIC(
+ XIC /* ic */
+);
+
+extern char *XmbResetIC(
+ XIC /* ic */
+);
+
+extern char *Xutf8ResetIC(
+ XIC /* ic */
+);
+
+extern char *XSetICValues(
+ XIC /* ic */, ...
+) _X_SENTINEL(0);
+
+extern char *XGetICValues(
+ XIC /* ic */, ...
+) _X_SENTINEL(0);
+
+extern XIM XIMOfIC(
+ XIC /* ic */
+);
+
+extern Bool XFilterEvent(
+ XEvent* /* event */,
+ Window /* window */
+);
+
+extern int XmbLookupString(
+ XIC /* ic */,
+ XKeyPressedEvent* /* event */,
+ char* /* buffer_return */,
+ int /* bytes_buffer */,
+ KeySym* /* keysym_return */,
+ Status* /* status_return */
+);
+
+extern int XwcLookupString(
+ XIC /* ic */,
+ XKeyPressedEvent* /* event */,
+ wchar_t* /* buffer_return */,
+ int /* wchars_buffer */,
+ KeySym* /* keysym_return */,
+ Status* /* status_return */
+);
+
+extern int Xutf8LookupString(
+ XIC /* ic */,
+ XKeyPressedEvent* /* event */,
+ char* /* buffer_return */,
+ int /* bytes_buffer */,
+ KeySym* /* keysym_return */,
+ Status* /* status_return */
+);
+
+extern XVaNestedList XVaCreateNestedList(
+ int /*unused*/, ...
+) _X_SENTINEL(0);
+
+/* internal connections for IMs */
+
+extern Bool XRegisterIMInstantiateCallback(
+ Display* /* dpy */,
+ struct _XrmHashBucketRec* /* rdb */,
+ char* /* res_name */,
+ char* /* res_class */,
+ XIDProc /* callback */,
+ XPointer /* client_data */
+);
+
+extern Bool XUnregisterIMInstantiateCallback(
+ Display* /* dpy */,
+ struct _XrmHashBucketRec* /* rdb */,
+ char* /* res_name */,
+ char* /* res_class */,
+ XIDProc /* callback */,
+ XPointer /* client_data */
+);
+
+typedef void (*XConnectionWatchProc)(
+ Display* /* dpy */,
+ XPointer /* client_data */,
+ int /* fd */,
+ Bool /* opening */, /* open or close flag */
+ XPointer* /* watch_data */ /* open sets, close uses */
+);
+
+
+extern Status XInternalConnectionNumbers(
+ Display* /* dpy */,
+ int** /* fd_return */,
+ int* /* count_return */
+);
+
+extern void XProcessInternalConnection(
+ Display* /* dpy */,
+ int /* fd */
+);
+
+extern Status XAddConnectionWatch(
+ Display* /* dpy */,
+ XConnectionWatchProc /* callback */,
+ XPointer /* client_data */
+);
+
+extern void XRemoveConnectionWatch(
+ Display* /* dpy */,
+ XConnectionWatchProc /* callback */,
+ XPointer /* client_data */
+);
+
+extern void XSetAuthorization(
+ char * /* name */,
+ int /* namelen */,
+ char * /* data */,
+ int /* datalen */
+);
+
+extern int _Xmbtowc(
+ wchar_t * /* wstr */,
+ char * /* str */,
+ int /* len */
+);
+
+extern int _Xwctomb(
+ char * /* str */,
+ wchar_t /* wc */
+);
+
+extern Bool XGetEventData(
+ Display* /* dpy */,
+ XGenericEventCookie* /* cookie*/
+);
+
+extern void XFreeEventData(
+ Display* /* dpy */,
+ XGenericEventCookie* /* cookie*/
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XLIB_H_ */
diff --git a/X11/XlibConf.h b/X11/XlibConf.h
new file mode 100644
index 000000000..eda569510
--- /dev/null
+++ b/X11/XlibConf.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright © 2005 Keith Packard
+ *
+ * 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, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD 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 _XLIBCONF_H_
+#define _XLIBCONF_H_
+/*
+ * This header file exports defines necessary to correctly
+ * use Xlibint.h both inside Xlib and by external libraries
+ * such as extensions.
+ */
+
+/* Threading support? */
+#define XTHREADS /**/
+
+/* Use multi-threaded libc functions? */
+#define XUSE_MTSAFE_API /**/
+
+#endif /* _XLIBCONF_H_ */
diff --git a/X11/Xlibint.h b/X11/Xlibint.h
new file mode 100644
index 000000000..e7d2487cf
--- /dev/null
+++ b/X11/Xlibint.h
@@ -0,0 +1,1337 @@
+
+/*
+
+Copyright 1984, 1985, 1987, 1989, 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.
+
+*/
+
+#ifndef _X11_XLIBINT_H_
+#define _X11_XLIBINT_H_ 1
+
+/*
+ * Xlibint.h - Header definition and support file for the internal
+ * support routines used by the C subroutine interface
+ * library (Xlib) to the X Window System.
+ *
+ * Warning, there be dragons here....
+ */
+
+#include <X11/Xlib.h>
+#include <X11/Xproto.h> /* to declare xEvent */
+#include <X11/XlibConf.h> /* for configured options like XTHREADS */
+
+/* The Xlib structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+#ifdef WIN32
+#define _XFlush _XFlushIt
+#endif
+
+/*
+ * If your BytesReadable correctly detects broken connections, then
+ * you should NOT define XCONN_CHECK_FREQ.
+ */
+#ifndef XCONN_CHECK_FREQ
+#define XCONN_CHECK_FREQ 256
+#endif
+
+struct _XGC
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ GContext gid; /* protocol ID for graphics context */
+ Bool rects; /* boolean: TRUE if clipmask is list of rectangles */
+ Bool dashes; /* boolean: TRUE if dash-list is really a list */
+ unsigned long dirty;/* cache dirty bits */
+ XGCValues values; /* shadow structure of values */
+};
+
+struct _XDisplay
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XFreeFuncs *free_funcs; /* internal free functions */
+ int fd; /* Network socket. */
+ int conn_checker; /* ugly thing used by _XEventsQueued */
+ int proto_major_version;/* maj. version of server's X protocol */
+ int proto_minor_version;/* minor version of server's X protocol */
+ char *vendor; /* vendor of the server hardware */
+ XID resource_base; /* resource ID base */
+ XID resource_mask; /* resource ID mask bits */
+ XID resource_id; /* allocator current ID */
+ int resource_shift; /* allocator shift to correct bits */
+ XID (*resource_alloc)( /* allocator function */
+ struct _XDisplay*
+ );
+ int byte_order; /* screen byte order, LSBFirst, MSBFirst */
+ int bitmap_unit; /* padding and data requirements */
+ int bitmap_pad; /* padding requirements on bitmaps */
+ int bitmap_bit_order; /* LeastSignificant or MostSignificant */
+ int nformats; /* number of pixmap formats in list */
+ ScreenFormat *pixmap_format; /* pixmap format list */
+ int vnumber; /* Xlib's X protocol version number. */
+ int release; /* release of the server */
+ struct _XSQEvent *head, *tail; /* Input event queue. */
+ int qlen; /* Length of input event queue */
+ unsigned long last_request_read; /* seq number of last event read */
+ unsigned long request; /* sequence number of last request. */
+ char *last_req; /* beginning of last request, or dummy */
+ char *buffer; /* Output buffer starting address. */
+ char *bufptr; /* Output buffer index pointer. */
+ char *bufmax; /* Output buffer maximum+1 address. */
+ unsigned max_request_size; /* maximum number 32 bit words in request*/
+ struct _XrmHashBucketRec *db;
+ int (*synchandler)( /* Synchronization handler */
+ struct _XDisplay*
+ );
+ char *display_name; /* "host:display" string used on this connect*/
+ int default_screen; /* default screen for operations */
+ int nscreens; /* number of screens on this server*/
+ Screen *screens; /* pointer to list of screens */
+ unsigned long motion_buffer; /* size of motion buffer */
+ volatile unsigned long flags; /* internal connection flags */
+ int min_keycode; /* minimum defined keycode */
+ int max_keycode; /* maximum defined keycode */
+ KeySym *keysyms; /* This server's keysyms */
+ XModifierKeymap *modifiermap; /* This server's modifier keymap */
+ int keysyms_per_keycode;/* number of rows */
+ char *xdefaults; /* contents of defaults from server */
+ char *scratch_buffer; /* place to hang scratch buffer */
+ unsigned long scratch_length; /* length of scratch buffer */
+ int ext_number; /* extension number on this display */
+ struct _XExten *ext_procs; /* extensions initialized on this display */
+ /*
+ * the following can be fixed size, as the protocol defines how
+ * much address space is available.
+ * While this could be done using the extension vector, there
+ * may be MANY events processed, so a search through the extension
+ * list to find the right procedure for each event might be
+ * expensive if many extensions are being used.
+ */
+ Bool (*event_vec[128])( /* vector for wire to event */
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+ );
+ Status (*wire_vec[128])( /* vector for event to wire */
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+ );
+ KeySym lock_meaning; /* for XLookupString */
+ struct _XLockInfo *lock; /* multi-thread state, display lock */
+ struct _XInternalAsync *async_handlers; /* for internal async */
+ unsigned long bigreq_size; /* max size of big requests */
+ struct _XLockPtrs *lock_fns; /* pointers to threads functions */
+ void (*idlist_alloc)( /* XID list allocator function */
+ Display * /* dpy */,
+ XID * /* ids */,
+ int /* count */
+ );
+ /* things above this line should not move, for binary compatibility */
+ struct _XKeytrans *key_bindings; /* for XLookupString */
+ Font cursor_font; /* for XCreateFontCursor */
+ struct _XDisplayAtoms *atoms; /* for XInternAtom */
+ unsigned int mode_switch; /* keyboard group modifiers */
+ unsigned int num_lock; /* keyboard numlock modifiers */
+ struct _XContextDB *context_db; /* context database */
+ Bool (**error_vec)( /* vector for wire to error */
+ Display * /* display */,
+ XErrorEvent * /* he */,
+ xError * /* we */
+ );
+ /*
+ * Xcms information
+ */
+ struct {
+ XPointer defaultCCCs; /* pointer to an array of default XcmsCCC */
+ XPointer clientCmaps; /* pointer to linked list of XcmsCmapRec */
+ XPointer perVisualIntensityMaps;
+ /* linked list of XcmsIntensityMap */
+ } cms;
+ struct _XIMFilter *im_filters;
+ struct _XSQEvent *qfree; /* unallocated event queue elements */
+ unsigned long next_event_serial_num; /* inserted into next queue elt */
+ struct _XExten *flushes; /* Flush hooks */
+ struct _XConnectionInfo *im_fd_info; /* _XRegisterInternalConnection */
+ int im_fd_length; /* number of im_fd_info */
+ struct _XConnWatchInfo *conn_watchers; /* XAddConnectionWatch */
+ int watcher_count; /* number of conn_watchers */
+ XPointer filedes; /* struct pollfd cache for _XWaitForReadable */
+ int (*savedsynchandler)( /* user synchandler when Xlib usurps */
+ Display * /* dpy */
+ );
+ XID resource_max; /* allocator max ID */
+ int xcmisc_opcode; /* major opcode for XC-MISC */
+ struct _XkbInfoRec *xkb_info; /* XKB info */
+ struct _XtransConnInfo *trans_conn; /* transport connection object */
+ struct _X11XCBPrivate *xcb; /* XCB glue private data */
+
+ /* Generic event cookie handling */
+ unsigned int next_cookie; /* next event cookie */
+ /* vector for wire to generic event, index is (extension - 128) */
+ Bool (*generic_event_vec[128])(
+ Display * /* dpy */,
+ XGenericEventCookie * /* Xlib event */,
+ xEvent * /* wire event */);
+ /* vector for event copy, index is (extension - 128) */
+ Bool (*generic_event_copy_vec[128])(
+ Display * /* dpy */,
+ XGenericEventCookie * /* in */,
+ XGenericEventCookie * /* out*/);
+ void *cookiejar; /* cookie events returned but not claimed */
+};
+
+#define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n)
+
+#ifndef _XEVENT_
+/*
+ * _QEvent datatype for use in input queueing.
+ */
+typedef struct _XSQEvent
+{
+ struct _XSQEvent *next;
+ XEvent event;
+ unsigned long qserial_num; /* so multi-threaded code can find new ones */
+} _XQEvent;
+#endif
+
+#include <X11/Xproto.h>
+#ifdef __sgi
+#define _SGI_MP_SOURCE /* turn this on to get MP safe errno */
+#endif
+#include <errno.h>
+#define _XBCOPYFUNC _Xbcopy
+#include <X11/Xfuncs.h>
+#include <X11/Xosdefs.h>
+
+/* Utek leaves kernel macros around in include files (bleah) */
+#ifdef dirty
+#undef dirty
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+/*
+ * The following definitions can be used for locking requests in multi-threaded
+ * address spaces.
+ */
+#ifdef XTHREADS
+/* Author: Stephen Gildea, MIT X Consortium
+ *
+ * declarations for C Threads locking
+ */
+
+typedef struct _LockInfoRec *LockInfoPtr;
+
+/* interfaces for locking.c */
+struct _XLockPtrs {
+ /* used by all, including extensions; do not move */
+ void (*lock_display)(
+ Display *dpy
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char *file
+ , int line
+#endif
+ );
+ void (*unlock_display)(
+ Display *dpy
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char *file
+ , int line
+#endif
+ );
+};
+
+#ifdef WIN32
+#ifdef LIB11_DLL
+#define X11_EXTERN __declspec(dllexport) extern
+#else
+#define X11_EXTERN __declspec(dllimport) extern
+#endif
+#else
+#define X11_EXTERN extern
+#endif
+
+
+/* in XlibInt.c */
+X11_EXTERN void (*_XCreateMutex_fn)(
+ LockInfoPtr /* lock */
+);
+X11_EXTERN void (*_XFreeMutex_fn)(
+ LockInfoPtr /* lock */
+);
+X11_EXTERN void (*_XLockMutex_fn)(
+ LockInfoPtr /* lock */
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char * /* file */
+ , int /* line */
+#endif
+);
+X11_EXTERN void (*_XUnlockMutex_fn)(
+ LockInfoPtr /* lock */
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char * /* file */
+ , int /* line */
+#endif
+);
+
+X11_EXTERN LockInfoPtr _Xglobal_lock;
+
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+#define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)((d),__FILE__,__LINE__)
+#define UnlockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->unlock_display)((d),__FILE__,__LINE__)
+#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock,__FILE__,__LINE__)
+#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock,__FILE__,__LINE__)
+#else
+/* used everywhere, so must be fast if not using threads */
+#define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)(d)
+#define UnlockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->unlock_display)(d)
+#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock)
+#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock)
+#endif
+#define _XCreateMutex(lock) if (_XCreateMutex_fn) (*_XCreateMutex_fn)(lock);
+#define _XFreeMutex(lock) if (_XFreeMutex_fn) (*_XFreeMutex_fn)(lock);
+
+#else /* XTHREADS */
+#define LockDisplay(dis)
+#define _XLockMutex(lock)
+#define _XUnlockMutex(lock)
+#define UnlockDisplay(dis)
+#define _XCreateMutex(lock)
+#define _XFreeMutex(lock)
+#endif
+
+#define Xfree(ptr) free((ptr))
+
+/*
+ * Note that some machines do not return a valid pointer for malloc(0), in
+ * which case we provide an alternate under the control of the
+ * define MALLOC_0_RETURNS_NULL. This is necessary because some
+ * Xlib code expects malloc(0) to return a valid pointer to storage.
+ */
+#if defined(MALLOC_0_RETURNS_NULL) || defined(__clang_analyzer__)
+
+# define Xmalloc(size) malloc(((size) == 0 ? 1 : (size)))
+# define Xrealloc(ptr, size) realloc((ptr), ((size) == 0 ? 1 : (size)))
+# define Xcalloc(nelem, elsize) calloc(((nelem) == 0 ? 1 : (nelem)), (elsize))
+
+#else
+
+# define Xmalloc(size) malloc((size))
+# define Xrealloc(ptr, size) realloc((ptr), (size))
+# define Xcalloc(nelem, elsize) calloc((nelem), (elsize))
+
+#endif
+
+#include <stddef.h>
+
+#define LOCKED 1
+#define UNLOCKED 0
+
+#ifndef BUFSIZE
+#define BUFSIZE 2048 /* X output buffer size. */
+#endif
+#ifndef PTSPERBATCH
+#define PTSPERBATCH 1024 /* point batching */
+#endif
+#ifndef WLNSPERBATCH
+#define WLNSPERBATCH 50 /* wide line batching */
+#endif
+#ifndef ZLNSPERBATCH
+#define ZLNSPERBATCH 1024 /* thin line batching */
+#endif
+#ifndef WRCTSPERBATCH
+#define WRCTSPERBATCH 10 /* wide line rectangle batching */
+#endif
+#ifndef ZRCTSPERBATCH
+#define ZRCTSPERBATCH 256 /* thin line rectangle batching */
+#endif
+#ifndef FRCTSPERBATCH
+#define FRCTSPERBATCH 256 /* filled rectangle batching */
+#endif
+#ifndef FARCSPERBATCH
+#define FARCSPERBATCH 256 /* filled arc batching */
+#endif
+#ifndef CURSORFONT
+#define CURSORFONT "cursor" /* standard cursor fonts */
+#endif
+
+/*
+ * Display flags
+ */
+#define XlibDisplayIOError (1L << 0)
+#define XlibDisplayClosing (1L << 1)
+#define XlibDisplayNoXkb (1L << 2)
+#define XlibDisplayPrivSync (1L << 3)
+#define XlibDisplayProcConni (1L << 4) /* in _XProcessInternalConnection */
+#define XlibDisplayReadEvents (1L << 5) /* in _XReadEvents */
+#define XlibDisplayReply (1L << 5) /* in _XReply */
+#define XlibDisplayWriting (1L << 6) /* in _XFlushInt, _XSend */
+#define XlibDisplayDfltRMDB (1L << 7) /* mark if RM db from XGetDefault */
+
+/*
+ * X Protocol packetizing macros.
+ */
+
+/* Leftover from CRAY support - was defined empty on all non-Cray systems */
+#define WORD64ALIGN
+
+/**
+ * Return a len-sized request buffer for the request type. This function may
+ * flush the output queue.
+ *
+ * @param dpy The display connection
+ * @param type The request type
+ * @param len Length of the request in bytes
+ *
+ * @returns A pointer to the request buffer with a few default values
+ * initialized.
+ */
+extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len);
+
+/* GetReqSized is the same as GetReq but allows the caller to specify the
+ * size in bytes. 'sz' must be a multiple of 4! */
+
+#define GetReqSized(name, sz, req) \
+ req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz)
+
+/*
+ * GetReq - Get the next available X request packet in the buffer and
+ * return it.
+ *
+ * "name" is the name of the request, e.g. CreatePixmap, OpenFont, etc.
+ * "req" is the name of the request pointer.
+ *
+ */
+
+#define GetReq(name, req) \
+ GetReqSized(name, SIZEOF(x##name##Req), req)
+
+/* GetReqExtra is the same as GetReq, but allocates "n" additional
+ bytes after the request. "n" must be a multiple of 4! */
+
+#define GetReqExtra(name, n, req) \
+ GetReqSized(name, SIZEOF(x##name##Req) + n, req)
+
+/*
+ * GetResReq is for those requests that have a resource ID
+ * (Window, Pixmap, GContext, etc.) as their single argument.
+ * "rid" is the name of the resource.
+ */
+
+#define GetResReq(name, rid, req) \
+ req = (xResourceReq *) _XGetRequest(dpy, X_##name, SIZEOF(xResourceReq)); \
+ req->id = (rid)
+
+/*
+ * GetEmptyReq is for those requests that have no arguments
+ * at all.
+ */
+
+#define GetEmptyReq(name, req) \
+ req = (xReq *) _XGetRequest(dpy, X_##name, SIZEOF(xReq))
+
+/*
+ * MakeBigReq sets the CARD16 "req->length" to 0 and inserts a new CARD32
+ * length, after req->length, before the data in the request. The new length
+ * includes the "n" extra 32-bit words.
+ *
+ * Do not use MakeBigReq if there is no data already in the request.
+ * req->length must already be >= 2.
+ */
+#ifdef LONG64
+#define MakeBigReq(req,n) \
+ { \
+ CARD64 _BRdat; \
+ CARD32 _BRlen = req->length - 1; \
+ req->length = 0; \
+ _BRdat = ((CARD32 *)req)[_BRlen]; \
+ memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \
+ ((CARD32 *)req)[1] = _BRlen + n + 2; \
+ Data32(dpy, &_BRdat, 4); \
+ }
+#else
+#define MakeBigReq(req,n) \
+ { \
+ CARD32 _BRdat; \
+ CARD32 _BRlen = req->length - 1; \
+ req->length = 0; \
+ _BRdat = ((CARD32 *)req)[_BRlen]; \
+ memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \
+ ((CARD32 *)req)[1] = _BRlen + n + 2; \
+ Data32(dpy, &_BRdat, 4); \
+ }
+#endif
+
+/*
+ * SetReqLen increases the count of 32-bit words in the request by "n",
+ * or by "badlen" if "n" is too large.
+ *
+ * Do not use SetReqLen if "req" does not already have data after the
+ * xReq header. req->length must already be >= 2.
+ */
+#ifndef __clang_analyzer__
+#define SetReqLen(req,n,badlen) \
+ if ((req->length + n) > (unsigned)65535) { \
+ if (dpy->bigreq_size) { \
+ MakeBigReq(req,n) \
+ } else { \
+ n = badlen; \
+ req->length += n; \
+ } \
+ } else \
+ req->length += n
+#else
+#define SetReqLen(req,n,badlen) \
+ req->length += n
+#endif
+
+#define SyncHandle() \
+ if (dpy->synchandler) (*dpy->synchandler)(dpy)
+
+extern void _XFlushGCCache(Display *dpy, GC gc);
+#define FlushGC(dpy, gc) \
+ if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
+/*
+ * Data - Place data in the buffer and pad the end to provide
+ * 32 bit word alignment. Transmit if the buffer fills.
+ *
+ * "dpy" is a pointer to a Display.
+ * "data" is a pointer to a data buffer.
+ * "len" is the length of the data buffer.
+ */
+#ifndef DataRoutineIsProcedure
+#define Data(dpy, data, len) {\
+ if (dpy->bufptr + (len) <= dpy->bufmax) {\
+ memcpy(dpy->bufptr, data, (int)len);\
+ dpy->bufptr += ((len) + 3) & ~3;\
+ } else\
+ _XSend(dpy, data, len);\
+}
+#endif /* DataRoutineIsProcedure */
+
+
+/* Allocate bytes from the buffer. No padding is done, so if
+ * the length is not a multiple of 4, the caller must be
+ * careful to leave the buffer aligned after sending the
+ * current request.
+ *
+ * "type" is the type of the pointer being assigned to.
+ * "ptr" is the pointer being assigned to.
+ * "n" is the number of bytes to allocate.
+ *
+ * Example:
+ * xTextElt *elt;
+ * BufAlloc (xTextElt *, elt, nbytes)
+ */
+
+#define BufAlloc(type, ptr, n) \
+ if (dpy->bufptr + (n) > dpy->bufmax) \
+ _XFlush (dpy); \
+ ptr = (type) dpy->bufptr; \
+ memset(ptr, '\0', n); \
+ dpy->bufptr += (n);
+
+#define Data16(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
+#define _XRead16Pad(dpy, data, len) _XReadPad((dpy), (char *)(data), (len))
+#define _XRead16(dpy, data, len) _XRead((dpy), (char *)(data), (len))
+#ifdef LONG64
+#define Data32(dpy, data, len) _XData32(dpy, (_Xconst long *)data, len)
+extern int _XData32(
+ Display *dpy,
+ register _Xconst long *data,
+ unsigned len
+);
+extern void _XRead32(
+ Display *dpy,
+ register long *data,
+ long len
+);
+#else
+#define Data32(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
+#define _XRead32(dpy, data, len) _XRead((dpy), (char *)(data), (len))
+#endif
+
+#define PackData16(dpy,data,len) Data16 (dpy, data, len)
+#define PackData32(dpy,data,len) Data32 (dpy, data, len)
+
+/* Xlib manual is bogus */
+#define PackData(dpy,data,len) PackData16 (dpy, data, len)
+
+#define min(a,b) (((a) < (b)) ? (a) : (b))
+#define max(a,b) (((a) > (b)) ? (a) : (b))
+
+#define CI_NONEXISTCHAR(cs) (((cs)->width == 0) && \
+ (((cs)->rbearing|(cs)->lbearing| \
+ (cs)->ascent|(cs)->descent) == 0))
+
+/*
+ * CI_GET_CHAR_INFO_1D - return the charinfo struct for the indicated 8bit
+ * character. If the character is in the column and exists, then return the
+ * appropriate metrics (note that fonts with common per-character metrics will
+ * return min_bounds). If none of these hold true, try again with the default
+ * char.
+ */
+#define CI_GET_CHAR_INFO_1D(fs,col,def,cs) \
+{ \
+ cs = def; \
+ if (col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
+ if (fs->per_char == NULL) { \
+ cs = &fs->min_bounds; \
+ } else { \
+ cs = &fs->per_char[(col - fs->min_char_or_byte2)]; \
+ if (CI_NONEXISTCHAR(cs)) cs = def; \
+ } \
+ } \
+}
+
+#define CI_GET_DEFAULT_INFO_1D(fs,cs) \
+ CI_GET_CHAR_INFO_1D (fs, fs->default_char, NULL, cs)
+
+
+
+/*
+ * CI_GET_CHAR_INFO_2D - return the charinfo struct for the indicated row and
+ * column. This is used for fonts that have more than row zero.
+ */
+#define CI_GET_CHAR_INFO_2D(fs,row,col,def,cs) \
+{ \
+ cs = def; \
+ if (row >= fs->min_byte1 && row <= fs->max_byte1 && \
+ col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
+ if (fs->per_char == NULL) { \
+ cs = &fs->min_bounds; \
+ } else { \
+ cs = &fs->per_char[((row - fs->min_byte1) * \
+ (fs->max_char_or_byte2 - \
+ fs->min_char_or_byte2 + 1)) + \
+ (col - fs->min_char_or_byte2)]; \
+ if (CI_NONEXISTCHAR(cs)) cs = def; \
+ } \
+ } \
+}
+
+#define CI_GET_DEFAULT_INFO_2D(fs,cs) \
+{ \
+ unsigned int r = (fs->default_char >> 8); \
+ unsigned int c = (fs->default_char & 0xff); \
+ CI_GET_CHAR_INFO_2D (fs, r, c, NULL, cs); \
+}
+
+
+/* srcvar must be a variable for large architecture version */
+#define OneDataCard32(dpy,dstaddr,srcvar) \
+ { *(CARD32 *)(dstaddr) = (srcvar); }
+
+
+typedef struct _XInternalAsync {
+ struct _XInternalAsync *next;
+ /*
+ * handler arguments:
+ * rep is the generic reply that caused this handler
+ * to be invoked. It must also be passed to _XGetAsyncReply.
+ * buf and len are opaque values that must be passed to
+ * _XGetAsyncReply or _XGetAsyncData.
+ * data is the closure stored in this struct.
+ * The handler returns True iff it handled this reply.
+ */
+ Bool (*handler)(
+ Display* /* dpy */,
+ xReply* /* rep */,
+ char* /* buf */,
+ int /* len */,
+ XPointer /* data */
+ );
+ XPointer data;
+} _XAsyncHandler;
+
+typedef struct _XAsyncEState {
+ unsigned long min_sequence_number;
+ unsigned long max_sequence_number;
+ unsigned char error_code;
+ unsigned char major_opcode;
+ unsigned short minor_opcode;
+ unsigned char last_error_received;
+ int error_count;
+} _XAsyncErrorState;
+
+extern void _XDeqAsyncHandler(Display *dpy, _XAsyncHandler *handler);
+#define DeqAsyncHandler(dpy,handler) { \
+ if (dpy->async_handlers == (handler)) \
+ dpy->async_handlers = (handler)->next; \
+ else \
+ _XDeqAsyncHandler(dpy, handler); \
+ }
+
+typedef void (*FreeFuncType) (
+ Display* /* display */
+);
+
+typedef int (*FreeModmapType) (
+ XModifierKeymap* /* modmap */
+);
+
+/*
+ * This structure is private to the library.
+ */
+typedef struct _XFreeFuncs {
+ FreeFuncType atoms; /* _XFreeAtomTable */
+ FreeModmapType modifiermap; /* XFreeModifiermap */
+ FreeFuncType key_bindings; /* _XFreeKeyBindings */
+ FreeFuncType context_db; /* _XFreeContextDB */
+ FreeFuncType defaultCCCs; /* _XcmsFreeDefaultCCCs */
+ FreeFuncType clientCmaps; /* _XcmsFreeClientCmaps */
+ FreeFuncType intensityMaps; /* _XcmsFreeIntensityMaps */
+ FreeFuncType im_filters; /* _XFreeIMFilters */
+ FreeFuncType xkb; /* _XkbFreeInfo */
+} _XFreeFuncRec;
+
+/* types for InitExt.c */
+typedef int (*CreateGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CopyGCType)(
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FlushGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FreeGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CreateFontType) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FreeFontType) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CloseDisplayType) (
+ Display* /* display */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*ErrorType) (
+ Display* /* display */,
+ xError* /* err */,
+ XExtCodes* /* codes */,
+ int* /* ret_code */
+);
+
+typedef char* (*ErrorStringType) (
+ Display* /* display */,
+ int /* code */,
+ XExtCodes* /* codes */,
+ char* /* buffer */,
+ int /* nbytes */
+);
+
+typedef void (*PrintErrorType)(
+ Display* /* display */,
+ XErrorEvent* /* ev */,
+ void* /* fp */
+);
+
+typedef void (*BeforeFlushType)(
+ Display* /* display */,
+ XExtCodes* /* codes */,
+ _Xconst char* /* data */,
+ long /* len */
+);
+
+/*
+ * This structure is private to the library.
+ */
+typedef struct _XExten { /* private to extension mechanism */
+ struct _XExten *next; /* next in list */
+ XExtCodes codes; /* public information, all extension told */
+ CreateGCType create_GC; /* routine to call when GC created */
+ CopyGCType copy_GC; /* routine to call when GC copied */
+ FlushGCType flush_GC; /* routine to call when GC flushed */
+ FreeGCType free_GC; /* routine to call when GC freed */
+ CreateFontType create_Font; /* routine to call when Font created */
+ FreeFontType free_Font; /* routine to call when Font freed */
+ CloseDisplayType close_display; /* routine to call when connection closed */
+ ErrorType error; /* who to call when an error occurs */
+ ErrorStringType error_string; /* routine to supply error string */
+ char *name; /* name of this extension */
+ PrintErrorType error_values; /* routine to supply error values */
+ BeforeFlushType before_flush; /* routine to call when sending data */
+ struct _XExten *next_flush; /* next in list of those with flushes */
+} _XExtension;
+
+/* Temporary definition until we can depend on an xproto release with it */
+#ifdef _X_COLD
+# define _XLIB_COLD _X_COLD
+#elif defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403) /* 4.3+ */
+# define _XLIB_COLD __attribute__((__cold__))
+#else
+# define _XLIB_COLD /* nothing */
+#endif
+
+/* extension hooks */
+
+#ifdef DataRoutineIsProcedure
+extern void Data(Display *dpy, char *data, long len);
+#endif
+extern int _XError(
+ Display* /* dpy */,
+ xError* /* rep */
+);
+extern int _XIOError(
+ Display* /* dpy */
+) _X_NORETURN;
+X11_EXTERN int (*_XIOErrorFunction)(
+ Display* /* dpy */
+);
+X11_EXTERN int (*_XErrorFunction)(
+ Display* /* dpy */,
+ XErrorEvent* /* error_event */
+);
+extern void _XEatData(
+ Display* /* dpy */,
+ unsigned long /* n */
+) _XLIB_COLD;
+extern void _XEatDataWords(
+ Display* /* dpy */,
+ unsigned long /* n */
+) _XLIB_COLD;
+#if defined(__SUNPRO_C) /* Studio compiler alternative to "cold" attribute */
+# pragma rarely_called(_XEatData, _XEatDataWords)
+#endif
+extern char *_XAllocScratch(
+ Display* /* dpy */,
+ unsigned long /* nbytes */
+);
+extern char *_XAllocTemp(
+ Display* /* dpy */,
+ unsigned long /* nbytes */
+);
+extern void _XFreeTemp(
+ Display* /* dpy */,
+ char* /* buf */,
+ unsigned long /* nbytes */
+);
+extern Visual *_XVIDtoVisual(
+ Display* /* dpy */,
+ VisualID /* id */
+);
+extern unsigned long _XSetLastRequestRead(
+ Display* /* dpy */,
+ xGenericReply* /* rep */
+);
+extern int _XGetHostname(
+ char* /* buf */,
+ int /* maxlen */
+);
+extern Screen *_XScreenOfWindow(
+ Display* /* dpy */,
+ Window /* w */
+);
+extern Bool _XAsyncErrorHandler(
+ Display* /* dpy */,
+ xReply* /* rep */,
+ char* /* buf */,
+ int /* len */,
+ XPointer /* data */
+);
+extern char *_XGetAsyncReply(
+ Display* /* dpy */,
+ char* /* replbuf */,
+ xReply* /* rep */,
+ char* /* buf */,
+ int /* len */,
+ int /* extra */,
+ Bool /* discard */
+);
+extern void _XGetAsyncData(
+ Display* /* dpy */,
+ char * /* data */,
+ char * /* buf */,
+ int /* len */,
+ int /* skip */,
+ int /* datalen */,
+ int /* discardtotal */
+);
+extern void _XFlush(
+ Display* /* dpy */
+);
+extern int _XEventsQueued(
+ Display* /* dpy */,
+ int /* mode */
+);
+extern void _XReadEvents(
+ Display* /* dpy */
+);
+extern int _XRead(
+ Display* /* dpy */,
+ char* /* data */,
+ long /* size */
+);
+extern void _XReadPad(
+ Display* /* dpy */,
+ char* /* data */,
+ long /* size */
+);
+extern void _XSend(
+ Display* /* dpy */,
+ _Xconst char* /* data */,
+ long /* size */
+);
+extern Status _XReply(
+ Display* /* dpy */,
+ xReply* /* rep */,
+ int /* extra */,
+ Bool /* discard */
+);
+extern void _XEnq(
+ Display* /* dpy */,
+ xEvent* /* event */
+);
+extern void _XDeq(
+ Display* /* dpy */,
+ _XQEvent* /* prev */,
+ _XQEvent* /* qelt */
+);
+
+extern Bool _XUnknownWireEvent(
+ Display* /* dpy */,
+ XEvent* /* re */,
+ xEvent* /* event */
+);
+
+extern Bool _XUnknownWireEventCookie(
+ Display* /* dpy */,
+ XGenericEventCookie* /* re */,
+ xEvent* /* event */
+);
+
+extern Bool _XUnknownCopyEventCookie(
+ Display* /* dpy */,
+ XGenericEventCookie* /* in */,
+ XGenericEventCookie* /* out */
+);
+
+extern Status _XUnknownNativeEvent(
+ Display* /* dpy */,
+ XEvent* /* re */,
+ xEvent* /* event */
+);
+
+extern Bool _XWireToEvent(Display *dpy, XEvent *re, xEvent *event);
+extern Bool _XDefaultWireError(Display *display, XErrorEvent *he, xError *we);
+extern Bool _XPollfdCacheInit(Display *dpy);
+extern void _XPollfdCacheAdd(Display *dpy, int fd);
+extern void _XPollfdCacheDel(Display *dpy, int fd);
+extern XID _XAllocID(Display *dpy);
+extern void _XAllocIDs(Display *dpy, XID *ids, int count);
+
+extern int _XFreeExtData(
+ XExtData* /* extension */
+);
+
+extern int (*XESetCreateGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetCopyGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetFlushGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetFreeGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetCreateFont(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, XFontStruct*, XExtCodes*
+);
+
+extern int (*XESetFreeFont(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, XFontStruct*, XExtCodes*
+);
+
+extern int (*XESetCloseDisplay(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, XExtCodes*
+);
+
+extern int (*XESetError(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ xError* /* err */,
+ XExtCodes* /* codes */,
+ int* /* ret_code */
+ ) /* proc */
+))(
+ Display*, xError*, XExtCodes*, int*
+);
+
+extern char* (*XESetErrorString(
+ Display* /* display */,
+ int /* extension */,
+ char* (*) (
+ Display* /* display */,
+ int /* code */,
+ XExtCodes* /* codes */,
+ char* /* buffer */,
+ int /* nbytes */
+ ) /* proc */
+))(
+ Display*, int, XExtCodes*, char*, int
+);
+
+extern void (*XESetPrintErrorValues (
+ Display* /* display */,
+ int /* extension */,
+ void (*)(
+ Display* /* display */,
+ XErrorEvent* /* ev */,
+ void* /* fp */
+ ) /* proc */
+))(
+ Display*, XErrorEvent*, void*
+);
+
+extern Bool (*XESetWireToEvent(
+ Display* /* display */,
+ int /* event_number */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* re */,
+ xEvent* /* event */
+ ) /* proc */
+))(
+ Display*, XEvent*, xEvent*
+);
+
+extern Bool (*XESetWireToEventCookie(
+ Display* /* display */,
+ int /* extension */,
+ Bool (*) (
+ Display* /* display */,
+ XGenericEventCookie* /* re */,
+ xEvent* /* event */
+ ) /* proc */
+))(
+ Display*, XGenericEventCookie*, xEvent*
+);
+
+extern Bool (*XESetCopyEventCookie(
+ Display* /* display */,
+ int /* extension */,
+ Bool (*) (
+ Display* /* display */,
+ XGenericEventCookie* /* in */,
+ XGenericEventCookie* /* out */
+ ) /* proc */
+))(
+ Display*, XGenericEventCookie*, XGenericEventCookie*
+);
+
+
+extern Status (*XESetEventToWire(
+ Display* /* display */,
+ int /* event_number */,
+ Status (*) (
+ Display* /* display */,
+ XEvent* /* re */,
+ xEvent* /* event */
+ ) /* proc */
+))(
+ Display*, XEvent*, xEvent*
+);
+
+extern Bool (*XESetWireToError(
+ Display* /* display */,
+ int /* error_number */,
+ Bool (*) (
+ Display* /* display */,
+ XErrorEvent* /* he */,
+ xError* /* we */
+ ) /* proc */
+))(
+ Display*, XErrorEvent*, xError*
+);
+
+extern void (*XESetBeforeFlush(
+ Display* /* display */,
+ int /* error_number */,
+ void (*) (
+ Display* /* display */,
+ XExtCodes* /* codes */,
+ _Xconst char* /* data */,
+ long /* len */
+ ) /* proc */
+))(
+ Display*, XExtCodes*, _Xconst char*, long
+);
+
+/* internal connections for IMs */
+
+typedef void (*_XInternalConnectionProc)(
+ Display* /* dpy */,
+ int /* fd */,
+ XPointer /* call_data */
+);
+
+
+extern Status _XRegisterInternalConnection(
+ Display* /* dpy */,
+ int /* fd */,
+ _XInternalConnectionProc /* callback */,
+ XPointer /* call_data */
+);
+
+extern void _XUnregisterInternalConnection(
+ Display* /* dpy */,
+ int /* fd */
+);
+
+extern void _XProcessInternalConnection(
+ Display* /* dpy */,
+ struct _XConnectionInfo* /* conn_info */
+);
+
+/* Display structure has pointers to these */
+
+struct _XConnectionInfo { /* info from _XRegisterInternalConnection */
+ int fd;
+ _XInternalConnectionProc read_callback;
+ XPointer call_data;
+ XPointer *watch_data; /* set/used by XConnectionWatchProc */
+ struct _XConnectionInfo *next;
+};
+
+struct _XConnWatchInfo { /* info from XAddConnectionWatch */
+ XConnectionWatchProc fn;
+ XPointer client_data;
+ struct _XConnWatchInfo *next;
+};
+
+#ifdef __UNIXOS2__
+extern char* __XOS2RedirRoot(
+ char*
+);
+#endif
+
+extern int _XTextHeight(
+ XFontStruct* /* font_struct */,
+ _Xconst char* /* string */,
+ int /* count */
+);
+
+extern int _XTextHeight16(
+ XFontStruct* /* font_struct */,
+ _Xconst XChar2b* /* string */,
+ int /* count */
+);
+
+#if defined(WIN32)
+
+extern int _XOpenFile(
+ _Xconst char* /* path */,
+ int /* flags */
+);
+
+extern int _XOpenFileMode(
+ _Xconst char* /* path */,
+ int /* flags */,
+ mode_t /* mode */
+);
+
+extern void* _XFopenFile(
+ _Xconst char* /* path */,
+ _Xconst char* /* mode */
+);
+
+extern int _XAccessFile(
+ _Xconst char* /* path */
+);
+#else
+#define _XOpenFile(path,flags) open(path,flags)
+#define _XOpenFileMode(path,flags,mode) open(path,flags,mode)
+#define _XFopenFile(path,mode) fopen(path,mode)
+#endif
+
+/* EvToWire.c */
+extern Status _XEventToWire(Display *dpy, XEvent *re, xEvent *event);
+
+extern int _XF86LoadQueryLocaleFont(
+ Display* /* dpy */,
+ _Xconst char* /* name*/,
+ XFontStruct** /* xfp*/,
+ Font* /* fidp */
+);
+
+extern void _XProcessWindowAttributes (
+ register Display *dpy,
+ xChangeWindowAttributesReq *req,
+ register unsigned long valuemask,
+ register XSetWindowAttributes *attributes);
+
+extern int _XDefaultError(
+ Display *dpy,
+ XErrorEvent *event);
+
+extern int _XDefaultIOError(
+ Display *dpy);
+
+extern void _XSetClipRectangles (
+ register Display *dpy,
+ GC gc,
+ int clip_x_origin, int clip_y_origin,
+ XRectangle *rectangles,
+ int n,
+ int ordering);
+
+Status _XGetWindowAttributes(
+ register Display *dpy,
+ Window w,
+ XWindowAttributes *attr);
+
+int _XPutBackEvent (
+ register Display *dpy,
+ register XEvent *event);
+
+extern Bool _XIsEventCookie(
+ Display *dpy,
+ XEvent *ev);
+
+extern void _XFreeEventCookies(
+ Display *dpy);
+
+extern void _XStoreEventCookie(
+ Display *dpy,
+ XEvent *ev);
+
+extern Bool _XFetchEventCookie(
+ Display *dpy,
+ XGenericEventCookie *ev);
+
+extern Bool _XCopyEventCookie(
+ Display *dpy,
+ XGenericEventCookie *in,
+ XGenericEventCookie *out);
+
+/* lcFile.c */
+
+extern void xlocaledir(
+ char *buf,
+ int buf_len
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XLIBINT_H_ */
diff --git a/X11/Xlocale.h b/X11/Xlocale.h
new file mode 100644
index 000000000..db46e70cb
--- /dev/null
+++ b/X11/Xlocale.h
@@ -0,0 +1,37 @@
+/*
+
+Copyright 1991, 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.
+
+*/
+
+#ifndef _X11_XLOCALE_H_
+#define _X11_XLOCALE_H_
+
+#include <X11/Xfuncproto.h>
+#include <X11/Xosdefs.h>
+
+#include <locale.h>
+
+#endif /* _X11_XLOCALE_H_ */
diff --git a/X11/Xmu/Atoms.h b/X11/Xmu/Atoms.h
new file mode 100644
index 000000000..1d0228338
--- /dev/null
+++ b/X11/Xmu/Atoms.h
@@ -0,0 +1,123 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_ATOMS_H_
+#define _XMU_ATOMS_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+typedef struct _AtomRec *AtomPtr;
+
+extern AtomPtr
+ _XA_ATOM_PAIR,
+ _XA_CHARACTER_POSITION,
+ _XA_CLASS,
+ _XA_CLIENT_WINDOW,
+ _XA_CLIPBOARD,
+ _XA_COMPOUND_TEXT,
+ _XA_DECNET_ADDRESS,
+ _XA_DELETE,
+ _XA_FILENAME,
+ _XA_HOSTNAME,
+ _XA_IP_ADDRESS,
+ _XA_LENGTH,
+ _XA_LIST_LENGTH,
+ _XA_NAME,
+ _XA_NET_ADDRESS,
+ _XA_NULL,
+ _XA_OWNER_OS,
+ _XA_SPAN,
+ _XA_TARGETS,
+ _XA_TEXT,
+ _XA_TIMESTAMP,
+ _XA_USER,
+ _XA_UTF8_STRING;
+
+#define XA_ATOM_PAIR(d) XmuInternAtom(d, _XA_ATOM_PAIR)
+#define XA_CHARACTER_POSITION(d) XmuInternAtom(d, _XA_CHARACTER_POSITION)
+#define XA_CLASS(d) XmuInternAtom(d, _XA_CLASS)
+#define XA_CLIENT_WINDOW(d) XmuInternAtom(d, _XA_CLIENT_WINDOW)
+#define XA_CLIPBOARD(d) XmuInternAtom(d, _XA_CLIPBOARD)
+#define XA_COMPOUND_TEXT(d) XmuInternAtom(d, _XA_COMPOUND_TEXT)
+#define XA_DECNET_ADDRESS(d) XmuInternAtom(d, _XA_DECNET_ADDRESS)
+#define XA_DELETE(d) XmuInternAtom(d, _XA_DELETE)
+#define XA_FILENAME(d) XmuInternAtom(d, _XA_FILENAME)
+#define XA_HOSTNAME(d) XmuInternAtom(d, _XA_HOSTNAME)
+#define XA_IP_ADDRESS(d) XmuInternAtom(d, _XA_IP_ADDRESS)
+#define XA_LENGTH(d) XmuInternAtom(d, _XA_LENGTH)
+#define XA_LIST_LENGTH(d) XmuInternAtom(d, _XA_LIST_LENGTH)
+#define XA_NAME(d) XmuInternAtom(d, _XA_NAME)
+#define XA_NET_ADDRESS(d) XmuInternAtom(d, _XA_NET_ADDRESS)
+#define XA_NULL(d) XmuInternAtom(d, _XA_NULL)
+#define XA_OWNER_OS(d) XmuInternAtom(d, _XA_OWNER_OS)
+#define XA_SPAN(d) XmuInternAtom(d, _XA_SPAN)
+#define XA_TARGETS(d) XmuInternAtom(d, _XA_TARGETS)
+#define XA_TEXT(d) XmuInternAtom(d, _XA_TEXT)
+#define XA_TIMESTAMP(d) XmuInternAtom(d, _XA_TIMESTAMP)
+#define XA_USER(d) XmuInternAtom(d, _XA_USER)
+#define XA_UTF8_STRING(d) XmuInternAtom(d, _XA_UTF8_STRING)
+
+_XFUNCPROTOBEGIN
+
+char *XmuGetAtomName
+(
+ Display *dpy,
+ Atom atom
+ );
+
+Atom XmuInternAtom
+(
+ Display *dpy,
+ AtomPtr atom_ptr
+ );
+
+void XmuInternStrings
+(
+ Display *dpy,
+ String *names,
+ Cardinal count,
+ Atom *atoms_return
+);
+
+AtomPtr XmuMakeAtom
+(
+ _Xconst char *name
+ );
+
+char *XmuNameOfAtom
+(
+ AtomPtr atom_ptr
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_ATOMS_H_ */
diff --git a/X11/Xmu/CharSet.h b/X11/Xmu/CharSet.h
new file mode 100644
index 000000000..36f76a75e
--- /dev/null
+++ b/X11/Xmu/CharSet.h
@@ -0,0 +1,73 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_CHARSET_H_
+#define _XMU_CHARSET_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void XmuCopyISOLatin1Lowered
+(
+ char *dst_return,
+ _Xconst char *src
+ );
+
+void XmuCopyISOLatin1Uppered
+(
+ char *dst_return,
+ _Xconst char *src
+ );
+
+int XmuCompareISOLatin1
+(
+ _Xconst char *first,
+ _Xconst char *second
+ );
+
+void XmuNCopyISOLatin1Lowered
+(
+ char *dst_return,
+ _Xconst char *src,
+ int size
+ );
+
+void XmuNCopyISOLatin1Uppered
+(
+ char *dst_return,
+ _Xconst char *src,
+ int size
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CHARSET_H_ */
diff --git a/X11/Xmu/CloseHook.h b/X11/Xmu/CloseHook.h
new file mode 100644
index 000000000..50552f68c
--- /dev/null
+++ b/X11/Xmu/CloseHook.h
@@ -0,0 +1,70 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_CLOSEHOOK_H_
+#define _XMU_CLOSEHOOK_H_
+
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+#include <X11/Xlibint.h>
+
+typedef XPointer CloseHook;
+
+typedef int (*XmuCloseHookProc)(Display *dpy, XPointer data);
+
+_XFUNCPROTOBEGIN
+
+CloseHook XmuAddCloseDisplayHook
+(
+ Display *dpy,
+ XmuCloseHookProc proc,
+ XPointer arg
+ );
+
+Bool XmuLookupCloseDisplayHook
+(
+ Display *dpy,
+ CloseHook handle,
+ XmuCloseHookProc proc,
+ XPointer arg
+ );
+
+Bool XmuRemoveCloseDisplayHook
+(
+ Display *dpy,
+ CloseHook handle,
+ XmuCloseHookProc proc,
+ XPointer arg
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CLOSEHOOK_H_ */
diff --git a/X11/Xmu/Converters.h b/X11/Xmu/Converters.h
new file mode 100644
index 000000000..1947e382e
--- /dev/null
+++ b/X11/Xmu/Converters.h
@@ -0,0 +1,277 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_STRCONVERT_H_
+#define _XMU_STRCONVERT_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void XmuCvtFunctionToCallback
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+#define XtNbackingStore "backingStore"
+#define XtCBackingStore "BackingStore"
+#define XtRBackingStore "BackingStore"
+#define XtEnotUseful "notUseful"
+#define XtEwhenMapped "whenMapped"
+#define XtEalways "always"
+#define XtEdefault "default"
+void XmuCvtStringToBackingStore
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtBackingStoreToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+void XmuCvtStringToCursor
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+#define XtRColorCursor "ColorCursor"
+#define XtNpointerColor "pointerColor"
+#define XtNpointerColorBackground "pointerColorBackground"
+Boolean XmuCvtStringToColorCursor
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+typedef int XtGravity;
+
+#ifndef XtRGravity
+#define XtRGravity "Gravity"
+#endif
+#define XtEForget "forget"
+#define XtENorthWest "northwest"
+#define XtENorth "north"
+#define XtENorthEast "northeast"
+#define XtEWest "west"
+#define XtECenter "center"
+#define XtEEast "east"
+#define XtESouthWest "southwest"
+#define XtESouth "south"
+#define XtESouthEast "southeast"
+#define XtEStatic "static"
+#define XtEUnmap "unmap"
+void XmuCvtStringToGravity
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtGravityToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+typedef enum {
+ XtJustifyLeft, /* justify text to left side of button */
+ XtJustifyCenter, /* justify text in center of button */
+ XtJustifyRight /* justify text to right side of button */
+} XtJustify;
+#ifndef XtRJustify
+#define XtRJustify "Justify"
+#endif
+#define XtEleft "left"
+#define XtEcenter "center"
+#define XtEright "right"
+#define XtEtop "top"
+#define XtEbottom "bottom"
+void XmuCvtStringToJustify
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtJustifyToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+#define XtRLong "Long"
+void XmuCvtStringToLong
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+Boolean XmuCvtLongToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+typedef enum {
+ XtorientHorizontal,
+ XtorientVertical
+} XtOrientation;
+void XmuCvtStringToOrientation
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtOrientationToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+void XmuCvtStringToBitmap
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+#define XtRShapeStyle "ShapeStyle"
+#define XtERectangle "Rectangle"
+#define XtEOval "Oval"
+#define XtEEllipse "Ellipse"
+#define XtERoundedRectangle "RoundedRectangle"
+
+#define XmuShapeRectangle 1
+#define XmuShapeOval 2
+#define XmuShapeEllipse 3
+#define XmuShapeRoundedRectangle 4
+
+Boolean XmuCvtStringToShapeStyle
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+Boolean XmuCvtShapeStyleToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+Boolean XmuReshapeWidget
+(
+ Widget w,
+ int shape_style,
+ int corner_width,
+ int corner_height
+ );
+
+void XmuCvtStringToWidget
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuNewCvtStringToWidget
+(
+ Display *display,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValue *fromVal,
+ XrmValue *toVal,
+ XtPointer *converter_data
+ );
+
+Boolean XmuCvtWidgetToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValue *fromVal,
+ XrmValue *toVal,
+ XtPointer *converter_data
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_STRCONVERT_H_ */
diff --git a/X11/Xmu/CurUtil.h b/X11/Xmu/CurUtil.h
new file mode 100644
index 000000000..0e79d2159
--- /dev/null
+++ b/X11/Xmu/CurUtil.h
@@ -0,0 +1,46 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_CURUTIL_H_
+#define _XMU_CURUTIL_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+int XmuCursorNameToIndex
+(
+ _Xconst char *name
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CURUTIL_H_ */
diff --git a/X11/Xmu/CvtCache.h b/X11/Xmu/CvtCache.h
new file mode 100644
index 000000000..794367ba1
--- /dev/null
+++ b/X11/Xmu/CvtCache.h
@@ -0,0 +1,59 @@
+/*
+
+Copyright 1989, 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.
+
+*/
+
+/*
+ * Public Interfaces
+ *
+ * XmuCvtCache *XmuCvtCacheLookupDisplay (dpy)
+ * Display *dpy;
+ */
+
+#ifndef _XMU_CVTCACHE_H_
+#define _XMU_CVTCACHE_H_
+
+#include <X11/Xmu/DisplayQue.h>
+#include <X11/Xfuncproto.h>
+
+typedef struct _XmuCvtCache {
+ struct {
+ char **bitmapFilePath;
+ } string_to_bitmap;
+ /* add other per-display data that needs to be cached */
+} XmuCvtCache;
+
+_XFUNCPROTOBEGIN
+
+XmuCvtCache *_XmuCCLookupDisplay
+(
+ Display *dpy
+ );
+
+extern void _XmuStringToBitmapInitCache(XmuCvtCache *c);
+extern void _XmuStringToBitmapFreeCache(XmuCvtCache *c);
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CVTCACHE_H_ */
diff --git a/X11/Xmu/DisplayQue.h b/X11/Xmu/DisplayQue.h
new file mode 100644
index 000000000..5eb9191be
--- /dev/null
+++ b/X11/Xmu/DisplayQue.h
@@ -0,0 +1,152 @@
+/*
+
+Copyright 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.
+
+*/
+
+#ifndef _XMU_DISPLAYQUE_H_
+#define _XMU_DISPLAYQUE_H_
+
+#include <X11/Xmu/CloseHook.h>
+#include <X11/Xfuncproto.h>
+
+/*
+ * Public Entry Points
+ *
+ *
+ * XmuDisplayQueue *XmuDQCreate (closefunc, freefunc, data)
+ * XmuCloseDisplayQueueProc closefunc;
+ * XmuFreeDisplayQueueProc freefunc;
+ * XPointer data;
+ *
+ * Creates and returns a queue into which displays may be placed. When
+ * the display is closed, the closefunc (if non-NULL) is upcalled with
+ * as follows:
+ *
+ * (*closefunc) (queue, entry)
+ *
+ * The freeproc, if non-NULL, is called whenever the last display is
+ * closed, notifying the creator that display queue may be released
+ * using XmuDQDestroy.
+ *
+ *
+ * Bool XmuDQDestroy (q, docallbacks)
+ * XmuDisplayQueue *q;
+ * Bool docallbacks;
+ *
+ * Releases all memory for the indicated display queue. If docallbacks
+ * is true, then the closefunc (if non-NULL) is called for each
+ * display.
+ *
+ *
+ * XmuDisplayQueueEntry *XmuDQLookupDisplay (q, dpy)
+ * XmuDisplayQueue *q;
+ * Display *dpy;
+ *
+ * Returns the queue entry for the specified display or NULL if the
+ * display is not in the queue.
+ *
+ *
+ * XmuDisplayQueueEntry *XmuDQAddDisplay (q, dpy, data)
+ * XmuDisplayQueue *q;
+ * Display *dpy;
+ * XPointer data;
+ *
+ * Adds the indicated display to the end of the queue or NULL if it
+ * is unable to allocate memory. The data field may be used by the
+ * caller to attach arbitrary data to this display in this queue. The
+ * caller should use XmuDQLookupDisplay to make sure that the display
+ * hasn't already been added.
+ *
+ *
+ * Bool XmuDQRemoveDisplay (q, dpy)
+ * XmuDisplayQueue *q;
+ * Display *dpy;
+ *
+ * Removes the specified display from the given queue. If the
+ * indicated display is not found on this queue, False is returned,
+ * otherwise True is returned.
+ */
+
+typedef struct _XmuDisplayQueue XmuDisplayQueue;
+typedef struct _XmuDisplayQueueEntry XmuDisplayQueueEntry;
+
+typedef int (*XmuCloseDisplayQueueProc)(XmuDisplayQueue *queue,
+ XmuDisplayQueueEntry *entry);
+
+typedef int (*XmuFreeDisplayQueueProc)(XmuDisplayQueue *queue);
+
+struct _XmuDisplayQueueEntry {
+ struct _XmuDisplayQueueEntry *prev, *next;
+ Display *display;
+ CloseHook closehook;
+ XPointer data;
+};
+
+struct _XmuDisplayQueue {
+ int nentries;
+ XmuDisplayQueueEntry *head, *tail;
+ XmuCloseDisplayQueueProc closefunc;
+ XmuFreeDisplayQueueProc freefunc;
+ XPointer data;
+};
+
+_XFUNCPROTOBEGIN
+
+XmuDisplayQueue *XmuDQCreate
+(
+ XmuCloseDisplayQueueProc closefunc,
+ XmuFreeDisplayQueueProc freefunc,
+ XPointer data
+ );
+
+Bool XmuDQDestroy
+(
+ XmuDisplayQueue *q,
+ Bool docallbacks
+ );
+
+XmuDisplayQueueEntry *XmuDQLookupDisplay
+(
+ XmuDisplayQueue *q,
+ Display *dpy
+ );
+
+XmuDisplayQueueEntry *XmuDQAddDisplay
+(
+ XmuDisplayQueue *q,
+ Display *dpy,
+ XPointer data
+ );
+
+Bool XmuDQRemoveDisplay
+(
+ XmuDisplayQueue *q,
+ Display *dpy
+ );
+
+_XFUNCPROTOEND
+
+#define XmuDQNDisplays(q) ((q)->nentries)
+
+#endif /* _XMU_DISPLAYQUE_H_ */
diff --git a/X11/Xmu/Drawing.h b/X11/Xmu/Drawing.h
new file mode 100644
index 000000000..bfb1c3c90
--- /dev/null
+++ b/X11/Xmu/Drawing.h
@@ -0,0 +1,158 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_DRAWING_H_
+#define _XMU_DRAWING_H_
+
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+
+#include <stdio.h>
+#if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
+typedef unsigned long Pixel;
+#endif
+
+_XFUNCPROTOBEGIN
+
+void XmuDrawRoundedRectangle
+(
+ Display *dpy,
+ Drawable draw,
+ GC gc,
+ int x,
+ int y,
+ int w,
+ int h,
+ int ew,
+ int eh
+ );
+
+void XmuFillRoundedRectangle
+(
+ Display *dpy,
+ Drawable draw,
+ GC gc,
+ int x,
+ int y,
+ int w,
+ int h,
+ int ew,
+ int eh
+ );
+
+void XmuDrawLogo
+(
+ Display *dpy,
+ Drawable drawable,
+ GC gcFore,
+ GC gcBack,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height
+ );
+
+Pixmap XmuCreatePixmapFromBitmap
+(
+ Display *dpy,
+ Drawable d,
+ Pixmap bitmap,
+ unsigned int width,
+ unsigned int height,
+ unsigned int depth,
+ unsigned long fore,
+ unsigned long back
+);
+
+Pixmap XmuCreateStippledPixmap
+(
+ Screen *screen,
+ Pixel fore,
+ Pixel back,
+ unsigned int depth
+ );
+
+void XmuReleaseStippledPixmap
+(
+ Screen *screen,
+ Pixmap pixmap
+ );
+
+Pixmap XmuLocateBitmapFile
+(
+ Screen *screen,
+ _Xconst char *name,
+ char *srcname_return,
+ int srcnamelen,
+ int *width_return,
+ int *height_return,
+ int *xhot_return,
+ int *yhot_return
+ );
+
+Pixmap XmuLocatePixmapFile
+(
+ Screen *screen,
+ _Xconst char *name,
+ unsigned long fore,
+ unsigned long back,
+ unsigned int depth,
+ char *srcname_return,
+ int srcnamelen,
+ int *width_return,
+ int *height_return,
+ int *xhot_return,
+ int *yhot_return
+ );
+
+int XmuReadBitmapData
+(
+ FILE *fstream,
+ unsigned int *width_return,
+ unsigned int *height_return,
+ unsigned char **datap_return,
+ int *xhot_return,
+ int *yhot_return
+);
+
+int XmuReadBitmapDataFromFile
+(
+ _Xconst char *filename,
+ unsigned int *width_return,
+ unsigned int *height_return,
+ unsigned char **datap_return,
+ int *xhot_return,
+ int *yhot_return
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_DRAWING_H_ */
diff --git a/X11/Xmu/Editres.h b/X11/Xmu/Editres.h
new file mode 100644
index 000000000..52aa239a9
--- /dev/null
+++ b/X11/Xmu/Editres.h
@@ -0,0 +1,39 @@
+/*
+
+Copyright 1991, 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.
+
+*/
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void _XEditResCheckMessages
+(
+ Widget w,
+ XtPointer data,
+ XEvent *event,
+ Boolean *cont
+);
+
+_XFUNCPROTOEND
diff --git a/X11/Xmu/EditresP.h b/X11/Xmu/EditresP.h
new file mode 100644
index 000000000..d87f9464d
--- /dev/null
+++ b/X11/Xmu/EditresP.h
@@ -0,0 +1,406 @@
+/*
+
+Copyright 1989, 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.
+
+*/
+
+/*
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+/************************************************************
+
+ The Editres Protocol
+
+
+ The Client message sent to the application is:
+
+ ATOM = "ResEditor" --- RES_EDITOR_NAME
+
+ FORMAT = 32 --- RES_EDIT_SEND_EVENT_FORMAT
+
+ l[0] = timestamp
+ l[1] = command atom name
+ l[2] = ident of command
+ l[3] = protocol version number to use
+
+
+
+ The binary protocol has the following format:
+
+ Card8: 8-bit unsingned integer
+ Card16: 16-bit unsingned integer
+ Card32: 32-bit unsingned integer
+ Int16: 16-bit signed integer
+ Window: 32-bit value
+ Widget: 32-bit value
+ String8: ListOfCard8
+
+ [a][b][c] represent an exclusive list of choices.
+
+ All widgets are passed as a list of widgets, containing the
+ full instance heirarch of this widget. The hierarchy is ordered
+ from parent to child. Thus the first element of each list is
+ the root of the widget tree (this makes verifying that the widget
+ still exists, MUCH faster).
+
+ ListOfFoo comprises a list of things in the following format:
+
+ number: Card16
+ <number> things: ????
+
+ This is a synchronous protocol, every request MUST be followed by a
+ reply.
+
+ Request:
+
+ Serial Number: Card8
+ Op Code: Card8 - { SendWidgetTree = 0,
+ SetValues = 1,
+ GetResources = 2,
+ GetGeometry = 3,
+ FindChild = 4,
+ GetValues = 5 }
+ Length: Card32
+ Data:
+
+ Reply:
+
+ Serial Number: Card8
+ Type: Card8 - { Formatted = 0,
+ Unformatted = 1,
+ ProtocolMismatch = 2
+ }
+ Length: Card32
+
+
+ Byte Order:
+
+ All Fields are MSB -> LSB
+
+ Data:
+
+ Formatted:
+
+ The data contains the reply information for the request as
+ specified below if the reply type is "Formatted". The return
+ values for the other reply types are shown below.
+
+ Unformatted:
+
+ Message: String8
+
+ ProtocolMismatch:
+
+ RequestedVersion: Card8
+
+------------------------------------------------------------
+
+ SendWidgetTree:
+
+ --->
+
+ Number of Entries: Card16
+ Entry:
+ widget: ListOfWidgets
+ name: String8
+ class: String8
+ window: Card32
+ toolkit: String8
+
+ Send Widget Tree returns the toolkit type, and a fuly specified list
+ of widgets for each widget in the tree. This is enough information
+ to completely reconstruct the entire widget heirarchy.
+
+ The window return value contains the Xid of the window currently
+ used by this widget. If the widget is unrealized then 0 is returned,
+ and if widget is a non-windowed object a value of 2 is returned.
+
+ SetValues:
+
+ name: String8
+ type: String8
+ value: String8
+ Number of Entries: Card16
+ Entry:
+ widget: ListOfWidgets
+
+ --->
+
+ Number of Entries: Card16
+ Entry:
+ widget: ListOfWidgets
+ message: String8
+
+ SetValues will allow the same resource to be set on a number of
+ widgets. This function will return an error message if the SetValues
+ request caused an Xt error.
+
+ GetValues:
+
+ names: ListOfString8
+ widget: Widget
+
+ --->
+ novalues: ListOfCard16
+ values: ListOfString8
+
+ GetValues will allow a number of resource values to be read
+ on a particular widget. The request specifies the names of
+ the resources wanted and the widget id these resources are
+ from. The reply returns a list of indices from the requests
+ name list of resources for which a value can not be returned.
+ It also returns a list of returned values, in the order of the
+ requests names list, skipping those indices present in novalues.
+
+ GetResources:
+
+ Number of Entries: Card16
+ Entry
+ widget: ListOfWidgets:
+
+ ---->
+
+ Number of Entries: Card16
+ Entry
+ Widget: ListOfWidgets:
+ Error: Bool
+
+ [ Message: String 8 ]
+ [ Number of Resources: Card16
+ Resource:
+ Kind: {normal, constraint}
+ Name: String8
+ Class: String8
+ Type: String8 ]
+
+ GetResource retrieves the kind, name, class and type for every
+ widget passed to it. If an error occured with the resource fetch
+ Error will be set to True for the given widget and a message
+ is returned rather than the resource info.
+
+ GetGeometry:
+
+ Number of Entries: Card16
+ Entry
+ Widget: ListOfWidgets:
+
+ ---->
+
+ Number of Entries: Card16
+ Entry
+ Widget: ListOfWidgets:
+ Error: Bool
+
+ [ message: String 8 ]
+ [ mapped: Boolean
+ X: Int16
+ Y: Int16
+ Width: Card16
+ Height: Card16
+ BorderWidth: Card16 ]
+
+ GetGeometry retreives the mapping state, x, y, width, height
+ and border width for each widget specified. If an error occured
+ with the geometry fetch "Error" will be set to True for the given
+ widget and a message is returned rather than the geometry info.
+ X an Y corrospond to the root coordinates of the upper left corner
+ of the widget (outside the window border).
+
+ FindChild:
+
+ Widget: ListOfWidgets
+ X: Int16
+ Y: Int16
+
+ --->
+
+ Widget: ListOfWidgets
+
+ Find Child returns a descendent of the widget specified that
+ is at the root coordinates specified.
+
+ NOTE:
+
+ The returned widget is undefined if the point is contained in
+ two or more mapped widgets, or in two overlapping Rect objs.
+
+ GetValues:
+
+ names: ListOfString8
+ widget: Widget
+
+ --->
+
+ values: ListOfString8
+
+ GetValues will allow a number of resource values to be read
+ on a particular widget. Currently only InterViews 3.0.1 Styles
+ and their attributes are supported. In addition, the current
+ user interface only supports the return of 1 resource. The ability
+ to specify and return multiple resources is defined for future editres
+ interfaces where some or all of a widgets resource values are returned
+ and displayed at once.
+
+
+************************************************************/
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+#define XER_NBBY 8 /* number of bits in a byte */
+#define BYTE_MASK 255
+
+#define HEADER_SIZE 6
+
+#define EDITRES_IS_OBJECT 2
+#define EDITRES_IS_UNREALIZED 0
+
+/*
+ * Format for atoms
+ */
+#define EDITRES_FORMAT 8
+#define EDITRES_SEND_EVENT_FORMAT 32
+
+/*
+ * Atoms
+ */
+#define EDITRES_NAME "Editres"
+#define EDITRES_COMMAND_ATOM "EditresCommand"
+#define EDITRES_COMM_ATOM "EditresComm"
+#define EDITRES_CLIENT_VALUE "EditresClientVal"
+#define EDITRES_PROTOCOL_ATOM "EditresProtocol"
+
+typedef enum {
+ SendWidgetTree = 0,
+ SetValues = 1,
+ GetResources = 2,
+ GetGeometry = 3,
+ FindChild = 4,
+ GetValues = 5
+} EditresCommand;
+
+typedef enum {
+ NormalResource = 0,
+ ConstraintResource = 1
+} ResourceType;
+
+/*
+ * The type of a resource identifier
+ */
+typedef unsigned char ResIdent;
+
+typedef enum {
+ PartialSuccess = 0,
+ Failure = 1,
+ ProtocolMismatch = 2
+} EditResError;
+
+typedef struct _WidgetInfo {
+ unsigned short num_widgets;
+ unsigned long *ids;
+ Widget real_widget;
+} WidgetInfo;
+
+typedef struct _ProtocolStream {
+ unsigned long size, alloc;
+ unsigned char *real_top, *top, *current;
+} ProtocolStream;
+
+/************************************************************
+ * Function definitions for reading and writing protocol requests
+ ************************************************************/
+_XFUNCPROTOBEGIN
+
+void _XEditResPutString8
+(
+ ProtocolStream *stream,
+ _Xconst char *str
+ );
+
+void _XEditResPut8
+(
+ ProtocolStream *stream,
+ unsigned int value
+ );
+
+void _XEditResPut16
+(
+ ProtocolStream *stream,
+ unsigned int value
+ );
+
+void _XEditResPut32
+(
+ ProtocolStream *stream,
+ unsigned long value
+ );
+
+void _XEditResPutWidgetInfo
+(
+ ProtocolStream *stream,
+ WidgetInfo *info
+ );
+
+void _XEditResResetStream
+(
+ ProtocolStream *stream
+ );
+
+Bool _XEditResGet8
+(
+ ProtocolStream *stream,
+ unsigned char *value
+ );
+
+Bool _XEditResGet16
+(
+ ProtocolStream *stream,
+ unsigned short *value
+ );
+
+Bool _XEditResGetSigned16
+(
+ ProtocolStream *stream,
+ short *value
+ );
+
+Bool _XEditResGet32
+(
+ ProtocolStream *stream,
+ unsigned long *value
+ );
+
+Bool _XEditResGetString8
+(
+ ProtocolStream *stream,
+ char **str
+ );
+
+Bool _XEditResGetWidgetInfo
+(
+ ProtocolStream *stream,
+ WidgetInfo *info
+ );
+
+_XFUNCPROTOEND
diff --git a/X11/Xmu/Error.h b/X11/Xmu/Error.h
new file mode 100644
index 000000000..5b459cb90
--- /dev/null
+++ b/X11/Xmu/Error.h
@@ -0,0 +1,56 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_ERROR_H_
+#define _XMU_ERROR_H_
+
+#include <stdio.h>
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+int XmuPrintDefaultErrorMessage
+(
+ Display *dpy,
+ XErrorEvent *event,
+ FILE *fp
+ );
+
+int XmuSimpleErrorHandler
+(
+ Display *dpy,
+ XErrorEvent *errorp
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_ERROR_H_ */
diff --git a/X11/Xmu/ExtAgent.h b/X11/Xmu/ExtAgent.h
new file mode 100644
index 000000000..1bdf269ff
--- /dev/null
+++ b/X11/Xmu/ExtAgent.h
@@ -0,0 +1,41 @@
+/*
+
+Copyright 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.
+
+*/
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+extern void XmuRegisterExternalAgent
+(
+ Widget w,
+ XtPointer data,
+ XEvent *event,
+ Boolean *cont
+ );
+
+_XFUNCPROTOEND
+
diff --git a/X11/Xmu/Initer.h b/X11/Xmu/Initer.h
new file mode 100644
index 000000000..b7925bb0e
--- /dev/null
+++ b/X11/Xmu/Initer.h
@@ -0,0 +1,55 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_INITER_H_
+#define _XMU_INITER_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+typedef void (*XmuInitializerProc)(XtAppContext app_context, XPointer data);
+
+_XFUNCPROTOBEGIN
+
+void XmuCallInitializers
+(
+ XtAppContext app_context
+ );
+
+void XmuAddInitializer
+(
+ XmuInitializerProc func,
+ XPointer data
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_INITER_H_ */
diff --git a/X11/Xmu/Lookup.h b/X11/Xmu/Lookup.h
new file mode 100644
index 000000000..302045ac6
--- /dev/null
+++ b/X11/Xmu/Lookup.h
@@ -0,0 +1,124 @@
+/************************************************************
+
+Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+
+ All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+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 ABOVE LISTED COPYRIGHT HOLDER(S) 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(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization.
+
+********************************************************/
+
+#ifndef included_xmu_lookup_h
+#define included_xmu_lookup_h 1
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+extern int XmuLookupString(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status,
+ unsigned long keysymSet);
+
+extern int XmuLookupLatin1(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupLatin2(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupLatin3(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupLatin4(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupKana(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupJISX0201(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupArabic(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupCyrillic(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupGreek(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupAPL(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupHebrew(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+#endif /* included_xmu_lookup_h */
diff --git a/X11/Xmu/Misc.h b/X11/Xmu/Misc.h
new file mode 100644
index 000000000..039f51dde
--- /dev/null
+++ b/X11/Xmu/Misc.h
@@ -0,0 +1,63 @@
+/*
+
+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.
+
+******************************************************************/
+
+/* Various useful constant and macro definitions */
+
+#ifndef _Xmu_Misc_h
+#define _Xmu_Misc_h
+
+#define MAXDIMENSION ((1 << 31)-1)
+
+#define Max(x, y) (((x) > (y)) ? (x) : (y))
+#define Min(x, y) (((x) < (y)) ? (x) : (y))
+#define AssignMax(x, y) {if ((y) > (x)) x = (y);}
+#define AssignMin(x, y) {if ((y) < (x)) x = (y);}
+
+#endif /*_Xmu_Misc_h*/
diff --git a/X11/Xmu/StdCmap.h b/X11/Xmu/StdCmap.h
new file mode 100644
index 000000000..62eb0e8a0
--- /dev/null
+++ b/X11/Xmu/StdCmap.h
@@ -0,0 +1,116 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_STDCMAP_H_
+#define _XMU_STDCMAP_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+Status XmuAllStandardColormaps
+(
+ Display *dpy
+ );
+
+Status XmuCreateColormap
+(
+ Display *dpy,
+ XStandardColormap *colormap
+ );
+
+void XmuDeleteStandardColormap
+(
+ Display *dpy,
+ int screen,
+ Atom property
+ );
+
+Status XmuGetColormapAllocation
+(
+ XVisualInfo *vinfo,
+ Atom property,
+ unsigned long *red_max_return,
+ unsigned long *green_max_return,
+ unsigned long *blue_max_return
+ );
+
+Status XmuLookupStandardColormap
+(
+ Display *dpy,
+ int screen,
+ VisualID visualid,
+ unsigned int depth,
+ Atom property,
+ Bool replace,
+ Bool retain
+ );
+
+XStandardColormap *XmuStandardColormap
+(
+ Display *dpy,
+ int screen,
+ VisualID visualid,
+ unsigned int depth,
+ Atom property,
+ Colormap cmap,
+ unsigned long red_max,
+ unsigned long green_max,
+ unsigned long blue_max
+ );
+
+Status XmuVisualStandardColormaps
+(
+ Display *dpy,
+ int screen,
+ VisualID visualid,
+ unsigned int depth,
+ Bool replace,
+ Bool retain
+ );
+
+Bool XmuDistinguishableColors
+(
+ XColor *colors,
+ int count
+ );
+
+Bool XmuDistinguishablePixels
+(
+ Display *dpy,
+ Colormap cmap,
+ unsigned long *pixels,
+ int count
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_STDCMAP_H_ */
diff --git a/X11/Xmu/StdSel.h b/X11/Xmu/StdSel.h
new file mode 100644
index 000000000..9c1663074
--- /dev/null
+++ b/X11/Xmu/StdSel.h
@@ -0,0 +1,54 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_SELECTION_H_
+#define _XMU_SELECTION_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+Boolean XmuConvertStandardSelection
+(
+ Widget w,
+ Time timev,
+ Atom *selection,
+ Atom *target,
+ Atom *type_return,
+ XPointer *value_return,
+ unsigned long *length_return,
+ int *format_return
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_SELECTION_H_ */
diff --git a/X11/Xmu/SysUtil.h b/X11/Xmu/SysUtil.h
new file mode 100644
index 000000000..192352fc7
--- /dev/null
+++ b/X11/Xmu/SysUtil.h
@@ -0,0 +1,53 @@
+/*
+
+Copyright 1989, 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.
+
+*/
+
+#ifndef _SYSUTIL_H_
+#define _SYSUTIL_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+int XmuGetHostname
+(
+ char *buf_return,
+ int maxlen
+);
+
+#ifndef _XMU_H_
+int XmuSnprintf
+(
+ char *str,
+ int size,
+ _Xconst char *fmt,
+ ...
+ )
+_X_ATTRIBUTE_PRINTF(3,4);
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _SYSUTIL_H_ */
diff --git a/X11/Xmu/WhitePoint.h b/X11/Xmu/WhitePoint.h
new file mode 100644
index 000000000..31440d1e1
--- /dev/null
+++ b/X11/Xmu/WhitePoint.h
@@ -0,0 +1,63 @@
+/*
+
+Copyright 1991, 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.
+
+*/
+
+
+/*
+ *
+ * DESCRIPTION
+ * This file contains a series of standard white point values.
+ */
+#define CIE_A_u 0.2560
+#define CIE_A_v 0.5243
+#define CIE_A_Y 1.0000
+
+#define CIE_B_u 0.2137
+#define CIE_B_v 0.4852
+#define CIE_B_Y 1.0000
+
+#define CIE_C_u 0.2009
+#define CIE_C_v 0.4609
+#define CIE_C_Y 1.0000
+
+#define CIE_D55_u 0.2044
+#define CIE_D55_v 0.4808
+#define CIE_D55_Y 1.0000
+
+#define CIE_D65_u 0.1978
+#define CIE_D65_v 0.4684
+#define CIE_D65_Y 1.0000
+
+#define CIE_D75_u 0.1935
+#define CIE_D75_v 0.4586
+#define CIE_D75_Y 1.0000
+
+#define ASTM_D50_u 0.2092
+#define ASTM_D50_v 0.4881
+#define ASTM_D50_Y 1.0000
+
+#define WP_9300K_u 0.1884
+#define WP_9300K_v 0.4463
+#define WP_9300K_Y 1.0000
diff --git a/X11/Xmu/WidgetNode.h b/X11/Xmu/WidgetNode.h
new file mode 100644
index 000000000..85a064ece
--- /dev/null
+++ b/X11/Xmu/WidgetNode.h
@@ -0,0 +1,95 @@
+/*
+
+Copyright 1990, 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.
+
+*/
+
+/*
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XmuWidgetNode_h
+#define _XmuWidgetNode_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+/*
+ * This is usually initialized by setting the first two fields and letting
+ * rest be implicitly nulled (by genlist.sh, for example)
+ */
+typedef struct _XmuWidgetNode {
+ char *label; /* mixed case name */
+ WidgetClass *widget_class_ptr; /* addr of widget class */
+ struct _XmuWidgetNode *superclass; /* superclass of widget_class */
+ struct _XmuWidgetNode *children, *siblings; /* subclass links */
+ char *lowered_label; /* lowercase version of label */
+ char *lowered_classname; /* lowercase version of class_name */
+ Bool have_resources; /* resources have been fetched */
+ XtResourceList resources; /* extracted resource database */
+ struct _XmuWidgetNode **resourcewn; /* where resources come from */
+ Cardinal nresources; /* number of resources */
+ XtResourceList constraints; /* extracted constraint resources */
+ struct _XmuWidgetNode **constraintwn; /* where constraints come from */
+ Cardinal nconstraints; /* number of constraint resources */
+ XtPointer data; /* extra data */
+} XmuWidgetNode;
+
+#define XmuWnClass(wn) ((wn)->widget_class_ptr[0])
+#define XmuWnClassname(wn) (XmuWnClass(wn)->core_class.class_name)
+#define XmuWnSuperclass(wn) ((XmuWnClass(wn))->core_class.superclass)
+
+ /* external interfaces */
+_XFUNCPROTOBEGIN
+
+void XmuWnInitializeNodes
+(
+ XmuWidgetNode *nodearray,
+ int nnodes
+ );
+
+void XmuWnFetchResources
+(
+ XmuWidgetNode *node,
+ Widget toplevel,
+ XmuWidgetNode *topnode
+ );
+
+int XmuWnCountOwnedResources
+(
+ XmuWidgetNode *node,
+ XmuWidgetNode *ownernode,
+ Bool constraints
+ );
+
+XmuWidgetNode *XmuWnNameToNode
+(
+ XmuWidgetNode *nodelist,
+ int nnodes,
+ _Xconst char *name
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XmuWidgetNode_h */
+
diff --git a/X11/Xmu/WinUtil.h b/X11/Xmu/WinUtil.h
new file mode 100644
index 000000000..8bfaac3cd
--- /dev/null
+++ b/X11/Xmu/WinUtil.h
@@ -0,0 +1,61 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_WINDOWUTIL_H_
+#define _XMU_WINDOWUTIL_H_
+
+#include <X11/Xutil.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+Window XmuClientWindow
+(
+ Display *dpy,
+ Window win
+ );
+
+Bool XmuUpdateMapHints
+(
+ Display *dpy,
+ Window win,
+ XSizeHints *hints
+ );
+
+Screen *XmuScreenOfWindow
+(
+ Display *dpy,
+ Window w
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_WINDOWUTIL_H_ */
diff --git a/X11/Xmu/Xct.h b/X11/Xmu/Xct.h
new file mode 100644
index 000000000..337b70bc8
--- /dev/null
+++ b/X11/Xmu/Xct.h
@@ -0,0 +1,165 @@
+/*
+
+Copyright 1989, 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.
+
+*/
+
+#ifndef _Xct_h
+#define _Xct_h
+
+#include <X11/Xfuncproto.h>
+
+#define XctVersion 1
+
+typedef unsigned char *XctString;
+
+typedef enum {
+ XctUnspecified,
+ XctLeftToRight,
+ XctRightToLeft
+} XctHDirection;
+
+typedef unsigned long XctFlags;
+
+/* These are bits in XctFlags. */
+
+#define XctSingleSetSegments 0x0001
+ /* This means that returned segments should contain characters from only
+ * one set (C0, C1, GL, GR). When this is requested, XctSegment is never
+ * returned, instead XctC0Segment, XctC1Segment, XctGlSegment, and
+ * XctGRSegment are returned. C0 and C1 segments are always returned as
+ * singleton characters.
+ */
+
+#define XctProvideExtensions 0x0002
+ /* This means that if the Compound Text string is from a higher version
+ * than this code is implemented to, then syntactically correct but unknown
+ * control sequences should be returned as XctExtension items. If this
+ * flag is not set, and the Compound Text string version indicates that
+ * extensions cannot be ignored, then each unknown control sequence will be
+ * reported as an XctError.
+ */
+
+#define XctAcceptC0Extensions 0x0004
+ /* This means that if the Compound Text string is from a higher version
+ * than this code is implemented to, then unknown C0 characters should be
+ * treated as if they were legal, and returned as C0 characters (regardless
+ * of how XctProvideExtensions is set). If this flag is not set, then all
+ * unknown C0 characters are treated according to XctProvideExtensions.
+ */
+
+#define XctAcceptC1Extensions 0x0008
+ /* This means that if the Compound Text string is from a higher version
+ * than this code is implemented to, then unknown C0 characters should be
+ * treated as if they were legal, and returned as C0 characters (regardless
+ * of how XctProvideExtensions is set). If this flag is not set, then all
+ * unknown C0 characters are treated according to XctProvideExtensions.
+ */
+
+#define XctHideDirection 0x0010
+ /* This means that horizontal direction changes should be reported as
+ * XctHorizontal items. If this flag is not set, then direction changes are
+ * not returned as items, but the current direction is still maintained and
+ * reported for other items.
+ */
+
+#define XctFreeString 0x0020
+ /* This means that XctFree should free the Compound Text string (that was
+ * passed to XctCreate. If this flag is not set, the string is not freed.
+ */
+
+#define XctShiftMultiGRToGL 0x0040
+ /* Translate GR segments on-the-fly into GL segments for the GR sets:
+ * GB2312.1980-1, JISX0208.1983-1, and KSC5601.1987-1.
+ */
+
+/* This is the return type for XctNextItem. */
+typedef enum {
+ XctSegment, /* used when XctSingleSetSegments is not requested */
+ XctC0Segment, /* used when XctSingleSetSegments is requested */
+ XctGLSegment, /* used when XctSingleSetSegments is requested */
+ XctC1Segment, /* used when XctSingleSetSegments is requested */
+ XctGRSegment, /* used when XctSingleSetSegments is requested */
+ XctExtendedSegment, /* an extended segment */
+ XctExtension, /* used when XctProvideExtensions is requested */
+ XctHorizontal, /* horizontal direction or depth change */
+ XctEndOfText, /* end of text string */
+ XctError /* syntactic or semantic error */
+} XctResult;
+
+typedef struct _XctRec {
+ XctString total_string; /* as given to XctCreate */
+ int total_length; /* as given to XctCreate */
+ XctFlags flags; /* as given to XctCreate */
+ int version; /* indicates the version of the CT spec
+ * the string was produced from */
+ int can_ignore_exts;/* non-zero if ignoring extensions is
+ * acceptable, else zero */
+ XctString item; /* item returned from XctNextItem */
+ unsigned item_length; /* length of item in bytes */
+ int char_size; /* number of bytes per character in
+ * item, with zero meaning variable */
+ char *encoding; /* Encoding name for item */
+ XctHDirection horizontal; /* direction of item */
+ unsigned horz_depth; /* current direction nesting depth */
+ char *GL; /* "{I} F" string for current GL */
+ char *GL_encoding; /* Encoding name for current GL */
+ int GL_set_size; /* 94 or 96 */
+ int GL_char_size; /* number of bytes per GL character */
+ char *GR; /* "{I} F" string for current GR */
+ char *GR_encoding; /* Encoding name for current GR */
+ int GR_set_size; /* 94 or 96 */
+ int GR_char_size; /* number of bytes per GR character */
+ char *GLGR_encoding; /* Encoding name for current GL+GR,
+ * if known */
+ struct _XctPriv *priv; /* private to parser, don't peek */
+} *XctData;
+
+/* these are the external routines */
+_XFUNCPROTOBEGIN
+
+XctData XctCreate
+(
+ _Xconst unsigned char *string,
+ int length,
+ XctFlags flags
+);
+
+XctResult XctNextItem
+(
+ XctData data
+);
+
+void XctFree
+(
+ XctData data
+ );
+
+void XctReset
+(
+ XctData data
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _Xct_h */
diff --git a/X11/Xmu/Xmu.h b/X11/Xmu/Xmu.h
new file mode 100644
index 000000000..7bcc1aa1a
--- /dev/null
+++ b/X11/Xmu/Xmu.h
@@ -0,0 +1,122 @@
+/*
+
+Copyright 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.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_H_
+#define _XMU_H_
+
+#include <X11/Xfuncproto.h>
+#include <X11/Intrinsic.h>
+#include <X11/Xmu/Atoms.h> /* _XA_... */
+#include <X11/Xmu/CharSet.h> /* CopyISOLatin1Lowered */
+#include <X11/Xmu/Converters.h> /* CvtStringTo... */
+#include <X11/Xmu/Drawing.h> /* DrawRoundedRect, DrawLogo */
+#include <X11/Xmu/Error.h> /* PrintDefaultError */
+#include <X11/Xmu/StdSel.h> /* ConvertStandardSelection */
+
+/*
+ * clip lists
+ */
+typedef struct _XmuSegment {
+ int x1, x2;
+ struct _XmuSegment *next;
+} XmuSegment;
+
+typedef struct _XmuScanline {
+ int y;
+ XmuSegment *segment;
+ struct _XmuScanline *next;
+} XmuScanline;
+
+typedef struct _XmuArea {
+ XmuScanline *scanline;
+} XmuArea;
+
+#define XmuCreateArea() XmuNewArea(0, 0, 0, 0)
+#define XmuAreaOr(dst, src) XmuAreaOrXor((dst), (src), True)
+#define XmuAreaXor(dst, src) XmuAreaOrXor((dst), (src), False)
+
+#define XmuDestroyArea(a) \
+ do { \
+ XmuDestroyScanlineList((a)->scanline); \
+ XtFree((char *)(a)); \
+ } while (0)
+
+#define FreeArea(a) \
+ do { \
+ XmuDestroyScanlineList((a)->scanline); \
+ a->scanline = (Scanline *)0; \
+ } while (0)
+
+#define XmuValidSegment(s) ((s)->x1 < (s)->x2)
+#define XmuSegmentEqu(s1, s2) ((s1)->x1 == (s2)->x1 && (s1)->x2 == (s2)->x2)
+#define XmuDestroySegment(s) XtFree((char *)(s))
+
+#define XmuDestroyScanline(s) \
+ do { \
+ XmuDestroySegmentList((s)->segment); \
+ XtFree((char*)(s)); \
+ } while (0)
+
+XmuArea *XmuNewArea(int, int, int, int);
+XmuArea *XmuAreaDup(XmuArea*);
+XmuArea *XmuAreaCopy(XmuArea*, XmuArea*);
+XmuArea *XmuAreaNot(XmuArea*, int, int, int, int);
+XmuArea *XmuAreaOrXor(XmuArea*, XmuArea*, Bool);
+XmuArea *XmuAreaAnd(XmuArea*, XmuArea*);
+Bool XmuValidArea(XmuArea*);
+Bool XmuValidScanline(XmuScanline*);
+Bool XmuScanlineEqu(XmuScanline*, XmuScanline*);
+XmuSegment *XmuNewSegment(int, int);
+void XmuDestroySegmentList(XmuSegment*);
+XmuScanline *XmuScanlineCopy(XmuScanline*, XmuScanline*);
+Bool XmuAppendSegment(XmuSegment*, XmuSegment*);
+XmuScanline *XmuOptimizeScanline(XmuScanline*);
+XmuScanline *XmuScanlineNot(XmuScanline *scanline, int, int);
+XmuScanline *XmuScanlineOr(XmuScanline*, XmuScanline*);
+XmuScanline *XmuScanlineAnd(XmuScanline*, XmuScanline*);
+XmuScanline *XmuScanlineXor(XmuScanline*, XmuScanline*);
+XmuScanline *XmuNewScanline(int, int, int);
+void XmuDestroyScanlineList(XmuScanline*);
+XmuArea *XmuOptimizeArea(XmuArea *area);
+
+#ifndef notdef
+XmuScanline *XmuScanlineOrSegment(XmuScanline*, XmuSegment*);
+XmuScanline *XmuScanlineAndSegment(XmuScanline*, XmuSegment*);
+XmuScanline *XmuScanlineXorSegment(XmuScanline*, XmuSegment*);
+#endif /* notdef */
+
+#ifndef _SYSUTIL_H_
+int XmuSnprintf(char *str, int size, _Xconst char *fmt, ...)
+ _X_ATTRIBUTE_PRINTF(3,4);
+#endif
+
+#endif /* _XMU_H_ */
+
diff --git a/X11/Xpoll.h b/X11/Xpoll.h
new file mode 100644
index 000000000..4c526500b
--- /dev/null
+++ b/X11/Xpoll.h
@@ -0,0 +1,255 @@
+/* $Xorg: Xpoll.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $ */
+
+/*
+
+Copyright 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 © 2005 Daniel Stone
+ *
+ * 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, and that the name of Daniel Stone not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission. Daniel Stone makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * DANIEL STONE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * DANIEL STONE 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/include/Xpoll.h,v 3.8 2001/01/17 17:53:11 dawes Exp $ */
+
+#ifndef _XPOLL_H_
+#define _XPOLL_H_
+
+#ifndef WIN32
+
+#ifndef USE_POLL
+
+#include <X11/Xos.h>
+
+/* Below is the monster branch from hell. Basically, most systems will drop to
+ * 'the branch below is the fallthrough for halfway modern systems', and include
+ * <sys/select.h>, so we get the FD_* macros. */
+#if !defined(DGUX)
+# if (defined(SVR4) || defined(CRAY) || defined(AIXV3)) && !defined(FD_SETSIZE)
+# include <sys/select.h>
+# ifdef luna
+# include <sysent.h>
+# endif
+# else /* not SVR4/CRAY/AIXv3 */
+# if defined(AIXV4) /* AIX 4.2 fubar-ed <sys/select.h>, so try really hard. */
+# if !defined(NFDBITS)
+# include <sys/select.h>
+# endif
+# else /* the branch below is the fallthrough for halfway modern systems */
+# ifdef __QNX__ /* Make sure we get 256 bit select masks */
+# define FD_SETSIZE 256
+# endif
+# include <sys/select.h>
+# endif
+# endif
+#else /* DGUX -- No sys/select in Intel DG/ux */
+# include <sys/time.h>
+# include <sys/types.h>
+# include <unistd.h>
+#endif
+
+#include <X11/Xmd.h>
+
+#ifdef CSRG_BASED
+#include <sys/param.h>
+# if BSD < 199103
+typedef long fd_mask;
+# endif
+#endif
+
+#define XFD_SETSIZE 1024
+
+#ifndef FD_SETSIZE
+#define FD_SETSIZE XFD_SETSIZE
+#endif
+
+#ifndef NBBY
+#define NBBY 8 /* number of bits in a byte */
+#endif
+
+#ifndef NFDBITS
+#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
+#endif
+
+#ifndef howmany
+#define howmany(x,y) (((x)+((y)-1))/(y))
+#endif
+
+#if defined(BSD) && BSD < 198911 && !defined(luna)
+typedef struct fd_set {
+ fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
+} fd_set;
+#endif
+
+#ifndef hpux /* and perhaps old BSD ??? */
+# define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
+#else
+# ifndef _XPG4_EXTENDED /* HPUX 9.x and earlier */
+# define Select(n,r,w,e,t) select(n,(int*)r,(int*)w,(int*)e,(struct timeval*)t)
+# else
+# define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
+# endif
+#endif
+
+#define __X_FDS_BITS fds_bits
+
+#ifndef __FDS_BITS
+# define __FDS_BITS(p) ((p)->__X_FDS_BITS)
+#endif
+
+#define __XFDS_BITS(p, n) (__FDS_BITS(p))[n]
+
+#ifndef FD_SET
+#define FD_SET(n, p) (__XFDS_BITS(p, ((n)/NFDBITS)) |= ((fd_mask)1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_CLR
+#define FD_CLR(n, p) (__XFDS_BITS((p), ((n)/NFDBITS)) &= ~((fd_mask)1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_ISSET
+#define FD_ISSET(n, p) ((__XFDS_BITS((p), ((n)/NFDBITS))) & ((fd_mask)1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_ZERO
+#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
+#endif
+
+/*
+ * The howmany(FD_SETSIZE, NFDBITS) computes the number of elements in the
+ * array. before accessing an element in the array we check it exists.
+ * If it does not exist then the compiler discards the code to access it.
+ */
+#define XFD_ANYSET(p) \
+ ((howmany(FD_SETSIZE, NFDBITS) > 0 && (__XFDS_BITS(p, 0))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 1 && (__XFDS_BITS(p, 1))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 2 && (__XFDS_BITS(p, 2))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 3 && (__XFDS_BITS(p, 3))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 4 && (__XFDS_BITS(p, 4))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 5 && (__XFDS_BITS(p, 5))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 6 && (__XFDS_BITS(p, 6))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 7 && (__XFDS_BITS(p, 7))))
+
+#define XFD_COPYSET(src,dst) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) = __XFDS_BITS((src), __i__); \
+ }
+#define XFD_ANDSET(dst,b1,b2) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) = ((__XFDS_BITS((b1), __i__)) & (__XFDS_BITS((b2), __i__))); \
+ }
+#define XFD_ORSET(dst,b1,b2) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) = ((__XFDS_BITS((b1), __i__)) | (__XFDS_BITS((b2), __i__))); \
+ }
+#define XFD_UNSET(dst,b1) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) &= ~(__XFDS_BITS((b1), __i__)); \
+ }
+
+#else /* USE_POLL */
+#include <sys/poll.h>
+#endif /* USE_POLL */
+
+#else /* WIN32 */
+
+#define XFD_SETSIZE 1024
+#ifndef FD_SETSIZE
+#define FD_SETSIZE XFD_SETSIZE
+#endif
+#include <X11/Xwinsock.h>
+
+#define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
+
+#define XFD_SETCOUNT(p) (((fd_set FAR *)(p))->fd_count)
+#define XFD_FD(p,i) (((fd_set FAR *)(p))->fd_array[i])
+#define XFD_ANYSET(p) XFD_SETCOUNT(p)
+
+#define XFD_COPYSET(src,dst) { \
+ u_int __i; \
+ FD_ZERO(dst); \
+ for (__i = 0; __i < XFD_SETCOUNT(src) ; __i++) { \
+ XFD_FD(dst,__i) = XFD_FD(src,__i); \
+ } \
+ XFD_SETCOUNT(dst) = XFD_SETCOUNT(src); \
+}
+
+#define XFD_ANDSET(dst,b1,b2) { \
+ u_int __i; \
+ FD_ZERO(dst); \
+ for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \
+ if (FD_ISSET(XFD_FD(b1,__i), b2)) \
+ FD_SET(XFD_FD(b1,__i), dst); \
+ } \
+}
+
+#define XFD_ORSET(dst,b1,b2) { \
+ u_int __i; \
+ if (dst != b1) XFD_COPYSET(b1,dst); \
+ for (__i = 0; __i < XFD_SETCOUNT(b2) ; __i++) { \
+ if (!FD_ISSET(XFD_FD(b2,__i), dst)) \
+ FD_SET(XFD_FD(b2,__i), dst); \
+ } \
+}
+
+/* this one is really sub-optimal */
+#define XFD_UNSET(dst,b1) { \
+ u_int __i; \
+ for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \
+ FD_CLR(XFD_FD(b1,__i), dst); \
+ } \
+}
+
+/* we have to pay the price of having an array here, unlike with bitmasks
+ calling twice FD_SET with the same fd is not transparent, so be careful */
+#undef FD_SET
+#define FD_SET(fd,set) do { \
+ if (XFD_SETCOUNT(set) < FD_SETSIZE && !FD_ISSET(fd,set)) \
+ XFD_FD(set,XFD_SETCOUNT(set)++)=(fd); \
+} while(0)
+
+#define getdtablesize() FD_SETSIZE
+
+#endif /* WIN32 */
+
+#endif /* _XPOLL_H_ */
diff --git a/X11/Xregion.h b/X11/Xregion.h
new file mode 100644
index 000000000..70caa1a03
--- /dev/null
+++ b/X11/Xregion.h
@@ -0,0 +1,192 @@
+/************************************************************************
+
+Copyright 1987, 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 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 _X11_XREGION_H_
+#define _X11_XREGION_H_
+
+typedef struct {
+ short x1, x2, y1, y2;
+} Box, BOX, BoxRec, *BoxPtr;
+
+typedef struct {
+ short x, y, width, height;
+}RECTANGLE, RectangleRec, *RectanglePtr;
+
+#define TRUE 1
+#define FALSE 0
+#ifndef MAXSHORT
+#define MAXSHORT 32767
+#define MINSHORT -MAXSHORT
+#endif
+#ifndef MAX
+#define MAX(a,b) (((a) > (b)) ? (a) : (b))
+#endif
+#ifndef MIN
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+#endif
+
+
+/*
+ * clip region
+ */
+
+typedef struct _XRegion {
+ long size;
+ long numRects;
+ BOX *rects;
+ BOX extents;
+} REGION;
+
+/* Xutil.h contains the declaration:
+ * typedef struct _XRegion *Region;
+ */
+
+/* 1 if two BOXs overlap.
+ * 0 if two BOXs do not overlap.
+ * Remember, x2 and y2 are not in the region
+ */
+#define EXTENTCHECK(r1, r2) \
+ ((r1)->x2 > (r2)->x1 && \
+ (r1)->x1 < (r2)->x2 && \
+ (r1)->y2 > (r2)->y1 && \
+ (r1)->y1 < (r2)->y2)
+
+/*
+ * update region extents
+ */
+#define EXTENTS(r,idRect){\
+ if((r)->x1 < (idRect)->extents.x1)\
+ (idRect)->extents.x1 = (r)->x1;\
+ if((r)->y1 < (idRect)->extents.y1)\
+ (idRect)->extents.y1 = (r)->y1;\
+ if((r)->x2 > (idRect)->extents.x2)\
+ (idRect)->extents.x2 = (r)->x2;\
+ if((r)->y2 > (idRect)->extents.y2)\
+ (idRect)->extents.y2 = (r)->y2;\
+ }
+
+/*
+ * Check to see if there is enough memory in the present region.
+ */
+#define MEMCHECK(reg, rect, firstrect){\
+ if ((reg)->numRects >= ((reg)->size - 1)){\
+ BoxPtr tmpRect = Xrealloc ((firstrect), \
+ (2 * (sizeof(BOX)) * ((reg)->size))); \
+ if (tmpRect == NULL) \
+ return(0);\
+ (firstrect) = tmpRect; \
+ (reg)->size *= 2;\
+ (rect) = &(firstrect)[(reg)->numRects];\
+ }\
+ }
+
+/* this routine checks to see if the previous rectangle is the same
+ * or subsumes the new rectangle to add.
+ */
+
+#define CHECK_PREVIOUS(Reg, R, Rx1, Ry1, Rx2, Ry2)\
+ (!(((Reg)->numRects > 0)&&\
+ ((R-1)->y1 == (Ry1)) &&\
+ ((R-1)->y2 == (Ry2)) &&\
+ ((R-1)->x1 <= (Rx1)) &&\
+ ((R-1)->x2 >= (Rx2))))
+
+/* add a rectangle to the given Region */
+#define ADDRECT(reg, r, rx1, ry1, rx2, ry2){\
+ if (((rx1) < (rx2)) && ((ry1) < (ry2)) &&\
+ CHECK_PREVIOUS((reg), (r), (rx1), (ry1), (rx2), (ry2))){\
+ (r)->x1 = (rx1);\
+ (r)->y1 = (ry1);\
+ (r)->x2 = (rx2);\
+ (r)->y2 = (ry2);\
+ EXTENTS((r), (reg));\
+ (reg)->numRects++;\
+ (r)++;\
+ }\
+ }
+
+
+
+/* add a rectangle to the given Region */
+#define ADDRECTNOX(reg, r, rx1, ry1, rx2, ry2){\
+ if ((rx1 < rx2) && (ry1 < ry2) &&\
+ CHECK_PREVIOUS((reg), (r), (rx1), (ry1), (rx2), (ry2))){\
+ (r)->x1 = (rx1);\
+ (r)->y1 = (ry1);\
+ (r)->x2 = (rx2);\
+ (r)->y2 = (ry2);\
+ (reg)->numRects++;\
+ (r)++;\
+ }\
+ }
+
+#define EMPTY_REGION(pReg) pReg->numRects = 0
+
+#define REGION_NOT_EMPTY(pReg) pReg->numRects
+
+#define INBOX(r, x, y) \
+ ( ( ((r).x2 > x)) && \
+ ( ((r).x1 <= x)) && \
+ ( ((r).y2 > y)) && \
+ ( ((r).y1 <= y)) )
+
+/*
+ * number of points to buffer before sending them off
+ * to scanlines() : Must be an even number
+ */
+#define NUMPTSTOBUFFER 200
+
+/*
+ * used to allocate buffers for points and link
+ * the buffers together
+ */
+typedef struct _POINTBLOCK {
+ XPoint pts[NUMPTSTOBUFFER];
+ struct _POINTBLOCK *next;
+} POINTBLOCK;
+
+#endif /* _X11_XREGION_H_ */
diff --git a/X11/Xresource.h b/X11/Xresource.h
new file mode 100644
index 000000000..113f732a5
--- /dev/null
+++ b/X11/Xresource.h
@@ -0,0 +1,358 @@
+
+/***********************************************************
+
+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.
+
+******************************************************************/
+
+#ifndef _X11_XRESOURCE_H_
+#define _X11_XRESOURCE_H_
+
+#ifndef _XP_PRINT_SERVER_
+#include <X11/Xlib.h>
+#endif
+
+/****************************************************************
+ ****************************************************************
+ *** ***
+ *** ***
+ *** X Resource Manager Intrinsics ***
+ *** ***
+ *** ***
+ ****************************************************************
+ ****************************************************************/
+
+_XFUNCPROTOBEGIN
+
+/****************************************************************
+ *
+ * Memory Management
+ *
+ ****************************************************************/
+
+extern char *Xpermalloc(
+ unsigned int /* size */
+);
+
+/****************************************************************
+ *
+ * Quark Management
+ *
+ ****************************************************************/
+
+typedef int XrmQuark, *XrmQuarkList;
+#define NULLQUARK ((XrmQuark) 0)
+
+typedef char *XrmString;
+#define NULLSTRING ((XrmString) 0)
+
+/* find quark for string, create new quark if none already exists */
+extern XrmQuark XrmStringToQuark(
+ _Xconst char* /* string */
+);
+
+extern XrmQuark XrmPermStringToQuark(
+ _Xconst char* /* string */
+);
+
+/* find string for quark */
+extern XrmString XrmQuarkToString(
+ XrmQuark /* quark */
+);
+
+extern XrmQuark XrmUniqueQuark(
+ void
+);
+
+#define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0)
+
+
+/****************************************************************
+ *
+ * Conversion of Strings to Lists
+ *
+ ****************************************************************/
+
+typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
+
+extern void XrmStringToQuarkList(
+ _Xconst char* /* string */,
+ XrmQuarkList /* quarks_return */
+);
+
+extern void XrmStringToBindingQuarkList(
+ _Xconst char* /* string */,
+ XrmBindingList /* bindings_return */,
+ XrmQuarkList /* quarks_return */
+);
+
+/****************************************************************
+ *
+ * Name and Class lists.
+ *
+ ****************************************************************/
+
+typedef XrmQuark XrmName;
+typedef XrmQuarkList XrmNameList;
+#define XrmNameToString(name) XrmQuarkToString(name)
+#define XrmStringToName(string) XrmStringToQuark(string)
+#define XrmStringToNameList(str, name) XrmStringToQuarkList(str, name)
+
+typedef XrmQuark XrmClass;
+typedef XrmQuarkList XrmClassList;
+#define XrmClassToString(c_class) XrmQuarkToString(c_class)
+#define XrmStringToClass(c_class) XrmStringToQuark(c_class)
+#define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class)
+
+
+
+/****************************************************************
+ *
+ * Resource Representation Types and Values
+ *
+ ****************************************************************/
+
+typedef XrmQuark XrmRepresentation;
+#define XrmStringToRepresentation(string) XrmStringToQuark(string)
+#define XrmRepresentationToString(type) XrmQuarkToString(type)
+
+typedef struct {
+ unsigned int size;
+ XPointer addr;
+} XrmValue, *XrmValuePtr;
+
+
+/****************************************************************
+ *
+ * Resource Manager Functions
+ *
+ ****************************************************************/
+
+typedef struct _XrmHashBucketRec *XrmHashBucket;
+typedef XrmHashBucket *XrmHashTable;
+typedef XrmHashTable XrmSearchList[];
+typedef struct _XrmHashBucketRec *XrmDatabase;
+
+
+extern void XrmDestroyDatabase(
+ XrmDatabase /* database */
+);
+
+extern void XrmQPutResource(
+ XrmDatabase* /* database */,
+ XrmBindingList /* bindings */,
+ XrmQuarkList /* quarks */,
+ XrmRepresentation /* type */,
+ XrmValue* /* value */
+);
+
+extern void XrmPutResource(
+ XrmDatabase* /* database */,
+ _Xconst char* /* specifier */,
+ _Xconst char* /* type */,
+ XrmValue* /* value */
+);
+
+extern void XrmQPutStringResource(
+ XrmDatabase* /* database */,
+ XrmBindingList /* bindings */,
+ XrmQuarkList /* quarks */,
+ _Xconst char* /* value */
+);
+
+extern void XrmPutStringResource(
+ XrmDatabase* /* database */,
+ _Xconst char* /* specifier */,
+ _Xconst char* /* value */
+);
+
+extern void XrmPutLineResource(
+ XrmDatabase* /* database */,
+ _Xconst char* /* line */
+);
+
+extern Bool XrmQGetResource(
+ XrmDatabase /* database */,
+ XrmNameList /* quark_name */,
+ XrmClassList /* quark_class */,
+ XrmRepresentation* /* quark_type_return */,
+ XrmValue* /* value_return */
+);
+
+extern Bool XrmGetResource(
+ XrmDatabase /* database */,
+ _Xconst char* /* str_name */,
+ _Xconst char* /* str_class */,
+ char** /* str_type_return */,
+ XrmValue* /* value_return */
+);
+
+extern Bool XrmQGetSearchList(
+ XrmDatabase /* database */,
+ XrmNameList /* names */,
+ XrmClassList /* classes */,
+ XrmSearchList /* list_return */,
+ int /* list_length */
+);
+
+extern Bool XrmQGetSearchResource(
+ XrmSearchList /* list */,
+ XrmName /* name */,
+ XrmClass /* class */,
+ XrmRepresentation* /* type_return */,
+ XrmValue* /* value_return */
+);
+
+/****************************************************************
+ *
+ * Resource Database Management
+ *
+ ****************************************************************/
+
+#ifndef _XP_PRINT_SERVER_
+
+extern void XrmSetDatabase(
+ Display* /* display */,
+ XrmDatabase /* database */
+);
+
+extern XrmDatabase XrmGetDatabase(
+ Display* /* display */
+);
+
+#endif /* !_XP_PRINT_SERVER_ */
+
+extern XrmDatabase XrmGetFileDatabase(
+ _Xconst char* /* filename */
+);
+
+extern Status XrmCombineFileDatabase(
+ _Xconst char* /* filename */,
+ XrmDatabase* /* target */,
+ Bool /* override */
+);
+
+extern XrmDatabase XrmGetStringDatabase(
+ _Xconst char* /* data */ /* null terminated string */
+);
+
+extern void XrmPutFileDatabase(
+ XrmDatabase /* database */,
+ _Xconst char* /* filename */
+);
+
+extern void XrmMergeDatabases(
+ XrmDatabase /* source_db */,
+ XrmDatabase* /* target_db */
+);
+
+extern void XrmCombineDatabase(
+ XrmDatabase /* source_db */,
+ XrmDatabase* /* target_db */,
+ Bool /* override */
+);
+
+#define XrmEnumAllLevels 0
+#define XrmEnumOneLevel 1
+
+extern Bool XrmEnumerateDatabase(
+ XrmDatabase /* db */,
+ XrmNameList /* name_prefix */,
+ XrmClassList /* class_prefix */,
+ int /* mode */,
+ Bool (*)(
+ XrmDatabase* /* db */,
+ XrmBindingList /* bindings */,
+ XrmQuarkList /* quarks */,
+ XrmRepresentation* /* type */,
+ XrmValue* /* value */,
+ XPointer /* closure */
+ ) /* proc */,
+ XPointer /* closure */
+);
+
+extern const char *XrmLocaleOfDatabase(
+ XrmDatabase /* database */
+);
+
+
+/****************************************************************
+ *
+ * Command line option mapping to resource entries
+ *
+ ****************************************************************/
+
+typedef enum {
+ XrmoptionNoArg, /* Value is specified in OptionDescRec.value */
+ XrmoptionIsArg, /* Value is the option string itself */
+ XrmoptionStickyArg, /* Value is characters immediately following option */
+ XrmoptionSepArg, /* Value is next argument in argv */
+ XrmoptionResArg, /* Resource and value in next argument in argv */
+ XrmoptionSkipArg, /* Ignore this option and the next argument in argv */
+ XrmoptionSkipLine, /* Ignore this option and the rest of argv */
+ XrmoptionSkipNArgs /* Ignore this option and the next
+ OptionDescRes.value arguments in argv */
+} XrmOptionKind;
+
+typedef struct {
+ char *option; /* Option abbreviation in argv */
+ char *specifier; /* Resource specifier */
+ XrmOptionKind argKind; /* Which style of option it is */
+ XPointer value; /* Value to provide if XrmoptionNoArg */
+} XrmOptionDescRec, *XrmOptionDescList;
+
+
+extern void XrmParseCommand(
+ XrmDatabase* /* database */,
+ XrmOptionDescList /* table */,
+ int /* table_count */,
+ _Xconst char* /* name */,
+ int* /* argc_in_out */,
+ char** /* argv_in_out */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XRESOURCE_H_ */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Xtos.h b/X11/Xtos.h
new file mode 100644
index 000000000..f5cf3a6e2
--- /dev/null
+++ b/X11/Xtos.h
@@ -0,0 +1,72 @@
+/***********************************************************
+
+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 _Xtos_h
+#define _Xtos_h
+
+#define ALLOCATE_LOCAL_FALLBACK(_size) XtMalloc((unsigned long)(_size))
+#define DEALLOCATE_LOCAL_FALLBACK(_ptr) XtFree((XtPointer)(_ptr))
+#include <X11/Xalloca.h>
+
+#ifdef CRAY
+#define WORD64
+#endif
+
+#if defined (_LP64) || \
+ defined(__alpha) || defined(__alpha__) || \
+ defined(__ia64__) || defined(ia64) || \
+ defined(__sparc64__) || \
+ defined(__s390x__) || \
+ (defined(__hppa__) && defined(__LP64__)) || \
+ defined(__amd64__) || defined(amd64) || \
+ defined(__powerpc64__) || \
+ (defined(sgi) && (_MIPS_SZLONG == 64))
+#define LONG64
+#endif
+
+#endif /* _Xtos_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Xutil.h b/X11/Xutil.h
new file mode 100644
index 000000000..62cdf5556
--- /dev/null
+++ b/X11/Xutil.h
@@ -0,0 +1,838 @@
+
+/***********************************************************
+
+Copyright 1987, 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 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 _X11_XUTIL_H_
+#define _X11_XUTIL_H_
+
+/* You must include <X11/Xlib.h> before including this file */
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+
+/* The Xlib structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+/*
+ * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
+ * value (x, y, width, height) was found in the parsed string.
+ */
+#define NoValue 0x0000
+#define XValue 0x0001
+#define YValue 0x0002
+#define WidthValue 0x0004
+#define HeightValue 0x0008
+#define AllValues 0x000F
+#define XNegative 0x0010
+#define YNegative 0x0020
+
+/*
+ * new version containing base_width, base_height, and win_gravity fields;
+ * used with WM_NORMAL_HINTS.
+ */
+typedef struct {
+ long flags; /* marks which fields in this structure are defined */
+ int x, y; /* obsolete for new window mgrs, but clients */
+ int width, height; /* should set so old wm's don't mess up */
+ int min_width, min_height;
+ int max_width, max_height;
+ int width_inc, height_inc;
+ struct {
+ int x; /* numerator */
+ int y; /* denominator */
+ } min_aspect, max_aspect;
+ int base_width, base_height; /* added by ICCCM version 1 */
+ int win_gravity; /* added by ICCCM version 1 */
+} XSizeHints;
+
+/*
+ * The next block of definitions are for window manager properties that
+ * clients and applications use for communication.
+ */
+
+/* flags argument in size hints */
+#define USPosition (1L << 0) /* user specified x, y */
+#define USSize (1L << 1) /* user specified width, height */
+
+#define PPosition (1L << 2) /* program specified position */
+#define PSize (1L << 3) /* program specified size */
+#define PMinSize (1L << 4) /* program specified minimum size */
+#define PMaxSize (1L << 5) /* program specified maximum size */
+#define PResizeInc (1L << 6) /* program specified resize increments */
+#define PAspect (1L << 7) /* program specified min and max aspect ratios */
+#define PBaseSize (1L << 8) /* program specified base for incrementing */
+#define PWinGravity (1L << 9) /* program specified window gravity */
+
+/* obsolete */
+#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
+
+
+
+typedef struct {
+ long flags; /* marks which fields in this structure are defined */
+ Bool input; /* does this application rely on the window manager to
+ get keyboard input? */
+ int initial_state; /* see below */
+ Pixmap icon_pixmap; /* pixmap to be used as icon */
+ Window icon_window; /* window to be used as icon */
+ int icon_x, icon_y; /* initial position of icon */
+ Pixmap icon_mask; /* icon mask bitmap */
+ XID window_group; /* id of related window group */
+ /* this structure may be extended in the future */
+} XWMHints;
+
+/* definition for flags of XWMHints */
+
+#define InputHint (1L << 0)
+#define StateHint (1L << 1)
+#define IconPixmapHint (1L << 2)
+#define IconWindowHint (1L << 3)
+#define IconPositionHint (1L << 4)
+#define IconMaskHint (1L << 5)
+#define WindowGroupHint (1L << 6)
+#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
+IconPositionHint|IconMaskHint|WindowGroupHint)
+#define XUrgencyHint (1L << 8)
+
+/* definitions for initial window state */
+#define WithdrawnState 0 /* for windows that are not mapped */
+#define NormalState 1 /* most applications want to start this way */
+#define IconicState 3 /* application wants to start as an icon */
+
+/*
+ * Obsolete states no longer defined by ICCCM
+ */
+#define DontCareState 0 /* don't know or care */
+#define ZoomState 2 /* application wants to start zoomed */
+#define InactiveState 4 /* application believes it is seldom used; */
+ /* some wm's may put it on inactive menu */
+
+
+/*
+ * new structure for manipulating TEXT properties; used with WM_NAME,
+ * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
+ */
+typedef struct {
+ unsigned char *value; /* same as Property routines */
+ Atom encoding; /* prop type */
+ int format; /* prop data format: 8, 16, or 32 */
+ unsigned long nitems; /* number of data items in value */
+} XTextProperty;
+
+#define XNoMemory -1
+#define XLocaleNotSupported -2
+#define XConverterNotFound -3
+
+typedef enum {
+ XStringStyle, /* STRING */
+ XCompoundTextStyle, /* COMPOUND_TEXT */
+ XTextStyle, /* text in owner's encoding (current locale)*/
+ XStdICCTextStyle, /* STRING, else COMPOUND_TEXT */
+ /* The following is an XFree86 extension, introduced in November 2000 */
+ XUTF8StringStyle /* UTF8_STRING */
+} XICCEncodingStyle;
+
+typedef struct {
+ int min_width, min_height;
+ int max_width, max_height;
+ int width_inc, height_inc;
+} XIconSize;
+
+typedef struct {
+ char *res_name;
+ char *res_class;
+} XClassHint;
+
+#ifdef XUTIL_DEFINE_FUNCTIONS
+extern int XDestroyImage(
+ XImage *ximage);
+extern unsigned long XGetPixel(
+ XImage *ximage,
+ int x, int y);
+extern int XPutPixel(
+ XImage *ximage,
+ int x, int y,
+ unsigned long pixel);
+extern XImage *XSubImage(
+ XImage *ximage,
+ int x, int y,
+ unsigned int width, unsigned int height);
+extern int XAddPixel(
+ XImage *ximage,
+ long value);
+#else
+/*
+ * These macros are used to give some sugar to the image routines so that
+ * naive people are more comfortable with them.
+ */
+#define XDestroyImage(ximage) \
+ ((*((ximage)->f.destroy_image))((ximage)))
+#define XGetPixel(ximage, x, y) \
+ ((*((ximage)->f.get_pixel))((ximage), (x), (y)))
+#define XPutPixel(ximage, x, y, pixel) \
+ ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
+#define XSubImage(ximage, x, y, width, height) \
+ ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
+#define XAddPixel(ximage, value) \
+ ((*((ximage)->f.add_pixel))((ximage), (value)))
+#endif
+
+/*
+ * Compose sequence status structure, used in calling XLookupString.
+ */
+typedef struct _XComposeStatus {
+ XPointer compose_ptr; /* state table pointer */
+ int chars_matched; /* match state */
+} XComposeStatus;
+
+/*
+ * Keysym macros, used on Keysyms to test for classes of symbols
+ */
+#define IsKeypadKey(keysym) \
+ (((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal))
+
+#define IsPrivateKeypadKey(keysym) \
+ (((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF))
+
+#define IsCursorKey(keysym) \
+ (((KeySym)(keysym) >= XK_Home) && ((KeySym)(keysym) < XK_Select))
+
+#define IsPFKey(keysym) \
+ (((KeySym)(keysym) >= XK_KP_F1) && ((KeySym)(keysym) <= XK_KP_F4))
+
+#define IsFunctionKey(keysym) \
+ (((KeySym)(keysym) >= XK_F1) && ((KeySym)(keysym) <= XK_F35))
+
+#define IsMiscFunctionKey(keysym) \
+ (((KeySym)(keysym) >= XK_Select) && ((KeySym)(keysym) <= XK_Break))
+
+#ifdef XK_XKB_KEYS
+#define IsModifierKey(keysym) \
+ ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
+ || (((KeySym)(keysym) >= XK_ISO_Lock) && \
+ ((KeySym)(keysym) <= XK_ISO_Level5_Lock)) \
+ || ((KeySym)(keysym) == XK_Mode_switch) \
+ || ((KeySym)(keysym) == XK_Num_Lock))
+#else
+#define IsModifierKey(keysym) \
+ ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
+ || ((KeySym)(keysym) == XK_Mode_switch) \
+ || ((KeySym)(keysym) == XK_Num_Lock))
+#endif
+/*
+ * opaque reference to Region data type
+ */
+typedef struct _XRegion *Region;
+
+/* Return values from XRectInRegion() */
+
+#define RectangleOut 0
+#define RectangleIn 1
+#define RectanglePart 2
+
+
+/*
+ * Information used by the visual utility routines to find desired visual
+ * type from the many visuals a display may support.
+ */
+
+typedef struct {
+ Visual *visual;
+ VisualID visualid;
+ int screen;
+ int depth;
+#if defined(__cplusplus) || defined(c_plusplus)
+ int c_class; /* C++ */
+#else
+ int class;
+#endif
+ unsigned long red_mask;
+ unsigned long green_mask;
+ unsigned long blue_mask;
+ int colormap_size;
+ int bits_per_rgb;
+} XVisualInfo;
+
+#define VisualNoMask 0x0
+#define VisualIDMask 0x1
+#define VisualScreenMask 0x2
+#define VisualDepthMask 0x4
+#define VisualClassMask 0x8
+#define VisualRedMaskMask 0x10
+#define VisualGreenMaskMask 0x20
+#define VisualBlueMaskMask 0x40
+#define VisualColormapSizeMask 0x80
+#define VisualBitsPerRGBMask 0x100
+#define VisualAllMask 0x1FF
+
+/*
+ * This defines a window manager property that clients may use to
+ * share standard color maps of type RGB_COLOR_MAP:
+ */
+typedef struct {
+ Colormap colormap;
+ unsigned long red_max;
+ unsigned long red_mult;
+ unsigned long green_max;
+ unsigned long green_mult;
+ unsigned long blue_max;
+ unsigned long blue_mult;
+ unsigned long base_pixel;
+ VisualID visualid; /* added by ICCCM version 1 */
+ XID killid; /* added by ICCCM version 1 */
+} XStandardColormap;
+
+#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */
+
+
+/*
+ * return codes for XReadBitmapFile and XWriteBitmapFile
+ */
+#define BitmapSuccess 0
+#define BitmapOpenFailed 1
+#define BitmapFileInvalid 2
+#define BitmapNoMemory 3
+
+/****************************************************************
+ *
+ * Context Management
+ *
+ ****************************************************************/
+
+
+/* Associative lookup table return codes */
+
+#define XCSUCCESS 0 /* No error. */
+#define XCNOMEM 1 /* Out of memory */
+#define XCNOENT 2 /* No entry in table */
+
+typedef int XContext;
+
+#define XUniqueContext() ((XContext) XrmUniqueQuark())
+#define XStringToContext(string) ((XContext) XrmStringToQuark(string))
+
+_XFUNCPROTOBEGIN
+
+/* The following declarations are alphabetized. */
+
+extern XClassHint *XAllocClassHint (
+ void
+);
+
+extern XIconSize *XAllocIconSize (
+ void
+);
+
+extern XSizeHints *XAllocSizeHints (
+ void
+);
+
+extern XStandardColormap *XAllocStandardColormap (
+ void
+);
+
+extern XWMHints *XAllocWMHints (
+ void
+);
+
+extern int XClipBox(
+ Region /* r */,
+ XRectangle* /* rect_return */
+);
+
+extern Region XCreateRegion(
+ void
+);
+
+extern const char *XDefaultString (void);
+
+extern int XDeleteContext(
+ Display* /* display */,
+ XID /* rid */,
+ XContext /* context */
+);
+
+extern int XDestroyRegion(
+ Region /* r */
+);
+
+extern int XEmptyRegion(
+ Region /* r */
+);
+
+extern int XEqualRegion(
+ Region /* r1 */,
+ Region /* r2 */
+);
+
+extern int XFindContext(
+ Display* /* display */,
+ XID /* rid */,
+ XContext /* context */,
+ XPointer* /* data_return */
+);
+
+extern Status XGetClassHint(
+ Display* /* display */,
+ Window /* w */,
+ XClassHint* /* class_hints_return */
+);
+
+extern Status XGetIconSizes(
+ Display* /* display */,
+ Window /* w */,
+ XIconSize** /* size_list_return */,
+ int* /* count_return */
+);
+
+extern Status XGetNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */
+);
+
+extern Status XGetRGBColormaps(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap** /* stdcmap_return */,
+ int* /* count_return */,
+ Atom /* property */
+);
+
+extern Status XGetSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */,
+ Atom /* property */
+);
+
+extern Status XGetStandardColormap(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap* /* colormap_return */,
+ Atom /* property */
+);
+
+extern Status XGetTextProperty(
+ Display* /* display */,
+ Window /* window */,
+ XTextProperty* /* text_prop_return */,
+ Atom /* property */
+);
+
+extern XVisualInfo *XGetVisualInfo(
+ Display* /* display */,
+ long /* vinfo_mask */,
+ XVisualInfo* /* vinfo_template */,
+ int* /* nitems_return */
+);
+
+extern Status XGetWMClientMachine(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern XWMHints *XGetWMHints(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern Status XGetWMIconName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern Status XGetWMName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern Status XGetWMNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */,
+ long* /* supplied_return */
+);
+
+extern Status XGetWMSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */,
+ long* /* supplied_return */,
+ Atom /* property */
+);
+
+extern Status XGetZoomHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* zhints_return */
+);
+
+extern int XIntersectRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+extern void XConvertCase(
+ KeySym /* sym */,
+ KeySym* /* lower */,
+ KeySym* /* upper */
+);
+
+extern int XLookupString(
+ XKeyEvent* /* event_struct */,
+ char* /* buffer_return */,
+ int /* bytes_buffer */,
+ KeySym* /* keysym_return */,
+ XComposeStatus* /* status_in_out */
+);
+
+extern Status XMatchVisualInfo(
+ Display* /* display */,
+ int /* screen */,
+ int /* depth */,
+ int /* class */,
+ XVisualInfo* /* vinfo_return */
+);
+
+extern int XOffsetRegion(
+ Region /* r */,
+ int /* dx */,
+ int /* dy */
+);
+
+extern Bool XPointInRegion(
+ Region /* r */,
+ int /* x */,
+ int /* y */
+);
+
+extern Region XPolygonRegion(
+ XPoint* /* points */,
+ int /* n */,
+ int /* fill_rule */
+);
+
+extern int XRectInRegion(
+ Region /* r */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XSaveContext(
+ Display* /* display */,
+ XID /* rid */,
+ XContext /* context */,
+ _Xconst char* /* data */
+);
+
+extern int XSetClassHint(
+ Display* /* display */,
+ Window /* w */,
+ XClassHint* /* class_hints */
+);
+
+extern int XSetIconSizes(
+ Display* /* display */,
+ Window /* w */,
+ XIconSize* /* size_list */,
+ int /* count */
+);
+
+extern int XSetNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */
+);
+
+extern void XSetRGBColormaps(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap* /* stdcmaps */,
+ int /* count */,
+ Atom /* property */
+);
+
+extern int XSetSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */,
+ Atom /* property */
+);
+
+extern int XSetStandardProperties(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */,
+ _Xconst char* /* icon_name */,
+ Pixmap /* icon_pixmap */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* hints */
+);
+
+extern void XSetTextProperty(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */,
+ Atom /* property */
+);
+
+extern void XSetWMClientMachine(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */
+);
+
+extern int XSetWMHints(
+ Display* /* display */,
+ Window /* w */,
+ XWMHints* /* wm_hints */
+);
+
+extern void XSetWMIconName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */
+);
+
+extern void XSetWMName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */
+);
+
+extern void XSetWMNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */
+);
+
+extern void XSetWMProperties(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* window_name */,
+ XTextProperty* /* icon_name */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* normal_hints */,
+ XWMHints* /* wm_hints */,
+ XClassHint* /* class_hints */
+);
+
+extern void XmbSetWMProperties(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */,
+ _Xconst char* /* icon_name */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* normal_hints */,
+ XWMHints* /* wm_hints */,
+ XClassHint* /* class_hints */
+);
+
+extern void Xutf8SetWMProperties(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */,
+ _Xconst char* /* icon_name */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* normal_hints */,
+ XWMHints* /* wm_hints */,
+ XClassHint* /* class_hints */
+);
+
+extern void XSetWMSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */,
+ Atom /* property */
+);
+
+extern int XSetRegion(
+ Display* /* display */,
+ GC /* gc */,
+ Region /* r */
+);
+
+extern void XSetStandardColormap(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap* /* colormap */,
+ Atom /* property */
+);
+
+extern int XSetZoomHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* zhints */
+);
+
+extern int XShrinkRegion(
+ Region /* r */,
+ int /* dx */,
+ int /* dy */
+);
+
+extern Status XStringListToTextProperty(
+ char** /* list */,
+ int /* count */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern int XSubtractRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+extern int XmbTextListToTextProperty(
+ Display* display,
+ char** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
+);
+
+extern int XwcTextListToTextProperty(
+ Display* display,
+ wchar_t** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
+);
+
+extern int Xutf8TextListToTextProperty(
+ Display* display,
+ char** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
+);
+
+extern void XwcFreeStringList(
+ wchar_t** list
+);
+
+extern Status XTextPropertyToStringList(
+ XTextProperty* /* text_prop */,
+ char*** /* list_return */,
+ int* /* count_return */
+);
+
+extern int XmbTextPropertyToTextList(
+ Display* display,
+ const XTextProperty* text_prop,
+ char*** list_return,
+ int* count_return
+);
+
+extern int XwcTextPropertyToTextList(
+ Display* display,
+ const XTextProperty* text_prop,
+ wchar_t*** list_return,
+ int* count_return
+);
+
+extern int Xutf8TextPropertyToTextList(
+ Display* display,
+ const XTextProperty* text_prop,
+ char*** list_return,
+ int* count_return
+);
+
+extern int XUnionRectWithRegion(
+ XRectangle* /* rectangle */,
+ Region /* src_region */,
+ Region /* dest_region_return */
+);
+
+extern int XUnionRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+extern int XWMGeometry(
+ Display* /* display */,
+ int /* screen_number */,
+ _Xconst char* /* user_geometry */,
+ _Xconst char* /* default_geometry */,
+ unsigned int /* border_width */,
+ XSizeHints* /* hints */,
+ int* /* x_return */,
+ int* /* y_return */,
+ int* /* width_return */,
+ int* /* height_return */,
+ int* /* gravity_return */
+);
+
+extern int XXorRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XUTIL_H_ */
diff --git a/X11/Xw32defs.h b/X11/Xw32defs.h
index b2e4b33ae..f59c6dae7 100644
--- a/X11/Xw32defs.h
+++ b/X11/Xw32defs.h
@@ -27,7 +27,6 @@ typedef char *caddr_t;
# define execve _execve
# define execvp _execvp
# define execvpe _execvpe
-# define fdopen _fdopen
# define fileno _fileno
# define fstat _fstat
# define getcwd _getcwd
@@ -72,8 +71,8 @@ typedef char *caddr_t;
# define S_IEXEC _S_IEXEC
# define F_OK 0
-# define X_OK 1
# define W_OK 2
# define R_OK 4
+# define X_OK R_OK
# endif /* __GNUC__ */
#endif
diff --git a/X11/Xwindows.h b/X11/Xwindows.h
index e6be6eef2..92b8b527b 100644
--- a/X11/Xwindows.h
+++ b/X11/Xwindows.h
@@ -63,7 +63,9 @@ The Open Group.
#define _NO_BOOL_TYPEDEF
#define BOOL WINBOOL
#define INT32 wINT32
+#ifdef Status
#undef Status
+#endif
#define Status wStatus
#define ATOM wATOM
#define BYTE wBYTE
@@ -71,7 +73,7 @@ The Open Group.
#include <windows.h>
#undef NOMINMAX
#undef Status
-#define Status int
+typedef int Status;
#undef BYTE
#undef BOOL
#undef INT32
diff --git a/X11/Xwinsock.h b/X11/Xwinsock.h
index a81dd7a25..5bbb9d1d9 100644
--- a/X11/Xwinsock.h
+++ b/X11/Xwinsock.h
@@ -39,6 +39,10 @@ The Open Group.
# undef XFree86Server
#endif
+#ifndef FD_SETSIZE
+#define FD_SETSIZE 1024
+#endif
+
/*
* mingw-w64 headers define BOOL as a typedef, protecting against macros
* mingw.org headers define BOOL in terms of WINBOOL
@@ -47,14 +51,17 @@ The Open Group.
#define _NO_BOOL_TYPEDEF
#define BOOL WINBOOL
#define INT32 wINT32
+#ifdef Status
#undef Status
+#endif
#define Status wStatus
#define ATOM wATOM
#define BYTE wBYTE
#define FreeResource wFreeResource
#include <winsock2.h>
+#include <ws2tcpip.h>
#undef Status
-#define Status int
+typedef int Status;
#undef BYTE
#undef BOOL
#undef INT32
diff --git a/X11/cursorfont.h b/X11/cursorfont.h
new file mode 100644
index 000000000..d6319b6fa
--- /dev/null
+++ b/X11/cursorfont.h
@@ -0,0 +1,111 @@
+/*
+
+Copyright 1987, 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.
+
+*/
+
+#ifndef _X11_CURSORFONT_H_
+#define _X11_CURSORFONT_H_
+
+#define XC_num_glyphs 154
+#define XC_X_cursor 0
+#define XC_arrow 2
+#define XC_based_arrow_down 4
+#define XC_based_arrow_up 6
+#define XC_boat 8
+#define XC_bogosity 10
+#define XC_bottom_left_corner 12
+#define XC_bottom_right_corner 14
+#define XC_bottom_side 16
+#define XC_bottom_tee 18
+#define XC_box_spiral 20
+#define XC_center_ptr 22
+#define XC_circle 24
+#define XC_clock 26
+#define XC_coffee_mug 28
+#define XC_cross 30
+#define XC_cross_reverse 32
+#define XC_crosshair 34
+#define XC_diamond_cross 36
+#define XC_dot 38
+#define XC_dotbox 40
+#define XC_double_arrow 42
+#define XC_draft_large 44
+#define XC_draft_small 46
+#define XC_draped_box 48
+#define XC_exchange 50
+#define XC_fleur 52
+#define XC_gobbler 54
+#define XC_gumby 56
+#define XC_hand1 58
+#define XC_hand2 60
+#define XC_heart 62
+#define XC_icon 64
+#define XC_iron_cross 66
+#define XC_left_ptr 68
+#define XC_left_side 70
+#define XC_left_tee 72
+#define XC_leftbutton 74
+#define XC_ll_angle 76
+#define XC_lr_angle 78
+#define XC_man 80
+#define XC_middlebutton 82
+#define XC_mouse 84
+#define XC_pencil 86
+#define XC_pirate 88
+#define XC_plus 90
+#define XC_question_arrow 92
+#define XC_right_ptr 94
+#define XC_right_side 96
+#define XC_right_tee 98
+#define XC_rightbutton 100
+#define XC_rtl_logo 102
+#define XC_sailboat 104
+#define XC_sb_down_arrow 106
+#define XC_sb_h_double_arrow 108
+#define XC_sb_left_arrow 110
+#define XC_sb_right_arrow 112
+#define XC_sb_up_arrow 114
+#define XC_sb_v_double_arrow 116
+#define XC_shuttle 118
+#define XC_sizing 120
+#define XC_spider 122
+#define XC_spraycan 124
+#define XC_star 126
+#define XC_target 128
+#define XC_tcross 130
+#define XC_top_left_arrow 132
+#define XC_top_left_corner 134
+#define XC_top_right_corner 136
+#define XC_top_side 138
+#define XC_top_tee 140
+#define XC_trek 142
+#define XC_ul_angle 144
+#define XC_umbrella 146
+#define XC_ur_angle 148
+#define XC_watch 150
+#define XC_xterm 152
+
+#endif /* _X11_CURSORFONT_H_ */
diff --git a/X11/extensions/MITMisc.h b/X11/extensions/MITMisc.h
index 975700e01..4cfb334ee 100644
--- a/X11/extensions/MITMisc.h
+++ b/X11/extensions/MITMisc.h
@@ -26,21 +26,11 @@ in this Software without prior written authorization from The Open Group.
/* RANDOM CRUFT! THIS HAS NO OFFICIAL X CONSORTIUM OR X PROJECT TEAM BLESSING */
-/* $Xorg: MITMisc.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $ */
-
#ifndef _XMITMISC_H_
#define _XMITMISC_H_
#include <X11/Xfuncproto.h>
-
-#define X_MITSetBugMode 0
-#define X_MITGetBugMode 1
-
-#define MITMiscNumberEvents 0
-
-#define MITMiscNumberErrors 0
-
-#ifndef _MITMISC_SERVER_
+#include <X11/extensions/mitmiscconst.h>
_XFUNCPROTOBEGIN
@@ -62,5 +52,3 @@ Bool XMITMiscGetBugMode(
_XFUNCPROTOEND
#endif
-
-#endif
diff --git a/X11/extensions/XEVI.h b/X11/extensions/XEVI.h
index d8e37ff4f..9ca441200 100644
--- a/X11/extensions/XEVI.h
+++ b/X11/extensions/XEVI.h
@@ -1,4 +1,3 @@
-/* $Xorg: XEVI.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
/************************************************************
Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
@@ -21,17 +20,12 @@ 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$ */
#ifndef _XEVI_H_
#define _XEVI_H_
#include <X11/Xfuncproto.h>
-#define X_EVIQueryVersion 0
-#define X_EVIGetVisualInfo 1
-#define XEVI_TRANSPARENCY_NONE 0
-#define XEVI_TRANSPARENCY_PIXEL 1
-#define XEVI_TRANSPARENCY_MASK 2
-#ifndef _XEVI_SERVER_
+#include <X11/extensions/EVI.h>
+
typedef struct {
VisualID core_visual_id;
int screen;
@@ -43,7 +37,9 @@ typedef struct {
unsigned int num_colormap_conflicts;
VisualID* colormap_conflicts;
} ExtendedVisualInfo;
+
_XFUNCPROTOBEGIN
+
Bool XeviQueryExtension(
Display* /* dpy */
);
@@ -59,6 +55,7 @@ Status XeviGetVisualInfo(
ExtendedVisualInfo** /* extendedVisualInfo_return */,
int* /* nInfo_return */
);
+
_XFUNCPROTOEND
-#endif
+
#endif
diff --git a/X11/extensions/XI2proto.h b/X11/extensions/XI2proto.h
index 4cdaa0dfb..ad461cd9b 100644
--- a/X11/extensions/XI2proto.h
+++ b/X11/extensions/XI2proto.h
@@ -105,6 +105,11 @@
* COMMON STRUCTS *
* *
*************************************************************************************/
+#ifdef _MSC_VER
+typedef int int32_t;
+typedef unsigned uint32_t;
+#endif
+
/** Fixed point 16.16 */
typedef int32_t FP1616;
diff --git a/X11/extensions/XKBbells.h b/X11/extensions/XKBbells.h
index 16a9275ea..c78811b27 100644
--- a/X11/extensions/XKBbells.h
+++ b/X11/extensions/XKBbells.h
@@ -1,7 +1,6 @@
#ifndef _XKBBELLS_H_
#define _XKBBELLS_H_ 1
-/* $Xorg: XKBbells.h,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */
/************************************************************
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
@@ -27,7 +26,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86$ */
#define XkbBN_Info "Info"
#define XkbBN_Warning "Warning"
diff --git a/X11/extensions/XKBconfig.h b/X11/extensions/XKBconfig.h
index fbc6a600e..4816917c8 100644
--- a/X11/extensions/XKBconfig.h
+++ b/X11/extensions/XKBconfig.h
@@ -1,7 +1,6 @@
#ifndef _XKBCONFIG_H_
#define _XKBCONFIG_H_ 1
-/* $Xorg: XKBconfig.h,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */
/************************************************************
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
@@ -27,7 +26,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86: xc/lib/xkbfile/XKBconfig.h,v 3.5 2001/01/17 19:43:39 dawes Exp $ */
typedef struct _XkbConfigRtrn *XkbConfigRtrnPtr;
diff --git a/X11/extensions/XKBfile.h b/X11/extensions/XKBfile.h
index bbd7e6fcd..0d2f52bde 100644
--- a/X11/extensions/XKBfile.h
+++ b/X11/extensions/XKBfile.h
@@ -1,9 +1,7 @@
-/* $XFree86: xc/lib/xkbfile/XKBfile.h,v 3.6 2003/10/24 16:33:09 tsi Exp $ */
#ifndef _XKBFILE_H_
#define _XKBFILE_H_ 1
-/* $Xorg: XKBfile.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
@@ -12,19 +10,19 @@
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 Silicon Graphics not be
- used in advertising or publicity pertaining to distribution
+ documentation, and that the name of Silicon Graphics not be
+ used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
- Silicon Graphics makes no representation about the suitability
+ Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
-
- SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+
+ SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
- GRAPHICS 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
+ GRAPHICS 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.
@@ -85,9 +83,9 @@ typedef void (*XkbFileAddOnFunc)(
#define _XkbErrXReqFailure 25
#define _XkbErrBadImplementation 26
-extern char * _XkbErrMessages[];
+extern const char * _XkbErrMessages[];
extern unsigned _XkbErrCode;
-extern char * _XkbErrLocation;
+extern const char * _XkbErrLocation;
extern unsigned _XkbErrData;
/***====================================================================***/
@@ -287,7 +285,7 @@ typedef struct _XkbDrawable {
XkbSectionPtr section;
} u;
struct _XkbDrawable * next;
-} XkbDrawableRec,*XkbDrawablePtr;
+} XkbDrawableRec,*XkbDrawablePtr;
extern XkbDrawablePtr
XkbGetOrderedDrawables(
diff --git a/X11/extensions/XKBrules.h b/X11/extensions/XKBrules.h
index 0d77ca323..f898da8d9 100644
--- a/X11/extensions/XKBrules.h
+++ b/X11/extensions/XKBrules.h
@@ -1,7 +1,6 @@
#ifndef _XKBRULES_H_
#define _XKBRULES_H_ 1
-/* $Xorg: XKBrules.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
@@ -27,7 +26,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86: xc/lib/xkbfile/XKBrules.h,v 3.5 2002/11/26 01:43:25 dawes Exp $ */
/***====================================================================***/
@@ -181,7 +179,7 @@ extern void XkbRF_Free(
#define _XKB_RF_NAMES_PROP_MAXLEN 1024
#ifndef XKB_IN_SERVER
-
+#ifndef _MSC_VER
extern Bool XkbRF_GetNamesProp(
Display * /* dpy */,
char ** /* rules_file_rtrn */,
@@ -195,6 +193,7 @@ extern Bool XkbRF_SetNamesProp(
);
#endif
+#endif
_XFUNCPROTOEND
diff --git a/X11/extensions/XKM.h b/X11/extensions/XKM.h
index c6c9f5195..13dbed54c 100644
--- a/X11/extensions/XKM.h
+++ b/X11/extensions/XKM.h
@@ -1,4 +1,3 @@
-/* $Xorg: XKM.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
diff --git a/X11/extensions/XKMformat.h b/X11/extensions/XKMformat.h
index 154da5694..6204e5da8 100644
--- a/X11/extensions/XKMformat.h
+++ b/X11/extensions/XKMformat.h
@@ -1,4 +1,3 @@
-/* $Xorg: XKMformat.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
@@ -24,7 +23,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86$ */
#ifndef _XKMFORMAT_H_
#define _XKMFORMAT_H_ 1
diff --git a/X11/extensions/XLbx.h b/X11/extensions/XLbx.h
index 01d44f090..1af4f9ce2 100644
--- a/X11/extensions/XLbx.h
+++ b/X11/extensions/XLbx.h
@@ -1,4 +1,3 @@
-/* $Xorg: XLbx.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
/*
* Copyright 1992 Network Computing Devices
*
@@ -16,120 +15,18 @@
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
* 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
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
-/* $XFree86: xc/include/extensions/XLbx.h,v 1.3 2002/10/16 01:59:55 dawes Exp $ */
-
+
#ifndef _XLBX_H_
#define _XLBX_H_
#include <X11/Xfuncproto.h>
-
-/*
- * NOTE: any changes or additions to the opcodes needs to be reflected
- * in the lbxCacheable array in Xserver/lbx/lbxmain.c
- */
-
-#define X_LbxQueryVersion 0
-#define X_LbxStartProxy 1
-#define X_LbxStopProxy 2
-#define X_LbxSwitch 3
-#define X_LbxNewClient 4
-#define X_LbxCloseClient 5
-#define X_LbxModifySequence 6
-#define X_LbxAllowMotion 7
-#define X_LbxIncrementPixel 8
-#define X_LbxDelta 9
-#define X_LbxGetModifierMapping 10
-#define X_LbxInvalidateTag 12
-#define X_LbxPolyPoint 13
-#define X_LbxPolyLine 14
-#define X_LbxPolySegment 15
-#define X_LbxPolyRectangle 16
-#define X_LbxPolyArc 17
-#define X_LbxFillPoly 18
-#define X_LbxPolyFillRectangle 19
-#define X_LbxPolyFillArc 20
-#define X_LbxGetKeyboardMapping 21
-#define X_LbxQueryFont 22
-#define X_LbxChangeProperty 23
-#define X_LbxGetProperty 24
-#define X_LbxTagData 25
-
-#define X_LbxCopyArea 26
-#define X_LbxCopyPlane 27
-#define X_LbxPolyText8 28
-#define X_LbxPolyText16 29
-#define X_LbxImageText8 30
-#define X_LbxImageText16 31
-
-#define X_LbxQueryExtension 32
-#define X_LbxPutImage 33
-#define X_LbxGetImage 34
-
-#define X_LbxBeginLargeRequest 35
-#define X_LbxLargeRequestData 36
-#define X_LbxEndLargeRequest 37
-
-#define X_LbxInternAtoms 38
-#define X_LbxGetWinAttrAndGeom 39
-
-#define X_LbxGrabCmap 40
-#define X_LbxReleaseCmap 41
-#define X_LbxAllocColor 42
-
-#define X_LbxSync 43
-
-#define LbxNumberReqs 44
-
-
-#define LbxEvent 0
-#define LbxQuickMotionDeltaEvent 1
-#define LbxNumberEvents 2
-
-/* This is always the master client */
-#define LbxMasterClientIndex 0
-
-/* LbxEvent lbxType sub-fields */
-#define LbxSwitchEvent 0
-#define LbxCloseEvent 1
-#define LbxDeltaEvent 2
-#define LbxInvalidateTagEvent 3
-#define LbxSendTagDataEvent 4
-#define LbxListenToOne 5
-#define LbxListenToAll 6
-#define LbxMotionDeltaEvent 7
-#define LbxReleaseCmapEvent 8
-#define LbxFreeCellsEvent 9
-
-/*
- * Lbx image compression methods
- *
- * No compression is always assigned the value of 0.
- *
- * The rest of the compression method opcodes are assigned dynamically
- * at option negotiation time.
- */
-
-#define LbxImageCompressNone 0
-
-
-#define BadLbxClient 0
-#define LbxNumberErrors (BadLbxClient + 1)
-
-/* tagged data types */
-#define LbxTagTypeModmap 1
-#define LbxTagTypeKeymap 2
-#define LbxTagTypeProperty 3
-#define LbxTagTypeFont 4
-#define LbxTagTypeConnInfo 5
-
-#ifndef _XLBX_SERVER_
-
#include <X11/Xdefs.h>
#include <X11/Xlib.h>
+#include <X11/extensions/lbx.h>
_XFUNCPROTOBEGIN
@@ -151,5 +48,3 @@ int XLbxGetEventBase(Display *dpy);
_XFUNCPROTOEND
#endif
-
-#endif
diff --git a/X11/extensions/XShm.h b/X11/extensions/XShm.h
index 4ae14ca8b..23f065115 100644
--- a/X11/extensions/XShm.h
+++ b/X11/extensions/XShm.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/include/extensions/XShm.h,v 1.11 2003/04/03 15:11:07 dawes Exp $ */
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -27,29 +26,15 @@ in this Software without prior written authorization from The Open Group.
/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
-/* $Xorg: XShm.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
-
#ifndef _XSHM_H_
#define _XSHM_H_
#include <X11/Xfuncproto.h>
+#include <X11/extensions/shm.h>
-#define X_ShmQueryVersion 0
-#define X_ShmAttach 1
-#define X_ShmDetach 2
-#define X_ShmPutImage 3
-#define X_ShmGetImage 4
-#define X_ShmCreatePixmap 5
-
-#define ShmCompletion 0
-#define ShmNumberEvents (ShmCompletion + 1)
-
-#define BadShmSeg 0
-#define ShmNumberErrors (BadShmSeg + 1)
-
+#ifndef _XSHM_SERVER_
typedef unsigned long ShmSeg;
-#ifndef _XSHM_SERVER_
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
@@ -90,17 +75,17 @@ int XShmPixmapFormat(
Display* /* dpy */
);
-Status XShmAttach(
+Bool XShmAttach(
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
);
-Status XShmDetach(
+Bool XShmDetach(
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
);
-Status XShmPutImage(
+Bool XShmPutImage(
Display* /* dpy */,
Drawable /* d */,
GC /* gc */,
@@ -114,7 +99,7 @@ Status XShmPutImage(
Bool /* send_event */
);
-Status XShmGetImage(
+Bool XShmGetImage(
Display* /* dpy */,
Drawable /* d */,
XImage* /* image */,
@@ -145,17 +130,6 @@ Pixmap XShmCreatePixmap(
);
_XFUNCPROTOEND
-
-#else /* _XSHM_SERVER_ */
-
-#include "screenint.h"
-#include "pixmap.h"
-#include "gc.h"
-
-extern void ShmRegisterFbFuncs(
- ScreenPtr /* pScreen */
-);
-
-#endif
+#endif /* _XSHM_SERVER_ */
#endif
diff --git a/X11/extensions/Xag.h b/X11/extensions/Xag.h
index 815f2b9f9..9f69f7875 100644
--- a/X11/extensions/Xag.h
+++ b/X11/extensions/Xag.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/include/extensions/Xag.h,v 1.5 2001/12/17 20:52:24 dawes Exp $ */
/*
Copyright 1996, 1998 The Open Group
@@ -24,34 +23,13 @@ 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.
*/
-/* $Xorg: Xag.h,v 1.5 2001/02/09 02:03:24 xorgcvs Exp $ */
#ifndef _XAG_H_
#define _XAG_H_
+#include <X11/extensions/ag.h>
#include <X11/Xfuncproto.h>
-#define X_XagQueryVersion 0
-#define X_XagCreate 1
-#define X_XagDestroy 2
-#define X_XagGetAttr 3
-#define X_XagQuery 4
-#define X_XagCreateAssoc 5
-#define X_XagDestroyAssoc 6
-
-#define XagBadAppGroup 0
-#define XagNumberErrors (XagBadAppGroup + 1)
-
-#define XagNsingleScreen 7
-#define XagNdefaultRoot 1
-#define XagNrootVisual 2
-#define XagNdefaultColormap 3
-#define XagNblackPixel 4
-#define XagNwhitePixel 5
-#define XagNappGroupLeader 6
-
-#ifndef _XAG_SERVER_
-
#include <stdarg.h>
_XFUNCPROTOBEGIN
@@ -108,7 +86,5 @@ Status XagDestroyAssociation(
_XFUNCPROTOEND
-#endif /* _XAG_SERVER_ */
-
#endif /* _XAG_H_ */
diff --git a/X11/extensions/Xcup.h b/X11/extensions/Xcup.h
index b1df039e6..c8074cf3d 100644
--- a/X11/extensions/Xcup.h
+++ b/X11/extensions/Xcup.h
@@ -1,4 +1,3 @@
-/* $Xorg: Xcup.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
Copyright 1987, 1988, 1998 The Open Group
@@ -24,20 +23,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
-/* $XFree86$ */
#ifndef _XCUP_H_
#define _XCUP_H_
#include <X11/Xfuncproto.h>
-
-#define X_XcupQueryVersion 0
-#define X_XcupGetReservedColormapEntries 1
-#define X_XcupStoreColors 2
-
-#define XcupNumberErrors 0
-
-#ifndef _XCUP_SERVER_
+#include <X11/extensions/cup.h>
_XFUNCPROTOBEGIN
@@ -63,7 +54,5 @@ Status XcupStoreColors(
_XFUNCPROTOEND
-#endif /* _XCUP_SERVER_ */
-
#endif /* _XCUP_H_ */
diff --git a/X11/extensions/Xdbe.h b/X11/extensions/Xdbe.h
index f9205a228..5c842a445 100644
--- a/X11/extensions/Xdbe.h
+++ b/X11/extensions/Xdbe.h
@@ -1,6 +1,5 @@
-/* $Xorg: Xdbe.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
/******************************************************************************
- *
+ *
* Copyright (c) 1994, 1995 Hewlett-Packard Company
*
* Permission is hereby granted, free of charge, to any person obtaining
@@ -10,10 +9,10 @@
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
- *
+ *
* 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.
@@ -21,34 +20,37 @@
* 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 Hewlett-Packard
* Company 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 Hewlett-Packard Company.
- *
+ *
* Header file for Xlib-related DBE
*
*****************************************************************************/
-/* $XFree86: xc/include/extensions/Xdbe.h,v 3.2 2001/08/01 00:44:35 tsi Exp $ */
#ifndef XDBE_H
#define XDBE_H
-
-/* INCLUDES */
-
#include <X11/Xfuncproto.h>
-#include <X11/extensions/Xdbeproto.h>
-
+#include <X11/extensions/dbe.h>
-/* DEFINES */
-
-/* Errors */
-#define XdbeBadBuffer 0
+typedef struct
+{
+ VisualID visual; /* one visual ID that supports double-buffering */
+ int depth; /* depth of visual in bits */
+ int perflevel; /* performance level of visual */
+}
+XdbeVisualInfo;
+typedef struct
+{
+ int count; /* number of items in visual_depth */
+ XdbeVisualInfo *visinfo; /* list of visuals & depths for scrn */
+}
+XdbeScreenVisualInfo;
-/* TYPEDEFS */
typedef Drawable XdbeBackBuffer;
diff --git a/X11/extensions/Xext.h b/X11/extensions/Xext.h
index 5b62c8b2d..858592b78 100644
--- a/X11/extensions/Xext.h
+++ b/X11/extensions/Xext.h
@@ -1,5 +1,4 @@
/*
- * $Xorg: Xext.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
*
Copyright 1989, 1998 The Open Group
@@ -23,7 +22,6 @@ 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.
*/
-/* $XFree86: xc/include/extensions/Xext.h,v 1.4 2001/12/14 19:53:28 dawes Exp $ */
#ifndef _XEXT_H_
#define _XEXT_H_
@@ -32,16 +30,14 @@ in this Software without prior written authorization from The Open Group.
_XFUNCPROTOBEGIN
-extern int (*XSetExtensionErrorHandler(
- int (*handler)(
- Display *,
- char *,
- char *
- )
-))(
- Display *,
- char *,
- char *
+typedef int (*XextErrorHandler) (
+ Display * /* dpy */,
+ _Xconst char* /* ext_name */,
+ _Xconst char* /* reason */
+);
+
+extern XextErrorHandler XSetExtensionErrorHandler(
+ XextErrorHandler /* handler */
);
extern int XMissingExtension(
diff --git a/X11/extensions/Xge.h b/X11/extensions/Xge.h
index 84fa250da..76b5a6a01 100644
--- a/X11/extensions/Xge.h
+++ b/X11/extensions/Xge.h
@@ -36,14 +36,17 @@
_XFUNCPROTOBEGIN
/**
- * Generic Event mask.
+ * Generic Event mask.
* To be used whenever a list of masks per extension has to be provided.
+ *
+ * But, don't actually use the CARD{8,16,32} types. We can't get them them
+ * defined here without polluting the namespace.
*/
typedef struct {
- CARD8 extension;
- CARD8 pad0;
- CARD16 pad1;
- CARD32 evmask;
+ unsigned char extension;
+ unsigned char pad0;
+ unsigned short pad1;
+ unsigned int evmask;
} XGenericEventMask;
Bool XGEQueryExtension(Display* dpy, int *event_basep, int *err_basep);
diff --git a/X11/extensions/Xinerama.h b/X11/extensions/Xinerama.h
new file mode 100644
index 000000000..666f52a78
--- /dev/null
+++ b/X11/extensions/Xinerama.h
@@ -0,0 +1,74 @@
+/*
+
+Copyright 2003 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.
+
+*/
+
+#ifndef _Xinerama_h
+#define _Xinerama_h
+
+#include <X11/Xlib.h>
+
+typedef struct {
+ int screen_number;
+ short x_org;
+ short y_org;
+ short width;
+ short height;
+} XineramaScreenInfo;
+
+_XFUNCPROTOBEGIN
+
+Bool XineramaQueryExtension (
+ Display *dpy,
+ int *event_base,
+ int *error_base
+);
+
+Status XineramaQueryVersion(
+ Display *dpy,
+ int *major_versionp,
+ int *minor_versionp
+);
+
+Bool XineramaIsActive(Display *dpy);
+
+
+/*
+ Returns the number of heads and a pointer to an array of
+ structures describing the position and size of the individual
+ heads. Returns NULL and number = 0 if Xinerama is not active.
+
+ Returned array should be freed with XFree().
+*/
+
+XineramaScreenInfo *
+XineramaQueryScreens(
+ Display *dpy,
+ int *number
+);
+
+_XFUNCPROTOEND
+
+#endif /* _Xinerama_h */
+
diff --git a/X11/extensions/Xrender.h b/X11/extensions/Xrender.h
new file mode 100644
index 000000000..5248e99bd
--- /dev/null
+++ b/X11/extensions/Xrender.h
@@ -0,0 +1,528 @@
+/*
+ *
+ * Copyright © 2000 SuSE, Inc.
+ *
+ * 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, and that the name of SuSE not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. SuSE makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
+ * 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.
+ *
+ * Author: Keith Packard, SuSE, Inc.
+ */
+
+#ifndef _XRENDER_H_
+#define _XRENDER_H_
+
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+#include <X11/Xosdefs.h>
+#include <X11/Xutil.h>
+
+#include <X11/extensions/render.h>
+
+typedef struct {
+ short red;
+ short redMask;
+ short green;
+ short greenMask;
+ short blue;
+ short blueMask;
+ short alpha;
+ short alphaMask;
+} XRenderDirectFormat;
+
+typedef struct {
+ PictFormat id;
+ int type;
+ int depth;
+ XRenderDirectFormat direct;
+ Colormap colormap;
+} XRenderPictFormat;
+
+#define PictFormatID (1 << 0)
+#define PictFormatType (1 << 1)
+#define PictFormatDepth (1 << 2)
+#define PictFormatRed (1 << 3)
+#define PictFormatRedMask (1 << 4)
+#define PictFormatGreen (1 << 5)
+#define PictFormatGreenMask (1 << 6)
+#define PictFormatBlue (1 << 7)
+#define PictFormatBlueMask (1 << 8)
+#define PictFormatAlpha (1 << 9)
+#define PictFormatAlphaMask (1 << 10)
+#define PictFormatColormap (1 << 11)
+
+typedef struct _XRenderPictureAttributes {
+ int repeat;
+ Picture alpha_map;
+ int alpha_x_origin;
+ int alpha_y_origin;
+ int clip_x_origin;
+ int clip_y_origin;
+ Pixmap clip_mask;
+ Bool graphics_exposures;
+ int subwindow_mode;
+ int poly_edge;
+ int poly_mode;
+ Atom dither;
+ Bool component_alpha;
+} XRenderPictureAttributes;
+
+typedef struct {
+ unsigned short red;
+ unsigned short green;
+ unsigned short blue;
+ unsigned short alpha;
+} XRenderColor;
+
+typedef struct _XGlyphInfo {
+ unsigned short width;
+ unsigned short height;
+ short x;
+ short y;
+ short xOff;
+ short yOff;
+} XGlyphInfo;
+
+typedef struct _XGlyphElt8 {
+ GlyphSet glyphset;
+ _Xconst char *chars;
+ int nchars;
+ int xOff;
+ int yOff;
+} XGlyphElt8;
+
+typedef struct _XGlyphElt16 {
+ GlyphSet glyphset;
+ _Xconst unsigned short *chars;
+ int nchars;
+ int xOff;
+ int yOff;
+} XGlyphElt16;
+
+typedef struct _XGlyphElt32 {
+ GlyphSet glyphset;
+ _Xconst unsigned int *chars;
+ int nchars;
+ int xOff;
+ int yOff;
+} XGlyphElt32;
+
+typedef double XDouble;
+
+typedef struct _XPointDouble {
+ XDouble x, y;
+} XPointDouble;
+
+#define XDoubleToFixed(f) ((XFixed) ((f) * 65536))
+#define XFixedToDouble(f) (((XDouble) (f)) / 65536)
+
+typedef int XFixed;
+
+typedef struct _XPointFixed {
+ XFixed x, y;
+} XPointFixed;
+
+typedef struct _XLineFixed {
+ XPointFixed p1, p2;
+} XLineFixed;
+
+typedef struct _XTriangle {
+ XPointFixed p1, p2, p3;
+} XTriangle;
+
+typedef struct _XCircle {
+ XFixed x;
+ XFixed y;
+ XFixed radius;
+} XCircle;
+
+typedef struct _XTrapezoid {
+ XFixed top, bottom;
+ XLineFixed left, right;
+} XTrapezoid;
+
+typedef struct _XTransform {
+ XFixed matrix[3][3];
+} XTransform;
+
+typedef struct _XFilters {
+ int nfilter;
+ char **filter;
+ int nalias;
+ short *alias;
+} XFilters;
+
+typedef struct _XIndexValue {
+ unsigned long pixel;
+ unsigned short red, green, blue, alpha;
+} XIndexValue;
+
+typedef struct _XAnimCursor {
+ Cursor cursor;
+ unsigned long delay;
+} XAnimCursor;
+
+typedef struct _XSpanFix {
+ XFixed left, right, y;
+} XSpanFix;
+
+typedef struct _XTrap {
+ XSpanFix top, bottom;
+} XTrap;
+
+typedef struct _XLinearGradient {
+ XPointFixed p1;
+ XPointFixed p2;
+} XLinearGradient;
+
+typedef struct _XRadialGradient {
+ XCircle inner;
+ XCircle outer;
+} XRadialGradient;
+
+typedef struct _XConicalGradient {
+ XPointFixed center;
+ XFixed angle; /* in degrees */
+} XConicalGradient;
+
+_XFUNCPROTOBEGIN
+
+Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep);
+
+Status XRenderQueryVersion (Display *dpy,
+ int *major_versionp,
+ int *minor_versionp);
+
+Status XRenderQueryFormats (Display *dpy);
+
+int XRenderQuerySubpixelOrder (Display *dpy, int screen);
+
+Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel);
+
+XRenderPictFormat *
+XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual);
+
+XRenderPictFormat *
+XRenderFindFormat (Display *dpy,
+ unsigned long mask,
+ _Xconst XRenderPictFormat *templ,
+ int count);
+
+#define PictStandardARGB32 0
+#define PictStandardRGB24 1
+#define PictStandardA8 2
+#define PictStandardA4 3
+#define PictStandardA1 4
+#define PictStandardNUM 5
+
+XRenderPictFormat *
+XRenderFindStandardFormat (Display *dpy,
+ int format);
+
+XIndexValue *
+XRenderQueryPictIndexValues(Display *dpy,
+ _Xconst XRenderPictFormat *format,
+ int *num);
+
+Picture
+XRenderCreatePicture (Display *dpy,
+ Drawable drawable,
+ _Xconst XRenderPictFormat *format,
+ unsigned long valuemask,
+ _Xconst XRenderPictureAttributes *attributes);
+
+void
+XRenderChangePicture (Display *dpy,
+ Picture picture,
+ unsigned long valuemask,
+ _Xconst XRenderPictureAttributes *attributes);
+
+void
+XRenderSetPictureClipRectangles (Display *dpy,
+ Picture picture,
+ int xOrigin,
+ int yOrigin,
+ _Xconst XRectangle *rects,
+ int n);
+
+void
+XRenderSetPictureClipRegion (Display *dpy,
+ Picture picture,
+ Region r);
+
+void
+XRenderSetPictureTransform (Display *dpy,
+ Picture picture,
+ XTransform *transform);
+
+void
+XRenderFreePicture (Display *dpy,
+ Picture picture);
+
+void
+XRenderComposite (Display *dpy,
+ int op,
+ Picture src,
+ Picture mask,
+ Picture dst,
+ int src_x,
+ int src_y,
+ int mask_x,
+ int mask_y,
+ int dst_x,
+ int dst_y,
+ unsigned int width,
+ unsigned int height);
+
+GlyphSet
+XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format);
+
+GlyphSet
+XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing);
+
+void
+XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
+
+void
+XRenderAddGlyphs (Display *dpy,
+ GlyphSet glyphset,
+ _Xconst Glyph *gids,
+ _Xconst XGlyphInfo *glyphs,
+ int nglyphs,
+ _Xconst char *images,
+ int nbyte_images);
+
+void
+XRenderFreeGlyphs (Display *dpy,
+ GlyphSet glyphset,
+ _Xconst Glyph *gids,
+ int nglyphs);
+
+void
+XRenderCompositeString8 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ GlyphSet glyphset,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst char *string,
+ int nchar);
+
+void
+XRenderCompositeString16 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ GlyphSet glyphset,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst unsigned short *string,
+ int nchar);
+
+void
+XRenderCompositeString32 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ GlyphSet glyphset,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst unsigned int *string,
+ int nchar);
+
+void
+XRenderCompositeText8 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XGlyphElt8 *elts,
+ int nelt);
+
+void
+XRenderCompositeText16 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XGlyphElt16 *elts,
+ int nelt);
+
+void
+XRenderCompositeText32 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XGlyphElt32 *elts,
+ int nelt);
+
+void
+XRenderFillRectangle (Display *dpy,
+ int op,
+ Picture dst,
+ _Xconst XRenderColor *color,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height);
+
+void
+XRenderFillRectangles (Display *dpy,
+ int op,
+ Picture dst,
+ _Xconst XRenderColor *color,
+ _Xconst XRectangle *rectangles,
+ int n_rects);
+
+void
+XRenderCompositeTrapezoids (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XTrapezoid *traps,
+ int ntrap);
+
+void
+XRenderCompositeTriangles (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XTriangle *triangles,
+ int ntriangle);
+
+void
+XRenderCompositeTriStrip (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XPointFixed *points,
+ int npoint);
+
+void
+XRenderCompositeTriFan (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XPointFixed *points,
+ int npoint);
+
+void
+XRenderCompositeDoublePoly (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XPointDouble *fpoints,
+ int npoints,
+ int winding);
+Status
+XRenderParseColor(Display *dpy,
+ char *spec,
+ XRenderColor *def);
+
+Cursor
+XRenderCreateCursor (Display *dpy,
+ Picture source,
+ unsigned int x,
+ unsigned int y);
+
+XFilters *
+XRenderQueryFilters (Display *dpy, Drawable drawable);
+
+void
+XRenderSetPictureFilter (Display *dpy,
+ Picture picture,
+ const char *filter,
+ XFixed *params,
+ int nparams);
+
+Cursor
+XRenderCreateAnimCursor (Display *dpy,
+ int ncursor,
+ XAnimCursor *cursors);
+
+
+void
+XRenderAddTraps (Display *dpy,
+ Picture picture,
+ int xOff,
+ int yOff,
+ _Xconst XTrap *traps,
+ int ntrap);
+
+Picture XRenderCreateSolidFill (Display *dpy,
+ const XRenderColor *color);
+
+Picture XRenderCreateLinearGradient (Display *dpy,
+ const XLinearGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nstops);
+
+Picture XRenderCreateRadialGradient (Display *dpy,
+ const XRadialGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nstops);
+
+Picture XRenderCreateConicalGradient (Display *dpy,
+ const XConicalGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nstops);
+
+_XFUNCPROTOEND
+
+#endif /* _XRENDER_H_ */
diff --git a/X11/extensions/bigreqstr.h b/X11/extensions/bigreqstr.h
index 0a023dbf1..df43f46de 100644
--- a/X11/extensions/bigreqstr.h
+++ b/X11/extensions/bigreqstr.h
@@ -1,3 +1,3 @@
-#warning "bigreqstr.h is obsolete and may be removed in the future."
-#warning "include <X11/extensions/bigreqsproto.h> for the protocol defines."
+#pragma message("bigreqstr.h is obsolete and may be removed in the future.")
+#pragma message("include <X11/extensions/bigreqsproto.h> for the protocol defines.")
#include <X11/extensions/bigreqsproto.h>
diff --git a/X11/extensions/dpms.h b/X11/extensions/dpms.h
index 7555f4ab6..f85e6a725 100644
--- a/X11/extensions/dpms.h
+++ b/X11/extensions/dpms.h
@@ -1,4 +1,3 @@
-/* $Xorg: dpms.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
/*****************************************************************
Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.
@@ -15,40 +14,26 @@ 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
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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 Digital Equipment Corporation
+Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
+dealings in this Software without prior written authorization from Digital
Equipment Corporation.
******************************************************************/
-/* $XFree86: xc/include/extensions/dpms.h,v 3.4 2000/03/15 16:51:51 tsi Exp $ */
#ifndef _X11_EXTENSIONS_DPMS_H
#define _X11_EXTENSIONS_DPMS_H 1
-/*
- * HISTORY
- */
-/*
- * @(#)RCSfile: dpms.h,v Revision: 1.1.4.2 (DEC) Date: 1995/11/21 19:34:17
- */
-
-
-#define DPMSModeOn 0
-#define DPMSModeStandby 1
-#define DPMSModeSuspend 2
-#define DPMSModeOff 3
-
-#ifndef DPMS_SERVER
-
#include <X11/X.h>
#include <X11/Xmd.h>
+#include <X11/extensions/dpmsconst.h>
+#ifndef DPMS_SERVER
_XFUNCPROTOBEGIN
extern Bool DPMSQueryExtension(Display *, int *, int *);
@@ -62,6 +47,7 @@ extern Status DPMSForceLevel(Display *, CARD16);
extern Status DPMSInfo(Display *, CARD16 *, BOOL *);
_XFUNCPROTOEND
-#endif /* !DPMS_SERVER */
+#endif
+
#endif /* !_X11_EXTENSIONS_DPMS_H */
diff --git a/X11/extensions/extutil.h b/X11/extensions/extutil.h
index 825d81e93..074cc183a 100644
--- a/X11/extensions/extutil.h
+++ b/X11/extensions/extutil.h
@@ -1,5 +1,4 @@
/*
- * $Xorg: extutil.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
*
Copyright 1989, 1998 The Open Group
@@ -24,18 +23,18 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*
* Author: Jim Fulton, MIT The Open Group
- *
+ *
* Xlib Extension-Writing Utilities
*
* This package contains utilities for writing the client API for various
* protocol extensions. THESE INTERFACES ARE NOT PART OF THE X STANDARD AND
* ARE SUBJECT TO CHANGE!
*/
-/* $XFree86: xc/include/extensions/extutil.h,v 1.9 2001/12/14 19:53:28 dawes Exp $ */
#ifndef _EXTUTIL_H_
#define _EXTUTIL_H_
+#include <unistd.h>
#include <X11/extensions/Xext.h>
/*
@@ -125,7 +124,7 @@ extern void XextDestroyExtension(
extern XExtDisplayInfo *XextAddDisplay(
XExtensionInfo* /* extinfo */,
Display* /* dpy */,
- char* /* ext_name */,
+ _Xconst char* /* ext_name */,
XExtensionHooks* /* hooks */,
int /* nevents */,
XPointer /* data */
@@ -149,7 +148,7 @@ extern XExtDisplayInfo *XextFindDisplay(
/*
* helper macros to generate code that is common to all extensions; caller
* should prefix it with static if extension source is in one file; this
- * could be a utility function, but have to stack 6 unused arguments for
+ * could be a utility function, but have to stack 6 unused arguments for
* something that is called many, many times would be bad.
*/
#define XEXT_GENERATE_FIND_DISPLAY(proc,extinfo,extname,hooks,nev,data) \
@@ -180,7 +179,7 @@ char *proc (Display *dpy, int code, XExtCodes *codes, char *buf, int n) \
code -= codes->first_error; \
if (code >= 0 && code < nerr) { \
char tmp[256]; \
- sprintf (tmp, "%s.%d", extname, code); \
+ snprintf (tmp, sizeof(tmp), "%s.%d", extname, code); \
XGetErrorDatabaseText (dpy, "XProtoError", tmp, errl[code], buf, n); \
return buf; \
} \
diff --git a/X11/extensions/lbxbuf.h b/X11/extensions/lbxbuf.h
deleted file mode 100644
index 63983df16..000000000
--- a/X11/extensions/lbxbuf.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Xorg: lbxbuf.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
-/*
- * Copyright 1988, 1989, 1990, 1994 Network Computing Devices, Inc.
- *
- * 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, and that the name Network Computing Devices, Inc. not be
- * used in advertising or publicity pertaining to distribution of this
- * software without specific, written prior permission.
- *
- * THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
- * LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK
- * COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
- * SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE,
- * DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND
- * REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- */
-
-#ifndef _BUFFER_H_
-#define _BUFFER_H_
-
-#define INBUFFER_SIZE (1 << 13) /* 8K */
-#define OUTBUFFER_SIZE (1 << 12) /* 4K */
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-typedef struct _zlibbuffer *ZlibBufferPtr;
-
-#include <X11/Xfuncproto.h>
-
-_XFUNCPROTOBEGIN
-
-extern int InitZlibBuffer(ZlibBufferPtr b, int size);
-extern void FreeZlibBuffer(ZlibBufferPtr b);
-extern char *ReserveOutBuf(ZlibBufferPtr outbuf, int outlen);
-
-_XFUNCPROTOEND
-
-#endif /* _BUFFER_H_ */
diff --git a/X11/extensions/lbxbufstr.h b/X11/extensions/lbxbufstr.h
deleted file mode 100644
index e1a06f633..000000000
--- a/X11/extensions/lbxbufstr.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $Xorg: lbxbufstr.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
-/*
- * Copyright 1988, 1989, 1990, 1994 Network Computing Devices, Inc.
- *
- * 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, and that the name Network Computing Devices, Inc. not be
- * used in advertising or publicity pertaining to distribution of this
- * software without specific, written prior permission.
- *
- * THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
- * LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK
- * COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
- * SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE,
- * DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND
- * REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- */
-/* $XFree86$ */
-
-#ifndef _BUFFERSTR_H_
-#define _BUFFERSTR_H_
-
-#include <X11/extensions/lbxbuf.h>
-
-/*
- * ZLIB Input/Output buffer
- */
-typedef struct _zlibbuffer {
- char *bufbase;
- char *bufend;
- char *bufptr;
- int bufcnt;
-} ZlibBuffer;
-
-#define BYTES_AVAIL(inbuf, len) \
- (((inbuf)->bufcnt >= (len)) ? (inbuf)->bufptr : NULL)
-
-#endif /* _BUFFERSTR_H_ */
diff --git a/X11/extensions/lbximage.h b/X11/extensions/lbximage.h
deleted file mode 100644
index 10627cf29..000000000
--- a/X11/extensions/lbximage.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* $Xorg: lbximage.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
-
-/******************************************************************************
-
-Copyright 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.
-
-******************************************************************************/
-/* $XFree86: xc/include/extensions/lbximage.h,v 1.4 2001/12/20 19:28:54 tsi Exp $ */
-
-#ifndef _LBX_IMAGE_H_
-#define _LBX_IMAGE_H_
-
-#include <X11/Xfuncproto.h>
-
-_XFUNCPROTOBEGIN
-
-typedef struct _LbxBitmapCompMethod {
-
- char *methodName;
- int inited;
- int methodOpCode; /* to be filled on reply from server */
-
- int (*compInit)(
- void
- );
-
- int (*compFunc)(
- unsigned char * /* inbuf */,
- unsigned char * /* outbuf */,
- int /* outbufSize */,
- int /* image_bytes */,
- int /* pixels_per_line */,
- int /* padded_bytes_per_scanline */,
- int /* reverse_bits */,
- int * /* bytesCompressed */
- );
-
- int (*decompFunc)(
- unsigned char * /* inbuf */,
- unsigned char * /* outbuf */,
- int /* image_bytes */,
- int /* pixels_per_line */,
- int /* padded_bytes_per_scanline */,
- int /* reverse_bits */
- );
-
-} LbxBitmapCompMethod;
-
-
-#define LBX_MAX_DEPTHS 5
-
-typedef struct _LbxPixmapCompMethod {
-
- char *methodName;
- unsigned formatMask;
- int depthCount;
- int depths[LBX_MAX_DEPTHS];
- int inited;
- int methodOpCode; /* to be filled on reply from server */
-
- int (*compInit)(
- void
- );
-
- int (*compFunc)(
- char * /* inbuf */,
- char * /* outbuf */,
- int /* outbufSize */,
- int /* format */,
- int /* depth */,
- int /* num_scan_lines */,
- int /* scan_line_size */,
- int * /* bytesCompressed */
- );
-
- int (*decompFunc)(
- char * /* inbuf */,
- char * /* outbuf */,
- int /* num_scan_lines */,
- int /* scan_line_size */
- );
-
-} LbxPixmapCompMethod;
-
-
-extern int LbxImageEncodePackBits (
-char * /* inbuf */,
-char * /* outbuf */,
-int /* outbufSize */,
-int /* format */,
-int /* depth */,
-int /* num_scan_lines */,
-int /* scan_line_size */,
-int * /* bytesCompressed */
-);
-
-extern int LbxImageEncodeFaxG42D (
-unsigned char * /* inbuf */,
-unsigned char * /* outbuf */,
-int /* outbufSize */,
-int /* image_bytes */,
-int /* pixels_per_line */,
-int /* padded_bytes_per_scanline */,
-int /* reverse_bits */,
-int * /* bytesCompressed */
-);
-
-extern int LbxImageDecodePackBits (
-char * /* inbuf */,
-char * /* outbuf */,
-int /* num_scan_lines */,
-int /* scan_line_size */
-);
-
-extern int LbxImageDecodeFaxG42D (
-unsigned char * /* inbuf */,
-unsigned char * /* outbuf */,
-int /* image_bytes */,
-int /* pixels_per_line */,
-int /* padded_bytes_per_scanline */,
-int /* reverse_bits */
-);
-
-_XFUNCPROTOEND
-
-#define LBX_IMAGE_COMPRESS_SUCCESS 0
-#define LBX_IMAGE_COMPRESS_NO_SUPPORT 1
-#define LBX_IMAGE_COMPRESS_BAD_MALLOC 2
-#define LBX_IMAGE_COMPRESS_NOT_WORTH_IT 3
-
-#endif /* _LBX_IMAGE_H_ */
diff --git a/X11/extensions/multibuf.h b/X11/extensions/multibuf.h
index 96b4c3b14..27165f08a 100644
--- a/X11/extensions/multibuf.h
+++ b/X11/extensions/multibuf.h
@@ -1,5 +1,4 @@
/*
- * $Xorg: multibuf.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
*
Copyright 1989, 1998 The Open Group
@@ -24,82 +23,17 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
-/* $XFree86: xc/include/extensions/multibuf.h,v 3.4 2001/12/14 19:53:28 dawes Exp $ */
-
#ifndef _MULTIBUF_H_
#define _MULTIBUF_H_
#include <X11/Xfuncproto.h>
-#define MULTIBUFFER_PROTOCOL_NAME "Multi-Buffering"
-
-#define MULTIBUFFER_MAJOR_VERSION 1 /* current version numbers */
-#define MULTIBUFFER_MINOR_VERSION 1 /* has ClearImageBufferArea */
-
-#define X_MbufGetBufferVersion 0
-#define X_MbufCreateImageBuffers 1
-#define X_MbufDestroyImageBuffers 2
-#define X_MbufDisplayImageBuffers 3
-#define X_MbufSetMBufferAttributes 4
-#define X_MbufGetMBufferAttributes 5
-#define X_MbufSetBufferAttributes 6
-#define X_MbufGetBufferAttributes 7
-#define X_MbufGetBufferInfo 8
-#define X_MbufCreateStereoWindow 9
-#define X_MbufClearImageBufferArea 10
-
-/*
- * update_action field
- */
-#define MultibufferUpdateActionUndefined 0
-#define MultibufferUpdateActionBackground 1
-#define MultibufferUpdateActionUntouched 2
-#define MultibufferUpdateActionCopied 3
-
-/*
- * update_hint field
- */
-#define MultibufferUpdateHintFrequent 0
-#define MultibufferUpdateHintIntermittent 1
-#define MultibufferUpdateHintStatic 2
-
-/*
- * valuemask fields
- */
-#define MultibufferWindowUpdateHint (1L << 0)
-#define MultibufferBufferEventMask (1L << 0)
-
-/*
- * mono vs. stereo and left vs. right
- */
-#define MultibufferModeMono 0
-#define MultibufferModeStereo 1
-#define MultibufferSideMono 0
-#define MultibufferSideLeft 1
-#define MultibufferSideRight 2
-
-/*
- * clobber state
- */
-#define MultibufferUnclobbered 0
-#define MultibufferPartiallyClobbered 1
-#define MultibufferFullyClobbered 2
-
-/*
- * event stuff
- */
-#define MultibufferClobberNotifyMask 0x02000000
-#define MultibufferUpdateNotifyMask 0x04000000
-
-#define MultibufferClobberNotify 0
-#define MultibufferUpdateNotify 1
-#define MultibufferNumberEvents (MultibufferUpdateNotify + 1)
-
-#define MultibufferBadBuffer 0
-#define MultibufferNumberErrors (MultibufferBadBuffer + 1)
+#include <X11/extensions/multibufconst.h>
+#define MbufGetReq(name,req,info) GetReq (name, req); \
+ req->reqType = info->codes->major_opcode; \
+ req->mbufReqType = X_##name;
-#ifndef _MULTIBUF_SERVER_
/*
* Extra definitions that will only be needed in the client
*/
@@ -270,48 +204,4 @@ extern void XmbufClearBufferArea(
_XFUNCPROTOEND
-#else
-
-#include "scrnintstr.h"
-
-typedef Bool (* mbInitFunc)();
-
-struct _mbufScreen; /* declared in multibufst.h */
-
-extern void RegisterMultibufferInit(
- ScreenPtr /* pScreen */,
- Bool (* /* bufMultibufferInit */)(
- ScreenPtr /* pScreen */,
- struct _mbufScreen * /* pMBScreen */
- )
-);
-
-struct xMbufBufferInfo; /* declared in multibufst.h */
-
-extern void RegisterDoubleBufferHardware(
- ScreenPtr /* pScreen */,
- int /* nInfo */,
- struct xMbufBufferInfo * /* pInfo */,
- DevUnion * /* frameBuffer */,
- DevUnion /* selectPlane */,
- void (* /* CopyBufferBitsFunc */ )(),
- void (* /* DrawSelectPlaneFunc */ )()
-);
-
-extern int CreateImageBuffers (
- WindowPtr /* pWin */,
- int /* nbuf */,
- XID * /* ids */,
- int /* action */,
- int /* hint */
-);
-extern void DestroyImageBuffers (
- WindowPtr /* pWin */
-);
-extern int DisplayImageBuffers (
- XID * /* ids */,
- int /* nbuf */
-);
-
-#endif /* _MULTIBUF_SERVER_ */
#endif /* _MULTIBUF_H_ */
diff --git a/X11/extensions/panoramiXext.h b/X11/extensions/panoramiXext.h
new file mode 100644
index 000000000..aacc4fc43
--- /dev/null
+++ b/X11/extensions/panoramiXext.h
@@ -0,0 +1,85 @@
+/*****************************************************************
+Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software.
+
+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
+DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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 Digital Equipment Corporation
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from Digital
+Equipment Corporation.
+******************************************************************/
+/*
+ * PanoramiX definitions
+ */
+
+/* THIS IS NOT AN X PROJECT TEAM SPECIFICATION */
+
+#ifndef _panoramiXext_h
+#define _panoramiXext_h
+
+#include <X11/Xfuncproto.h>
+
+typedef struct {
+ Window window; /* PanoramiX window - may not exist */
+ int screen;
+ int State; /* PanoramiXOff, PanoramiXOn */
+ int width; /* width of this screen */
+ int height; /* height of this screen */
+ int ScreenCount; /* real physical number of screens */
+ XID eventMask; /* selected events for this client */
+} XPanoramiXInfo;
+
+_XFUNCPROTOBEGIN
+
+extern Bool XPanoramiXQueryExtension (
+ Display * /* dpy */,
+ int * /* event_base_return */,
+ int * /* error_base_return */
+);
+
+extern Status XPanoramiXQueryVersion(
+ Display * /* dpy */,
+ int * /* major_version_return */,
+ int * /* minor_version_return */
+);
+
+extern XPanoramiXInfo *XPanoramiXAllocInfo (
+ void
+);
+
+extern Status XPanoramiXGetState (
+ Display * /* dpy */,
+ Drawable /* drawable */,
+ XPanoramiXInfo * /* panoramiX_info */
+);
+
+extern Status XPanoramiXGetScreenCount (
+ Display * /* dpy */,
+ Drawable /* drawable */,
+ XPanoramiXInfo * /* panoramiX_info */
+);
+
+extern Status XPanoramiXGetScreenSize (
+ Display * /* dpy */,
+ Drawable /* drawable */,
+ int /* screen_num */,
+ XPanoramiXInfo * /* panoramiX_info */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _panoramiXext_h */
diff --git a/X11/extensions/recordstr.h b/X11/extensions/recordstr.h
index 7f269b77e..983af4dc8 100644
--- a/X11/extensions/recordstr.h
+++ b/X11/extensions/recordstr.h
@@ -1,4 +1,4 @@
-#warning "recordstr.h is obsolete and may be removed in the future."
-#warning "include <X11/extensions/record.h> for the library interfaces."
-#warning "include <X11/extensions/recordproto.h> for the protocol defines."
+#pragma message( "recordstr.h is obsolete and may be removed in the future.")
+#pragma message("include <X11/extensions/record.h> for the library interfaces.")
+#pragma message( "include <X11/extensions/recordproto.h> for the protocol defines.")
#include <X11/extensions/recordproto.h>
diff --git a/X11/extensions/security.h b/X11/extensions/security.h
index fc7ade236..f5541310b 100644
--- a/X11/extensions/security.h
+++ b/X11/extensions/security.h
@@ -1,4 +1,3 @@
-/* $Xorg: security.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
Copyright 1996, 1998 The Open Group
@@ -24,7 +23,6 @@ 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.
*/
-/* $XFree86: xc/include/extensions/security.h,v 1.3 2001/12/14 19:53:29 dawes Exp $ */
#ifndef _SECURITY_H
#define _SECURITY_H
@@ -32,37 +30,7 @@ from The Open Group.
#define _XAUTH_STRUCT_ONLY
#include <X11/Xauth.h>
-/* constants that server, library, and application all need */
-
-#define XSecurityNumberEvents 1
-#define XSecurityNumberErrors 2
-#define XSecurityBadAuthorization 0
-#define XSecurityBadAuthorizationProtocol 1
-
-/* trust levels */
-#define XSecurityClientTrusted 0
-#define XSecurityClientUntrusted 1
-
-/* authorization attribute masks */
-#define XSecurityTimeout (1<<0)
-#define XSecurityTrustLevel (1<<1)
-#define XSecurityGroup (1<<2)
-#define XSecurityEventMask (1<<3)
-#define XSecurityAllAuthorizationAttributes \
- (XSecurityTimeout | XSecurityTrustLevel | XSecurityGroup | XSecurityEventMask)
-
-/* event masks */
-#define XSecurityAuthorizationRevokedMask (1<<0)
-#define XSecurityAllEventMasks XSecurityAuthorizationRevokedMask
-
-/* event offsets */
-#define XSecurityAuthorizationRevoked 0
-
-#define XSecurityAuthorizationName "XC-QUERY-SECURITY-1"
-#define XSecurityAuthorizationNameLen 19
-
-
-#ifndef _SECURITY_SERVER
+#include <X11/extensions/secur.h>
_XFUNCPROTOBEGIN
@@ -106,6 +74,4 @@ typedef struct {
XSecurityAuthorization auth_id; /* revoked authorization id */
} XSecurityAuthorizationRevokedEvent;
-#endif /* _SECURITY_SERVER */
-
#endif /* _SECURITY_H */
diff --git a/X11/extensions/shape.h b/X11/extensions/shape.h
index d173efef8..66af5b1b4 100644
--- a/X11/extensions/shape.h
+++ b/X11/extensions/shape.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/include/extensions/shape.h,v 1.3 2001/12/14 19:53:29 dawes Exp $ */
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -25,40 +24,13 @@ in this Software without prior written authorization from The Open Group.
********************************************************/
-/* $Xorg: shape.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
-
#ifndef _SHAPE_H_
#define _SHAPE_H_
#include <X11/Xfuncproto.h>
-
-#define X_ShapeQueryVersion 0
-#define X_ShapeRectangles 1
-#define X_ShapeMask 2
-#define X_ShapeCombine 3
-#define X_ShapeOffset 4
-#define X_ShapeQueryExtents 5
-#define X_ShapeSelectInput 6
-#define X_ShapeInputSelected 7
-#define X_ShapeGetRectangles 8
-
-#define ShapeSet 0
-#define ShapeUnion 1
-#define ShapeIntersect 2
-#define ShapeSubtract 3
-#define ShapeInvert 4
-
-#define ShapeBounding 0
-#define ShapeClip 1
-#define ShapeInput 2
-
-#define ShapeNotifyMask (1L << 0)
-#define ShapeNotify 0
-
-#define ShapeNumberEvents (ShapeNotify + 1)
+#include <X11/extensions/shapeconst.h>
#ifndef _SHAPE_SERVER_
-
#include <X11/Xutil.h>
typedef struct {
@@ -175,6 +147,6 @@ extern XRectangle *XShapeGetRectangles (
_XFUNCPROTOEND
-#endif /* _SHAPE_SERVER_ */
+#endif /* !_SHAPE_SERVER_ */
#endif /* _SHAPE_H_ */
diff --git a/X11/extensions/sync.h b/X11/extensions/sync.h
index 9fbe6d72f..31b1be064 100644
--- a/X11/extensions/sync.h
+++ b/X11/extensions/sync.h
@@ -1,4 +1,3 @@
-/* $Xorg: sync.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
Copyright 1991, 1993, 1994, 1998 The Open Group
@@ -31,13 +30,13 @@ and Olivetti Research Limited, Cambridge, England.
All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
+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
+both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or Olivetti
not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+software without specific, written prior permission.
DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
@@ -48,95 +47,35 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
-/* $XFree86: xc/include/extensions/sync.h,v 1.4 2001/12/20 19:40:59 tsi Exp $ */
#ifndef _SYNC_H_
#define _SYNC_H_
#include <X11/Xfuncproto.h>
+#include <X11/extensions/syncconst.h>
-_XFUNCPROTOBEGIN
-
-#define SYNC_NAME "SYNC"
-
-#define SYNC_MAJOR_VERSION 3
-#define SYNC_MINOR_VERSION 0
-
-#define X_SyncInitialize 0
-#define X_SyncListSystemCounters 1
-#define X_SyncCreateCounter 2
-#define X_SyncSetCounter 3
-#define X_SyncChangeCounter 4
-#define X_SyncQueryCounter 5
-#define X_SyncDestroyCounter 6
-#define X_SyncAwait 7
-#define X_SyncCreateAlarm 8
-#define X_SyncChangeAlarm 9
-#define X_SyncQueryAlarm 10
-#define X_SyncDestroyAlarm 11
-#define X_SyncSetPriority 12
-#define X_SyncGetPriority 13
-
-#define XSyncCounterNotify 0
-#define XSyncAlarmNotify 1
-#define XSyncAlarmNotifyMask (1L << XSyncAlarmNotify)
-
-#define XSyncNumberEvents 2L
-
-#define XSyncBadCounter 0L
-#define XSyncBadAlarm 1L
-#define XSyncNumberErrors (XSyncBadAlarm + 1)
+#ifdef _SYNC_SERVER
+#include <X11/extensions/syncproto.h>
+#else
-/*
- * Flags for Alarm Attributes
- */
-#define XSyncCACounter (1L<<0)
-#define XSyncCAValueType (1L<<1)
-#define XSyncCAValue (1L<<2)
-#define XSyncCATestType (1L<<3)
-#define XSyncCADelta (1L<<4)
-#define XSyncCAEvents (1L<<5)
-
-/*
- * Constants for the value_type argument of various requests
- */
-typedef enum {
- XSyncAbsolute,
- XSyncRelative
-} XSyncValueType;
-
-/*
- * Alarm Test types
- */
-typedef enum {
- XSyncPositiveTransition,
- XSyncNegativeTransition,
- XSyncPositiveComparison,
- XSyncNegativeComparison
-} XSyncTestType;
-
-/*
- * Alarm state constants
- */
-typedef enum {
- XSyncAlarmActive,
- XSyncAlarmInactive,
- XSyncAlarmDestroyed
-} XSyncAlarmState;
-
-
-typedef XID XSyncCounter;
-typedef XID XSyncAlarm;
-typedef struct _XSyncValue {
- int hi;
- unsigned int lo;
-} XSyncValue;
-
-/*
- * Macros/functions for manipulating 64 bit values
- */
-
-/* have to put these prototypes before the corresponding macro definitions */
+_XFUNCPROTOBEGIN
+/* get rid of macros so we can define corresponding functions */
+#undef XSyncIntToValue
+#undef XSyncIntsToValue
+#undef XSyncValueGreaterThan
+#undef XSyncValueLessThan
+#undef XSyncValueGreaterOrEqual
+#undef XSyncValueLessOrEqual
+#undef XSyncValueEqual
+#undef XSyncValueIsNegative
+#undef XSyncValueIsZero
+#undef XSyncValueIsPositive
+#undef XSyncValueLow32
+#undef XSyncValueHigh32
+#undef XSyncValueAdd
+#undef XSyncValueSubtract
+#undef XSyncMaxValue
+#undef XSyncMinValue
extern void XSyncIntToValue(
XSyncValue* /*pv*/,
@@ -218,72 +157,6 @@ extern void XSyncMinValue(
_XFUNCPROTOEND
-/* The _XSync macros below are for library internal use only. They exist
- * so that if we have to make a fix, we can change it in this one place
- * and have both the macro and function variants inherit the fix.
- */
-
-#define _XSyncIntToValue(pv, i) ((pv)->hi=((i<0)?~0:0),(pv)->lo=(i))
-#define _XSyncIntsToValue(pv, l, h) ((pv)->lo = (l), (pv)->hi = (h))
-#define _XSyncValueGreaterThan(a, b)\
- ((a).hi>(b).hi || ((a).hi==(b).hi && (a).lo>(b).lo))
-#define _XSyncValueLessThan(a, b)\
- ((a).hi<(b).hi || ((a).hi==(b).hi && (a).lo<(b).lo))
-#define _XSyncValueGreaterOrEqual(a, b)\
- ((a).hi>(b).hi || ((a).hi==(b).hi && (a).lo>=(b).lo))
-#define _XSyncValueLessOrEqual(a, b)\
- ((a).hi<(b).hi || ((a).hi==(b).hi && (a).lo<=(b).lo))
-#define _XSyncValueEqual(a, b) ((a).lo==(b).lo && (a).hi==(b).hi)
-#define _XSyncValueIsNegative(v) (((v).hi & 0x80000000) ? 1 : 0)
-#define _XSyncValueIsZero(a) ((a).lo==0 && (a).hi==0)
-#define _XSyncValueIsPositive(v) (((v).hi & 0x80000000) ? 0 : 1)
-#define _XSyncValueLow32(v) ((v).lo)
-#define _XSyncValueHigh32(v) ((v).hi)
-#define _XSyncValueAdd(presult,a,b,poverflow) {\
- int t = (a).lo;\
- Bool signa = XSyncValueIsNegative(a);\
- Bool signb = XSyncValueIsNegative(b);\
- ((presult)->lo = (a).lo + (b).lo);\
- ((presult)->hi = (a).hi + (b).hi);\
- if (t>(presult)->lo) (presult)->hi++;\
- *poverflow = ((signa == signb) && !(signa == XSyncValueIsNegative(*presult)));\
- }
-#define _XSyncValueSubtract(presult,a,b,poverflow) {\
- int t = (a).lo;\
- Bool signa = XSyncValueIsNegative(a);\
- Bool signb = XSyncValueIsNegative(b);\
- ((presult)->lo = (a).lo - (b).lo);\
- ((presult)->hi = (a).hi - (b).hi);\
- if (t>(presult)->lo) (presult)->hi--;\
- *poverflow = ((signa == signb) && !(signa == XSyncValueIsNegative(*presult)));\
- }
-#define _XSyncMaxValue(pv) ((pv)->hi = 0x7fffffff, (pv)->lo = 0xffffffff)
-#define _XSyncMinValue(pv) ((pv)->hi = 0x80000000, (pv)->lo = 0)
-
-/*
- * These are the publically usable macros. If you want the function version
- * of one of these, just #undef the macro to uncover the function.
- * (This is the same convention that the ANSI C library uses.)
- */
-
-#define XSyncIntToValue(pv, i) _XSyncIntToValue(pv, i)
-#define XSyncIntsToValue(pv, l, h) _XSyncIntsToValue(pv, l, h)
-#define XSyncValueGreaterThan(a, b) _XSyncValueGreaterThan(a, b)
-#define XSyncValueLessThan(a, b) _XSyncValueLessThan(a, b)
-#define XSyncValueGreaterOrEqual(a, b) _XSyncValueGreaterOrEqual(a, b)
-#define XSyncValueLessOrEqual(a, b) _XSyncValueLessOrEqual(a, b)
-#define XSyncValueEqual(a, b) _XSyncValueEqual(a, b)
-#define XSyncValueIsNegative(v) _XSyncValueIsNegative(v)
-#define XSyncValueIsZero(a) _XSyncValueIsZero(a)
-#define XSyncValueIsPositive(v) _XSyncValueIsPositive(v)
-#define XSyncValueLow32(v) _XSyncValueLow32(v)
-#define XSyncValueHigh32(v) _XSyncValueHigh32(v)
-#define XSyncValueAdd(presult,a,b,poverflow) _XSyncValueAdd(presult,a,b,poverflow)
-#define XSyncValueSubtract(presult,a,b,poverflow) _XSyncValueSubtract(presult,a,b,poverflow)
-#define XSyncMaxValue(pv) _XSyncMaxValue(pv)
-#define XSyncMinValue(pv) _XSyncMinValue(pv)
-
-#ifndef _SYNC_SERVER
typedef struct _XSyncSystemCounter {
char *name; /* null-terminated name of system counter */
@@ -330,7 +203,7 @@ typedef struct {
} XSyncCounterNotifyEvent;
typedef struct {
- int type; /* event base + XSyncCounterNotify */
+ int type; /* event base + XSyncAlarmNotify */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
@@ -342,11 +215,11 @@ typedef struct {
} XSyncAlarmNotifyEvent;
/*
- * Errors
+ * Errors
*/
typedef struct {
- int type;
+ int type;
Display *display; /* Display the event was read from */
XSyncAlarm alarm; /* resource id */
unsigned long serial; /* serial number of failed request */
@@ -356,7 +229,7 @@ typedef struct {
} XSyncAlarmError;
typedef struct {
- int type;
+ int type;
Display *display; /* Display the event was read from */
XSyncCounter counter; /* resource id */
unsigned long serial; /* serial number of failed request */
@@ -365,7 +238,7 @@ typedef struct {
unsigned char minor_code; /* Minor op-code of failed request */
} XSyncCounterError;
-/*
+/*
* Prototypes
*/
@@ -462,8 +335,41 @@ extern Status XSyncGetPriority(
int* /*return_priority*/
);
-#endif /* _SYNC_SERVER */
+extern XSyncFence XSyncCreateFence(
+ Display* /*dpy*/,
+ Drawable /*d*/,
+ Bool /*initially_triggered*/
+);
+
+extern Bool XSyncTriggerFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/
+);
+
+extern Bool XSyncResetFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/
+);
+
+extern Bool XSyncDestroyFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/
+);
+
+extern Bool XSyncQueryFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/,
+ Bool* /*triggered*/
+);
+
+extern Bool XSyncAwaitFence(
+ Display* /*dpy*/,
+ const XSyncFence* /*fence_list*/,
+ int /*n_fences*/
+);
_XFUNCPROTOEND
+#endif /* _SYNC_SERVER */
+
#endif /* _SYNC_H_ */
diff --git a/X11/extensions/xcmiscstr.h b/X11/extensions/xcmiscstr.h
index c2b643308..43ab9ff8b 100644
--- a/X11/extensions/xcmiscstr.h
+++ b/X11/extensions/xcmiscstr.h
@@ -1,3 +1,3 @@
-#warning "xcmiscstr.h is obsolete and may be removed in the future."
-#warning "include <X11/extensions/xcmiscproto.h> for the protocol defines."
+#pragma message( "xcmiscstr.h is obsolete and may be removed in the future." )
+#pragma message( "include <X11/extensions/xcmiscproto.h> for the protocol defines." )
#include <X11/extensions/xcmiscproto.h>
diff --git a/X11/extensions/xtestext1.h b/X11/extensions/xtestext1.h
index 8f49cad07..67d015bb0 100644
--- a/X11/extensions/xtestext1.h
+++ b/X11/extensions/xtestext1.h
@@ -1,4 +1,3 @@
-/* $Xorg: xtestext1.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
* xtestext1.h
*
@@ -42,8 +41,8 @@ documentation, and that the name of Hewlett-Packard not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
-Hewlett-Packard makes no representations about the
-suitability of this software for any purpose. It is provided
+Hewlett-Packard makes no representations about the
+suitability of this software for any purpose. It is provided
"as is" without express or implied warranty.
This software is not subject to any license of the American
@@ -52,159 +51,13 @@ University of California.
*/
+#ifndef _XTESTEXT1_H
+#define _XTESTEXT1_H
/*
* the typedefs for CARD8, CARD16, and CARD32 are defined in Xmd.h
*/
-/*
- * used in the XTestPressButton and XTestPressKey functions
- */
-#define XTestPRESS 1 << 0
-#define XTestRELEASE 1 << 1
-#define XTestSTROKE 1 << 2
-
-/*
- * When doing a key or button stroke, the number of milliseconds
- * to delay between the press and the release of a key or button
- * in the XTestPressButton and XTestPressKey functions.
- */
-
-#define XTestSTROKE_DELAY_TIME 10
-
-/*
- * used in the XTestGetInput function
- */
-#define XTestEXCLUSIVE 1 << 0
-#define XTestPACKED_ACTIONS 1 << 1
-#define XTestPACKED_MOTION 1 << 2
-
-/*
- * used in the XTestFakeInput function
- */
-#define XTestFAKE_ACK_NOT_NEEDED 0
-#define XTestFAKE_ACK_REQUEST 1
-
-/*
- * used in the XTest extension initialization routine
- */
-#define XTestEXTENSION_NAME "XTestExtension1"
-#define XTestEVENT_COUNT 2
-
-/*
- * XTest request type values
- *
- * used in the XTest extension protocol requests
- */
-#define X_TestFakeInput 1
-#define X_TestGetInput 2
-#define X_TestStopInput 3
-#define X_TestReset 4
-#define X_TestQueryInputSize 5
-
-/*
- * This defines the maximum size of a list of input actions
- * to be sent to the server. It should always be a multiple of
- * 4 so that the entire xTestFakeInputReq structure size is a
- * multiple of 4.
- */
-#define XTestMAX_ACTION_LIST_SIZE 64
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestFakeInput */
- CARD16 length B16; /* 2 + XTestMAX_ACTION_LIST_SIZE/4 */
- CARD32 ack B32;
- CARD8 action_list[XTestMAX_ACTION_LIST_SIZE];
-} xTestFakeInputReq;
-#define sz_xTestFakeInputReq (XTestMAX_ACTION_LIST_SIZE + 8)
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestGetInput */
- CARD16 length B16; /* 2 */
- CARD32 mode B32;
-} xTestGetInputReq;
-#define sz_xTestGetInputReq 8
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestStopInput */
- CARD16 length B32; /* 1 */
-} xTestStopInputReq;
-#define sz_xTestStopInputReq 4
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestReset */
- CARD16 length B16; /* 1 */
-} xTestResetReq;
-#define sz_xTestResetReq 4
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestQueryInputSize */
- CARD16 length B16; /* 1 */
-} xTestQueryInputSizeReq;
-#define sz_xTestQueryInputSizeReq 4
-
-/*
- * This is the definition of the reply for the xTestQueryInputSize
- * request. It should remain the same minimum size as other replies
- * (32 bytes).
- */
-typedef struct {
- CARD8 type; /* always X_Reply */
- CARD8 pad1;
- CARD16 sequenceNumber B16;
- CARD32 length B32; /* always 0 */
- CARD32 size_return B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
- CARD32 pad6 B32;
-} xTestQueryInputSizeReply;
-
-/*
- * This is the definition for the input action wire event structure.
- * This event is sent to the client when the server has one or
- * more user input actions to report to the client. It must
- * remain the same size as all other wire events (32 bytes).
- */
-#define XTestACTIONS_SIZE 28
-
-typedef struct {
- CARD8 type; /* always XTestInputActionType */
- CARD8 pad00;
- CARD16 sequenceNumber B16;
- CARD8 actions[XTestACTIONS_SIZE];
-} xTestInputActionEvent;
-
-/*
- * This is the definition for the xTestFakeAck wire event structure.
- * This event is sent to the client when the server has completely
- * processed its input action buffer, and is ready for more.
- * It must remain the same size as all other wire events (32 bytes).
- */
-typedef struct {
- CARD8 type; /* always XTestFakeAckType */
- CARD8 pad00;
- CARD16 sequenceNumber B16;
- CARD32 pad02 B32;
- CARD32 pad03 B32;
- CARD32 pad04 B32;
- CARD32 pad05 B32;
- CARD32 pad06 B32;
- CARD32 pad07 B32;
- CARD32 pad08 B32;
-} xTestFakeAckEvent;
-
-/*
- * The server side of this extension does not (and should not) have
- * definitions for Display and Window. The ifndef allows the server
- * side of the extension to ignore the following typedefs.
- */
-#ifndef XTestSERVER_SIDE
+#include <X11/extensions/xtestext1const.h>
/*
* This is the definition for the input action host format event structure.
* This is the form that a client using this extension will see when
@@ -227,100 +80,19 @@ typedef struct {
Display *display;
Window window;
} XTestFakeAckEvent;
-#endif
-/*
- * This is the definition for the format of the header byte
- * in the input action structures.
- */
-#define XTestACTION_TYPE_MASK 0x03 /* bits 0 and 1 */
-#define XTestKEY_STATE_MASK 0x04 /* bit 2 (key action) */
-#define XTestX_SIGN_BIT_MASK 0x04 /* bit 2 (motion action) */
-#define XTestY_SIGN_BIT_MASK 0x08 /* bit 3 (motion action) */
-#define XTestDEVICE_ID_MASK 0xf0 /* bits 4 through 7 */
-
-#define XTestMAX_DEVICE_ID 0x0f
-#define XTestPackDeviceID(x) (((x) & XTestMAX_DEVICE_ID) << 4)
-#define XTestUnpackDeviceID(x) (((x) & XTestDEVICE_ID_MASK) >> 4)
-
-/*
- * These are the possible action types.
- */
-#define XTestDELAY_ACTION 0
-#define XTestKEY_ACTION 1
-#define XTestMOTION_ACTION 2
-#define XTestJUMP_ACTION 3
+_XFUNCPROTOBEGIN
-/*
- * These are the definitions for key/button motion input actions.
- */
-#define XTestKEY_UP 0x04
-#define XTestKEY_DOWN 0x00
+int XTestFakeInput(register Display *dpy, char *action_list_addr, int action_list_size, int ack_flag);
+int XTestGetInput(register Display *dpy, int action_handling);
+int XTestQueryInputSize(register Display *dpy, unsigned long *size_return);
+int XTestPressKey(Display *display, int device_id, unsigned long delay, unsigned int keycode, unsigned int key_action);
+int XTestPressButton(Display * display, int device_id, unsigned long delay, unsigned int button_number, unsigned int button_action);
+int XTestMovePointer(Display *display, int device_id, unsigned long delay[], int x[], int y[], unsigned int count);
+int XTestFlush(Display *display);
+int XTestStopInput(register Display *dpy);
+int XTestReset(register Display *dpy);
-typedef struct {
- CARD8 header; /* which device, key up/down */
- CARD8 keycode; /* which key/button to move */
- CARD16 delay_time B16; /* how long to delay (in ms) */
-} XTestKeyInfo;
+_XFUNCPROTOEND
-/*
- * This is the definition for pointer jump input actions.
- */
-typedef struct {
- CARD8 header; /* which pointer */
- CARD8 pad1; /* unused padding byte */
- CARD16 jumpx B16; /* x coord to jump to */
- CARD16 jumpy B16; /* y coord to jump to */
- CARD16 delay_time B16; /* how long to delay (in ms) */
-} XTestJumpInfo;
-
-/*
- * These are the definitions for pointer relative motion input
- * actions.
- *
- * The sign bits for the x and y relative motions are contained
- * in the header byte. The x and y relative motions are packed
- * into one byte to make things fit in 32 bits. If the relative
- * motion range is larger than +/-15, use the pointer jump action.
- */
-#define XTestMOTION_MAX 15
-#define XTestMOTION_MIN -15
-
-#define XTestX_NEGATIVE 0x04
-#define XTestY_NEGATIVE 0x08
-
-#define XTestX_MOTION_MASK 0x0f
-#define XTestY_MOTION_MASK 0xf0
-
-#define XTestPackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
-#define XTestPackYMotionValue(x) (((x) << 4) & XTestY_MOTION_MASK)
-
-#define XTestUnpackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
-#define XTestUnpackYMotionValue(x) (((x) & XTestY_MOTION_MASK) >> 4)
-
-typedef struct {
- CARD8 header; /* which pointer */
- CARD8 motion_data; /* x,y relative motion */
- CARD16 delay_time B16; /* how long to delay (in ms) */
-} XTestMotionInfo;
-
-/*
- * These are the definitions for a long delay input action. It is
- * used when more than XTestSHORT_DELAY_TIME milliseconds of delay
- * (approximately one minute) is needed.
- *
- * The device ID for a delay is always set to XTestDELAY_DEVICE_ID.
- * This guarantees that a header byte with a value of 0 is not
- * a valid header, so it can be used as a flag to indicate that
- * there are no more input actions in an XTestInputAction event.
- */
-
-#define XTestSHORT_DELAY_TIME 0xffff
-#define XTestDELAY_DEVICE_ID 0x0f
-
-typedef struct {
- CARD8 header; /* always XTestDELAY_DEVICE_ID */
- CARD8 pad1; /* unused padding byte */
- CARD16 pad2 B16; /* unused padding word */
- CARD32 delay_time B32; /* how long to delay (in ms) */
-} XTestDelayInfo;
+#endif /* _XTESTEXT1_H */
diff --git a/X11/fonts/bdfint.h b/X11/fonts/bdfint.h
new file mode 100644
index 000000000..8ce4a0cb1
--- /dev/null
+++ b/X11/fonts/bdfint.h
@@ -0,0 +1,90 @@
+/* $Xorg: bdfint.h,v 1.4 2001/02/09 02:04:01 xorgcvs Exp $ */
+
+/*
+
+Copyright 1990, 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.
+
+*/
+/* $XFree86: xc/lib/font/bitmap/bdfint.h,v 1.4 2001/01/17 19:43:26 dawes Exp $ */
+
+#ifndef BDFINT_H
+#define BDFINT_H
+
+#define bdfIsPrefix(buf,str) (!strncmp((char *)buf,str,strlen(str)))
+#define bdfStrEqual(s1,s2) (!strcmp(s1,s2))
+
+#define BDF_GENPROPS 6
+#define NullProperty ((FontPropPtr)0)
+
+/*
+ * This structure holds some properties we need to generate if they aren't
+ * specified in the BDF file and some other values read from the file
+ * that we'll need to calculate them. We need to keep track of whether
+ * or not we've read them.
+ */
+typedef struct BDFSTAT {
+ int linenum;
+ char *fileName;
+ char fontName[MAXFONTNAMELEN];
+ float pointSize;
+ int resolution_x;
+ int resolution_y;
+ int digitCount;
+ int digitWidths;
+ int exHeight;
+
+ FontPropPtr fontProp;
+ FontPropPtr pointSizeProp;
+ FontPropPtr resolutionXProp;
+ FontPropPtr resolutionYProp;
+ FontPropPtr resolutionProp;
+ FontPropPtr xHeightProp;
+ FontPropPtr weightProp;
+ FontPropPtr quadWidthProp;
+ BOOL haveFontAscent;
+ BOOL haveFontDescent;
+ BOOL haveDefaultCh;
+} bdfFileState;
+
+extern void bdfError ( const char * message, ... );
+extern void bdfWarning ( const char *message, ... );
+extern unsigned char * bdfGetLine ( FontFilePtr file, unsigned char *buf,
+ int len );
+extern Atom bdfForceMakeAtom ( const char *str, int *size );
+extern Atom bdfGetPropertyValue ( char *s );
+extern int bdfIsInteger ( char *str );
+extern unsigned char bdfHexByte ( unsigned char *s );
+extern Bool bdfSpecialProperty ( FontPtr pFont, FontPropPtr prop,
+ char isString, bdfFileState *bdfState );
+extern int bdfReadFont( FontPtr pFont, FontFilePtr file,
+ int bit, int byte, int glyph, int scan );
+extern int bdfReadFontInfo( FontInfoPtr pFontInfo, FontFilePtr file );
+
+extern void FontCharInkMetrics ( FontPtr pFont, CharInfoPtr pCI,
+ xCharInfo *pInk );
+extern void FontCharReshape ( FontPtr pFont, CharInfoPtr pSrc,
+ CharInfoPtr pDst );
+
+#endif /* BDFINT_H */
diff --git a/X11/fonts/bitmap.h b/X11/fonts/bitmap.h
new file mode 100644
index 000000000..731c85f5b
--- /dev/null
+++ b/X11/fonts/bitmap.h
@@ -0,0 +1,109 @@
+/* $Xorg: bitmap.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1990, 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.
+
+*/
+/* $XFree86: xc/lib/font/include/bitmap.h,v 1.9 2001/01/17 19:43:31 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _BITMAP_H_
+#define _BITMAP_H_
+
+#include <X11/fonts/fntfilio.h>
+#ifndef FONTMODULE
+#include <stdio.h> /* just for NULL */
+#else
+#include "xf86_ansic.h"
+#endif
+
+/*
+ * Internal format used to store bitmap fonts
+ */
+
+/* number of encoding entries in one segment */
+#define BITMAP_FONT_SEGMENT_SIZE 128
+
+typedef struct _BitmapExtra {
+ Atom *glyphNames;
+ int *sWidths;
+ CARD32 bitmapsSizes[GLYPHPADOPTIONS];
+ FontInfoRec info;
+} BitmapExtraRec, *BitmapExtraPtr;
+
+typedef struct _BitmapFont {
+ unsigned version_num;
+ int num_chars;
+ int num_tables;
+ CharInfoPtr metrics; /* font metrics, including glyph pointers */
+ xCharInfo *ink_metrics; /* ink metrics */
+ char *bitmaps; /* base of bitmaps, useful only to free */
+ CharInfoPtr **encoding; /* array of arrays of char info pointers */
+ CharInfoPtr pDefault; /* default character */
+ BitmapExtraPtr bitmapExtra; /* stuff not used by X server */
+} BitmapFontRec, *BitmapFontPtr;
+
+#define ACCESSENCODING(enc,i) \
+(enc[(i)/BITMAP_FONT_SEGMENT_SIZE]?\
+(enc[(i)/BITMAP_FONT_SEGMENT_SIZE][(i)%BITMAP_FONT_SEGMENT_SIZE]):\
+0)
+#define ACCESSENCODINGL(enc,i) \
+(enc[(i)/BITMAP_FONT_SEGMENT_SIZE][(i)%BITMAP_FONT_SEGMENT_SIZE])
+
+#define SEGMENT_MAJOR(n) ((n)/BITMAP_FONT_SEGMENT_SIZE)
+#define SEGMENT_MINOR(n) ((n)%BITMAP_FONT_SEGMENT_SIZE)
+#define NUM_SEGMENTS(n) \
+ (((n)+BITMAP_FONT_SEGMENT_SIZE-1)/BITMAP_FONT_SEGMENT_SIZE)
+
+extern int bitmapGetGlyphs ( FontPtr pFont, unsigned long count,
+ unsigned char *chars, FontEncoding charEncoding,
+ unsigned long *glyphCount, CharInfoPtr *glyphs );
+extern int bitmapGetMetrics ( FontPtr pFont, unsigned long count,
+ unsigned char *chars, FontEncoding charEncoding,
+ unsigned long *glyphCount, xCharInfo **glyphs );
+
+extern void bitmapComputeFontBounds ( FontPtr pFont );
+extern void bitmapComputeFontInkBounds ( FontPtr pFont );
+extern Bool bitmapAddInkMetrics ( FontPtr pFont );
+extern int bitmapComputeWeight ( FontPtr pFont );
+
+extern void BitmapRegisterFontFileFunctions ( void );
+extern int BitmapGetRenderIndex ( FontRendererPtr renderer );
+
+extern int BitmapOpenScalable ( FontPathElementPtr fpe, FontPtr *pFont,
+ int flags, FontEntryPtr entry, char *fileName,
+ FontScalablePtr vals, fsBitmapFormat format,
+ fsBitmapFormatMask fmask,
+ FontPtr non_cachable_font );
+extern int BitmapGetInfoScalable ( FontPathElementPtr fpe,
+ FontInfoPtr pFontInfo, FontEntryPtr entry,
+ FontNamePtr fontName, char *fileName,
+ FontScalablePtr vals );
+
+#endif /* _BITMAP_H_ */
diff --git a/X11/fonts/bufio.h b/X11/fonts/bufio.h
new file mode 100644
index 000000000..b5977b1d0
--- /dev/null
+++ b/X11/fonts/bufio.h
@@ -0,0 +1,93 @@
+/* $Xorg: bufio.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1993, 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.
+
+*/
+/* $XFree86: xc/lib/font/include/bufio.h,v 1.6 2001/07/31 16:44:55 alanh Exp $ */
+
+#ifndef ___BUFIO_H___
+#define ___BUFIO_H___ 1
+
+#include <X11/Xfuncproto.h>
+
+#ifdef TEST
+
+#define xalloc(s) malloc(s)
+#define xfree(s) free(s)
+
+#endif
+
+#define BUFFILESIZE 8192
+#define BUFFILEEOF -1
+
+typedef unsigned char BufChar;
+typedef struct _buffile *BufFilePtr;
+
+typedef struct _buffile {
+ BufChar *bufp;
+ int left;
+ int eof;
+ BufChar buffer[BUFFILESIZE];
+ int (*input)( BufFilePtr /* f */);
+ int (*output)( int /* c */, BufFilePtr /* f */);
+ int (*skip)( BufFilePtr /* f */, int /* count */);
+ int (*close)( BufFilePtr /* f */, int /* doClose */);
+ char *private;
+} BufFileRec;
+
+extern BufFilePtr BufFileCreate (
+ char*,
+ int (*)(BufFilePtr),
+ int (*)(int, BufFilePtr),
+ int (*)(BufFilePtr, int),
+ int (*)(BufFilePtr, int));
+extern BufFilePtr BufFileOpenRead ( int );
+extern BufFilePtr BufFileOpenWrite ( int );
+extern BufFilePtr BufFilePushCompressed ( BufFilePtr );
+#ifdef X_GZIP_FONT_COMPRESSION
+extern BufFilePtr BufFilePushZIP ( BufFilePtr );
+#endif
+#ifdef X_BZIP2_FONT_COMPRESSION
+extern BufFilePtr BufFilePushBZIP2 ( BufFilePtr );
+#endif
+extern int BufFileClose ( BufFilePtr, int );
+extern int BufFileRead ( BufFilePtr, char*, int );
+extern int BufFileWrite ( BufFilePtr, char*, int );
+
+#define BufFileGet(f) ((f)->left-- ? *(f)->bufp++ : ((f)->eof = (*(f)->input) (f)))
+#define BufFilePut(c,f) (--(f)->left ? *(f)->bufp++ = ((unsigned char)(c)) : (*(f)->output) ((unsigned char)(c),f))
+#define BufFileSkip(f,c) ((f)->eof = (*(f)->skip) (f, c))
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#endif /* ___BUFIO_H___ */
+
diff --git a/X11/fonts/fntfil.h b/X11/fonts/fntfil.h
new file mode 100644
index 000000000..a5fa720fa
--- /dev/null
+++ b/X11/fonts/fntfil.h
@@ -0,0 +1,182 @@
+/* $Xorg: fntfil.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 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.
+
+*/
+/* $XFree86: xc/lib/font/include/fntfil.h,v 1.9 2001/12/14 19:56:54 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTFILE_H_
+#define _FONTFILE_H_
+
+#include <X11/fonts/fontxlfd.h>
+
+typedef struct _FontEntry *FontEntryPtr;
+typedef struct _FontTable *FontTablePtr;
+typedef struct _FontName *FontNamePtr;
+typedef struct _FontScaled *FontScaledPtr;
+typedef struct _FontScalableExtra *FontScalableExtraPtr;
+typedef struct _FontScalableEntry *FontScalableEntryPtr;
+typedef struct _FontScaleAliasEntry *FontScaleAliasEntryPtr;
+typedef struct _FontBitmapEntry *FontBitmapEntryPtr;
+typedef struct _FontAliasEntry *FontAliasEntryPtr;
+typedef struct _FontBCEntry *FontBCEntryPtr;
+typedef struct _FontDirectory *FontDirectoryPtr;
+typedef struct _FontRenderer *FontRendererPtr;
+
+#define NullFontEntry ((FontEntryPtr) 0)
+#define NullFontTable ((FontTablePtr) 0)
+#define NullFontName ((FontNamePtr) 0)
+#define NullFontScaled ((FontScaled) 0)
+#define NullFontScalableExtra ((FontScalableExtra) 0)
+#define NullFontscalableEntry ((FontScalableEntry) 0)
+#define NullFontScaleAliasEntry ((FontScaleAliasEntry) 0)
+#define NullFontBitmapEntry ((FontBitmapEntry) 0)
+#define NullFontAliasEntry ((FontAliasEntry) 0)
+#define NullFontBCEntry ((FontBCEntry) 0)
+#define NullFontDirectory ((FontDirectoryPtr) 0)
+#define NullFontRenderer ((FontRendererPtr) 0)
+
+#define FONT_ENTRY_SCALABLE 0
+#define FONT_ENTRY_SCALE_ALIAS 1
+#define FONT_ENTRY_BITMAP 2
+#define FONT_ENTRY_ALIAS 3
+#define FONT_ENTRY_BC 4
+
+#define MAXFONTNAMELEN 1024
+#define MAXFONTFILENAMELEN 1024
+
+#define FontDirFile "fonts.dir"
+#define FontAliasFile "fonts.alias"
+#define FontScalableFile "fonts.scale"
+
+extern int FontFileNameCheck ( char *name );
+extern int FontFileInitFPE ( FontPathElementPtr fpe );
+extern int FontFileResetFPE ( FontPathElementPtr fpe );
+extern int FontFileFreeFPE ( FontPathElementPtr fpe );
+extern int FontFileOpenFont ( pointer client, FontPathElementPtr fpe,
+ Mask flags, char *name, int namelen,
+ fsBitmapFormat format, fsBitmapFormatMask fmask,
+ XID id, FontPtr *pFont, char **aliasName,
+ FontPtr non_cachable_font );
+extern void FontFileCloseFont ( FontPathElementPtr fpe, FontPtr pFont );
+extern int FontFileOpenBitmap ( FontPathElementPtr fpe, FontPtr *pFont,
+ int flags, FontEntryPtr entry,
+ fsBitmapFormat format,
+ fsBitmapFormatMask fmask );
+extern int FontFileListFonts ( pointer client, FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ FontNamesPtr names );
+extern int FontFileStartListFonts ( pointer client, FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ pointer *privatep, int mark_aliases );
+extern int FontFileStartListFontsWithInfo ( pointer client,
+ FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ pointer *privatep );
+extern int FontFileListNextFontWithInfo ( pointer client,
+ FontPathElementPtr fpe,
+ char **namep, int *namelenp,
+ FontInfoPtr *pFontInfo,
+ int *numFonts, pointer private );
+extern int FontFileStartListFontsAndAliases ( pointer client,
+ FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ pointer *privatep );
+extern int FontFileListNextFontOrAlias ( pointer client,
+ FontPathElementPtr fpe,
+ char **namep, int *namelenp,
+ char **resolvedp, int *resolvedlenp,
+ pointer private );
+extern void FontFileRegisterLocalFpeFunctions ( void );
+extern void CatalogueRegisterLocalFpeFunctions ( void );
+
+
+extern FontEntryPtr FontFileAddEntry ( FontTablePtr table,
+ FontEntryPtr prototype );
+extern Bool FontFileAddFontAlias ( FontDirectoryPtr dir, char *aliasName,
+ char *fontName );
+extern Bool FontFileAddFontFile ( FontDirectoryPtr dir, char *fontName,
+ char *fileName );
+extern int FontFileCountDashes ( char *name, int namelen );
+extern FontEntryPtr FontFileFindNameInDir ( FontTablePtr table,
+ FontNamePtr pat );
+extern FontEntryPtr FontFileFindNameInScalableDir ( FontTablePtr table,
+ FontNamePtr pat,
+ FontScalablePtr vals );
+extern int FontFileFindNamesInDir ( FontTablePtr table, FontNamePtr pat,
+ int max, FontNamesPtr names );
+extern int FontFileFindNamesInScalableDir ( FontTablePtr table,
+ FontNamePtr pat, int max,
+ FontNamesPtr names,
+ FontScalablePtr vals,
+ int alias_behavior, int *newmax );
+
+extern void FontFileFreeDir ( FontDirectoryPtr dir );
+extern void FontFileFreeEntry ( FontEntryPtr entry );
+extern void FontFileFreeTable ( FontTablePtr table );
+extern Bool FontFileInitTable ( FontTablePtr table, int size );
+extern FontDirectoryPtr FontFileMakeDir ( const char *dirName, int size );
+extern Bool FontFileMatchName ( char *name, int length, FontNamePtr pat );
+extern char * FontFileSaveString ( char *s );
+extern void FontFileSortDir ( FontDirectoryPtr dir );
+extern void FontFileSortTable ( FontTablePtr table );
+
+extern void FontDefaultFormat ( int *bit, int *byte, int *glyph, int *scan );
+
+extern Bool FontFileRegisterRenderer ( FontRendererPtr renderer );
+extern Bool FontFilePriorityRegisterRenderer ( FontRendererPtr renderer,
+ int priority );
+extern FontRendererPtr FontFileMatchRenderer ( char *fileName );
+
+extern Bool FontFileAddScaledInstance ( FontEntryPtr entry,
+ FontScalablePtr vals, FontPtr pFont,
+ char *bitmapName );
+extern void FontFileSwitchStringsToBitmapPointers ( FontDirectoryPtr dir );
+extern void FontFileRemoveScaledInstance ( FontEntryPtr entry, FontPtr pFont );
+extern Bool FontFileCompleteXLFD ( FontScalablePtr vals, FontScalablePtr def );
+extern FontScaledPtr FontFileFindScaledInstance ( FontEntryPtr entry,
+ FontScalablePtr vals,
+ int noSpecificSize );
+
+extern Bool FontFileRegisterBitmapSource ( FontPathElementPtr fpe );
+extern void FontFileUnregisterBitmapSource ( FontPathElementPtr fpe );
+extern void FontFileEmptyBitmapSource ( void );
+extern int FontFileMatchBitmapSource ( FontPathElementPtr fpe,
+ FontPtr *pFont, int flags,
+ FontEntryPtr entry,
+ FontNamePtr zeroPat,
+ FontScalablePtr vals,
+ fsBitmapFormat format,
+ fsBitmapFormatMask fmask,
+ Bool noSpecificSize );
+
+extern int FontFileReadDirectory ( char *directory, FontDirectoryPtr *pdir );
+extern Bool FontFileDirectoryChanged ( FontDirectoryPtr dir );
+
+#endif /* _FONTFILE_H_ */
diff --git a/X11/fonts/fntfilio.h b/X11/fonts/fntfilio.h
new file mode 100644
index 000000000..f8e24f390
--- /dev/null
+++ b/X11/fonts/fntfilio.h
@@ -0,0 +1,56 @@
+/* $Xorg: fntfilio.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 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.
+
+*/
+/* $XFree86: xc/lib/font/include/fntfilio.h,v 1.6 2001/10/31 22:50:26 tsi Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FNTFILIO_H_
+#define _FNTFILIO_H_
+
+#include <X11/fonts/bufio.h>
+
+typedef BufFilePtr FontFilePtr;
+
+#define FontFileGetc(f) BufFileGet(f)
+#define FontFilePutc(c,f) BufFilePut(c,f)
+#define FontFileRead(f,b,n) BufFileRead(f,b,n)
+#define FontFileWrite(f,b,n) BufFileWrite(f,b,n)
+#define FontFileSkip(f,n) (BufFileSkip (f, n) != BUFFILEEOF)
+#define FontFileSeek(f,n) (BufFileSeek (f,n,0) != BUFFILEEOF)
+
+#define FontFileEOF BUFFILEEOF
+
+extern FontFilePtr FontFileOpen ( const char *name );
+extern int FontFileClose ( FontFilePtr f );
+extern FontFilePtr FontFileOpenWrite ( const char *name );
+extern FontFilePtr FontFileOpenWriteFd ( int fd );
+extern FontFilePtr FontFileOpenFd ( int fd );
+
+#endif /* _FNTFILIO_H_ */
diff --git a/X11/fonts/fntfilst.h b/X11/fonts/fntfilst.h
new file mode 100644
index 000000000..1a71eae7a
--- /dev/null
+++ b/X11/fonts/fntfilst.h
@@ -0,0 +1,198 @@
+/* $Xorg: fntfilst.h,v 1.5 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 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.
+
+*/
+/* $XFree86: xc/lib/font/include/fntfilst.h,v 3.8 2002/12/09 17:30:00 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTFILEST_H_
+#define _FONTFILEST_H_
+
+#ifndef FONTMODULE
+#include <X11/Xos.h>
+#endif
+#ifndef XP_PSTEXT
+#include <X11/fonts/fontmisc.h>
+#endif
+#include <X11/fonts/fontstruct.h>
+#include <X11/fonts/fontxlfd.h>
+#include <X11/fonts/fntfil.h>
+
+typedef struct _FontName {
+ char *name;
+ short length;
+ short ndashes;
+} FontNameRec;
+
+typedef struct _FontScaled {
+ FontScalableRec vals;
+ FontEntryPtr bitmap;
+ FontPtr pFont;
+} FontScaledRec;
+
+typedef struct _FontScalableExtra {
+ FontScalableRec defaults;
+ int numScaled;
+ int sizeScaled;
+ FontScaledPtr scaled;
+ pointer private;
+} FontScalableExtraRec;
+
+typedef struct _FontScalableEntry {
+ FontRendererPtr renderer;
+ char *fileName;
+ FontScalableExtraPtr extra;
+} FontScalableEntryRec;
+
+/*
+ * This "can't" work yet - the returned alias string must be permanent,
+ * but this layer would need to generate the appropriate name from the
+ * resolved scalable + the XLFD values passed in. XXX
+ */
+
+typedef struct _FontScaleAliasEntry {
+ char *resolved;
+} FontScaleAliasEntryRec;
+
+typedef struct _FontBitmapEntry {
+ FontRendererPtr renderer;
+ char *fileName;
+ FontPtr pFont;
+} FontBitmapEntryRec;
+
+typedef struct _FontAliasEntry {
+ char *resolved;
+} FontAliasEntryRec;
+
+typedef struct _FontBCEntry {
+ FontScalableRec vals;
+ FontEntryPtr entry;
+} FontBCEntryRec;
+
+typedef struct _FontEntry {
+ FontNameRec name;
+ int type;
+ union _FontEntryParts {
+ FontScalableEntryRec scalable;
+ FontBitmapEntryRec bitmap;
+ FontAliasEntryRec alias;
+ FontBCEntryRec bc;
+ } u;
+} FontEntryRec;
+
+typedef struct _FontTable {
+ int used;
+ int size;
+ FontEntryPtr entries;
+ Bool sorted;
+} FontTableRec;
+
+typedef struct _FontDirectory {
+ char *directory;
+ unsigned long dir_mtime;
+ unsigned long alias_mtime;
+ FontTableRec scalable;
+ FontTableRec nonScalable;
+ char *attributes;
+} FontDirectoryRec;
+
+/* Capability bits: for definition of capabilities bitmap in the
+ FontRendererRec to indicate support of XLFD enhancements */
+
+#define CAP_MATRIX 0x1
+#define CAP_CHARSUBSETTING 0x2
+
+typedef struct _FontRenderer {
+ char *fileSuffix;
+ int fileSuffixLen;
+ int (*OpenBitmap)(FontPathElementPtr /* fpe */,
+ FontPtr * /* pFont */,
+ int /* flags */,
+ FontEntryPtr /* entry */,
+ char * /* fileName */,
+ fsBitmapFormat /* format */,
+ fsBitmapFormatMask /* mask */,
+ FontPtr /* non_cachable_font */);
+ int (*OpenScalable)(FontPathElementPtr /* fpe */,
+ FontPtr * /* pFont */,
+ int /* flags */,
+ FontEntryPtr /* entry */,
+ char * /* fileName */,
+ FontScalablePtr /* vals */,
+ fsBitmapFormat /* format */,
+ fsBitmapFormatMask /* fmask */,
+ FontPtr /* non_cachable_font */);
+ int (*GetInfoBitmap)(FontPathElementPtr /* fpe */,
+ FontInfoPtr /* pFontInfo */,
+ FontEntryPtr /* entry */,
+ char * /*fileName */);
+ int (*GetInfoScalable)(FontPathElementPtr /* fpe */,
+ FontInfoPtr /* pFontInfo */,
+ FontEntryPtr /* entry */,
+ FontNamePtr /* fontName */,
+ char * /* fileName */,
+ FontScalablePtr /* vals */);
+ int number;
+ int capabilities; /* Bitmap components defined above */
+} FontRendererRec;
+
+typedef struct _FontRenders {
+ int number;
+ struct _FontRenderersElement {
+ /* In order to preserve backward compatibility, the
+ priority field is made invisible to renderers */
+ FontRendererPtr renderer;
+ int priority;
+ } *renderers;
+} FontRenderersRec, *FontRenderersPtr;
+
+typedef struct _BitmapInstance {
+ FontScalableRec vals;
+ FontBitmapEntryPtr bitmap;
+} BitmapInstanceRec, *BitmapInstancePtr;
+
+typedef struct _BitmapScalablePrivate {
+ int numInstances;
+ BitmapInstancePtr instances;
+} BitmapScalablePrivateRec, *BitmapScalablePrivatePtr;
+
+typedef struct _BitmapSources {
+ FontPathElementPtr *fpe;
+ int size;
+ int count;
+} BitmapSourcesRec, *BitmapSourcesPtr;
+
+extern BitmapSourcesRec FontFileBitmapSources;
+
+/* Defines for FontFileFindNamesInScalableDir() behavior */
+#define NORMAL_ALIAS_BEHAVIOR 0
+#define LIST_ALIASES_AND_TARGET_NAMES (1<<0)
+#define IGNORE_SCALABLE_ALIASES (1<<1)
+
+#endif /* _FONTFILEST_H_ */
diff --git a/X11/fonts/fontenc.h b/X11/fonts/fontenc.h
new file mode 100644
index 000000000..09472cfc5
--- /dev/null
+++ b/X11/fonts/fontenc.h
@@ -0,0 +1,124 @@
+/*
+Copyright (c) 1998-2001 by Juliusz Chroboczek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+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
+AUTHORS OR COPYRIGHT HOLDERS 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.
+*/
+
+/* $XFree86: xc/lib/font/include/fontenc.h,v 1.7 2000/11/14 16:54:45 dawes Exp $ */
+
+/* Header for backend-independent encoding code */
+
+/* An encoding is identified with a name. An encoding contains some
+ global encoding data, such as its size, and a set of mappings.
+ Mappings are identified by their type and two integers, known as
+ pid and eid, the interpretation of which is type dependent. */
+
+#ifndef _FONTENC_H
+#define _FONTENC_H
+
+/* Encoding types. For future extensions, clients should be prepared
+ to ignore unknown encoding types. */
+
+/* 0 is treated specially. */
+
+#define FONT_ENCODING_UNICODE 1
+#define FONT_ENCODING_TRUETYPE 2
+#define FONT_ENCODING_POSTSCRIPT 3
+
+/* This structure represents a mapping, either from numeric codes from
+ numeric codes, or from numeric codes to strings. */
+
+/* It is expected that only one of `recode' and `name' will actually
+ be present. However, having both fields simplifies the interface
+ somewhat. */
+
+typedef struct _FontMap {
+ int type; /* the type of the mapping */
+ int pid, eid; /* the identification of the mapping */
+ unsigned (*recode)(unsigned, void*); /* mapping function */
+ char *(*name)(unsigned, void*); /* function returning glyph names */
+ void *client_data; /* second parameter of the two above */
+ struct _FontMap *next; /* link to next element in list */
+ /* The following was added for version 0.3 of the font interface. */
+ /* It should be kept at the end to preserve binary compatibility. */
+ struct _FontEnc *encoding;
+} FontMapRec, *FontMapPtr;
+
+/* This is the structure that holds all the info for one encoding. It
+ consists of a charset name, its size, and a linked list of mappings
+ like above. */
+
+typedef struct _FontEnc {
+ char *name; /* the name of the encoding */
+ char **aliases; /* its aliases, null terminated */
+ int size; /* its size, either in bytes or rows */
+ int row_size; /* the size of a row, or 0 if bytes */
+ FontMapPtr mappings; /* linked list of mappings */
+ struct _FontEnc *next; /* link to next element */
+ /* the following two were added in version 0.2 of the font interface */
+ /* they should be kept at the end to preserve binary compatibility */
+ int first; /* first byte or row */
+ int first_col; /* first column in each row */
+} FontEncRec, *FontEncPtr;
+
+typedef struct _FontMapReverse {
+ unsigned int (*reverse)(unsigned, void*);
+ void *data;
+} FontMapReverseRec, *FontMapReversePtr;
+
+
+/* Function prototypes */
+
+/* extract an encoding name from an XLFD name. Returns a pointer to a
+ *static* buffer, or NULL */
+char *FontEncFromXLFD(const char*, int);
+
+/* find the encoding data for a given encoding name; second parameter
+ is the filename of the font for which the encoding is needed.
+ Returns NULL on failure. */
+FontEncPtr FontEncFind(const char*, const char*);
+
+/* Find a given mapping for an encoding. This is only a convenience
+ function, as clients are allowed to scavenge the data structures
+ themselves (as the TrueType backend does). */
+
+FontMapPtr FontMapFind(FontEncPtr, int, int, int);
+
+/* Do both in a single step */
+FontMapPtr FontEncMapFind(const char *, int, int, int, const char *);
+
+/* Recode a code. Always succeeds. */
+unsigned FontEncRecode(unsigned, FontMapPtr);
+
+/* Return a name for a code. Returns a string or NULL. */
+char *FontEncName(unsigned, FontMapPtr);
+
+/* Return a pointer to the name of the system encodings directory. */
+/* This string is static and should not be modified. */
+char* FontEncDirectory(void);
+
+/* Identify an encoding file. If fileName doesn't exist, or is not an
+ encoding file, return NULL, otherwise returns a NULL-terminated
+ array of strings. */
+char **FontEncIdentify(const char *fileName);
+
+FontMapReversePtr FontMapReverse(FontMapPtr);
+
+void FontMapReverseFree(FontMapReversePtr);
+#endif
diff --git a/X11/fonts/fontencc.h b/X11/fonts/fontencc.h
new file mode 100644
index 000000000..51e0e1440
--- /dev/null
+++ b/X11/fonts/fontencc.h
@@ -0,0 +1,36 @@
+/*
+Copyright (c) 1998-2001 by Juliusz Chroboczek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+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
+AUTHORS OR COPYRIGHT HOLDERS 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.
+*/
+/* $XFree86$ */
+
+/* Binary compatibility entry points. */
+
+/* This file includes code to make modules compiled for earlier
+ versions of the fontenc interfaces link with this one. It does
+ *not* provide source compatibility, as many of the data structures
+ now have different names. */
+
+extern char *font_encoding_from_xlfd(const char*, int);
+extern unsigned font_encoding_recode(unsigned, FontEncPtr, FontMapPtr);
+extern FontEncPtr font_encoding_find(const char*, const char*);
+extern char *font_encoding_name(unsigned, FontEncPtr, FontMapPtr);
+extern char **identifyEncodingFile(const char *fileName);
+
diff --git a/X11/fonts/fontmisc.h b/X11/fonts/fontmisc.h
new file mode 100644
index 000000000..b7c948f8e
--- /dev/null
+++ b/X11/fonts/fontmisc.h
@@ -0,0 +1,142 @@
+/* $Xorg: fontmisc.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 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.
+
+*/
+/* $XFree86: xc/lib/font/include/fontmisc.h,v 3.16 2001/12/14 19:56:54 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTMISC_H_
+#define _FONTMISC_H_
+
+#ifndef FONTMODULE
+#include <X11/Xfuncs.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifndef X_NOT_POSIX
+#include <unistd.h>
+#else
+extern int close();
+#endif
+
+#endif /* FONTMODULE */
+
+#include <X11/Xdefs.h>
+
+
+#ifndef LSBFirst
+#define LSBFirst 0
+#define MSBFirst 1
+#endif
+
+#ifndef None
+#define None 0l
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+extern Atom MakeAtom ( const char *string, unsigned len, int makeit );
+extern int ValidAtom ( Atom atom );
+extern char *NameForAtom (Atom atom);
+
+#ifndef _MSC_VER
+#ifndef _HAVE_XALLOC_DECLS
+#define _HAVE_XALLOC_DECLS
+extern pointer Xalloc(unsigned long);
+extern pointer Xrealloc(pointer, unsigned long);
+extern void Xfree(pointer);
+extern pointer Xcalloc(unsigned long);
+#endif
+#endif
+extern int f_strcasecmp(const char *s1, const char *s2);
+
+#ifndef xalloc
+#ifdef _MSC_VER
+#define xalloc(n) malloc ((unsigned) n)
+#define xfree(p) free ((pointer) p)
+#define xrealloc(p,n) realloc (p,n)
+#define xcalloc(n,s) calloc(n, s)
+#else
+#define xalloc(n) Xalloc ((unsigned) n)
+#define xfree(p) Xfree ((pointer) p)
+#define xrealloc(p,n) Xrealloc ((pointer)p,n)
+#define xcalloc(n,s) Xcalloc((unsigned) n * (unsigned) s)
+#endif
+#endif
+#define lowbit(x) ((x) & (~(x) + 1))
+
+#undef assert
+#define assert(x) ((void)0)
+
+#ifndef strcasecmp
+#if defined(NEED_STRCASECMP) && !defined(FONTMODULE)
+#define strcasecmp(s1,s2) f_strcasecmp(s1,s2)
+#endif
+#endif
+
+extern void
+BitOrderInvert(
+ register unsigned char *,
+ register int
+);
+
+extern void
+TwoByteSwap(
+ register unsigned char *,
+ register int
+);
+
+extern void
+FourByteSwap(
+ register unsigned char *,
+ register int
+);
+
+extern int
+RepadBitmap (
+ char*,
+ char*,
+ unsigned,
+ unsigned,
+ int,
+ int
+);
+
+extern void CopyISOLatin1Lowered(
+ char * /*dest*/,
+ char * /*source*/,
+ int /*length*/
+);
+
+extern void register_fpe_functions(void);
+
+#endif /* _FONTMISC_H_ */
diff --git a/X11/fonts/fontmod.h b/X11/fonts/fontmod.h
new file mode 100644
index 000000000..42d277fd4
--- /dev/null
+++ b/X11/fonts/fontmod.h
@@ -0,0 +1,16 @@
+/* $XFree86: xc/lib/font/include/fontmod.h,v 1.2 1998/07/25 06:57:09 dawes Exp $ */
+
+#ifndef _FONTMOD_H_
+#define _FONTMOD_H_
+
+typedef void (*InitFont)(void);
+
+typedef struct {
+ InitFont initFunc;
+ char * name;
+ pointer module;
+} FontModule;
+
+extern FontModule *FontModuleList;
+
+#endif /* _FONTMOD_H_ */
diff --git a/X11/fonts/fontutil.h b/X11/fonts/fontutil.h
new file mode 100644
index 000000000..9a73eaa47
--- /dev/null
+++ b/X11/fonts/fontutil.h
@@ -0,0 +1,26 @@
+/* $XFree86: xc/lib/font/include/fontutil.h,v 1.1 1999/03/14 11:17:49 dawes Exp $ */
+
+#ifndef _FONTUTIL_H_
+#define _FONTUTIL_H_
+
+#include <X11/fonts/FSproto.h>
+
+extern int FontCouldBeTerminal(FontInfoPtr);
+extern int CheckFSFormat(fsBitmapFormat, fsBitmapFormatMask, int *, int *,
+ int *, int *, int *);
+extern void FontComputeInfoAccelerators(FontInfoPtr);
+
+extern void GetGlyphs ( FontPtr font, unsigned long count,
+ unsigned char *chars, FontEncoding fontEncoding,
+ unsigned long *glyphcount, CharInfoPtr *glyphs );
+extern void QueryGlyphExtents ( FontPtr pFont, CharInfoPtr *charinfo,
+ unsigned long count, ExtentInfoRec *info );
+extern Bool QueryTextExtents ( FontPtr pFont, unsigned long count,
+ unsigned char *chars, ExtentInfoRec *info );
+extern Bool ParseGlyphCachingMode ( char *str );
+extern void InitGlyphCaching ( void );
+extern void SetGlyphCachingMode ( int newmode );
+extern int add_range ( fsRange *newrange, int *nranges, fsRange **range,
+ Bool charset_subset );
+
+#endif /* _FONTUTIL_H_ */
diff --git a/X11/fonts/fontxlfd.h b/X11/fonts/fontxlfd.h
new file mode 100644
index 000000000..e87b93143
--- /dev/null
+++ b/X11/fonts/fontxlfd.h
@@ -0,0 +1,100 @@
+/* $Xorg: fontxlfd.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1990, 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.
+
+*/
+/* $XFree86: xc/lib/font/include/fontxlfd.h,v 1.5 2001/01/17 19:43:32 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTXLFD_H_
+#define _FONTXLFD_H_
+
+#include <X11/fonts/FSproto.h>
+
+/* Constants for values_supplied bitmap */
+
+#define SIZE_SPECIFY_MASK 0xf
+
+#define PIXELSIZE_MASK 0x3
+#define PIXELSIZE_UNDEFINED 0
+#define PIXELSIZE_SCALAR 0x1
+#define PIXELSIZE_ARRAY 0x2
+#define PIXELSIZE_SCALAR_NORMALIZED 0x3 /* Adjusted for resolution */
+
+#define POINTSIZE_MASK 0xc
+#define POINTSIZE_UNDEFINED 0
+#define POINTSIZE_SCALAR 0x4
+#define POINTSIZE_ARRAY 0x8
+
+#define PIXELSIZE_WILDCARD 0x10
+#define POINTSIZE_WILDCARD 0x20
+
+#define ENHANCEMENT_SPECIFY_MASK 0x40
+
+#define CHARSUBSET_SPECIFIED 0x40
+
+#define EPS 1.0e-20
+#define XLFD_NDIGITS 3 /* Round numbers in pixel and
+ point arrays to this many
+ digits for repeatability */
+
+typedef struct _FontScalable {
+ int values_supplied; /* Bitmap identifying what advanced
+ capabilities or enhancements
+ were specified in the font name */
+ double pixel_matrix[4];
+ double point_matrix[4];
+
+ /* Pixel and point fields are deprecated in favor of the
+ transformation matrices. They are provided and filled in for the
+ benefit of rasterizers that do not handle the matrices. */
+
+ int pixel,
+ point;
+
+ int x,
+ y,
+ width;
+ char *xlfdName;
+ int nranges;
+ fsRange *ranges;
+} FontScalableRec, *FontScalablePtr;
+
+
+extern double xlfd_round_double ( double x );
+extern Bool FontParseXLFDName ( char *fname, FontScalablePtr vals, int subst );
+extern fsRange *FontParseRanges ( char *name, int *nranges );
+
+#define FONT_XLFD_REPLACE_NONE 0
+#define FONT_XLFD_REPLACE_STAR 1
+#define FONT_XLFD_REPLACE_ZERO 2
+#define FONT_XLFD_REPLACE_VALUE 3
+
+#endif /* _FONTXLFD_H_ */
diff --git a/X11/fonts/pcf.h b/X11/fonts/pcf.h
new file mode 100644
index 000000000..673e18449
--- /dev/null
+++ b/X11/fonts/pcf.h
@@ -0,0 +1,102 @@
+/* $Xorg: pcf.h,v 1.4 2001/02/09 02:04:02 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 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.
+
+*/
+/* $XFree86: xc/lib/font/bitmap/pcf.h,v 1.4 2001/12/14 19:56:47 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _PCF_H_
+#define _PCF_H_
+
+#include <X11/fonts/fntfilio.h>
+
+/*
+ * Information used to read/write PCF fonts
+ */
+
+typedef struct _PCFTable {
+ CARD32 type;
+ CARD32 format;
+ CARD32 size;
+ CARD32 offset;
+} PCFTableRec, *PCFTablePtr;
+
+#define PCF_FILE_VERSION (('p'<<24)|('c'<<16)|('f'<<8)|1)
+#define PCF_FORMAT_MASK 0xffffff00
+
+#define PCF_DEFAULT_FORMAT 0x00000000
+#define PCF_INKBOUNDS 0x00000200
+#define PCF_ACCEL_W_INKBOUNDS 0x00000100
+#define PCF_COMPRESSED_METRICS 0x00000100
+
+#define PCF_FORMAT_MATCH(a,b) (((a)&PCF_FORMAT_MASK) == ((b)&PCF_FORMAT_MASK))
+
+#define PCF_GLYPH_PAD_MASK (3<<0)
+#define PCF_BYTE_MASK (1<<2)
+#define PCF_BIT_MASK (1<<3)
+#define PCF_SCAN_UNIT_MASK (3<<4)
+
+#define PCF_BYTE_ORDER(f) (((f) & PCF_BYTE_MASK)?MSBFirst:LSBFirst)
+#define PCF_BIT_ORDER(f) (((f) & PCF_BIT_MASK)?MSBFirst:LSBFirst)
+#define PCF_GLYPH_PAD_INDEX(f) ((f) & PCF_GLYPH_PAD_MASK)
+#define PCF_GLYPH_PAD(f) (1<<PCF_GLYPH_PAD_INDEX(f))
+#define PCF_SCAN_UNIT_INDEX(f) (((f) & PCF_SCAN_UNIT_MASK) >> 4)
+#define PCF_SCAN_UNIT(f) (1<<PCF_SCAN_UNIT_INDEX(f))
+#define PCF_FORMAT_BITS(f) ((f) & (PCF_GLYPH_PAD_MASK|PCF_BYTE_MASK|PCF_BIT_MASK|PCF_SCAN_UNIT_MASK))
+
+#define PCF_SIZE_TO_INDEX(s) ((s) == 4 ? 2 : (s) == 2 ? 1 : 0)
+#define PCF_INDEX_TO_SIZE(b) (1<<b)
+
+#define PCF_FORMAT(bit,byte,glyph,scan) (\
+ (PCF_SIZE_TO_INDEX(scan) << 4) | \
+ (((bit) == MSBFirst ? 1 : 0) << 3) | \
+ (((byte) == MSBFirst ? 1 : 0) << 2) | \
+ (PCF_SIZE_TO_INDEX(glyph) << 0))
+
+#define PCF_PROPERTIES (1<<0)
+#define PCF_ACCELERATORS (1<<1)
+#define PCF_METRICS (1<<2)
+#define PCF_BITMAPS (1<<3)
+#define PCF_INK_METRICS (1<<4)
+#define PCF_BDF_ENCODINGS (1<<5)
+#define PCF_SWIDTHS (1<<6)
+#define PCF_GLYPH_NAMES (1<<7)
+#define PCF_BDF_ACCELERATORS (1<<8)
+
+extern int pcfReadFont ( FontPtr pFont, FontFilePtr file,
+ int bit, int byte, int glyph, int scan );
+extern int pcfReadFontInfo ( FontInfoPtr pFontInfo, FontFilePtr file );
+extern int pmfReadFont ( FontPtr pFont, FontFilePtr file,
+ int bit, int byte, int glyph, int scan );
+extern int pcfWriteFont ( FontPtr pFont, FontFilePtr file );
+extern void pcfError ( const char *, ... );
+
+#endif /* _PCF_H_ */
diff --git a/X11/xpm.h b/X11/xpm.h
new file mode 100644
index 000000000..ed4613315
--- /dev/null
+++ b/X11/xpm.h
@@ -0,0 +1,478 @@
+/*
+ * Copyright (C) 1989-95 GROUPE BULL
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * 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
+ * GROUPE BULL 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 GROUPE BULL shall not be
+ * used in advertising or otherwise to promote the sale, use or other dealings
+ * in this Software without prior written authorization from GROUPE BULL.
+ */
+/* $XFree86: xc/extras/Xpm/lib/xpm.h,v 1.2 2001/08/22 23:36:44 dawes Exp $ */
+
+/*****************************************************************************\
+* xpm.h: *
+* *
+* XPM library *
+* Include file *
+* *
+* Developed by Arnaud Le Hors *
+\*****************************************************************************/
+
+/*
+ * The code related to FOR_MSW has been added by
+ * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
+ */
+
+/*
+ * The code related to AMIGA has been added by
+ * Lorens Younes (d93-hyo@nada.kth.se) 4/96
+ */
+
+#ifndef XPM_h
+#define XPM_h
+
+/*
+ * first some identification numbers:
+ * the version and revision numbers are determined with the following rule:
+ * SO Major number = LIB minor version number.
+ * SO Minor number = LIB sub-minor version number.
+ * e.g: Xpm version 3.2f
+ * we forget the 3 which is the format number, 2 gives 2, and f gives 6.
+ * thus we have XpmVersion = 2 and XpmRevision = 6
+ * which gives SOXPMLIBREV = 2.6
+ *
+ * Then the XpmIncludeVersion number is built from these numbers.
+ */
+#define XpmFormat 3
+#define XpmVersion 4
+#define XpmRevision 11
+#define XpmIncludeVersion ((XpmFormat * 100 + XpmVersion) * 100 + XpmRevision)
+
+#ifndef XPM_NUMBERS
+
+#ifdef FOR_MSW
+# define SYSV /* uses memcpy string.h etc. */
+# include <malloc.h>
+# include "simx.h" /* defines some X stuff using MSW types */
+#define NEED_STRCASECMP /* at least for MSVC++ */
+#else /* FOR_MSW */
+# ifdef AMIGA
+# include "amigax.h"
+# else /* not AMIGA */
+# include <X11/Xlib.h>
+# include <X11/Xutil.h>
+# endif /* not AMIGA */
+#endif /* FOR_MSW */
+
+/* let's define Pixel if it is not done yet */
+#if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
+typedef unsigned long Pixel; /* Index into colormap */
+# define PIXEL_ALREADY_TYPEDEFED
+#endif
+
+/* Return ErrorStatus codes:
+ * null if full success
+ * positive if partial success
+ * negative if failure
+ */
+
+#define XpmColorError 1
+#define XpmSuccess 0
+#define XpmOpenFailed -1
+#define XpmFileInvalid -2
+#define XpmNoMemory -3
+#define XpmColorFailed -4
+
+typedef struct {
+ char *name; /* Symbolic color name */
+ char *value; /* Color value */
+ Pixel pixel; /* Color pixel */
+} XpmColorSymbol;
+
+typedef struct {
+ char *name; /* name of the extension */
+ unsigned int nlines; /* number of lines in this extension */
+ char **lines; /* pointer to the extension array of strings */
+} XpmExtension;
+
+typedef struct {
+ char *string; /* characters string */
+ char *symbolic; /* symbolic name */
+ char *m_color; /* monochrom default */
+ char *g4_color; /* 4 level grayscale default */
+ char *g_color; /* other level grayscale default */
+ char *c_color; /* color default */
+} XpmColor;
+
+typedef struct {
+ unsigned int width; /* image width */
+ unsigned int height; /* image height */
+ unsigned int cpp; /* number of characters per pixel */
+ unsigned int ncolors; /* number of colors */
+ XpmColor *colorTable; /* list of related colors */
+ unsigned int *data; /* image data */
+} XpmImage;
+
+typedef struct {
+ unsigned long valuemask; /* Specifies which attributes are defined */
+ char *hints_cmt; /* Comment of the hints section */
+ char *colors_cmt; /* Comment of the colors section */
+ char *pixels_cmt; /* Comment of the pixels section */
+ unsigned int x_hotspot; /* Returns the x hotspot's coordinate */
+ unsigned int y_hotspot; /* Returns the y hotspot's coordinate */
+ unsigned int nextensions; /* number of extensions */
+ XpmExtension *extensions; /* pointer to array of extensions */
+} XpmInfo;
+
+typedef int (*XpmAllocColorFunc)(
+ Display* /* display */,
+ Colormap /* colormap */,
+ char* /* colorname */,
+ XColor* /* xcolor */,
+ void* /* closure */
+);
+
+typedef int (*XpmFreeColorsFunc)(
+ Display* /* display */,
+ Colormap /* colormap */,
+ Pixel* /* pixels */,
+ int /* npixels */,
+ void* /* closure */
+);
+
+typedef struct {
+ unsigned long valuemask; /* Specifies which attributes are
+ defined */
+
+ Visual *visual; /* Specifies the visual to use */
+ Colormap colormap; /* Specifies the colormap to use */
+ unsigned int depth; /* Specifies the depth */
+ unsigned int width; /* Returns the width of the created
+ pixmap */
+ unsigned int height; /* Returns the height of the created
+ pixmap */
+ unsigned int x_hotspot; /* Returns the x hotspot's
+ coordinate */
+ unsigned int y_hotspot; /* Returns the y hotspot's
+ coordinate */
+ unsigned int cpp; /* Specifies the number of char per
+ pixel */
+ Pixel *pixels; /* List of used color pixels */
+ unsigned int npixels; /* Number of used pixels */
+ XpmColorSymbol *colorsymbols; /* List of color symbols to override */
+ unsigned int numsymbols; /* Number of symbols */
+ char *rgb_fname; /* RGB text file name */
+ unsigned int nextensions; /* Number of extensions */
+ XpmExtension *extensions; /* List of extensions */
+
+ unsigned int ncolors; /* Number of colors */
+ XpmColor *colorTable; /* List of colors */
+/* 3.2 backward compatibility code */
+ char *hints_cmt; /* Comment of the hints section */
+ char *colors_cmt; /* Comment of the colors section */
+ char *pixels_cmt; /* Comment of the pixels section */
+/* end 3.2 bc */
+ unsigned int mask_pixel; /* Color table index of transparent
+ color */
+
+ /* Color Allocation Directives */
+ Bool exactColors; /* Only use exact colors for visual */
+ unsigned int closeness; /* Allowable RGB deviation */
+ unsigned int red_closeness; /* Allowable red deviation */
+ unsigned int green_closeness; /* Allowable green deviation */
+ unsigned int blue_closeness; /* Allowable blue deviation */
+ int color_key; /* Use colors from this color set */
+
+ Pixel *alloc_pixels; /* Returns the list of alloc'ed color
+ pixels */
+ int nalloc_pixels; /* Returns the number of alloc'ed
+ color pixels */
+
+ Bool alloc_close_colors; /* Specify whether close colors should
+ be allocated using XAllocColor
+ or not */
+ int bitmap_format; /* Specify the format of 1bit depth
+ images: ZPixmap or XYBitmap */
+
+ /* Color functions */
+ XpmAllocColorFunc alloc_color; /* Application color allocator */
+ XpmFreeColorsFunc free_colors; /* Application color de-allocator */
+ void *color_closure; /* Application private data to pass to
+ alloc_color and free_colors */
+
+} XpmAttributes;
+
+/* XpmAttributes value masks bits */
+#define XpmVisual (1L<<0)
+#define XpmColormap (1L<<1)
+#define XpmDepth (1L<<2)
+#define XpmSize (1L<<3) /* width & height */
+#define XpmHotspot (1L<<4) /* x_hotspot & y_hotspot */
+#define XpmCharsPerPixel (1L<<5)
+#define XpmColorSymbols (1L<<6)
+#define XpmRgbFilename (1L<<7)
+/* 3.2 backward compatibility code */
+#define XpmInfos (1L<<8)
+#define XpmReturnInfos XpmInfos
+/* end 3.2 bc */
+#define XpmReturnPixels (1L<<9)
+#define XpmExtensions (1L<<10)
+#define XpmReturnExtensions XpmExtensions
+
+#define XpmExactColors (1L<<11)
+#define XpmCloseness (1L<<12)
+#define XpmRGBCloseness (1L<<13)
+#define XpmColorKey (1L<<14)
+
+#define XpmColorTable (1L<<15)
+#define XpmReturnColorTable XpmColorTable
+
+#define XpmReturnAllocPixels (1L<<16)
+#define XpmAllocCloseColors (1L<<17)
+#define XpmBitmapFormat (1L<<18)
+
+#define XpmAllocColor (1L<<19)
+#define XpmFreeColors (1L<<20)
+#define XpmColorClosure (1L<<21)
+
+
+/* XpmInfo value masks bits */
+#define XpmComments XpmInfos
+#define XpmReturnComments XpmComments
+
+/* XpmAttributes mask_pixel value when there is no mask */
+#ifndef FOR_MSW
+#define XpmUndefPixel 0x80000000
+#else
+/* int is only 16 bit for MSW */
+#define XpmUndefPixel 0x8000
+#endif
+
+/*
+ * color keys for visual type, they must fit along with the number key of
+ * each related element in xpmColorKeys[] defined in XpmI.h
+ */
+#define XPM_MONO 2
+#define XPM_GREY4 3
+#define XPM_GRAY4 3
+#define XPM_GREY 4
+#define XPM_GRAY 4
+#define XPM_COLOR 5
+
+
+/* macros for forward declarations of functions with prototypes */
+#define FUNC(f, t, p) extern t f p
+#define LFUNC(f, t, p) static t f p
+
+
+/*
+ * functions declarations
+ */
+
+_XFUNCPROTOBEGIN
+
+/* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */
+/* Same for Amiga! */
+
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreatePixmapFromData, int, (Display *display,
+ Drawable d,
+ char **data,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateDataFromPixmap, int, (Display *display,
+ char ***data_return,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmAttributes *attributes));
+
+ FUNC(XpmReadFileToPixmap, int, (Display *display,
+ Drawable d,
+ char *filename,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmWriteFileFromPixmap, int, (Display *display,
+ char *filename,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmAttributes *attributes));
+#endif
+
+ FUNC(XpmCreateImageFromData, int, (Display *display,
+ char **data,
+ XImage **image_return,
+ XImage **shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateDataFromImage, int, (Display *display,
+ char ***data_return,
+ XImage *image,
+ XImage *shapeimage,
+ XpmAttributes *attributes));
+
+ FUNC(XpmReadFileToImage, int, (Display *display,
+ char *filename,
+ XImage **image_return,
+ XImage **shapeimage_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmWriteFileFromImage, int, (Display *display,
+ char *filename,
+ XImage *image,
+ XImage *shapeimage,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateImageFromBuffer, int, (Display *display,
+ char *buffer,
+ XImage **image_return,
+ XImage **shapemask_return,
+ XpmAttributes *attributes));
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreatePixmapFromBuffer, int, (Display *display,
+ Drawable d,
+ char *buffer,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateBufferFromImage, int, (Display *display,
+ char **buffer_return,
+ XImage *image,
+ XImage *shapeimage,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateBufferFromPixmap, int, (Display *display,
+ char **buffer_return,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmAttributes *attributes));
+#endif
+ FUNC(XpmReadFileToBuffer, int, (char *filename, char **buffer_return));
+ FUNC(XpmWriteFileFromBuffer, int, (char *filename, char *buffer));
+
+ FUNC(XpmReadFileToData, int, (char *filename, char ***data_return));
+ FUNC(XpmWriteFileFromData, int, (char *filename, char **data));
+
+ FUNC(XpmAttributesSize, int, (void));
+ FUNC(XpmFreeAttributes, void, (XpmAttributes *attributes));
+ FUNC(XpmFreeExtensions, void, (XpmExtension *extensions,
+ int nextensions));
+
+ FUNC(XpmFreeXpmImage, void, (XpmImage *image));
+ FUNC(XpmFreeXpmInfo, void, (XpmInfo *info));
+ FUNC(XpmGetErrorString, char *, (int errcode));
+ FUNC(XpmLibraryVersion, int, (void));
+
+ /* XpmImage functions */
+ FUNC(XpmReadFileToXpmImage, int, (char *filename,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmWriteFileFromXpmImage, int, (char *filename,
+ XpmImage *image,
+ XpmInfo *info));
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreatePixmapFromXpmImage, int, (Display *display,
+ Drawable d,
+ XpmImage *image,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+#endif
+ FUNC(XpmCreateImageFromXpmImage, int, (Display *display,
+ XpmImage *image,
+ XImage **image_return,
+ XImage **shapeimage_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateXpmImageFromImage, int, (Display *display,
+ XImage *image,
+ XImage *shapeimage,
+ XpmImage *xpmimage,
+ XpmAttributes *attributes));
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreateXpmImageFromPixmap, int, (Display *display,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmImage *xpmimage,
+ XpmAttributes *attributes));
+#endif
+ FUNC(XpmCreateDataFromXpmImage, int, (char ***data_return,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmCreateXpmImageFromData, int, (char **data,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmCreateXpmImageFromBuffer, int, (char *buffer,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmCreateBufferFromXpmImage, int, (char **buffer_return,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmGetParseError, int, (char *filename,
+ int *linenum_return,
+ int *charnum_return));
+
+ FUNC(XpmFree, void, (void *ptr));
+
+_XFUNCPROTOEND
+
+/* backward compatibility */
+
+/* for version 3.0c */
+#define XpmPixmapColorError XpmColorError
+#define XpmPixmapSuccess XpmSuccess
+#define XpmPixmapOpenFailed XpmOpenFailed
+#define XpmPixmapFileInvalid XpmFileInvalid
+#define XpmPixmapNoMemory XpmNoMemory
+#define XpmPixmapColorFailed XpmColorFailed
+
+#define XpmReadPixmapFile(dpy, d, file, pix, mask, att) \
+ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
+#define XpmWritePixmapFile(dpy, file, pix, mask, att) \
+ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
+
+/* for version 3.0b */
+#define PixmapColorError XpmColorError
+#define PixmapSuccess XpmSuccess
+#define PixmapOpenFailed XpmOpenFailed
+#define PixmapFileInvalid XpmFileInvalid
+#define PixmapNoMemory XpmNoMemory
+#define PixmapColorFailed XpmColorFailed
+
+#define ColorSymbol XpmColorSymbol
+
+#define XReadPixmapFile(dpy, d, file, pix, mask, att) \
+ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
+#define XWritePixmapFile(dpy, file, pix, mask, att) \
+ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
+#define XCreatePixmapFromData(dpy, d, data, pix, mask, att) \
+ XpmCreatePixmapFromData(dpy, d, data, pix, mask, att)
+#define XCreateDataFromPixmap(dpy, data, pix, mask, att) \
+ XpmCreateDataFromPixmap(dpy, data, pix, mask, att)
+
+#endif /* XPM_NUMBERS */
+#endif
diff --git a/X11/xtrans/Xtrans.c b/X11/xtrans/Xtrans.c
index 735d7b87f..13adf59ef 100644
--- a/X11/xtrans/Xtrans.c
+++ b/X11/xtrans/Xtrans.c
@@ -48,7 +48,11 @@ from The Open Group.
*/
#include <ctype.h>
+#include <unistd.h>
+#ifdef _MSC_VER
+#include <X11\Xwinsock.h>
+#endif
/*
* The transport table contains a definition for every transport (protocol)
* family. All operations that can be made on the transport go through this
@@ -108,9 +112,10 @@ Xtransport_table Xtransports[] = {
{ &TRANS(SCOFuncs), TRANS_LOCAL_SCO_INDEX },
#endif /* __SCO__ || __UNIXWARE__ */
#endif /* LOCALCONN */
+ { NULL, 0}
};
-#define NUMTRANS (sizeof(Xtransports)/sizeof(Xtransport_table))
+#define NUMTRANS (sizeof(Xtransports)/sizeof(Xtransport_table)-1)
#ifdef WIN32
@@ -695,7 +700,7 @@ TRANS(SetOption) (XtransConnInfo ciptr, int option, int arg)
#if defined(WIN32)
{
#ifdef WIN32
- u_long arg;
+ unsigned long arg;
#else
int arg;
#endif
@@ -879,7 +884,6 @@ TRANS(Writev) (XtransConnInfo ciptr, struct iovec *buf, int size)
return ciptr->transptr->Writev (ciptr, buf, size);
}
-#if XTRANS_SEND_FDS
int
TRANS(SendFd) (XtransConnInfo ciptr, int fd, int do_close)
{
@@ -891,7 +895,6 @@ TRANS(RecvFd) (XtransConnInfo ciptr)
{
return ciptr->transptr->RecvFd(ciptr);
}
-#endif
int
TRANS(Disconnect) (XtransConnInfo ciptr)
diff --git a/X11/xtrans/Xtransint.h b/X11/xtrans/Xtransint.h
index ec5a77203..9a2780b13 100644
--- a/X11/xtrans/Xtransint.h
+++ b/X11/xtrans/Xtransint.h
@@ -287,7 +287,6 @@ typedef struct _Xtransport {
int /* size */
);
-#if XTRANS_SEND_FDS
int (*SendFd)(
XtransConnInfo, /* connection */
int, /* fd */
@@ -297,7 +296,6 @@ typedef struct _Xtransport {
int (*RecvFd)(
XtransConnInfo /* connection */
);
-#endif
int (*Disconnect)(
XtransConnInfo /* connection */
@@ -412,6 +410,11 @@ static int trans_mkdir (
# if defined(XSERV_t) && defined(TRANS_SERVER)
# include "os.h"
# else
+
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
static inline void _X_ATTRIBUTE_PRINTF(1, 0)
VErrorF(const char *f, va_list args)
{
diff --git a/X11/xtrans/Xtranslcl.c b/X11/xtrans/Xtranslcl.c
index 4deb86c40..65f1957b9 100644
--- a/X11/xtrans/Xtranslcl.c
+++ b/X11/xtrans/Xtranslcl.c
@@ -72,17 +72,23 @@ from The Open Group.
#include <errno.h>
#include <ctype.h>
+#ifdef _MSC_VER
+#include <signal.h>
+#else
#include <sys/signal.h>
#include <sys/ioctl.h>
+#endif
#include <sys/stat.h>
#if defined(SVR4) || defined(__SVR4)
#include <sys/filio.h>
#endif
+#ifndef _MSC_VER
#ifdef sun
# include <stropts.h>
#else
# include <sys/stropts.h>
#endif
+#endif
#include <sys/wait.h>
#include <sys/types.h>
diff --git a/X11/xtrans/Xtranssock.c b/X11/xtrans/Xtranssock.c
index fdf1dd774..6d4207f1c 100644
--- a/X11/xtrans/Xtranssock.c
+++ b/X11/xtrans/Xtranssock.c
@@ -129,11 +129,15 @@ from the copyright holders.
#include <X11/Xw32defs.h>
#undef close
#define close closesocket
+#undef ECONNREFUSED
#define ECONNREFUSED WSAECONNREFUSED
+#undef EADDRINUSE
#define EADDRINUSE WSAEADDRINUSE
+#undef EPROTOTYPE
#define EPROTOTYPE WSAEPROTOTYPE
#undef EWOULDBLOCK
#define EWOULDBLOCK WSAEWOULDBLOCK
+#undef EINPROGRESS
#define EINPROGRESS WSAEINPROGRESS
#undef EINTR
#define EINTR WSAEINTR
@@ -242,13 +246,20 @@ static int TRANS(SocketINETClose) (XtransConnInfo ciptr);
#endif
#if defined HAVE_SOCKLEN_T || (defined(IPv6) && defined(AF_INET6))
+#ifdef _MSC_VER
+# define SOCKLEN_T int
+#else
# define SOCKLEN_T socklen_t
+#endif
#elif defined(SVR4) || defined(__SVR4) || defined(__SCO__)
# define SOCKLEN_T size_t
#else
# define SOCKLEN_T int
#endif
+static int TRANS(SocketRecvFdInvalid)(XtransConnInfo ciptr);
+static int TRANS(SocketSendFdInvalid)(XtransConnInfo ciptr, int fd, int do_close);
+
/*
* These are some utility function used by the real interface function below.
*/
@@ -640,7 +651,7 @@ TRANS(SocketOpenCOTSServer) (Xtransport *thistrans, char *protocol,
if (Sockettrans2devtab[i].family == AF_INET6)
{
int one = 1;
- setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, &one, sizeof(int));
+ setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, (const char *)&one, sizeof(int));
}
#endif
/* Save the index for later use */
@@ -725,7 +736,7 @@ TRANS(SocketOpenCLTSServer) (Xtransport *thistrans, char *protocol,
if (Sockettrans2devtab[i].family == AF_INET6)
{
int one = 1;
- setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, &one, sizeof(int));
+ setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, (const char *)&one, sizeof(int));
}
#endif
/* Save the index for later use */
@@ -850,6 +861,10 @@ set_sun_path(const char *port, const char *upath, char *path, int abstract)
#ifdef TRANS_SERVER
+#ifndef SO_BINDRETRYCOUNT
+#define SO_BINDRETRYCOUNT 20
+#endif
+
static int
TRANS(SocketCreateListener) (XtransConnInfo ciptr,
struct sockaddr *sockname,
@@ -867,7 +882,7 @@ TRANS(SocketCreateListener) (XtransConnInfo ciptr,
|| Sockettrans2devtab[ciptr->index].family == AF_INET6
#endif
)
- retry = 20;
+ retry = SO_BINDRETRYCOUNT;
else
retry = 0;
@@ -1247,7 +1262,11 @@ TRANS(SocketINETAccept) (XtransConnInfo ciptr, int *status)
{
XtransConnInfo newciptr;
+#if defined(IPv6) && defined(AF_INET6)
+ struct sockaddr_storage sockname;
+#else
struct sockaddr_in sockname;
+#endif
SOCKLEN_T namelen = sizeof(sockname);
prmsg (2, "SocketINETAccept(%p,%d)\n", ciptr, ciptr->fd);
@@ -2181,6 +2200,15 @@ TRANS(SocketSendFd) (XtransConnInfo ciptr, int fd, int do_close)
return 0;
}
+#define MAX_FDS 128
+
+union fd_pass {
+ struct cmsghdr cmsghdr;
+ char buf[CMSG_SPACE(MAX_FDS * sizeof(int))];
+};
+
+#endif /* XTRANS_SEND_FDS */
+
static int
TRANS(SocketRecvFdInvalid)(XtransConnInfo ciptr)
{
@@ -2195,15 +2223,6 @@ TRANS(SocketSendFdInvalid)(XtransConnInfo ciptr, int fd, int do_close)
return -1;
}
-#define MAX_FDS 128
-
-union fd_pass {
- struct cmsghdr cmsghdr;
- char buf[CMSG_SPACE(MAX_FDS * sizeof(int))];
-};
-
-#endif /* XTRANS_SEND_FDS */
-
static int
TRANS(SocketRead) (XtransConnInfo ciptr, char *buf, int size)
@@ -2514,10 +2533,8 @@ Xtransport TRANS(SocketTCPFuncs) = {
TRANS(SocketWrite),
TRANS(SocketReadv),
TRANS(SocketWritev),
-#if XTRANS_SEND_FDS
- TRANS(SocketSendFdInvalid),
- TRANS(SocketRecvFdInvalid),
-#endif
+ TRANS(SocketSendFdInvalid),
+ TRANS(SocketRecvFdInvalid),
TRANS(SocketDisconnect),
TRANS(SocketINETClose),
TRANS(SocketINETClose),
@@ -2558,10 +2575,8 @@ Xtransport TRANS(SocketINETFuncs) = {
TRANS(SocketWrite),
TRANS(SocketReadv),
TRANS(SocketWritev),
-#if XTRANS_SEND_FDS
- TRANS(SocketSendFdInvalid),
- TRANS(SocketRecvFdInvalid),
-#endif
+ TRANS(SocketSendFdInvalid),
+ TRANS(SocketRecvFdInvalid),
TRANS(SocketDisconnect),
TRANS(SocketINETClose),
TRANS(SocketINETClose),
@@ -2603,10 +2618,8 @@ Xtransport TRANS(SocketINET6Funcs) = {
TRANS(SocketWrite),
TRANS(SocketReadv),
TRANS(SocketWritev),
-#if XTRANS_SEND_FDS
- TRANS(SocketSendFdInvalid),
- TRANS(SocketRecvFdInvalid),
-#endif
+ TRANS(SocketSendFdInvalid),
+ TRANS(SocketRecvFdInvalid),
TRANS(SocketDisconnect),
TRANS(SocketINETClose),
TRANS(SocketINETClose),