v09i018: Xmon - X protocol monitor, Part04/05
Greg McFarlane
gregm at otc.otca.oz.au
Wed Sep 5 04:46:22 AEST 1990
Submitted-by: Greg McFarlane <gregm at otc.otca.oz.au>
Posting-number: Volume 9, Issue 18
Archive-name: xmon/part04
Submitted-by: gregm at otc.otca.oz.au
Archive-name: xmon/part04
---- Cut Here and unpack ----
#!/bin/sh
# This is part 04 of xmon
if touch 2>&1 | fgrep 'amc' > /dev/null
then TOUCH=touch
else TOUCH=true
fi
# ============= table11.c ==============
if test X"$1" != X"-c" -a -f 'table11.c'; then
echo "File already exists: skipping 'table11.c'"
else
echo "x - extracting table11.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > table11.c &&
X/*
X * Project: XMON - An X protocol monitor
X *
X * File: table11.c
X *
X * Description: Table initialization for X11 protocol
X *
X * To initialize for the X11 protocol, we need to create data structures
X * describing the data types used by X11.
X *
X * There are about 100-128 data types for X11. This start with the simple
X * INT8, INT16, INT32 (byte, short, long), and the CARD8, CARD16, CARD32
X * (unsigned) and extend to records like RGB (a resource id, 3 color
X * values and a bitmask to select a subset of the 3 color values). Each
X * data type has an assigned type index. The type index identifies the
X * type (with a #define in x11.h) and is used to access an entry in an
X * array of type descriptors (TD). Each type descriptor has the type
X * name, the kind of type, and a procedure to print an object of that
X * type. The print procedure for a type <foo> is named Print<foo>. The
X * kind of type is
X *
X * BUILTIN: one of the primitive types.
X *
X * ENUMERATED: value should be one of a small set of values. This type
X * needs a list of allowed values (and their print names).
X *
X * SET: value is a bitmask of a small set of values. Each value
X * is a one-bit mask (and its print name).
X *
X * RECORD: value is a record of fields of other types.
X *
X * The Type Descriptor array allows us to print a value if we know its
X * type (index) and the bytes in memory that are its value.
X *
X */
X
X#include "common.h"
X
X#include "xmond.h"
X#include "x11.h"
X
X/* function prototypes: */
X/* table11.c: */
Xstatic TYPE DefineType P((short typeid , short class , char *name ,
IntCallback printproc ));
Xstatic void DefineEValue P((TYPE type , long value , char *name ));
Xstatic void DefineValues P((TYPE type , long value , int length , int
ctype , char *name ));
Xstatic void InitBuiltInTypes P((void ));
Xstatic void InitEnumeratedTypes P((void ));
Xstatic void InitSetTypes P((void ));
Xstatic void PrintCHAR2B P((unsigned char *buf ));
Xstatic int PrintPOINT P((unsigned char *buf ));
Xstatic int PrintRECTANGLE P((unsigned char *buf ));
Xstatic int PrintARC P((unsigned char *buf ));
Xstatic int PrintHOST P((unsigned char *buf ));
Xstatic int PrintTIMECOORD P((unsigned char *buf ));
Xstatic int PrintFONTPROP P((unsigned char *buf ));
Xstatic int PrintCHARINFO P((unsigned char *buf ));
Xstatic int PrintSEGMENT P((unsigned char *buf ));
Xstatic int PrintCOLORITEM P((unsigned char *buf ));
Xstatic int PrintRGB P((unsigned char *buf ));
Xstatic int PrintFORMAT P((unsigned char *buf ));
Xstatic int PrintSCREEN P((unsigned char *buf ));
Xstatic int PrintDEPTH P((unsigned char *buf ));
Xstatic int PrintVISUALTYPE P((unsigned char *buf ));
Xstatic void InitRecordTypes P((void ));
Xstatic void InitValuesTypes P((void ));
X
X/* end function prototypes */
X
XGlobal void
XInitializeX11()
X{
X InitBuiltInTypes();
X InitEnumeratedTypes();
X InitSetTypes();
X InitValuesTypes();
X InitRecordTypes();
X}
X
Xstatic TYPE
XDefineType(typeid, class, name, printproc)
X short typeid;
X short class;
X char *name;
X IntCallback printproc;
X{
X TD[typeid].Name = name;
X TD[typeid].Type = class;
X TD[typeid].ValueList = NULL;
X TD[typeid].PrintProc = printproc;
X return(&TD[typeid]);
X}
X
X/*
X * define an Enumerated Value (or a Set Value)
X */
Xstatic void
XDefineEValue(type, value, name)
X TYPE type;
X long value;
X char *name;
X{
X struct ValueListEntry *p;
X
X /* define the new value */
X p = (struct ValueListEntry *)malloc((long)(sizeof (struct ValueListEntry)));
X p->Name = name;
X p->Value = value;
X
X /* add an new value to the list. */
X if (type->ValueList == NULL || type->ValueList->Value > p->Value)
X {
X p->Next = type->ValueList;
X type->ValueList = p;
X }
X else
X {
X /* keep the list sorted, smallest to largest */
X struct ValueListEntry *q = type->ValueList;
X while (q->Next != NULL && q->Next->Value < p->Value)
X q = q->Next;
X p->Next = q->Next;
X q->Next = p;
X }
X}
X
X/*
X * a Values list is like an enumerated Value, but has a type and length in
X * addition to a value and name. It is used to print a Values List
X *
X * A Values List is a bitmask (like a set), but if the bit is set on, then
X * we have an associated value. We need to know the length and type of
X * the associated value for each bit
X */
Xstatic void
XDefineValues(type, value, length, ctype, name)
X TYPE type;
X long value;
X char *name;
X{
X struct ValueListEntry *p;
X
X p = (struct ValueListEntry *)malloc((long)(sizeof (struct ValueListEntry)));
X p->Name = name;
X p->Type = ctype;
X p->Length = length;
X p->Value = value;
X
X /* add an new value to the list. */
X if (type->ValueList == NULL || type->ValueList->Value > p->Value)
X {
X p->Next = type->ValueList;
X type->ValueList = p;
X }
X else
X {
X /* keep the list sorted, smallest to largest */
X struct ValueListEntry *q = type->ValueList;
X while (q->Next != NULL && q->Next->Value < p->Value)
X q = q->Next;
X p->Next = q->Next;
X q->Next = p;
X }
X}
X
Xstatic void
XInitBuiltInTypes()
X{
X (void) DefineType(INT8, BUILTIN, "INT8", PrintINT8);
X (void) DefineType(INT16, BUILTIN, "INT16", PrintINT16);
X (void) DefineType(INT32, BUILTIN, "INT32", PrintINT32);
X (void) DefineType(CARD8, BUILTIN, "CARD8", PrintCARD8);
X (void) DefineType(CARD16, BUILTIN, "CARD16", PrintCARD16);
X (void) DefineType(CARD32, BUILTIN, "CARD32", PrintCARD32);
X (void) DefineType(BYTE, BUILTIN, "BYTE", PrintBYTE);
X (void) DefineType(CHAR8, BUILTIN, "CHAR8", PrintCHAR8);
X (void) DefineType(STRING16, BUILTIN, "STRING16", PrintSTRING16);
X (void) DefineType(STR, BUILTIN, "STR", PrintSTR);
X (void) DefineType(WINDOW, BUILTIN, "WINDOW", PrintWINDOW);
X (void) DefineType(WINDOWD, BUILTIN, "WINDOWD", PrintWINDOWD);
X (void) DefineType(WINDOWNR, BUILTIN, "WINDOWNR", PrintWINDOWNR);
X (void) DefineType(PIXMAP, BUILTIN, "PIXMAP", PrintPIXMAP);
X (void) DefineType(PIXMAPNPR, BUILTIN, "PIXMAPNPR", PrintPIXMAPNPR);
X (void) DefineType(PIXMAPC, BUILTIN, "PIXMAPC", PrintPIXMAPC);
X (void) DefineType(CURSOR, BUILTIN, "CURSOR", PrintCURSOR);
X (void) DefineType(FONT, BUILTIN, "FONT", PrintFONT);
X (void) DefineType(GCONTEXT, BUILTIN, "GCONTEXT", PrintGCONTEXT);
X (void) DefineType(COLORMAP, BUILTIN, "COLORMAP", PrintCOLORMAP);
X (void) DefineType(COLORMAPC, BUILTIN, "COLORMAPC", PrintCOLORMAPC);
X (void) DefineType(DRAWABLE, BUILTIN, "DRAWABLE", PrintDRAWABLE);
X (void) DefineType(FONTABLE, BUILTIN, "FONTABLE", PrintFONTABLE);
X (void) DefineType(ATOM, BUILTIN, "ATOM", PrintATOM);
X (void) DefineType(ATOMT, BUILTIN, "ATOMT", PrintATOMT);
X (void) DefineType(VISUALID, BUILTIN, "VISUALID", PrintVISUALID);
X (void) DefineType(VISUALIDC, BUILTIN, "VISUALIDC", PrintVISUALIDC);
X (void) DefineType(TIMESTAMP, BUILTIN, "TIMESTAMP", PrintTIMESTAMP);
X (void) DefineType(RESOURCEID, BUILTIN, "RESOURCEID", PrintRESOURCEID);
X (void) DefineType(KEYSYM, BUILTIN, "KEYSYM", PrintKEYSYM);
X (void) DefineType(KEYCODE, BUILTIN, "KEYCODE", PrintKEYCODE);
X (void) DefineType(KEYCODEA, BUILTIN, "KEYCODEA", PrintKEYCODEA);
X (void) DefineType(BUTTON, BUILTIN, "BUTTON", PrintBUTTON);
X (void) DefineType(BUTTONA, BUILTIN, "BUTTONA", PrintBUTTONA);
X (void) DefineType(EVENTFORM, BUILTIN, "EVENTFORM", PrintEVENTFORM);
X}
X
Xstatic void
XInitEnumeratedTypes()
X{
X TYPE p;
X
X p = DefineType(REQUEST, ENUMERATED, "REQUEST", PrintENUMERATED);
X DefineEValue(p, 1L, "CreateWindow");
X DefineEValue(p, 2L, "ChangeWindowAttributes");
X DefineEValue(p, 3L, "GetWindowAttributes");
X DefineEValue(p, 4L, "DestroyWindow");
X DefineEValue(p, 5L, "DestroySubwindows");
X DefineEValue(p, 6L, "ChangeSaveSet");
X DefineEValue(p, 7L, "ReparentWindow");
X DefineEValue(p, 8L, "MapWindow");
X DefineEValue(p, 9L, "MapSubwindows");
X DefineEValue(p, 10L, "UnmapWindow");
X DefineEValue(p, 11L, "UnmapSubwindows");
X DefineEValue(p, 12L, "ConfigureWindow");
X DefineEValue(p, 13L, "CirculateWindow");
X DefineEValue(p, 14L, "GetGeometry");
X DefineEValue(p, 15L, "QueryTree");
X DefineEValue(p, 16L, "InternAtom");
X DefineEValue(p, 17L, "GetAtomName");
X DefineEValue(p, 18L, "ChangeProperty");
X DefineEValue(p, 19L, "DeleteProperty");
X DefineEValue(p, 20L, "GetProperty");
X DefineEValue(p, 21L, "ListProperties");
X DefineEValue(p, 22L, "SetSelectionOwner");
X DefineEValue(p, 23L, "GetSelectionOwner");
X DefineEValue(p, 24L, "ConvertSelection");
X DefineEValue(p, 25L, "SendEvent");
X DefineEValue(p, 26L, "GrabPointer");
X DefineEValue(p, 27L, "UngrabPointer");
X DefineEValue(p, 28L, "GrabButton");
X DefineEValue(p, 29L, "UngrabButton");
X DefineEValue(p, 30L, "ChangeActivePointerGrab");
X DefineEValue(p, 31L, "GrabKeyboard");
X DefineEValue(p, 32L, "UngrabKeyboard");
X DefineEValue(p, 33L, "GrabKey");
X DefineEValue(p, 34L, "UngrabKey");
X DefineEValue(p, 35L, "AllowEvents");
X DefineEValue(p, 36L, "GrabServer");
X DefineEValue(p, 37L, "UngrabServer");
X DefineEValue(p, 38L, "QueryPointer");
X DefineEValue(p, 39L, "GetMotionEvents");
X DefineEValue(p, 40L, "TranslateCoordinates");
X DefineEValue(p, 41L, "WarpPointer");
X DefineEValue(p, 42L, "SetInputFocus");
X DefineEValue(p, 43L, "GetInputFocus");
X DefineEValue(p, 44L, "QueryKeymap");
X DefineEValue(p, 45L, "OpenFont");
X DefineEValue(p, 46L, "CloseFont");
X DefineEValue(p, 47L, "QueryFont");
X DefineEValue(p, 48L, "QueryTextExtents");
X DefineEValue(p, 49L, "ListFonts");
X DefineEValue(p, 50L, "ListFontsWithInfo");
X DefineEValue(p, 51L, "SetFontPath");
X DefineEValue(p, 52L, "GetFontPath");
X DefineEValue(p, 53L, "CreatePixmap");
X DefineEValue(p, 54L, "FreePixmap");
X DefineEValue(p, 55L, "CreateGC");
X DefineEValue(p, 56L, "ChangeGC");
X DefineEValue(p, 57L, "CopyGC");
X DefineEValue(p, 58L, "SetDashes");
X DefineEValue(p, 59L, "SetClipRectangles");
X DefineEValue(p, 60L, "FreeGC");
X DefineEValue(p, 61L, "ClearArea");
X DefineEValue(p, 62L, "CopyArea");
X DefineEValue(p, 63L, "CopyPlane");
X DefineEValue(p, 64L, "PolyPoint");
X DefineEValue(p, 65L, "PolyLine");
X DefineEValue(p, 66L, "PolySegment");
X DefineEValue(p, 67L, "PolyRectangle");
X DefineEValue(p, 68L, "PolyArc");
X DefineEValue(p, 69L, "FillPoly");
X DefineEValue(p, 70L, "PolyFillRectangle");
X DefineEValue(p, 71L, "PolyFillArc");
X DefineEValue(p, 72L, "PutImage");
X DefineEValue(p, 73L, "GetImage");
X DefineEValue(p, 74L, "PolyText8");
X DefineEValue(p, 75L, "PolyText16");
X DefineEValue(p, 76L, "ImageText8");
X DefineEValue(p, 77L, "ImageText16");
X DefineEValue(p, 78L, "CreateColormap");
X DefineEValue(p, 79L, "FreeColormap");
X DefineEValue(p, 80L, "CopyColormapAndFree");
X DefineEValue(p, 81L, "InstallColormap");
X DefineEValue(p, 82L, "UninstallColormap");
X DefineEValue(p, 83L, "ListInstalledColormaps");
X DefineEValue(p, 84L, "AllocColor");
X DefineEValue(p, 85L, "AllocNamedColor");
X DefineEValue(p, 86L, "AllocColorCells");
X DefineEValue(p, 87L, "AllocColorPlanes");
X DefineEValue(p, 88L, "FreeColors");
X DefineEValue(p, 89L, "StoreColors");
X DefineEValue(p, 90L, "StoreNamedColor");
X DefineEValue(p, 91L, "QueryColors");
X DefineEValue(p, 92L, "LookupColor");
X DefineEValue(p, 93L, "CreateCursor");
X DefineEValue(p, 94L, "CreateGlyphCursor");
X DefineEValue(p, 95L, "FreeCursor");
X DefineEValue(p, 96L, "RecolorCursor");
X DefineEValue(p, 97L, "QueryBestSize");
X DefineEValue(p, 98L, "QueryExtension");
X DefineEValue(p, 99L, "ListExtensions");
X DefineEValue(p, 100L, "ChangeKeyboardMapping");
X DefineEValue(p, 101L, "GetKeyboardMapping");
X DefineEValue(p, 102L, "ChangeKeyboardControl");
X DefineEValue(p, 103L, "GetKeyboardControl");
X DefineEValue(p, 104L, "Bell");
X DefineEValue(p, 105L, "ChangePointerControl");
X DefineEValue(p, 106L, "GetPointerControl");
X DefineEValue(p, 107L, "SetScreenSaver");
X DefineEValue(p, 108L, "GetScreenSaver");
X DefineEValue(p, 109L, "ChangeHosts");
X DefineEValue(p, 110L, "ListHosts");
X DefineEValue(p, 111L, "SetAccessControl");
X DefineEValue(p, 112L, "SetCloseDownMode");
X DefineEValue(p, 113L, "KillClient");
X DefineEValue(p, 114L, "RotateProperties");
X DefineEValue(p, 115L, "ForceScreenSaver");
X DefineEValue(p, 116L, "SetPointerMapping");
X DefineEValue(p, 117L, "GetPointerMapping");
X DefineEValue(p, 118L, "SetModifierMapping");
X DefineEValue(p, 119L, "GetModifierMapping");
X DefineEValue(p, 127L, "NoOperation");
X
X p = DefineType(REPLY, ENUMERATED, "REPLY", PrintENUMERATED);
X DefineEValue(p, 3L, "GetWindowAttributes");
X DefineEValue(p, 14L, "GetGeometry");
X DefineEValue(p, 15L, "QueryTree");
X DefineEValue(p, 16L, "InternAtom");
X DefineEValue(p, 17L, "GetAtomName");
X DefineEValue(p, 20L, "GetProperty");
X DefineEValue(p, 21L, "ListProperties");
X DefineEValue(p, 23L, "GetSelectionOwner");
X DefineEValue(p, 26L, "GrabPointer");
X DefineEValue(p, 31L, "GrabKeyboard");
X DefineEValue(p, 38L, "QueryPointer");
X DefineEValue(p, 39L, "GetMotionEvents");
X DefineEValue(p, 40L, "TranslateCoordinates");
X DefineEValue(p, 43L, "GetInputFocus");
X DefineEValue(p, 44L, "QueryKeymap");
X DefineEValue(p, 47L, "QueryFont");
X DefineEValue(p, 48L, "QueryTextExtents");
X DefineEValue(p, 49L, "ListFonts");
X DefineEValue(p, 50L, "ListFontsWithInfo");
X DefineEValue(p, 52L, "GetFontPath");
X DefineEValue(p, 73L, "GetImage");
X DefineEValue(p, 83L, "ListInstalledColormaps");
X DefineEValue(p, 84L, "AllocColor");
X DefineEValue(p, 85L, "AllocNamedColor");
X DefineEValue(p, 86L, "AllocColorCells");
X DefineEValue(p, 87L, "AllocColorPlanes");
X DefineEValue(p, 91L, "QueryColors");
X DefineEValue(p, 92L, "LookupColor");
X DefineEValue(p, 97L, "QueryBestSize");
X DefineEValue(p, 98L, "QueryExtension");
X DefineEValue(p, 99L, "ListExtensions");
X DefineEValue(p, 101L, "GetKeyboardMapping");
X DefineEValue(p, 103L, "GetKeyboardControl");
X DefineEValue(p, 106L, "GetPointerControl");
X DefineEValue(p, 108L, "GetScreenSaver");
X DefineEValue(p, 110L, "ListHosts");
X DefineEValue(p, 116L, "SetPointerMapping");
X DefineEValue(p, 117L, "GetPointerMapping");
X DefineEValue(p, 118L, "SetModifierMapping");
X DefineEValue(p, 119L, "GetModifierMapping");
X
X p = DefineType(ERROR, ENUMERATED, "ERROR", PrintENUMERATED);
X DefineEValue(p, 1L, "Request");
X DefineEValue(p, 2L, "Value");
X DefineEValue(p, 3L, "Window");
X DefineEValue(p, 4L, "Pixmap");
X DefineEValue(p, 5L, "Atom");
X DefineEValue(p, 6L, "Cursor");
X DefineEValue(p, 7L, "Font");
X DefineEValue(p, 8L, "Match");
X DefineEValue(p, 9L, "Drawable");
X DefineEValue(p, 10L, "Access");
X DefineEValue(p, 11L, "Alloc");
X DefineEValue(p, 12L, "Colormap");
X DefineEValue(p, 13L, "GContext");
X DefineEValue(p, 14L, "IDChoice");
X DefineEValue(p, 15L, "Name");
X DefineEValue(p, 16L, "Length");
X DefineEValue(p, 17L, "Implementation");
X
X p = DefineType(EVENT, ENUMERATED, "EVENT", PrintENUMERATED);
X DefineEValue(p, 2L, "KeyPress");
X DefineEValue(p, 3L, "KeyRelease");
X DefineEValue(p, 4L, "ButtonPress");
X DefineEValue(p, 5L, "ButtonRelease");
X DefineEValue(p, 6L, "MotionNotify");
X DefineEValue(p, 7L, "EnterNotify");
X DefineEValue(p, 8L, "LeaveNotify");
X DefineEValue(p, 9L, "FocusIn");
X DefineEValue(p, 10L, "FocusOut");
X DefineEValue(p, 11L, "KeymapNotify");
X DefineEValue(p, 12L, "Expose");
X DefineEValue(p, 13L, "GraphicsExposure");
X DefineEValue(p, 14L, "NoExposure");
X DefineEValue(p, 15L, "VisibilityNotify");
X DefineEValue(p, 16L, "CreateNotify");
X DefineEValue(p, 17L, "DestroyNotify");
X DefineEValue(p, 18L, "UnmapNotify");
X DefineEValue(p, 19L, "MapNotify");
X DefineEValue(p, 20L, "MapRequest");
X DefineEValue(p, 21L, "ReparentNotify");
X DefineEValue(p, 22L, "ConfigureNotify");
X DefineEValue(p, 23L, "ConfigureRequest");
X DefineEValue(p, 24L, "GravityNotify");
X DefineEValue(p, 25L, "ResizeRequest");
X DefineEValue(p, 26L, "CirculateNotify");
X DefineEValue(p, 27L, "CirculateRequest");
X DefineEValue(p, 28L, "PropertyNotify");
X DefineEValue(p, 29L, "SelectionClear");
X DefineEValue(p, 30L, "SelectionRequest");
X DefineEValue(p, 31L, "SelectionNotify");
X DefineEValue(p, 32L, "ColormapNotify");
X DefineEValue(p, 33L, "ClientMessage");
X DefineEValue(p, 34L, "MappingNotify");
X
X
X p = DefineType(BITGRAVITY, ENUMERATED, "BITGRAVITY", PrintENUMERATED);
X DefineEValue(p, 0L, "Forget");
X DefineEValue(p, 1L, "NorthWest");
X DefineEValue(p, 2L, "North");
X DefineEValue(p, 3L, "NorthEast");
X DefineEValue(p, 4L, "West");
X DefineEValue(p, 5L, "Center");
X DefineEValue(p, 6L, "East");
X DefineEValue(p, 7L, "SouthWest");
X DefineEValue(p, 8L, "South");
X DefineEValue(p, 9L, "SouthEast");
X DefineEValue(p, 10L, "Static");
X
X p = DefineType(WINGRAVITY, ENUMERATED, "WINGRAVITY", PrintENUMERATED);
X DefineEValue(p, 0L, "Unmap");
X DefineEValue(p, 1L, "NorthWest");
X DefineEValue(p, 2L, "North");
X DefineEValue(p, 3L, "NorthEast");
X DefineEValue(p, 4L, "West");
X DefineEValue(p, 5L, "Center");
X DefineEValue(p, 6L, "East");
X DefineEValue(p, 7L, "SouthWest");
X DefineEValue(p, 8L, "South");
X DefineEValue(p, 9L, "SouthEast");
X DefineEValue(p, 10L, "Static");
X
X p = DefineType(BOOL, ENUMERATED, "BOOL", PrintENUMERATED);
X DefineEValue(p, 0L, "False");
X DefineEValue(p, 1L, "True");
X
X p = DefineType(HOSTFAMILY, ENUMERATED, "HOSTFAMILY", PrintENUMERATED);
X DefineEValue(p, 0L, "Internet");
X DefineEValue(p, 1L, "DECnet");
X DefineEValue(p, 2L, "Chaos");
X
X p = DefineType(PK_MODE, ENUMERATED, "PK_MODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Synchronous");
X DefineEValue(p, 1L, "Asynchronous");
X
X p = DefineType(NO_YES, ENUMERATED, "NO_YES", PrintENUMERATED);
X DefineEValue(p, 0L, "No");
X DefineEValue(p, 1L, "Yes");
X DefineEValue(p, 2L, "Default");
X
X p = DefineType(WINDOWCLASS, ENUMERATED, "WINDOWCLASS", PrintENUMERATED);
X DefineEValue(p, 0L, "CopyFromParent");
X DefineEValue(p, 1L, "InputOutput");
X DefineEValue(p, 2L, "InputOnly");
X
X p = DefineType(BACKSTORE, ENUMERATED, "BACKSTORE", PrintENUMERATED);
X DefineEValue(p, 0L, "NotUseful");
X DefineEValue(p, 1L, "WhenMapped");
X DefineEValue(p, 2L, "Always");
X
X p = DefineType(MAPSTATE, ENUMERATED, "MAPSTATE", PrintENUMERATED);
X DefineEValue(p, 0L, "Unmapped");
X DefineEValue(p, 1L, "Unviewable");
X DefineEValue(p, 2L, "Viewable");
X
X p = DefineType(STACKMODE, ENUMERATED, "STACKMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Above");
X DefineEValue(p, 1L, "Below");
X DefineEValue(p, 2L, "TopIf");
X DefineEValue(p, 3L, "BottomIf");
X DefineEValue(p, 4L, "Opposite");
X
X p = DefineType(CIRMODE, ENUMERATED, "CIRMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "RaiseLowest");
X DefineEValue(p, 1L, "LowerHighest");
X
X p = DefineType(CHANGEMODE, ENUMERATED, "CHANGEMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Replace");
X DefineEValue(p, 1L, "Prepend");
X DefineEValue(p, 2L, "Append");
X
X p = DefineType(GRABSTAT, ENUMERATED, "GRABSTAT", PrintENUMERATED);
X DefineEValue(p, 0L, "Success");
X DefineEValue(p, 1L, "AlreadyGrabbed");
X DefineEValue(p, 2L, "InvalidTime");
X DefineEValue(p, 3L, "NotViewable");
X DefineEValue(p, 4L, "Frozen");
X
X p = DefineType(EVENTMODE, ENUMERATED, "EVENTMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "AsyncPointer");
X DefineEValue(p, 1L, "SyncPointer");
X DefineEValue(p, 2L, "ReplayPointer");
X DefineEValue(p, 3L, "AsyncKeyboard");
X DefineEValue(p, 4L, "SyncKeyboard");
X DefineEValue(p, 5L, "ReplayKeyboard");
X DefineEValue(p, 6L, "AsyncBoth");
X DefineEValue(p, 7L, "SyncBoth");
X
X p = DefineType(FOCUSAGENT, ENUMERATED, "FOCUSAGENT", PrintENUMERATED);
X DefineEValue(p, 0L, "None");
X DefineEValue(p, 1L, "PointerRoot");
X DefineEValue(p, 2L, "Parent");
X
X p = DefineType(DIRECT, ENUMERATED, "DIRECT", PrintENUMERATED);
X DefineEValue(p, 0L, "LeftToRight");
X DefineEValue(p, 1L, "RightToLeft");
X
X p = DefineType(GCFUNC, ENUMERATED, "GCFUNC", PrintENUMERATED);
X DefineEValue(p, 0L, "Clear");
X DefineEValue(p, 1L, "And");
X DefineEValue(p, 2L, "AndReverse");
X DefineEValue(p, 3L, "Copy");
X DefineEValue(p, 4L, "AndInverted");
X DefineEValue(p, 5L, "Noop");
X DefineEValue(p, 6L, "Xor");
X DefineEValue(p, 7L, "Or");
X DefineEValue(p, 8L, "Nor");
X DefineEValue(p, 9L, "Equiv");
X DefineEValue(p, 10L, "Invert");
X DefineEValue(p, 11L, "OrReverse");
X DefineEValue(p, 12L, "CopyInverted");
X DefineEValue(p, 13L, "OrInverted");
X DefineEValue(p, 14L, "Nand");
X DefineEValue(p, 15L, "Set");
X
X p = DefineType(LINESTYLE, ENUMERATED, "LINESTYLE", PrintENUMERATED);
X DefineEValue(p, 0L, "Solid");
X DefineEValue(p, 1L, "OnOffDash");
X DefineEValue(p, 2L, "DoubleDash");
X
X p = DefineType(CAPSTYLE, ENUMERATED, "CAPSTYLE", PrintENUMERATED);
X DefineEValue(p, 0L, "NotLast");
X DefineEValue(p, 1L, "Butt");
X DefineEValue(p, 2L, "Round");
X DefineEValue(p, 3L, "Projecting");
X
X p = DefineType(JOINSTYLE, ENUMERATED, "JOINSTYLE", PrintENUMERATED);
X DefineEValue(p, 0L, "Miter");
X DefineEValue(p, 1L, "Round");
X DefineEValue(p, 2L, "Bevel");
X
X p = DefineType(FILLSTYLE, ENUMERATED, "FILLSTYLE", PrintENUMERATED);
X DefineEValue(p, 0L, "Solid");
X DefineEValue(p, 1L, "Tiled");
X DefineEValue(p, 2L, "Stippled");
X DefineEValue(p, 3L, "OpaqueStippled");
X
X p = DefineType(FILLRULE, ENUMERATED, "FILLRULE", PrintENUMERATED);
X DefineEValue(p, 0L, "EvenOdd");
X DefineEValue(p, 1L, "Winding");
X
X p = DefineType(SUBWINMODE, ENUMERATED, "SUBWINMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "ClipByChildren");
X DefineEValue(p, 1L, "IncludeInferiors");
X
X p = DefineType(ARCMODE, ENUMERATED, "ARCMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Chord");
X DefineEValue(p, 1L, "PieSlice");
X
X p = DefineType(RECTORDER, ENUMERATED, "RECTORDER", PrintENUMERATED);
X DefineEValue(p, 0L, "UnSorted");
X DefineEValue(p, 1L, "YSorted");
X DefineEValue(p, 2L, "YXSorted");
X DefineEValue(p, 3L, "YXBanded");
X
X p = DefineType(COORMODE, ENUMERATED, "COORMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Origin");
X DefineEValue(p, 1L, "Previous");
X
X p = DefineType(POLYSHAPE, ENUMERATED, "POLYSHAPE", PrintENUMERATED);
X DefineEValue(p, 0L, "Complex");
X DefineEValue(p, 1L, "Nonconvex");
X DefineEValue(p, 2L, "Convex");
X
X p = DefineType(IMAGEMODE, ENUMERATED, "IMAGEMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Bitmap");
X DefineEValue(p, 1L, "XYPixmap");
X DefineEValue(p, 2L, "ZPixmap");
X
X p = DefineType(ALLORNONE, ENUMERATED, "ALLORNONE", PrintENUMERATED);
X DefineEValue(p, 0L, "None");
X DefineEValue(p, 1L, "All");
X
X p = DefineType(OBJECTCLASS, ENUMERATED, "OBJECTCLASS", PrintENUMERATED);
X DefineEValue(p, 0L, "Cursor");
X DefineEValue(p, 1L, "Tile");
X DefineEValue(p, 2L, "Stipple");
X
X p = DefineType(OFF_ON, ENUMERATED, "OFF_ON", PrintENUMERATED);
X DefineEValue(p, 0L, "Off");
X DefineEValue(p, 1L, "On");
X DefineEValue(p, 2L, "Default");
X
X p = DefineType(INS_DEL, ENUMERATED, "INS_DEL", PrintENUMERATED);
X DefineEValue(p, 0L, "Insert");
X DefineEValue(p, 1L, "Delete");
X
X p = DefineType(DIS_EN, ENUMERATED, "DIS_EN", PrintENUMERATED);
X DefineEValue(p, 0L, "Disabled");
X DefineEValue(p, 1L, "Enabled");
X
X p = DefineType(CLOSEMODE, ENUMERATED, "CLOSEMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Destroy");
X DefineEValue(p, 1L, "RetainPermanent");
X DefineEValue(p, 2L, "RetainTemporary");
X
X p = DefineType(SAVEMODE, ENUMERATED, "SAVEMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Reset");
X DefineEValue(p, 1L, "Activate");
X
X p = DefineType(RSTATUS, ENUMERATED, "RSTATUS", PrintENUMERATED);
X DefineEValue(p, 0L, "Success");
X DefineEValue(p, 1L, "Busy");
X DefineEValue(p, 2L, "Failed");
X
X p = DefineType(MOTIONDETAIL, ENUMERATED, "MOTIONDETAIL", PrintENUMERATED);
X DefineEValue(p, 0L, "Normal");
X DefineEValue(p, 1L, "Hint");
X
X p = DefineType(ENTERDETAIL, ENUMERATED, "ENTERDETAIL", PrintENUMERATED);
X DefineEValue(p, 0L, "Ancestor");
X DefineEValue(p, 1L, "Virtual");
X DefineEValue(p, 2L, "Inferior");
X DefineEValue(p, 3L, "Nonlinear");
X DefineEValue(p, 4L, "NonlinearVirtual");
X DefineEValue(p, 5L, "Pointer");
X DefineEValue(p, 6L, "PointerRoot");
X DefineEValue(p, 7L, "None");
X
X p = DefineType(BUTTONMODE, ENUMERATED, "BUTTONMODE", PrintENUMERATED);
X DefineEValue(p, 0L, "Normal");
X DefineEValue(p, 1L, "Grab");
X DefineEValue(p, 2L, "Ungrab");
X DefineEValue(p, 3L, "WhileGrabbed");
X
X p = DefineType(VISIBLE, ENUMERATED, "VISIBLE", PrintENUMERATED);
X DefineEValue(p, 0L, "Unobscured");
X DefineEValue(p, 1L, "PartiallyObscured");
X DefineEValue(p, 2L, "FullyObscured");
X
X p = DefineType(CIRSTAT, ENUMERATED, "CIRSTAT", PrintENUMERATED);
X DefineEValue(p, 0L, "Top");
X DefineEValue(p, 1L, "Bottom");
X
X p = DefineType(PROPCHANGE, ENUMERATED, "PROPCHANGE", PrintENUMERATED);
X DefineEValue(p, 0L, "NewValue");
X DefineEValue(p, 1L, "Deleted");
X
X p = DefineType(CMAPCHANGE, ENUMERATED, "CMAPCHANGE", PrintENUMERATED);
X DefineEValue(p, 0L, "Uninstalled");
X DefineEValue(p, 1L, "Installed");
X
X p = DefineType(MAPOBJECT, ENUMERATED, "MAPOBJECT", PrintENUMERATED);
X DefineEValue(p, 0L, "Modifier");
X DefineEValue(p, 1L, "Keyboard");
X DefineEValue(p, 2L, "Pointer");
X
X p = DefineType(BYTEMODE, ENUMERATED, "BYTEMODE", PrintENUMERATED);
X DefineEValue(p, 0x42L, "MSB first");
X DefineEValue(p, 0x6CL, "LSB first");
X
X p = DefineType(BYTEORDER, ENUMERATED, "BYTEORDER", PrintENUMERATED);
X DefineEValue(p, 0L, "LSB first");
X DefineEValue(p, 1L, "MSB first");
X
X p = DefineType(COLORCLASS, ENUMERATED, "COLORCLASS", PrintENUMERATED);
X DefineEValue(p, 0L, "StaticGray");
X DefineEValue(p, 1L, "GrayScale");
X DefineEValue(p, 2L, "StaticColor");
X DefineEValue(p, 3L, "PseudoColor");
X DefineEValue(p, 4L, "TrueColor");
X DefineEValue(p, 5L, "DirectColor");
X}
X
Xstatic void
XInitSetTypes()
X{
X TYPE p;
X
X p = DefineType(SETofEVENT, SET, "SETofEVENT", PrintSET);
X DefineEValue(p, 0x00000001L, "KeyPress");
X DefineEValue(p, 0x00000002L, "KeyRelease");
X DefineEValue(p, 0x00000004L, "ButtonPress");
X DefineEValue(p, 0x00000008L, "ButtonRelease");
X DefineEValue(p, 0x00000010L, "EnterWindow");
X DefineEValue(p, 0x00000020L, "LeaveWindow");
X DefineEValue(p, 0x00000040L, "PointerMotion");
X DefineEValue(p, 0x00000080L, "PointerMotionHint");
X DefineEValue(p, 0x00000100L, "Button1Motion");
X DefineEValue(p, 0x00000200L, "Button2Motion");
X DefineEValue(p, 0x00000400L, "Button3Motion");
X DefineEValue(p, 0x00000800L, "Button4Motion");
X DefineEValue(p, 0x00001000L, "Button5Motion");
X DefineEValue(p, 0x00002000L, "ButtonMotion");
X DefineEValue(p, 0x00004000L, "KeymapState");
X DefineEValue(p, 0x00008000L, "Exposure");
X DefineEValue(p, 0x00010000L, "VisibilityChange");
X DefineEValue(p, 0x00020000L, "StructureNotify");
X DefineEValue(p, 0x00040000L, "ResizeRedirect");
X DefineEValue(p, 0x00080000L, "SubstructureNotify");
X DefineEValue(p, 0x00100000L, "SubstructureRedirect");
X DefineEValue(p, 0x00200000L, "FocusChange");
X DefineEValue(p, 0x00400000L, "PropertyChange");
X DefineEValue(p, 0x00800000L, "ColormapChange");
X DefineEValue(p, 0x01000000L, "OwnerGrabButton");
X
X p = DefineType(SETofPOINTEREVENT, SET, "SETofPOINTEREVENT", PrintSET);
X DefineEValue(p, 0x00000004L, "ButtonPress");
X DefineEValue(p, 0x00000008L, "ButtonRelease");
X DefineEValue(p, 0x00000010L, "EnterWindow");
X DefineEValue(p, 0x00000020L, "LeaveWindow");
X DefineEValue(p, 0x00000040L, "PointerMotion");
X DefineEValue(p, 0x00000080L, "PointerMotionHint");
X DefineEValue(p, 0x00000100L, "Button1Motion");
X DefineEValue(p, 0x00000200L, "Button2Motion");
X DefineEValue(p, 0x00000400L, "Button3Motion");
X DefineEValue(p, 0x00000800L, "Button4Motion");
X DefineEValue(p, 0x00001000L, "Button5Motion");
X DefineEValue(p, 0x00002000L, "ButtonMotion");
X DefineEValue(p, 0x00004000L, "KeymapState");
X
X p = DefineType(SETofDEVICEEVENT, SET, "SETofDEVICEEVENT", PrintSET);
X DefineEValue(p, 0x00000001L, "KeyPress");
X DefineEValue(p, 0x00000002L, "KeyRelease");
X DefineEValue(p, 0x00000004L, "ButtonPress");
X DefineEValue(p, 0x00000008L, "ButtonRelease");
X DefineEValue(p, 0x00000040L, "PointerMotion");
X DefineEValue(p, 0x00000100L, "Button1Motion");
X DefineEValue(p, 0x00000200L, "Button2Motion");
X DefineEValue(p, 0x00000400L, "Button3Motion");
X DefineEValue(p, 0x00000800L, "Button4Motion");
X DefineEValue(p, 0x00001000L, "Button5Motion");
X DefineEValue(p, 0x00002000L, "ButtonMotion");
X
X p = DefineType(SETofKEYBUTMASK, SET, "SETofKEYBUTMASK", PrintSET);
X DefineEValue(p, 0x0001L, "Shift");
X DefineEValue(p, 0x0002L, "Lock");
X DefineEValue(p, 0x0004L, "Control");
X DefineEValue(p, 0x0008L, "Mod1");
X DefineEValue(p, 0x0010L, "Mod2");
X DefineEValue(p, 0x0020L, "Mod3");
X DefineEValue(p, 0x0040L, "Mod4");
X DefineEValue(p, 0x0080L, "Mod5");
X DefineEValue(p, 0x0100L, "Button1");
X DefineEValue(p, 0x0200L, "Button2");
X DefineEValue(p, 0x0400L, "Button3");
X DefineEValue(p, 0x0800L, "Button4");
X DefineEValue(p, 0x1000L, "Button5");
X
X p = DefineType(SETofKEYMASK, SET, "SETofKEYMASK", PrintSET);
X DefineEValue(p, 0x0001L, "Shift");
X DefineEValue(p, 0x0002L, "Lock");
X DefineEValue(p, 0x0004L, "Control");
X DefineEValue(p, 0x0008L, "Mod1");
X DefineEValue(p, 0x0010L, "Mod2");
X DefineEValue(p, 0x0020L, "Mod3");
X DefineEValue(p, 0x0040L, "Mod4");
X DefineEValue(p, 0x0080L, "Mod5");
X DefineEValue(p, 0x8000L, "AnyModifier");
X
X p = DefineType(COLORMASK, SET, "COLORMASK", PrintSET);
X DefineEValue(p, 0x01L, "do-red");
X DefineEValue(p, 0x02L, "do-green");
X DefineEValue(p, 0x04L, "do-blue");
X
X p = DefineType(SCREENFOCUS, SET, "SCREENFOCUS", PrintSET);
X DefineEValue(p, 0x01L, "focus");
X DefineEValue(p, 0x02L, "same-screen");
X}
X
X/*
X * Print Routines for builtin record types
X */
X
Xstatic void
XPrintCHAR2B(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 1, CARD8, "byte1");
X PrintField(buf, 1, 1, CARD8, "byte2");
X}
X
Xstatic int
XPrintPOINT(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 2, INT16, "x");
X PrintField(buf, 2, 2, INT16, "y");
X return(4);
X}
X
Xstatic int
XPrintRECTANGLE(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 2, INT16, "x");
X PrintField(buf, 2, 2, INT16, "y");
X PrintField(buf, 4, 2, CARD16, "width");
X PrintField(buf, 6, 2, CARD16, "height");
X return(8);
X}
X
Xstatic int
XPrintARC(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 2, INT16, "x");
X PrintField(buf, 2, 2, INT16, "y");
X PrintField(buf, 4, 2, CARD16, "width");
X PrintField(buf, 6, 2, CARD16, "height");
X PrintField(buf, 8, 2, INT16, "angle1");
X PrintField(buf, 10, 2, INT16, "angle2");
X return(12);
X}
X
Xstatic int
XPrintHOST(buf)
X unsigned char *buf;
X{
X short n;
X PrintField(buf, 0, 1, HOSTFAMILY, "family");
X PrintField(buf, 2, 2, DVALUE2(n), "length of address");
X n = IShort(&buf[2]);
X PrintList(&buf[4], (long)n, BYTE, "address");
X return(pad((long)(4 + n)));
X}
X
Xstatic int
XPrintTIMECOORD(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 4, TIMESTAMP, "time");
X PrintField(buf, 4, 2, CARD16, "x");
X PrintField(buf, 6, 2, CARD16, "y");
X return(8);
X}
X
Xstatic int
XPrintFONTPROP(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 4, ATOM, "name");
X PrintField(buf, 4, 4, INT32, "value");
X return(8);
X}
X
Xstatic int
XPrintCHARINFO(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 2, INT16, "left-side-bearing");
X PrintField(buf, 2, 2, INT16, "right-side-bearing");
X PrintField(buf, 4, 2, INT16, "character-width");
X PrintField(buf, 6, 2, INT16, "ascent");
X PrintField(buf, 8, 2, INT16, "descent");
X PrintField(buf, 10, 2, CARD16, "attributes");
X return(12);
X}
X
Xstatic int
XPrintSEGMENT(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 2, INT16, "x1");
X PrintField(buf, 2, 2, INT16, "y1");
X PrintField(buf, 4, 2, INT16, "x2");
X PrintField(buf, 6, 2, INT16, "y2");
X return(8);
X}
X
Xstatic int
XPrintCOLORITEM(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 4, CARD32, "pixel");
X PrintField(buf, 4, 2, CARD16, "red");
X PrintField(buf, 6, 2, CARD16, "green");
X PrintField(buf, 8, 2, CARD16, "blue");
X PrintField(buf, 10, 1, COLORMASK, "component selector");
X return(12);
X}
X
Xstatic int
XPrintRGB(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 2, CARD16, "red");
X PrintField(buf, 2, 2, CARD16, "green");
X PrintField(buf, 4, 2, CARD16, "blue");
X return(8);
X}
X
Xstatic int
XPrintFORMAT(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 1, CARD8, "depth");
X PrintField(buf, 1, 1, CARD8, "bits-per-pixel");
X PrintField(buf, 2, 1, CARD8, "scanline-pad");
X return(8);
X}
X
Xstatic int
XPrintSCREEN(buf)
X unsigned char *buf;
X{
X short n /* number of elements in List of DEPTH */ ;
X long m /* length (in bytes) of List of DEPTH */ ;
X
X PrintField(buf, 0, 4, WINDOW, "root");
X PrintField(buf, 4, 4, COLORMAP, "default-colormap");
X PrintField(buf, 8, 4, CARD32, "white-pixel");
X PrintField(buf, 12, 4, CARD32, "black-pixel");
X PrintField(buf, 16, 4, SETofEVENT, "current-input-masks");
X PrintField(buf, 20, 2, CARD16, "width-in-pixels");
X PrintField(buf, 22, 2, CARD16, "height-in-pixels");
X PrintField(buf, 24, 2, CARD16, "width-in-millimeters");
X PrintField(buf, 26, 2, CARD16, "height-in-millimeters");
X PrintField(buf, 28, 2, CARD16, "min-installed-maps");
X PrintField(buf, 30, 2, CARD16, "max-installed-maps");
X PrintField(buf, 32, 4, VISUALID, "root-visual");
X PrintField(buf, 36, 1, BACKSTORE, "backing-stores");
X PrintField(buf, 37, 1, BOOL, "save-unders");
X PrintField(buf, 38, 1, CARD8, "root-depth");
X PrintField(buf, 39, 1, CARD8, "number of allowed-depths");
X n = IByte(&buf[39]);
X m = PrintList(&buf[40], (long)n, DEPTH, "allowed-depths");
X return(40 + m);
X}
X
Xstatic int
XPrintDEPTH(buf)
X unsigned char *buf;
X{
X short n /* number of elements in List of VISUALTYPE */ ;
X short m /* length (in bytes) of List of VISUALTYPE */ ;
X
X PrintField(buf, 0, 1, CARD8, "depth");
X PrintField(buf, 2, 2, DVALUE2(n), "number of visuals");
X n = IShort(&buf[2]);
X m = PrintList(&buf[8], (long)n, VISUALTYPE, "visuals");
X return(8 + m);
X}
X
Xstatic int
XPrintVISUALTYPE(buf)
X unsigned char *buf;
X{
X PrintField(buf, 0, 4, VISUALID, "visual-id");
X PrintField(buf, 4, 1, COLORCLASS, "class");
X PrintField(buf, 5, 1, CARD8, "bits-per-rgb-value");
X PrintField(buf, 6, 2, CARD16, "colormap-entries");
X PrintField(buf, 8, 4, CARD32, "red-mask");
X PrintField(buf, 12, 4, CARD32, "green-mask");
X PrintField(buf, 16, 4, CARD32, "blue-mask");
X return(24);
X}
X
Xstatic void
XInitRecordTypes()
X{
X (void) DefineType(CHAR2B, RECORD, "CHAR2B", PrintCHAR2B);
X (void) DefineType(POINT, RECORD, "POINT", PrintPOINT);
X (void) DefineType(RECTANGLE, RECORD, "RECTANGLE", PrintRECTANGLE);
X (void) DefineType(ARC, RECORD, "ARC", PrintARC);
X (void) DefineType(HOST, RECORD, "HOST", PrintHOST);
X (void) DefineType(TIMECOORD, RECORD, "TIMECOORD", PrintTIMECOORD);
X (void) DefineType(FONTPROP, RECORD, "FONTPROP", PrintFONTPROP);
X (void) DefineType(CHARINFO, RECORD, "CHARINFO", PrintCHARINFO);
X (void) DefineType(SEGMENT, RECORD, "SEGMENT", PrintSEGMENT);
X (void) DefineType(COLORITEM, RECORD, "COLORITEM", PrintCOLORITEM);
X (void) DefineType(RGB, RECORD, "RGB", PrintRGB);
X (void) DefineType(FORMAT, RECORD, "FORMAT", PrintFORMAT);
X (void) DefineType(SCREEN, RECORD, "SCREEN", PrintSCREEN);
X (void) DefineType(DEPTH, RECORD, "DEPTH", PrintDEPTH);
X (void) DefineType(VISUALTYPE, RECORD, "VISUALTYPE", PrintVISUALTYPE);
X}
X
Xstatic void
XInitValuesTypes()
X{
X TYPE p;
X
X p = DefineType(WINDOW_BITMASK, SET, "WINDOW_BITMASK", PrintSET);
X
X DefineValues(p, 0x00000001L, 4, PIXMAPNPR, "background-pixmap");
X DefineValues(p, 0x00000002L, 4, CARD32, "background-pixel");
X DefineValues(p, 0x00000004L, 4, PIXMAPC, "border-pixmap");
X DefineValues(p, 0x00000008L, 4, CARD32, "border-pixel");
X DefineValues(p, 0x00000010L, 1, BITGRAVITY, "bit-gravity");
X DefineValues(p, 0x00000020L, 1, WINGRAVITY, "win-gravity");
X DefineValues(p, 0x00000040L, 1, BACKSTORE, "backing-store");
X DefineValues(p, 0x00000080L, 4, CARD32, "backing-planes");
X DefineValues(p, 0x00000100L, 4, CARD32, "backing-pixel");
X DefineValues(p, 0x00000200L, 1, BOOL, "override-redirect");
X DefineValues(p, 0x00000400L, 1, BOOL, "save-under");
X DefineValues(p, 0x00000800L, 4, SETofEVENT, "event-mask");
X DefineValues(p, 0x00001000L, 4, SETofDEVICEEVENT, "do-not-propagate-mask");
X DefineValues(p, 0x00002000L, 4, COLORMAPC, "colormap");
X DefineValues(p, 0x00004000L, 4, CURSOR, "cursor");
X
X p = DefineType(CONFIGURE_BITMASK, SET, "CONFIGURE_BITMASK", PrintSET);
X DefineValues(p, 0x0001L, 2, INT16, "x");
X DefineValues(p, 0x0002L, 2, INT16, "y");
X DefineValues(p, 0x0004L, 2, CARD16, "width");
X DefineValues(p, 0x0008L, 2, CARD16, "height");
X DefineValues(p, 0x0010L, 2, CARD16, "border-width");
X DefineValues(p, 0x0020L, 4, WINDOW, "sibling");
X DefineValues(p, 0x0040L, 1, STACKMODE, "stack-mode");
X
X p = DefineType(GC_BITMASK, SET, "GC_BITMASK", PrintSET);
X DefineValues(p, 0x00000001L, 1, GCFUNC, "function");
X DefineValues(p, 0x00000002L, 4, CARD32, "plane-mask");
X DefineValues(p, 0x00000004L, 4, CARD32, "foreground");
X DefineValues(p, 0x00000008L, 4, CARD32, "background");
X DefineValues(p, 0x00000010L, 2, CARD16, "line-width");
X DefineValues(p, 0x00000020L, 1, LINESTYLE, "line-style");
X DefineValues(p, 0x00000040L, 1, CAPSTYLE, "cap-style");
X DefineValues(p, 0x00000080L, 1, JOINSTYLE, "join-style");
X DefineValues(p, 0x00000100L, 1, FILLSTYLE, "fill-style");
X DefineValues(p, 0x00000200L, 1, FILLRULE, "fill-rule");
X DefineValues(p, 0x00000400L, 4, PIXMAP, "tile");
X DefineValues(p, 0x00000800L, 4, PIXMAP, "stipple");
X DefineValues(p, 0x00001000L, 2, INT16, "tile-stipple-x-origin");
X DefineValues(p, 0x00002000L, 2, INT16, "tile-stipple-y-origin");
X DefineValues(p, 0x00004000L, 4, FONT, "font");
X DefineValues(p, 0x00008000L, 1, SUBWINMODE, "subwindow-mode");
X DefineValues(p, 0x00010000L, 1, BOOL, "graphics-exposures");
X DefineValues(p, 0x00020000L, 2, INT16, "clip-x-origin");
X DefineValues(p, 0x00040000L, 2, INT16, "clip-y-origin");
X DefineValues(p, 0x00080000L, 4, PIXMAP, "clip-mask");
X DefineValues(p, 0x00100000L, 2, CARD16, "dash-offset");
X DefineValues(p, 0x00200000L, 1, CARD8, "dashes");
X DefineValues(p, 0x00400000L, 1, ARCMODE, "arc-mode");
X
X p = DefineType(KEYBOARD_BITMASK, SET, "KEYBOARD_BITMASK", PrintSET);
X DefineValues(p, 0x0001L, 1, INT8, "key-click-percent");
X DefineValues(p, 0x0002L, 1, INT8, "bell-percent");
X DefineValues(p, 0x0004L, 2, INT16, "bell-pitch");
X DefineValues(p, 0x0008L, 2, INT16, "bell-duration");
X DefineValues(p, 0x0010L, 1, CARD8, "led");
X DefineValues(p, 0x0020L, 1, OFF_ON, "led-mode");
X DefineValues(p, 0x0040L, 1, KEYCODE, "key");
X DefineValues(p, 0x0080L, 1, OFF_ON, "auto-repeat-mode");
X}
SHAR_EOF
$TOUCH -am 0903162990 table11.c &&
chmod 0664 table11.c ||
echo "restore of table11.c failed"
set `wc -c table11.c`;Wc_c=$1
if test "$Wc_c" != "37451"; then
echo original size 37451, current size $Wc_c
fi
fi
# ============= widgeti.c ==============
if test X"$1" != X"-c" -a -f 'widgeti.c'; then
echo "File already exists: skipping 'widgeti.c'"
else
echo "x - extracting widgeti.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > widgeti.c &&
X/*
X * File: widgeti.c
X *
X * Description: Routines to build various widget combinations
X */
X#include <stdio.h>
X#include <strings.h>
X#include <X11/cursorfont.h>
X#include <X11/Intrinsic.h>
X#include <X11/StringDefs.h>
X#include <X11/Shell.h>
X#include <X11/Xaw/Form.h>
X#include <X11/Xaw/Command.h>
X#include <X11/Xaw/Label.h>
X#include <X11/Xaw/Box.h>
X#include <X11/Xaw/List.h>
X#include <X11/Xaw/Toggle.h>
X#include <X11/Xaw/Viewport.h>
X
X#include "common.h"
X#include "widgeti.h"
X
X/* function prototypes: */
X/* widgeti.c: */
X
X/* end function prototypes */
X
XDeclareArgs
X
Xstatic char toggle_translation_table[] =
X "<EnterWindow>: highlight(Always) \n\
X <LeaveWindow>: unhighlight() \n\
X <Btn1Down>,<Btn1Up>: set() notify()";
X
Xstatic XtTranslations toggle_trans;
X
XGlobal Widget
Xinit_widgeti(name, app_class, argcp, argv)
X char *name;
X char *app_class;
X int *argcp;
X char **argv;
X{
X return XtInitialize(NULL, app_class, NULL, 0, argcp, argv);
X}
X
XGlobal Widget
Xcreate_form(parent, fromH, fromV, borderWidth)
XWidget parent;
XWidget fromH;
XWidget fromV;
Xint borderWidth;
X{
X Widget widget;
X
X numargs = 0;
X AddArg(XtNfromHoriz, fromH);
X AddArg(XtNfromVert, fromV);
X AddArg(XtNborderWidth, borderWidth);
X AddArg(XtNdefaultDistance, 2);
X widget = XtCreateManagedWidget
X (
X "form", formWidgetClass, parent, arglist, numargs
X );
X return widget;
X}
X
XGlobal Widget
Xcreate_label(parent, fromH, fromV, width, borderWidth, string)
XWidget parent;
XWidget fromH;
XWidget fromV;
Xint width;
Xint borderWidth;
Xchar *string;
X{
X Widget widget;
X
X numargs = 0;
X AddArg(XtNfromHoriz, fromH);
X AddArg(XtNfromVert, fromV);
X AddArg(XtNlabel, string);
X AddArg(XtNborderWidth, borderWidth);
X if (width != 0)
X {
X AddArg(XtNwidth, width);
X }
X widget = XtCreateManagedWidget
X (
X "label", labelWidgetClass, parent, arglist, numargs
X );
X return widget;
X}
X
XGlobal Widget
Xcreate_command_button(parent, fromH, fromV, string, callback, data)
XWidget parent;
XWidget fromH;
XWidget fromV;
Xchar *string;
XVoidCallback callback;
XPointer data;
X{
X Widget widget;
X
X numargs = 0;
X AddArg(XtNfromHoriz, fromH);
X AddArg(XtNfromVert, fromV);
X AddArg(XtNlabel, string);
X widget = XtCreateManagedWidget
X (
X "command", commandWidgetClass, parent, arglist, numargs
X );
X XtAddCallback(widget, XtNcallback, callback, data);
X return widget;
X}
X
XGlobal Widget
Xcreate_one_of_many_toggle(label, parent, fromH, fromV, strings, callback)
Xchar *label;
XWidget parent;
XWidget fromH;
XWidget fromV;
Xchar *strings;
XVoidCallback callback;
X{
X Widget form;
X Widget widget;
X Widget radio = NULL;
X char *ptr;
X
X numargs = 0;
X AddArg(XtNborderWidth, 0);
X AddArg(XtNfromHoriz, fromH);
X AddArg(XtNfromVert, fromV);
X AddArg(XtNdefaultDistance, 0);
X form = XtCreateManagedWidget
X (
X "toggle_form", formWidgetClass, parent, arglist, numargs
X );
X
X numargs = 0;
X AddArg(XtNborderWidth, 0);
X AddArg(XtNlabel, label);
X widget = XtCreateManagedWidget
X (
X "label", labelWidgetClass, form, arglist, numargs
X );
X
X toggle_trans = XtParseTranslationTable(toggle_translation_table);
X
X do
X {
X ptr = index(strings, '\n');
X if (ptr != NULL)
X *ptr = '\0';
X if (strlen(strings) > 0)
X {
X numargs = 0;
X AddArg(XtNfromHoriz, widget);
X AddArg(XtNtranslations, toggle_trans);
X AddArg(XtNlabel, strings);
X AddArg(XtNradioData, strings);
X if (radio != NULL)
X AddArg(XtNradioGroup, radio);
X widget = XtCreateManagedWidget
X (
X (radio == NULL) ? "radio" : "",
X toggleWidgetClass, form, arglist, numargs
X );
X XtAddCallback(widget, XtNcallback, callback, strings);
X if (radio == NULL)
X radio = widget;
X }
X if (ptr != NULL)
X strings = ptr + 1;
X }
X while (ptr != NULL);
X return form;
X}
X
XGlobal void
Xset_toggle_state(widget, data)
XWidget widget;
Xchar *data;
X{
X Widget child;
X WidgetList list;
X Cardinal num;
X int i;
X char *radio_data;
X
X child = XtNameToWidget(widget, "radio");
X if (child == (Widget)NULL)
X return;
X XawToggleUnsetCurrent(child);
X
X numargs = 0;
X AddArg(XtNchildren, &list);
X AddArg(XtNnumChildren, &num);
X XtGetValues(widget, arglist, numargs);
X
X for (i = 0; i < num; i++)
X {
X if (XtIsSubclass(child = list[i], toggleWidgetClass))
X {
X numargs = 0;
X AddArg(XtNradioData, &radio_data);
X XtGetValues(child, arglist, numargs);
X if (!strcmp(data, radio_data))
X {
X numargs = 0;
X AddArg(XtNstate, True);
X XtSetValues(child, arglist, numargs);
X break;
X }
X }
X }
X}
X
XGlobal char *
Xget_toggle_state(widget)
XWidget widget;
X{
X Widget child;
X char *rtn;
X
X child = XtNameToWidget(widget, "radio");
X if (child != (Widget)NULL)
X rtn = (char *)XawToggleGetCurrent(child);
X else
X rtn = (char *)NULL;
X return rtn;
X}
X
XGlobal Widget
Xcreate_viewlist
X(
X parent, fromH, fromV, list, width, height, borderWidth, callback, data
X)
XWidget parent;
XWidget fromH;
XWidget fromV;
Xchar **list;
Xint width;
Xint height;
Xint borderWidth;
XVoidCallback callback;
XPointer data;
X{
X Widget view_list;
X Widget list_area;
X
X numargs = 0;
X AddArg(XtNfromHoriz, fromH);
X AddArg(XtNfromVert, fromV);
X AddArg(XtNborderWidth, borderWidth);
X AddArg(XtNwidth, width);
X AddArg(XtNheight, height);
X AddArg(XtNallowVert, True);
X AddArg(XtNforceBars, True);
X view_list = XtCreateManagedWidget
X (
X "view_list", viewportWidgetClass, parent, arglist, numargs
X );
X
X numargs = 0;
X AddArg(XtNlist, list);
X AddArg(XtNdefaultColumns, 1);
X AddArg(XtNforceColumns, True);
X AddArg(XtNverticalList, True);
X list_area = XtCreateManagedWidget
X (
X "list_area", listWidgetClass, view_list, arglist, numargs
X );
X XtAddCallback(list_area, XtNcallback, callback, data);
X
X return view_list;
X}
X
XGlobal void
Xset_viewlist(widget, list, nitems, longest)
X Widget widget;
X char **list;
X int nitems;
X int longest;
X{
X Widget child;
X WidgetList wlist;
X Cardinal num;
X int i;
X
X numargs = 0;
X AddArg(XtNchildren, &wlist);
X AddArg(XtNnumChildren, &num);
X XtGetValues(widget, arglist, numargs);
X for (i = 0; i < num; i++)
X if (XtIsSubclass(child = wlist[i], listWidgetClass))
X XawListChange(child, list, nitems, longest, False);
X}
SHAR_EOF
$TOUCH -am 0903162990 widgeti.c &&
chmod 0775 widgeti.c ||
echo "restore of widgeti.c failed"
set `wc -c widgeti.c`;Wc_c=$1
if test "$Wc_c" != "6219"; then
echo original size 6219, current size $Wc_c
fi
fi
# ============= xmonui.c ==============
if test X"$1" != X"-c" -a -f 'xmonui.c'; then
echo "File already exists: skipping 'xmonui.c'"
else
echo "x - extracting xmonui.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > xmonui.c &&
X/*
X * Project: XMON - An X protocol monitor
X *
X * File: xmonui.c
X *
X * Description: Contains main() for xmondui
X *
X */
X
X#include <X11/Xatom.h>
X#include <X11/Intrinsic.h>
X#include <X11/StringDefs.h>
X#include <X11/Xaw/Form.h>
X
X#include "common.h"
X#include "widgeti.h"
X
X/* function prototypes: */
X/* xmonui.c: */
Xstatic void quit_cb P((Widget w , caddr_t client_data , caddr_t call_data ));
Xstatic void toggle_cb P((Widget widget , caddr_t client_data , caddr_t
call_data ));
Xstatic void list_cb P((Widget widget , caddr_t client_data , caddr_t
call_data ));
Xstatic void count_cb P((Widget widget , caddr_t client_data , caddr_t
call_data ));
Xstatic Widget build_toggle P((Widget parent , int toggle_index , Widget
vert ));
Xstatic Widget build_list P((Widget parent , int list_index , Widget horiz ));
Xstatic Widget build_counting_buttons P((Widget parent , Widget vert ,
char *label , char **output_strings ));
X
X/* end function prototypes */
X
X#define NUM_REQUESTS 120
X
Xchar *request_monitor_list[NUM_REQUESTS + 1] =
X{
X#include "requests.h"
X};
X
Xchar *request_block_list[NUM_REQUESTS + 1] =
X{
X#include "requests.h"
X};
X
X#define NUM_EVENTS 33
X
Xchar *event_monitor_list[NUM_EVENTS + 1] =
X{
X#include "events.h"
X};
X
Xchar *event_block_list[NUM_EVENTS + 1] =
X{
X#include "events.h"
X};
X
X#define NUM_COUNT_BUTTONS 5
X
Xchar *count_names[NUM_COUNT_BUTTONS] =
X{
X "start", "stop", "clear", "print", "print zero",
X};
X
Xchar *request_output_strings[NUM_COUNT_BUTTONS] =
X{
X "startrequestcount",
X "stoprequestcount",
X "clearrequestcount",
X "printrequestcount",
X "printzerorequestcount",
X};
X
Xchar *event_output_strings[NUM_COUNT_BUTTONS] =
X{
X "starteventcount",
X "stopeventcount",
X "cleareventcount",
X "printeventcount",
X "printzeroeventcount",
X};
X
Xchar *error_output_strings[NUM_COUNT_BUTTONS] =
X{
X "starterrorcount",
X "stoperrorcount",
X "clearerrorcount",
X "printerrorcount",
X "printzeroerrorcount",
X};
X
Xtypedef struct
X{
X char *label;
X char *toggle_strings;
X char *output_string;
X char *default_string;
X Widget widget;
X}
X ToggleData;
X
X#define DETAIL_STR "off\nnames\nmain\nfull\nhex"
X
Xstatic ToggleData toggledata[] =
X{
X {
X "output detail: request ",
X DETAIL_STR, "request_verbose", "off"
X /*"0\n1\n2\n3\n4", "request_verbose %s\n", "0"*/
X },
X {
X " event ",
X DETAIL_STR, "event_verbose", "off"
X /*"0\n1\n2\n3\n4", "event_verbose %s\n", "0"*/
X },
X {
X " error ",
X DETAIL_STR, "error_verbose", "names"
X /*"0\n1\n2\n3\n4", "error_verbose %s\n", "1"*/
X },
X {
X " reply ",
X DETAIL_STR, "reply_verbose", "off"
X /*"0\n1\n2\n3\n4", "reply_verbose %s\n", "0"*/
X },
X {
X "detail ",
X DETAIL_STR, "selected_request_verbose", "full"
X /*"0\n1\n2\n3\n4", "selected_request_verbose %s\n", "3"*/
X },
X {
X "detail ",
X DETAIL_STR, "selected_event_verbose", "full"
X /*"0\n1\n2\n3\n4", "selected_event_verbose %s\n", "3"*/
X },
X {
X " blocking ",
X "on\noff", "request_blocking_%s\n", "on"
X },
X {
X " blocking ",
X "on\noff", "event_blocking_%s\n", "on"
X },
X};
X#define REQUEST_VERBOSE 4
X#define EVENT_VERBOSE 5
X#define REQUEST_BLOCKING 6
X#define EVENT_BLOCKING 7
X
X#define NUM_TOGGLES (sizeof(toggledata) / sizeof(ToggleData))
X
Xtypedef struct
X{
X char **list;
X int toggle_index;
X int width;
X int height;
X int num_items;
X char *list_output_string;
X Widget widget;
X}
X ListData;
X
Xstatic ListData listdata[] =
X{
X {
X request_monitor_list, REQUEST_VERBOSE, 240, 197, NUM_REQUESTS,
X "monitor_request_%s %s\n",
X },
X {
X request_block_list, REQUEST_BLOCKING, 240, 197, NUM_REQUESTS,
X "block_request_%s %s\n",
X },
X {
X event_monitor_list, EVENT_VERBOSE, 240, 92, NUM_EVENTS,
X "monitor_event_%s %s\n",
X },
X {
X event_block_list, EVENT_BLOCKING, 240, 92, NUM_EVENTS,
X "block_event_%s %s\n",
X },
X};
X#define REQUEST_MONITOR_LIST 0
X#define REQUEST_BLOCK_LIST 1
X#define EVENT_MONITOR_LIST 2
X#define EVENT_BLOCK_LIST 3
X
X#define NUM_LISTS (sizeof(listdata) / sizeof(ListData))
X
Xstatic void
Xquit_cb(w, client_data, call_data)
X Widget w;
X caddr_t client_data;
X caddr_t call_data;
X{
X printf("quit\n");
X fflush(stdout);
X exit(1);
X}
X
Xstatic void
Xtoggle_cb(widget, client_data, call_data)
X Widget widget;
X caddr_t client_data;
X caddr_t call_data;
X{
X int toggle_count;
X
X if (!(Bool)call_data)
X return;
X
X for (toggle_count = 0; toggle_count < NUM_TOGGLES; toggle_count++)
X if (toggledata[toggle_count].widget == XtParent(widget))
X {
X if (toggle_count < 6)
X {
X printf(toggledata[toggle_count].output_string);
X if (Streq((char*) client_data, "off"))
X printf(" 0\n");
X else if (Streq((char*) client_data, "names"))
X printf(" 1\n");
X else if (Streq((char*) client_data, "main"))
X printf(" 2\n");
X else if (Streq((char*) client_data, "full"))
X printf(" 3\n");
X else if (Streq((char*) client_data, "hex"))
X printf(" 4\n");
X }
X else
X printf
X (
X toggledata[toggle_count].output_string, (char *)client_data
X );
X fflush(stdout);
X return;
X }
X printf("error in toggle_cb\n");
X fflush(stdout);
X}
X
Xstatic void
Xlist_cb(widget, client_data, call_data)
X Widget widget;
X caddr_t client_data;
X caddr_t call_data;
X{
X XawListReturnStruct *return_struct;
X Widget list_widget;
X char *selected_string;
X int list_count;
X Bool on;
X
X list_widget = XtParent(widget);
X return_struct = (XawListReturnStruct*) call_data;
X for (list_count = 0; list_count < NUM_LISTS; list_count++)
X if (listdata[list_count].widget == list_widget)
X {
X selected_string =
X listdata[list_count].list[return_struct->list_index];
X on = (selected_string[4] == ' ');
X selected_string[4] = '\0';
X printf
X (
X listdata[list_count].list_output_string,
X (on) ? "on" : "off", selected_string
X );
X fflush(stdout);
X selected_string[4] = (on) ? '*' : ' ';
X set_viewlist
X (
X list_widget, listdata[list_count].list,
X listdata[list_count].num_items, listdata[list_count].width
X );
X return;
X }
X printf("error in list_cb\n");
X fflush(stdout);
X}
X
Xstatic void
Xcount_cb(widget, client_data, call_data)
X Widget widget;
X caddr_t client_data;
X caddr_t call_data;
X{
X printf("%s\n", (char *)client_data);
X fflush(stdout);
X}
X
Xstatic Widget
Xbuild_toggle(parent, toggle_index, vert)
XWidget parent;
Xint toggle_index;
XWidget vert;
X{
X Widget widget;
X
X widget = create_one_of_many_toggle
X (
X toggledata[toggle_index].label, parent, NULL, vert,
X toggledata[toggle_index].toggle_strings, toggle_cb
X );
X toggledata[toggle_index].widget = widget;
X set_toggle_state
X (
X widget, toggledata[toggle_index].default_string
X );
X return widget;
X}
X
Xstatic Widget
Xbuild_list(parent, list_index, horiz)
XWidget parent;
Xint list_index;
XWidget horiz;
X{
X Widget widget;
X Widget form;
X
X
X form = create_form(parent, horiz, NULL, 0);
X widget = build_toggle(form, listdata[list_index].toggle_index, NULL);
X widget = create_viewlist
X (
X form, NULL, widget, listdata[list_index].list,
X listdata[list_index].width, listdata[list_index].height,
X 1, list_cb, (Pointer) 0
X );
X listdata[list_index].widget = widget;
X set_viewlist
X (
X widget, listdata[list_index].list,
X listdata[list_index].num_items, listdata[list_index].width
X );
X return form;
X}
X
X/*
Xstatic void
Xsel_cb(w, client_data, call_data)
X Widget w;
X caddr_t client_data;
X caddr_t call_data;
X{
X Widget list_widget = (Widget)client_data;
X XawScrollListReturnStruct *return_struct;
X
X return_struct = XawScrollListShowCurrent(list_widget);
X if (return_struct->list_index == XAW_SCROLL_LIST_NONE)
X printf("none selected\n");
X else
X printf("item %d selected\n", return_struct->list_index);
X fflush(stdout);
X XawScrollListUnhighlight(list_widget);
X}
X
X widget = create_command_button
X (
X widget, NULL, list, "change", change_cb, list_widget
X );
X widget = create_command_button
X (
X widget, NULL, widget, "print selected", sel_cb, list_widget
X );
X*/
X
Xstatic Widget
Xbuild_counting_buttons(parent, vert, label, output_strings)
XWidget parent;
XWidget vert;
Xchar *label;
Xchar **output_strings;
X{
X Widget widget;
X Widget form;
X char string[100];
X int button;
X
X form = create_form(parent, NULL, vert, 0);
X widget = create_label(form, NULL, NULL, 0, 0, label);
X for (button = 0; button < NUM_COUNT_BUTTONS; button++)
X widget = create_command_button
X (
X form, widget, NULL, count_names[button], count_cb,
X output_strings[button]
X );
X return form;
X}
X
XGlobal int
Xmain(argc, argv)
Xint argc;
Xchar **argv;
X{
X Widget toplevel;
X Widget form;
X Widget inner_form;
X Widget lists_form;
X Widget widget;
X Widget list_widget;
X int toggle_count;
X
X toplevel = init_widgeti("XmonUI", "XmonUI", &argc, argv);
X form = create_form(toplevel, NULL, NULL, 0);
X
X/* quit button */
X widget = create_command_button(form, NULL, NULL, "quit", quit_cb,NULL);
X
X/* header */
X widget = create_label
X (
X form, widget, NULL, 0,0," Xmon - X protocol monitor"
X );
X
X
X/* verbose level toggles */
X for (toggle_count = 0; toggle_count < 4; toggle_count++)
X widget = build_toggle(form, toggle_count, widget);
X
X/* counting buttons */
X widget = build_counting_buttons
X (
X form, widget, "counting: requests", request_output_strings
X );
X widget = build_counting_buttons
X (
X form, widget, " events ", event_output_strings
X );
X widget = build_counting_buttons
X (
X form, widget, " errors ", error_output_strings
X );
X
X
X/* selected requests section */
X inner_form = create_form(form, NULL, widget, 1);
X widget = create_label(inner_form, NULL, NULL, 0, 0,"selected requests:");
X lists_form = create_form(inner_form, NULL, widget, 0);
X widget = build_list(lists_form, REQUEST_MONITOR_LIST, NULL);
X widget = build_list(lists_form, REQUEST_BLOCK_LIST, widget);
X
X/* selected events section */
X inner_form = create_form(form, NULL, inner_form, 1);
X widget = create_label(inner_form, NULL, NULL, 0, 0, "selected events:");
X lists_form = create_form(inner_form, NULL, widget, 0);
X widget = build_list(lists_form, EVENT_MONITOR_LIST, NULL);
X widget = build_list(lists_form, EVENT_BLOCK_LIST, widget);
X
X XtRealizeWidget(toplevel);
X XtMainLoop();
X}
SHAR_EOF
$TOUCH -am 0903162990 xmonui.c &&
chmod 0664 xmonui.c ||
echo "restore of xmonui.c failed"
set `wc -c xmonui.c`;Wc_c=$1
if test "$Wc_c" != "10121"; then
echo original size 10121, current size $Wc_c
fi
fi
# ============= common.h ==============
if test X"$1" != X"-c" -a -f 'common.h'; then
echo "File already exists: skipping 'common.h'"
else
echo "x - extracting common.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > common.h &&
X/*
X * File: common.c
X *
X * Description: Standard header file
X *
X */
X
X#ifndef COMMON_H
X#define COMMON_H
X
X#include <ctype.h>
X#include <sys/types.h>
X#include <string.h>
X#include <stdio.h>
X
Xtypedef short Bool;
Xtypedef caddr_t Pointer;
Xtypedef void (*VoidCallback)(); /* ptr to void function */
Xtypedef int (*IntCallback)(); /* ptr to int function */
X
X#define Global /* Global */
X#ifndef True
X#define True (1)
X#define False (0)
X#endif
X#define Streq(a,b) (strcmp(a,b) == 0)
X#define Strneq(a,b,n) (strncmp(a,b,n) == 0)
X#define abs(x) (((x) < 0) ? (-(x)) : (x))
X#define max(n1, n2) (((n1) < (n2)) ? (n2) : (n1))
X#define min(n1, n2) (((n1) > (n2)) ? (n2) : (n1))
X#define Tmalloc(type) (type *)malloc(sizeof(type))
X#define Tcalloc(n, type) (type *)calloc(n, sizeof(type))
X#define Tfree(ptr) free((char *)(ptr))
X
X#ifdef __STDC__
X#define P(args) args
X#else
X#define P(args) ()
X#endif
X
Xvoid *malloc P((int size));
Xvoid *realloc P((char *ptr, int size));
Xvoid *calloc P((int nelem, int elsize));
Xvoid free P((char *ptr));
X
X#endif /* COMMON_H */
SHAR_EOF
$TOUCH -am 0903163790 common.h &&
chmod 0754 common.h ||
echo "restore of common.h failed"
set `wc -c common.h`;Wc_c=$1
if test "$Wc_c" != "1104"; then
echo original size 1104, current size $Wc_c
fi
fi
# ============= events.h ==============
if test X"$1" != X"-c" -a -f 'events.h'; then
echo "File already exists: skipping 'events.h'"
else
echo "x - extracting events.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > events.h &&
X " 4 ButtonPress",
X " 5 ButtonRelease",
X " 26 CirculateNotify",
X " 27 CirculateRequest",
X " 33 ClientMessage",
X " 32 ColormapNotify",
X " 22 ConfigureNotify",
X " 23 ConfigureRequest",
X " 16 CreateNotify",
X " 17 DestroyNotify",
X " 7 EnterNotify",
X " 12 Expose",
X " 9 FocusIn",
X " 10 FocusOut",
X " 13 GraphicsExpose",
X " 24 GravityNotify",
X " 2 KeyPress",
X " 3 KeyRelease",
X " 11 KeymapNotify",
X " 8 LeaveNotify",
X " 19 MapNotify",
X " 20 MapRequest",
X " 34 MappingNotify",
X " 6 MotionNotify",
X " 14 NoExpose",
X " 28 PropertyNotify",
X " 21 ReparentNotify",
X " 25 ResizeRequest",
X " 29 SelectionClear",
X " 31 SelectionNotify",
X " 30 SelectionRequest",
X " 18 UnmapNotify",
X " 15 VisibilityNotify",
X NULL,
SHAR_EOF
$TOUCH -am 0903162990 events.h &&
chmod 0664 events.h ||
echo "restore of events.h failed"
set `wc -c events.h`;Wc_c=$1
if test "$Wc_c" != "773"; then
echo original size 773, current size $Wc_c
fi
fi
# ============= linkl.h ==============
if test X"$1" != X"-c" -a -f 'linkl.h'; then
echo "File already exists: skipping 'linkl.h'"
else
echo "x - extracting linkl.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > linkl.h &&
X/*
X * File: linkl.h
X *
X */
X
X#ifndef LINKL_H
X#define LINKL_H
X
X#include "common.h"
X
Xtypedef struct _LinkLeaf
X{
X struct _LinkLeaf* next;
X struct _LinkLeaf* prev;
X Pointer contents;
X}
X LinkLeaf;
X
Xtypedef struct
X{
X LinkLeaf *top;
X LinkLeaf *bottom;
X LinkLeaf *current;
X}
X LinkList;
X
X#define ListIsEmpty(list) ((list)->top == (LinkLeaf *)(list))
X#define TopOfList(list) (list)->top->contents
X#define CurrentContentsOfList(list) (list)->current->contents
X
X#define ForAllInList(list) for \
X ( \
X ((list)->current) = ((list)->top); \
X ((list)->current) != (LinkLeaf *)(list); \
X ((list)->current) = ((list)->current)->next \
X )
X
X
X/* function prototypes: */
X/* linkl.c: */
XGlobal void initList P((LinkList *list ));
XGlobal void prependToList P((LinkList *list , Pointer contents ));
XGlobal void appendToList P((LinkList *list , Pointer contents ));
XGlobal Pointer deleteFirst P((LinkList *list ));
XGlobal Pointer deleteLast P((LinkList *list ));
XGlobal Pointer deleteCurrent P((LinkList *list ));
XGlobal void AppendToCurrent P((LinkList *list , Pointer contents ));
XGlobal void PrependToCurrent P((LinkList *list , Pointer contents ));
XGlobal void freeList P((LinkList *list ));
XGlobal void freeCurrent P((LinkList *list ));
X
X/* end function prototypes */
X
X#endif /* LINKL_H */
SHAR_EOF
$TOUCH -am 0903162990 linkl.h &&
chmod 0754 linkl.h ||
echo "restore of linkl.h failed"
set `wc -c linkl.h`;Wc_c=$1
if test "$Wc_c" != "1368"; then
echo original size 1368, current size $Wc_c
fi
fi
# ============= requests.h ==============
if test X"$1" != X"-c" -a -f 'requests.h'; then
echo "File already exists: skipping 'requests.h'"
else
echo "x - extracting requests.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > requests.h &&
X " 84 AllocColor",
X " 86 AllocColorCells",
X " 87 AllocColorPlanes",
X " 85 AllocNamedColor",
X " 35 AllowEvents",
X "104 Bell",
X " 30 ChangeActivePointerGrab",
X " 56 ChangeGC",
X "109 ChangeHosts",
X "102 ChangeKeyboardControl",
X "100 ChangeKeyboardMapping",
X "105 ChangePointerControl",
X " 18 ChangeProperty",
X " 6 ChangeSaveSet",
X " 2 ChangeWindowAttributes",
X " 13 CirculateWindow",
X " 61 ClearArea",
X " 46 CloseFont",
X " 12 ConfigureWindow",
X " 24 ConvertSelection",
X " 62 CopyArea",
X " 80 CopyColormapAndFree",
X " 57 CopyGC",
X " 63 CopyPlane",
X " 78 CreateColormap",
X " 93 CreateCursor",
X " 55 CreateGC",
X " 94 CreateGlyphCursor",
X " 53 CreatePixmap",
X " 1 CreateWindow",
X " 19 DeleteProperty",
X " 5 DestroySubwindows",
X " 4 DestroyWindow",
X " 69 FillPoly",
X "115 ForceScreenSaver",
X " 79 FreeColormap",
X " 88 FreeColors",
X " 95 FreeCursor",
X " 60 FreeGC",
X " 54 FreePixmap",
X " 17 GetAtomName",
X " 52 GetFontPath",
X " 14 GetGeometry",
X " 73 GetImage",
X " 43 GetInputFocus",
X "103 GetKeyboardControl",
X "101 GetKeyboardMapping",
X "119 GetModifierMapping",
X " 39 GetMotionEvents",
X "106 GetPointerControl",
X "117 GetPointerMapping",
X " 20 GetProperty",
X "108 GetScreenSaver",
X " 23 GetSelectionOwner",
X " 3 GetWindowAttributes",
X " 28 GrabButton",
X " 33 GrabKey",
X " 31 GrabKeyboard",
X " 26 GrabPointer",
X " 36 GrabServer",
X " 77 ImageText16",
X " 76 ImageText8",
X " 81 InstallColormap",
X " 16 InternAtom",
X "113 KillClient",
X " 99 ListExtensions",
X " 49 ListFonts",
X " 50 ListFontsWithInfo",
X "110 ListHosts",
X " 83 ListInstalledColormaps",
X " 21 ListProperties",
X " 92 LookupColor",
X " 9 MapSubwindows",
X " 8 MapWindow",
X "127 NoOperation",
X " 45 OpenFont",
X " 68 PolyArc",
X " 71 PolyFillArc",
X " 70 PolyFillRectangle",
X " 65 PolyLine",
X " 64 PolyPoint",
X " 67 PolyRectangle",
X " 66 PolySegment",
X " 75 PolyText16",
X " 74 PolyText8",
X " 72 PutImage",
X " 97 QueryBestSize",
X " 91 QueryColors",
X " 98 QueryExtension",
X " 47 QueryFont",
X " 44 QueryKeymap",
X " 38 QueryPointer",
X " 48 QueryTextExtents",
X " 15 QueryTree",
X " 96 RecolorCursor",
X " 7 ReparentWindow",
X "114 RotateProperties",
X " 25 SendEvent",
X "111 SetAccessControl",
X " 59 SetClipRectangles",
X "112 SetCloseDownMode",
X " 58 SetDashes",
X " 51 SetFontPath",
X " 42 SetInputFocus",
X "118 SetModifierMapping",
X "116 SetPointerMapping",
X "107 SetScreenSaver",
X " 22 SetSelectionOwner",
X " 89 StoreColors",
X " 90 StoreNamedColor",
X " 40 TranslateCoords",
X " 29 UngrabButton",
X " 34 UngrabKey",
X " 32 UngrabKeyboard",
X " 27 UngrabPointer",
X " 37 UngrabServer",
X " 82 UninstallColormap",
X " 11 UnmapSubwindows",
X " 10 UnmapWindow",
X " 41 WarpPointer",
X NULL
SHAR_EOF
$TOUCH -am 0903162990 requests.h &&
chmod 0664 requests.h ||
echo "restore of requests.h failed"
set `wc -c requests.h`;Wc_c=$1
if test "$Wc_c" != "2861"; then
echo original size 2861, current size $Wc_c
fi
fi
# ============= select_args.h ==============
if test X"$1" != X"-c" -a -f 'select_args.h'; then
echo "File already exists: skipping 'select_args.h'"
else
echo "x - extracting select_args.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > select_args.h &&
X/*
X * Project: XMON - An X protocol monitor
X *
X * File: select_args.h
X *
X * Description: macros to handle the arguments to select().
X */
X
X#ifndef SELECT_H
X#define SELECT_H
X
X#include <sys/param.h>
X
X#define MAXSOCKS (NOFILE - 1)
X#define mskcnt ((MAXSOCKS + 31) / 32) /* size of bit array */
X
X#if (mskcnt==1)
X#define BITMASK(i) (1 << (i))
X#define MASKIDX(i) 0
X#endif
X#if (mskcnt>1)
X#define BITMASK(i) (1 << ((i) & 31))
X#define MASKIDX(i) ((i) >> 5)
X#endif
X
X#define MASKWORD(buf, i) buf[MASKIDX(i)]
X#define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i)
X#define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
X#define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
X
X#if (mskcnt==1)
X#define COPYBITS(src, dst) dst[0] = src[0]
X#define CLEARBITS(buf) buf[0] = 0
X#define MASKANDSETBITS(dst, b1, b2) dst[0] = (b1[0] & b2[0])
X#define ORBITS(dst, b1, b2) dst[0] = (b1[0] | b2[0])
X#define UNSETBITS(dst, b1) (dst[0] &= ~b1[0])
X#define ANYSET(src) (src[0])
X#endif
X#if (mskcnt==2)
X#define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]
X#define CLEARBITS(buf) buf[0] = 0; buf[1] = 0
X#define MASKANDSETBITS(dst, b1, b2) \
X dst[0] = (b1[0] & b2[0]);\
X dst[1] = (b1[1] & b2[1])
X#define ORBITS(dst, b1, b2) \
X dst[0] = (b1[0] | b2[0]);\
X dst[1] = (b1[1] | b2[1])
X#define UNSETBITS(dst, b1) \
X dst[0] &= ~b1[0]; \
X dst[1] &= ~b1[1]
X#define ANYSET(src) (src[0] || src[1])
X#endif
X#if (mskcnt==3)
X#define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]; dst[2] = src[2];
X#define CLEARBITS(buf) buf[0] = 0; buf[1] = 0; buf[2] = 0
X#define MASKANDSETBITS(dst, b1, b2) \
X dst[0] = (b1[0] & b2[0]);\
X dst[1] = (b1[1] & b2[1]);\
X dst[2] = (b1[2] & b2[2])
X#define ORBITS(dst, b1, b2) \
X dst[0] = (b1[0] | b2[0]);\
X dst[1] = (b1[1] | b2[1]);\
X dst[2] = (b1[2] | b2[2])
X#define UNSETBITS(dst, b1) \
X dst[0] &= ~b1[0]; \
X dst[1] &= ~b1[1]; \
X dst[2] &= ~b1[2]
X#define ANYSET(src) (src[0] || src[1] || src[2])
X#endif
X#if (mskcnt==4)
X#define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]; dst[2] = src[2];\
X dst[3] = src[3]
X#define CLEARBITS(buf) buf[0] = 0; buf[1] = 0; buf[2] = 0; buf[3] = 0
X#define MASKANDSETBITS(dst, b1, b2) \
X dst[0] = (b1[0] & b2[0]);\
X dst[1] = (b1[1] & b2[1]);\
X dst[2] = (b1[2] & b2[2]);\
X dst[3] = (b1[3] & b2[3])
X#define ORBITS(dst, b1, b2) \
X dst[0] = (b1[0] | b2[0]);\
X dst[1] = (b1[1] | b2[1]);\
X dst[2] = (b1[2] | b2[2]);\
X dst[3] = (b1[3] | b2[3])
X#define UNSETBITS(dst, b1) \
X dst[0] &= ~b1[0]; \
X dst[1] &= ~b1[1]; \
X dst[2] &= ~b1[2]; \
X dst[3] &= ~b1[3]
X#define ANYSET(src) (src[0] || src[1] || src[2] || src[3])
X#endif
X
X#if (mskcnt>4)
X#define COPYBITS(src, dst) bcopy((caddr_t) src, (caddr_t) dst,\
X mskcnt*sizeof(long))
X#define CLEARBITS(buf) bzero((caddr_t) buf, mskcnt*sizeof(long))
X#define MASKANDSETBITS(dst, b1, b2) \
X { int cri; \
X for (cri=0; cri<mskcnt; cri++) \
X dst[cri] = (b1[cri] & b2[cri]) }
X#define ORBITS(dst, b1, b2) \
X { int cri; \
X for (cri=0; cri<mskcnt; cri++) \
X dst[cri] = (b1[cri] | b2[cri]) }
X#define UNSETBITS(dst, b1) \
X { int cri; \
X for (cri=0; cri<mskcnt; cri++) \
X dst[cri] &= ~b1[cri]; }
X#define ANYSET(src) panic("ANYSET not implemented")
X#endif
X
X#endif /* SELECT_H */
SHAR_EOF
$TOUCH -am 0903162990 select_args.h &&
chmod 0664 select_args.h ||
echo "restore of select_args.h failed"
set `wc -c select_args.h`;Wc_c=$1
if test "$Wc_c" != "3646"; then
echo original size 3646, current size $Wc_c
fi
fi
# ============= widgeti.h ==============
if test X"$1" != X"-c" -a -f 'widgeti.h'; then
echo "File already exists: skipping 'widgeti.h'"
else
echo "x - extracting widgeti.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > widgeti.h &&
X/*
X * File: widgeti.h
X *
X * Description: Prototypes and defines for widgeti
X */
X
X#ifndef WIDGET_H
X#define WIDGET_H
X
X#include <X11/Xlib.h>
X#include <X11/Intrinsic.h>
X#include <X11/StringDefs.h>
X#include <X11/Xaw/List.h>
X
X#include "common.h"
X
X#define MaxNumXArgs 20
X
X#define AddArg(arg, val) \
X XtSetArg(arglist[numargs], arg, (XtArgVal)val), numargs ++
X
X#define DeclareArgs \
Xstatic Arg arglist[MaxNumXArgs]; \
Xstatic Cardinal numargs;
X
X/* function prototypes: */
X/* widgeti.c: */
XGlobal Widget init_widgeti P((char *name , char *app_class , int *argcp
, char **argv ));
XGlobal Widget create_form P((Widget parent , Widget fromH , Widget
fromV , int borderWidth ));
XGlobal Widget create_label P((Widget parent , Widget fromH , Widget
fromV , int width , int borderWidth , char *string ));
XGlobal Widget create_command_button P((Widget parent , Widget fromH ,
Widget fromV , char *string , VoidCallback callback , Pointer data ));
XGlobal Widget create_one_of_many_toggle P((char *label , Widget parent
, Widget fromH , Widget fromV , char *strings , VoidCallback callback ));
XGlobal void set_toggle_state P((Widget widget , char *data ));
XGlobal char *get_toggle_state P((Widget widget ));
XGlobal Widget create_viewlist P((Widget parent , Widget fromH , Widget
fromV , char **list , int width , int height , int borderWidth ,
VoidCallback callback , Pointer data ));
XGlobal void set_viewlist P((Widget widget , char **list , int nitems ,
int longest ));
X
X/* end function prototypes */
X
X#endif /* WIDGET_H */
X
SHAR_EOF
$TOUCH -am 0903162990 widgeti.h &&
chmod 0775 widgeti.h ||
echo "restore of widgeti.h failed"
set `wc -c widgeti.h`;Wc_c=$1
if test "$Wc_c" != "1551"; then
echo original size 1551, current size $Wc_c
fi
fi
echo "End of part 4, continue with part 5"
exit 0
dan
----------------------------------------------------
O'Reilly && Associates argv at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.
More information about the Comp.sources.x
mailing list