home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- /*
- * The following source code is part of the Microline Widget Library.
- * The Microline widget library is made available to Mozilla developers
- * under the Netscape Public License (NPL) by Neuron Data. To learn
- * more about Neuron Data, please visit the Neuron Data Home Page at
- * http://www.neurondata.com.
- */
-
-
- #include <XmL/XmL.h>
- #include <XmL/Folder.h>
- #include <XmL/Grid.h>
- #include <XmL/Progress.h>
- #include <XmL/Tree.h>
-
- #include <Xm/Xm.h>
- #include <Xm/DialogS.h>
- #include <Xm/Form.h>
- #include <Xm/Label.h>
- #include <Xm/PushB.h>
- #include <Xm/DrawingA.h>
- #include <Xm/Text.h>
- #include <Xm/ToggleB.h>
- #include <Xm/Protocols.h>
-
- #include <X11/IntrinsicP.h>
- #include <X11/cursorfont.h>
-
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
-
- static void CreateWidgetEdit();
- static Widget AddWidgetSample();
- static void CreateText();
- static void CreatePixmap();
- void AddCoverTabForm();
- void AddIntroTabForm();
- void AddFolderTabForm();
- void AddGridTabForm();
- void AddProgTabForm();
- void AddTreeTabForm();
-
- /*
- Main Window
- */
-
- static void exitCB();
- static void editCB();
- static void folderCB();
-
- #define BOLDFONT "-*-helvetica-bold-r-*--*-100-*-*-*-*-iso8859-1"
-
- main(argc, argv)
- int argc;
- char *argv[];
- {
- XtAppContext context;
- Widget w, shell, form, folder;
- int i;
- XrmDatabase db;
- static String resources[] =
- {
- "*fontList: -*-helvetica-medium-r-*--*-100-*-*-*-*-iso8859-1",
- "*XmText.fontList: -*-helvetica-medium-r-*--*-100-*-*-*-*-iso8859-1",
- "*XmLProgress.fontList: -*-helvetica-bold-r-*--*-100-*-*-*-*-iso8859-1",
- "*background: #D0D0D0",
- "*foreground: black",
- "*topShadowColor: white",
- "*bottomShadowColor: #404040",
- "*XmLGrid.topShadowColor: #F0F0F0",
- "*XmLGrid.selectBackground: #000060",
- "*XmLGrid.selectForeground: white",
- "*XmLProgress.topShadowColor: #E0E0E0",
- "*XmLProgress.bottomShadowColor: #404040",
- "*XmToggleButton.selectColor: blue",
- "*XmToggleButton.marginHeight: 0",
- "*XmToggleButton.spacing: 4",
- "*XmText.marginHeight: 2",
- "*XmForm.marginHeight: 8",
- "*XmForm.marginWidth: 10",
- "*XmForm.horizontalSpacing: 8",
- "*XmForm.verticalSpacing: 10",
- "*XmLabel.marginWidth: 0",
- "*XmLFolder.XmForm.marginHeight: 16",
- "*XmLFolder.XmForm.marginWidth: 16",
- "*XmPushButton.marginHeight: 4",
- "*WidgetEdit*name.foreground: #000060",
- "*WidgetEdit*class.foreground: #000060",
- "*WidgetEdit*XmText.background: white",
- "*XmLTree.blankBackground: white",
- "*XmLTree.selectBackground: #000060",
- "*XmLTree.selectForeground: white",
- "*XmLTree.connectingLineColor: black",
- NULL
- };
-
- shell = XtVaAppInitialize(&context, "Test", NULL, 0,
- #ifdef X11R4
- (Cardinal *)&argc, argv, resources, NULL);
- #else
- (int *)&argc, argv, resources, NULL);
- #endif
-
- /* Force override of the falback resources. Normally, we would
- have an app-default file or similar but since this is a demo,
- we don't want the user to have to set anything up to run */
- db = XtDatabase(XtDisplay(shell));
- i = 0;
- while (resources[i])
- {
- XrmPutLineResource(&db, resources[i]);
- i++;
- }
-
- XtVaSetValues(
- shell,
- XmNtitle, "Microline Widget Library",
- NULL);
-
- form = XtVaCreateWidget("form",
- xmFormWidgetClass, shell,
- XmNshadowThickness, 0,
- NULL);
-
- w = XtVaCreateManagedWidget("Exit",
- xmPushButtonWidgetClass, form,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNwidth, 100,
- NULL);
- XtAddCallback(w, XmNactivateCallback, exitCB, (XtPointer)shell);
-
- w = XtVaCreateManagedWidget("Editor",
- xmPushButtonWidgetClass, form,
- XmNrightAttachment, XmATTACH_WIDGET,
- XmNrightWidget, w,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNwidth, 100,
- NULL);
- XtAddCallback(w, XmNactivateCallback, editCB, NULL);
- CreateWidgetEdit(form);
-
- folder = XtVaCreateManagedWidget("folder",
- xmlFolderWidgetClass, form,
- XmNtopAttachment, XmATTACH_FORM,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, w,
- XmNbottomOffset, 5,
- XmNtabsPerRow, 3,
- NULL);
- AddCoverTabForm(folder);
- AddIntroTabForm(folder);
- AddGridTabForm(folder);
- AddTreeTabForm(folder);
- AddFolderTabForm(folder);
- AddProgTabForm(folder);
-
- XtAddCallback(folder, XmNactivateCallback, folderCB, NULL);
-
- XtManageChild(form);
-
- XtRealizeWidget(shell);
- XtAppMainLoop(context);
- }
-
- static void exitCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- Widget shell;
-
- shell = (Widget)clientData;
- exit(0);
- }
-
- /*
- Widget Editor Functions
- */
-
- static void _getResourceAsString();
- static void _editCB();
- static void _editCommandCB();
- static void _editChooseCB();
- static void _editShowCB();
- static void _editCloseCB();
- static void _wmCloseCB();
-
- Widget _editDialog, _editClassL, _editNameL, _editGrid, _editCommandT;
- Widget _editWidget;
- Boolean _editShowInherited, _editDialogUp;
- int _editRow, _editCol;
-
- static void CreateWidgetEdit(parent)
- Widget parent;
- {
- Widget form, w;
- Widget chooseB, closeB;
- Atom WM_DELETE_WINDOW;
-
- _editWidget = 0;
- _editShowInherited = 0;
- _editDialogUp = False;
-
- _editDialog = XtVaAppCreateShell("WidgetEdit", "WidgetEdit",
- topLevelShellWidgetClass, XtDisplay(parent),
- XtNtitle, "Widget Editor",
- XmNdeleteResponse, XmDO_NOTHING,
- NULL);
-
- WM_DELETE_WINDOW = XmInternAtom(XtDisplay(parent),
- "WM_DELETE_WINDOW", False);
- XmAddWMProtocolCallback(_editDialog, WM_DELETE_WINDOW,
- _wmCloseCB, (XtPointer)_editDialog);
-
- form = XtVaCreateWidget("form",
- xmFormWidgetClass, _editDialog,
- XmNautoUnmanage, False,
- XmNshadowThickness, 0,
- NULL);
-
- /* Top Row */
- w = XtVaCreateManagedWidget("Name:",
- xmLabelWidgetClass, form,
- XmNleftAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_FORM,
- NULL);
- _editNameL = XtVaCreateManagedWidget("name",
- xmLabelWidgetClass, form,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNleftWidget, w,
- XmNtopAttachment, XmATTACH_FORM,
- NULL);
-
- w = XtVaCreateManagedWidget("Class:",
- xmLabelWidgetClass, form,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNleftWidget, _editNameL,
- XmNtopAttachment, XmATTACH_FORM,
- NULL);
- _editClassL = XtVaCreateManagedWidget("class",
- xmLabelWidgetClass, form,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNleftWidget, w,
- XmNtopAttachment, XmATTACH_FORM,
- NULL);
-
- w = XtVaCreateManagedWidget("Show All",
- xmToggleButtonWidgetClass, form,
- XmNtopAttachment, XmATTACH_FORM,
- XmNtopOffset, 4,
- XmNrightAttachment, XmATTACH_FORM,
- NULL);
- XtAddCallback(w, XmNvalueChangedCallback, _editShowCB, 0);
-
- _editGrid = XtVaCreateManagedWidget("Grid",
- xmlGridWidgetClass, form,
- XtVaTypedArg, XmNblankBackground, XmRString, "white", 6,
- XmNcolumns, 4,
- XmNsimpleWidths, "16c 18c 24c 16c",
- XmNvisibleColumns, 9,
- XmNheadingRows, 1,
- XmNvsbDisplayPolicy, XmSTATIC,
- XmNsimpleHeadings, "Class|Type|Resource|Value",
- XmNvisibleRows, 8,
- XmNshadowThickness, 0,
- XmNscrollBarMargin, 4,
- XmNselectionPolicy, XmSELECT_NONE,
- XmNallowColumnResize, True,
- XmNtopAttachment, XmATTACH_WIDGET,
- XmNtopWidget, w,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- NULL);
-
- XtVaSetValues(_editGrid,
- XmNcellDefaults, True,
- XmNcellMarginRight, 2,
- XmNcellAlignment, XmALIGNMENT_LEFT,
- XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
- XmNcellLeftBorderType, XmBORDER_NONE,
- XmNcellRightBorderType, XmBORDER_NONE,
- XmNcellTopBorderType, XmBORDER_NONE,
- XmNcellBottomBorderType, XmBORDER_NONE,
- NULL);
- XtVaSetValues(_editGrid,
- XmNcellDefaults, True,
- XmNcolumn, 3,
- XmNcellEditable, True,
- NULL);
-
- XtAddCallback(_editGrid, XmNeditCallback, _editCB, 0);
-
- w = XtVaCreateManagedWidget("Command",
- xmLabelWidgetClass, form,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNbottomOffset, 11,
- XmNleftAttachment, XmATTACH_FORM,
- NULL);
- _editCommandT = XtVaCreateManagedWidget("editCommandT",
- xmTextWidgetClass, form,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNleftWidget, w,
- NULL);
- XtAddCallback(_editCommandT, XmNactivateCallback, _editCommandCB, 0);
-
- /* Bottom Row */
- chooseB = XtVaCreateManagedWidget("Choose",
- xmPushButtonWidgetClass, form,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginWidth, 18,
- NULL);
- XtAddCallback(chooseB, XmNactivateCallback, _editChooseCB, 0);
- closeB = XtVaCreateManagedWidget("Close",
- xmPushButtonWidgetClass, form,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginWidth, 24,
- NULL);
- XtAddCallback(closeB, XmNactivateCallback, _editCloseCB, 0);
- XtVaSetValues(chooseB,
- XmNrightAttachment, XmATTACH_WIDGET,
- XmNrightWidget, closeB,
- NULL);
- XtVaSetValues(_editCommandT,
- XmNrightAttachment, XmATTACH_WIDGET,
- XmNrightWidget, chooseB,
- NULL);
- XtVaSetValues(_editGrid,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, closeB,
- NULL);
- XtManageChild(form);
- }
-
- static void SetEditWidget(w)
- Widget w;
- {
- WidgetClass wc, superWc;
- XtResourceList resList;
- char className[50], *resName, *resType;
- Cardinal resCount;
- int i, j, n, skip, done, superSize;
- char resVal[50], line[100];
- XmString str;
- char *s;
- static char *skipType[] =
- {
- "Callback",
- 0
- };
-
- _editWidget = w;
- if (_editWidget)
- s = XtName(_editWidget);
- else
- s = "none";
- if (s)
- {
- str = XmStringCreateSimple(s);
- XtVaSetValues(_editNameL, XmNlabelString, str, NULL);
- XmStringFree(str);
- }
- if (_editWidget)
- {
- wc = XtClass(_editWidget);
- s = wc->core_class.class_name;
- }
- else
- s = "none";
- if (s)
- {
- str = XmStringCreateSimple(s);
- XtVaSetValues(_editClassL, XmNlabelString, str, NULL);
- XmStringFree(str);
- }
- if (!_editWidget)
- {
- XmLGridDeleteAllRows(_editGrid, XmCONTENT);
- return;
- }
- n = 0;
- done = 0;
- XtVaSetValues(_editGrid, XmNlayoutFrozen, True, NULL);
- XmLGridDeleteAllRows(_editGrid, XmCONTENT);
- while (!done)
- {
- if (!wc)
- {
- wc = XtClass(XtParent(_editWidget));
- XtGetConstraintResourceList(wc, &resList, &resCount);
- sprintf(className, "%s [C]", wc->core_class.class_name);
- superSize = 0;
- done = 1;
- }
- else
- {
- XtGetResourceList(wc, &resList, &resCount);
- sprintf(className, wc->core_class.class_name);
- superWc = wc->core_class.superclass;
- if (superWc)
- superSize = superWc->core_class.widget_size;
- }
- for (i = 0; i < resCount; i++)
- {
- resName = resList[i].resource_name;
- resType = resList[i].resource_type;
- if (resList[i].resource_offset < superSize)
- continue;
- skip = 0;
- for (j = 0; skipType[j]; j++)
- if (!strcmp(skipType[j], resType))
- skip = 1;
- if (skip)
- continue;
- _getResourceAsString(resName, resType, resVal);
- sprintf(line, "%s|%s|%s|%s", className, resType, resName, resVal);
- XmLGridAddRows(_editGrid, XmCONTENT, -1, 1);
- XmLGridSetStringsPos(_editGrid, XmCONTENT, n, XmCONTENT, 0, line);
- n++;
- }
- wc = wc->core_class.superclass;
- XtFree((char *)resList);
- if (_editShowInherited == False)
- done = 1;
- }
- XtVaSetValues(_editGrid, XmNlayoutFrozen, False, NULL);
- }
-
- static void _getResourceAsString(res, type, str)
- char *res;
- char *type;
- char *str;
- {
- Boolean bool;
- Dimension dimension;
- int i;
- static char *skipRes[] =
- {
- XmNrowExpands,
- XmNrowIsExpanded,
- XmNrowHeight,
- XmNrowLevel,
- XmNcolumnWidth,
- XmNcellColumnSpan,
- XmNcellEditable,
- XmNcellMarginBottom,
- XmNcellMarginLeft,
- XmNcellMarginRight,
- XmNcellMarginTop,
- XmNcellRowSpan,
- XmNcellToggleSet,
- 0
- };
-
- for (i = 0; skipRes[i]; i++)
- if (!strcmp(skipRes[i], res))
- {
- sprintf(str, "");
- return;
- }
- if (!strcmp(type, XmRInt))
- {
- XtVaGetValues(_editWidget, res, &i, NULL);
- sprintf(str, "%d", i);
- }
- else if (!strcmp(type, XmRDimension))
- {
- XtVaGetValues(_editWidget, res, &dimension, NULL);
- sprintf(str, "%d", (int)dimension);
- }
- else if (!strcmp(type, XmRBoolean))
- {
- XtVaGetValues(_editWidget, res, &bool, NULL);
- if (bool == True)
- sprintf(str, "True");
- else
- sprintf(str, "False");
- }
- else
- sprintf(str, "");
- }
-
- static void _editCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- XmLGridCallbackStruct *cbs;
- int resRow, rowType, row, rowEnd, colType, col, colEnd;
- XmLGridRow rowp;
- XmLGridColumn colp;
- XmString resStr, valStr;
- char *s, *resS, *valS;
- static char *emptyValS = "";
-
- cbs = (XmLGridCallbackStruct *)callData;
- if (cbs->reason != XmCR_EDIT_COMPLETE)
- return;
- resRow = cbs->row;
-
- /* get resource and value */
- rowp = XmLGridGetRow(_editGrid, XmCONTENT, resRow);
- colp = XmLGridGetColumn(_editGrid, XmCONTENT, 2);
- XtVaGetValues(_editGrid,
- XmNrowPtr, rowp,
- XmNcolumnPtr, colp,
- XmNcellString, &resStr,
- NULL);
- if (!resStr)
- resS = 0;
- else
- XmStringGetLtoR(resStr, XmSTRING_DEFAULT_CHARSET, &resS);
- colp = XmLGridGetColumn(_editGrid, XmCONTENT, 3);
- XtVaGetValues(_editGrid,
- XmNrowPtr, rowp,
- XmNcolumnPtr, colp,
- XmNcellString, &valStr,
- NULL);
- if (!valStr)
- valS = emptyValS;
- else
- XmStringGetLtoR(valStr, XmSTRING_DEFAULT_CHARSET, &valS);
-
- if (XmLIsGrid(_editWidget))
- XtVaSetValues(_editWidget,
- XmNrow, _editRow,
- XmNcolumn, _editCol,
- XtVaTypedArg, resS,
- XmRString, valS, strlen(valS) + 1,
- NULL);
- else
- XtVaSetValues(_editWidget,
- XtVaTypedArg, resS,
- XmRString, valS, strlen(valS) + 1,
- NULL);
-
- if (resS)
- XtFree(resS);
- if (resStr)
- XmStringFree(resStr);
- if (valS != emptyValS)
- XtFree(valS);
- if (valStr)
- XmStringFree(valStr);
- }
-
- static void _editCommandCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- char op[40], *cmd;
- int *rowPos, *colPos, *newPos;
- int i, l1, l2, l3, l4, n, count;
- XmString str;
-
- cmd = XmTextGetString(_editCommandT);
- if (_editWidget && XmLIsGrid(_editWidget))
- {
- n = sscanf(cmd, "%s %d %d %d %d", op, &l1, &l2, &l3, &l4);
- /* Tree commands */
- if (!strcmp(op, "addTreeRow") && n == 5)
- {
- str = XmStringCreateSimple("New Node");
- XmLTreeAddRow(_editWidget, l1, (Boolean)l2, (Boolean)l3, l4,
- XmUNSPECIFIED_PIXMAP, XmUNSPECIFIED_PIXMAP, str);
- XmStringFree(str);
- }
- /* Grid commands */
- else if (!strcmp(op, "addHRows") && n == 3)
- XmLGridAddRows(_editWidget, XmHEADING, l1, l2);
- else if (!strcmp(op, "addFRows") && n == 3)
- XmLGridAddRows(_editWidget, XmFOOTER, l1, l2);
- else if (!strcmp(op, "addRows") && n == 3)
- XmLGridAddRows(_editWidget, XmCONTENT, l1, l2);
- else if (!strcmp(op, "addHColumns") && n == 3)
- XmLGridAddColumns(_editWidget, XmHEADING, l1, l2);
- else if (!strcmp(op, "addFColumns") && n == 3)
- XmLGridAddColumns(_editWidget, XmFOOTER, l1, l2);
- else if (!strcmp(op, "addColumns") && n == 3)
- XmLGridAddColumns(_editWidget, XmCONTENT, l1, l2);
- else if (!strcmp(op, "deleteHRows") && n == 3)
- XmLGridDeleteRows(_editWidget, XmHEADING, l1, l2);
- else if (!strcmp(op, "deleteFRows") && n == 3)
- XmLGridDeleteRows(_editWidget, XmFOOTER, l1, l2);
- else if (!strcmp(op, "deleteRows") && n == 3)
- XmLGridDeleteRows(_editWidget, XmCONTENT, l1, l2);
- else if (!strcmp(op, "deleteHColumns") && n == 3)
- XmLGridDeleteColumns(_editWidget, XmHEADING, l1, l2);
- else if (!strcmp(op, "deleteFColumns") && n == 3)
- XmLGridDeleteColumns(_editWidget, XmFOOTER, l1, l2);
- else if (!strcmp(op, "deleteColumns") && n == 3)
- XmLGridDeleteColumns(_editWidget, XmCONTENT, l1, l2);
- else if (!strcmp(op, "copyPos") && n == 3)
- XmLGridCopyPos(_editWidget, CurrentTime, XmCONTENT,
- l1, XmCONTENT, l2, 3, 3);
- else if (!strcmp(op, "copySelected") && n == 1)
- XmLGridCopySelected(_editWidget, CurrentTime);
- else if (!strcmp(op, "paste") && n == 1)
- XmLGridPaste(_editWidget);
- else if (!strcmp(op, "pastePos") && n == 3)
- XmLGridPastePos(_editWidget, XmCONTENT, l1, XmCONTENT, l2);
- else if (!strcmp(op, "moveColumns") && n == 1)
- XmLGridMoveColumns(_editWidget, 3, 1, 2);
- else if (!strcmp(op, "moveRows") && n == 1)
- XmLGridMoveRows(_editWidget, 3, 1, 2);
- else if (!strcmp(op, "printSelected") && n == 1)
- {
- printf ("--- Current Selections ---\n");
- count = XmLGridGetSelectedRowCount(_editWidget);
- if (count)
- {
- rowPos = (int *)malloc(sizeof(int) * count);
- XmLGridGetSelectedRows(_editWidget, rowPos, count);
- printf ("Selected Rows: ");
- for (i = 0; i < count; i++)
- printf ("%d ", rowPos[i]);
- printf ("\n");
- free((char *)rowPos);
- }
-
- count = XmLGridGetSelectedColumnCount(_editWidget);
- if (count)
- {
- colPos = (int *)malloc(sizeof(int) * count);
- XmLGridGetSelectedColumns(_editWidget, colPos, count);
- printf ("Selected Columns: ");
- for (i = 0; i < count; i++)
- printf ("%d ", colPos[i]);
- printf ("\n");
- free((char *)colPos);
- }
-
- count = XmLGridGetSelectedCellCount(_editWidget);
- if (count)
- {
- colPos = (int *)malloc(sizeof(int) * count);
- rowPos = (int *)malloc(sizeof(int) * count);
- XmLGridGetSelectedCells(_editWidget, rowPos, colPos, count);
- printf ("Selected Cells: ");
- for (i = 0; i < count; i++)
- printf ("[%d %d] ", rowPos[i], colPos[i]);
- printf ("\n");
- free((char *)colPos);
- free((char *)rowPos);
- }
- }
- else if (!strcmp(op, "setCell") && n == 3)
- {
- printf ("WidgetEdit: set row %d col %d\n", l1, l2);
- _editRow = l1;
- _editCol = l2;
- }
- else if (!strcmp(op, "reorderColumns") && n == 1)
- {
- XtVaGetValues(_editWidget,
- XmNcolumns, &count,
- NULL);
- newPos = (int *)malloc(count * sizeof(int));
- for (i = 0; i < count; i++)
- newPos[i] = i + 1;
- newPos[count - 1] = 0;
- XmLGridReorderColumns(_editWidget, newPos, 0, count);
- free((char *)newPos);
- }
- else if (!strcmp(op, "reorderRows") && n == 1)
- {
- XtVaGetValues(_editWidget,
- XmNrows, &count,
- NULL);
- newPos = (int *)malloc(count * sizeof(int));
- for (i = 0; i < count; i++)
- newPos[i] = i + 1;
- newPos[count - 1] = 0;
- XmLGridReorderRows(_editWidget, newPos, 0, count);
- free((char *)newPos);
- }
- else if (!strcmp(op, "write") && n == 1)
- XmLGridWrite(_editWidget, stdout, XmFORMAT_DELIMITED, '|', True);
- else if (!strcmp(op, "writeXL") && n == 1)
- XmLGridWrite(_editWidget, stdout, XmFORMAT_XL, 0, True);
- else if (!strcmp(op, "writePAD") && n == 1)
- XmLGridWrite(_editWidget, stdout, XmFORMAT_PAD, 0, True);
- else if (!strcmp(op, "writePos") && n == 3)
- XmLGridWritePos(_editWidget, stdout, XmFORMAT_DELIMITED, '|',
- True, XmCONTENT, 0, XmCONTENT, 0, l1, l2);
- else
- fprintf(stderr, "WidgetEdit: unknown command %s\n", cmd);
- }
- XtFree(cmd);
- XmTextSetString(_editCommandT, "");
- }
-
- static void _editChooseCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- Cursor cursor;
- Widget editW;
-
- cursor = XCreateFontCursor(XtDisplay(w), XC_hand2);
- editW = XmTrackingLocate(w, cursor, False);
- if (editW)
- SetEditWidget(editW);
- XFreeCursor(XtDisplay(w), cursor);
- }
-
- static void _editShowCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- XmToggleButtonCallbackStruct *cbs;
-
- cbs = (XmToggleButtonCallbackStruct *)callData;
- _editShowInherited = cbs->set;
- SetEditWidget(_editWidget);
- }
-
- static void _wmCloseCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- XtPopdown(XmLShellOfWidget((Widget)clientData));
- _editDialogUp = False;
- }
-
- static void _editCloseCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- XtPopdown(XmLShellOfWidget(w));
- _editDialogUp = False;
- }
-
- /*
- Callbacks which manipulate the Widget Editor
- */
-
- static void folderCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- XmLFolderCallbackStruct *cbs;
- extern Widget _folder, _grid, _progress, _tree;
-
- cbs = (XmLFolderCallbackStruct *)callData;
- switch (cbs->pos)
- {
- case 2:
- _editWidget = _grid;
- break;
- case 3:
- _editWidget = _tree;
- break;
- case 4:
- _editWidget = _folder;
- break;
- case 5:
- _editWidget = _progress;
- break;
- default:
- _editWidget = 0;
- break;
- }
- if (_editDialogUp == True)
- SetEditWidget(_editWidget);
- }
-
- static void editCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- SetEditWidget(_editWidget);
- XtPopup(_editDialog, XtGrabNone);
- _editDialogUp = True;
- }
-
- /*
- Utility to add a sample tab and form to a folder, returning the form in
- the sample Folder created.
- */
-
- static Widget AddWidgetSample(folder, name, desc)
- Widget folder;
- char *name, *desc;
- {
- Widget form, sampleFolder, sampleForm;
- XmString str;
- char buf[20];
- int i;
-
- sprintf(buf, "%s Widget", name);
- str = XmStringCreateSimple(buf);
- form = XmLFolderAddTabForm(folder, str);
- XmStringFree(str);
- sampleFolder = XtVaCreateManagedWidget("sampleFolder",
- xmlFolderWidgetClass, form,
- XmNtabPlacement, XmFOLDER_RIGHT,
- XmNleftAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_POSITION,
- XmNbottomPosition, 55,
- XmNtabsPerRow, 3,
- NULL);
- for (i = 0; i < 3; i++)
- {
- if (!i)
- sprintf(buf, "%s One", name);
- else if (i == 1)
- sprintf(buf, "%s Two", name);
- else
- sprintf(buf, "%s Three", name);
- str = XmStringCreateSimple(buf);
- XmLFolderAddTab(sampleFolder, str);
- XmStringFree(str);
- }
- sampleForm = XtVaCreateManagedWidget("sampleForm",
- xmFormWidgetClass, sampleFolder,
- NULL);
- CreateText(form, desc, sampleFolder, 1);
- return sampleForm;
- }
-
- static void CreateText(form, data, topWidget, scrollVert)
- Widget form;
- char *data;
- Widget topWidget;
- int scrollVert;
- {
- Widget text, sb;
- int n;
- Arg args[20];
-
- XtSetArg(args[0], XmNleftAttachment, XmATTACH_FORM);
- XtSetArg(args[1], XmNrightAttachment, XmATTACH_FORM);
- XtSetArg(args[2], XmNbottomAttachment, XmATTACH_FORM);
- XtSetArg(args[3], XmNwordWrap, True);
- XtSetArg(args[4], XmNscrollHorizontal, False);
- XtSetArg(args[5], XmNeditMode, XmMULTI_LINE_EDIT);
- XtSetArg(args[6], XmNeditable, False);
- XtSetArg(args[7], XmNcursorPositionVisible, False);
- XtSetArg(args[8], XmNhighlightThickness, 0);
- XtSetArg(args[9], XmNtopAttachment, XmATTACH_WIDGET);
- XtSetArg(args[10], XmNtopWidget, topWidget);
- n = 11;
- if (!scrollVert)
- {
- XtSetArg(args[11], XmNscrollVertical, False);
- n = 12;
- }
- text = XmCreateScrolledText(form, "text", args, n);
- XmTextSetString(text, data);
- XtManageChild(text);
- XtVaSetValues(text,
- XtVaTypedArg, XmNbackground, XmRString, "#D0D0D0", 8,
- XtVaTypedArg, XmNforeground, XmRString, "black", 6,
- XmNshadowThickness, 0,
- NULL);
- if (scrollVert)
- {
- XtVaGetValues(XtParent(text),
- XmNverticalScrollBar, &sb,
- NULL);
- XtVaSetValues(sb,
- XmNshadowThickness, 2,
- NULL);
- }
- #ifndef MOTIF11
- /* multiple drop site in the same area conflict with one another */
- /* even if they are unmanaged - a Motif bug */
- XmDropSiteUnregister(text);
- #endif
- }
-
- static void CreatePixmap(w, color, pixmap, pixmask, bits, width, height)
- Widget w;
- int color;
- Pixmap *pixmap, *pixmask;
- char *bits;
- int width, height;
- {
- Display *dpy;
- Window root;
- int depth;
- XColor col;
- Pixel black, white, fg, bg;
-
- dpy = XtDisplay(w);
- root = DefaultRootWindow(dpy);
- depth = DefaultDepthOfScreen(XtScreen(w));
- black = BlackPixelOfScreen(XtScreen(w));
- white = WhitePixelOfScreen(XtScreen(w));
- XtVaGetValues(w,
- XmNbackground, &bg,
- NULL);
- col.red = 0;
- col.green = 0;
- col.blue = 0;
- if (color == 0)
- fg = white;
- else if (color == 1)
- fg = black;
- else
- {
- if (color == 2)
- col.green = 40000;
- else if (color == 3)
- col.red = 45000;
- else if (color == 4)
- col.blue = 30000;
- col.flags = DoRed | DoGreen | DoBlue;
- XAllocColor(dpy, DefaultColormapOfScreen(XtScreen(w)), &col);
- fg = col.pixel;
- }
- *pixmap = XCreatePixmapFromBitmapData(dpy, root, bits,
- width, height, fg, bg, depth);
- *pixmask = XCreatePixmapFromBitmapData(dpy, root, bits,
- width, height, 1L, 0L, 1);
- }
-
- /*
- Cover Tab Form
- */
-
- #define cover_width 230
- #define cover_height 240
- static unsigned char cover_bits[] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x01,0x00,0xc0,0x0f,0x00,0x00,0xe0,0x00,0x80,0x03,0x00,0x00,0x3c,0x00,0x00,
- 0x00,0x00,0x38,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x80,0xff,0x01,
- 0x00,0x30,0x1c,0x00,0x00,0xe0,0x00,0x80,0x01,0x00,0x00,0x3e,0x00,0x00,0x00,
- 0x00,0x18,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x60,0xe0,0x01,0x00,
- 0x0c,0x38,0x00,0x00,0x20,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x00,0x00,0x00,
- 0x18,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x10,0xe0,0x00,0x00,0x06,
- 0x78,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x1c,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x10,0xd0,0x00,0x00,0x03,0x70,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x18,0xd8,0x00,0x80,0x01,0x70,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x18,0xc8,0x00,0x80,0x01,0x70,0x18,0x08,
- 0x30,0xe0,0xc0,0xe0,0x01,0x60,0x00,0x00,0x3c,0x00,0x0f,0x0c,0x1e,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x18,0xc4,0x00,0xc0,0x01,0x70,0x1e,0x0e,0x3c,
- 0xf0,0xe1,0xf0,0x01,0x70,0x00,0x00,0x7f,0xc0,0x1f,0x0e,0x1f,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x38,0xc6,0x00,0xc0,0x00,0xf0,0x0d,0x06,0x1b,0x8c,
- 0x61,0x98,0x00,0x70,0x00,0x80,0x79,0x60,0x1e,0x86,0x09,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x08,0xc3,0x00,0xe0,0x00,0x70,0x0c,0x06,0x18,0x8e,0x60,
- 0x04,0x00,0x30,0x00,0xe0,0x70,0x38,0x1c,0x46,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0xe1,0x00,0xe0,0x00,0x70,0x0e,0x07,0x1c,0x06,0x70,0x03,
- 0x00,0x30,0x00,0x60,0x70,0x18,0x1c,0x37,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x80,0xe1,0x00,0xe0,0x00,0x30,0x06,0x03,0x1c,0x07,0xf0,0x01,0x00,
- 0x30,0x00,0x70,0x70,0x1c,0x1c,0x1f,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0xc0,0xff,0x00,0xe0,0x00,0x38,0x06,0x03,0x0c,0x07,0xf0,0x01,0x00,0x38,
- 0x00,0x30,0x70,0x0c,0x1c,0x1f,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x60,0xe0,0x00,0xe0,0x00,0x18,0x86,0x03,0x0c,0x03,0xb0,0x03,0x00,0x18,0x00,
- 0x39,0x30,0x0e,0x0c,0x3b,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x20,
- 0xe0,0x00,0xe0,0x00,0x18,0x87,0x01,0x8e,0x03,0x38,0x03,0x00,0x18,0x80,0x39,
- 0x38,0x0e,0x8e,0x33,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x10,0x60,
- 0x00,0xe0,0x00,0x0c,0x83,0x01,0x8e,0x03,0x38,0x03,0x00,0x0c,0x80,0x38,0x18,
- 0x0e,0x86,0x33,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x1c,0x60,0x00,
- 0xc0,0x01,0x06,0xc3,0x11,0x86,0x03,0x19,0x07,0x00,0x04,0xe0,0x38,0x0c,0x0e,
- 0x83,0x71,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc0,0x0f,0xe0,0x0c,0xc0,
- 0x01,0x03,0xb3,0x0d,0xe6,0xc3,0x18,0x06,0x80,0xff,0x7f,0x78,0x06,0x9e,0x81,
- 0x61,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc0,0x07,0xe0,0x07,0x80,0xc7,
- 0x81,0xcf,0x03,0x9f,0x3f,0x1c,0x0e,0xc0,0xff,0x7f,0xf8,0x03,0xfe,0xc0,0xe1,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xe0,0x01,0x70,0x00,0x00,0xff,0x01,
- 0xc3,0x00,0x06,0x0f,0x0c,0x0c,0xe0,0xff,0x3f,0xf0,0x00,0x3c,0xc0,0xc0,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,
- 0x00,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x04,0x00,
- 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x04,0x00,0x00,
- 0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x04,0x00,0x00,0x00,
- 0x00,0x70,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x0e,0x00,0x00,0x00,0x00,
- 0xe0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x03,0x00,0x00,0x00,0x00,0x80,
- 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0c,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
- 0x00,0x18,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,
- 0x18,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x1c,
- 0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x01,0x03,0x00,0x0c,0x30,
- 0x38,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x07,0x03,0x00,0x0c,0x38,0x3c,
- 0xd8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0xe1,0x7f,0x80,0xff,0x39,0x3b,0xc6,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x91,0x03,0x40,0x0e,0xd8,0x38,0xc7,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x83,0x81,0x01,0x00,0x06,0x38,0x18,0xe3,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0xc3,0x81,0x01,0x00,0x06,0x1c,0x9c,0x33,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x80,0xc1,0xc0,0x01,0x00,0x07,0x0c,0x9c,0x1b,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0xc1,0xc0,0x01,0x00,0x07,0x0c,0xcc,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0xe1,0xc0,0x00,0x00,0x03,0x0c,0xcc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0xe1,0xc0,0x00,0x00,0x03,0x0e,0xce,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x71,
- 0xe4,0x10,0x80,0x43,0x06,0xce,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x6d,0xe3,
- 0x0c,0x80,0x33,0x06,0xee,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xe3,0xe0,0x03,
- 0x80,0x0f,0x07,0xde,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x31,0xc0,0x00,0x00,
- 0x03,0x01,0x86,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x3f,0xc0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0xc0,0xfc,0xff,0xff,0xff,0xff,0x3f,0xf8,0xff,0xff,0xff,0x1f,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0xc0,0x0c,0xfe,0x1f,0x3e,0xfc,0x07,0xe3,0x0f,0x00,0xff,0x03,0xf0,0x1f,
- 0xfe,0x0f,0x1f,0xfe,0xcf,0x07,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0xc0,0x0c,0xfe,0x1f,0x3e,0xfc,0xc3,0xdf,0x0f,0x1f,0xfc,0xf1,0xc3,0x1f,0xfe,
- 0x0f,0x1f,0xfc,0xcf,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,
- 0x0c,0xfc,0x0f,0x3e,0xfc,0xf1,0x9f,0x0f,0x3f,0xfc,0xf8,0x87,0x1f,0xfe,0x0f,
- 0x1f,0xfc,0xcf,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0x0c,
- 0xfc,0x0f,0x3e,0xfc,0xf8,0x3f,0x0f,0x7f,0x7c,0xf8,0x0f,0x1f,0xfe,0x0f,0x1f,
- 0xf8,0xcf,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0x0c,0xf8,
- 0x07,0x3e,0x7c,0xf8,0x7f,0x0e,0x7f,0x78,0xfc,0x0f,0x1f,0xfe,0x0f,0x1f,0xf0,
- 0xcf,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0x0c,0xf8,0x07,
- 0x3e,0x7c,0xfc,0xff,0x0f,0x7f,0x38,0xfc,0x1f,0x1e,0xfe,0x0f,0x9f,0xf0,0xcf,
- 0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0x4c,0xf8,0x17,0x3e,
- 0x3c,0xfc,0xff,0x0f,0x7f,0x38,0xfe,0x1f,0x1e,0xfe,0x0f,0x9f,0xe0,0xcf,0x87,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0x4c,0xf0,0x13,0x3e,0x3c,
- 0xfc,0xff,0x0f,0x7f,0x18,0xfe,0x1f,0x1e,0xfe,0x0f,0x9f,0xc1,0xcf,0x87,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0xf0,0x13,0x3e,0x3c,0xfc,
- 0xff,0x0f,0x7f,0x18,0xfe,0x1f,0x1c,0xfe,0x0f,0x9f,0x83,0xcf,0x87,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0xe0,0x19,0x3e,0x1c,0xfe,0xff,
- 0x0f,0x3f,0x1c,0xfe,0x1f,0x1c,0xfe,0x0f,0x9f,0x83,0xcf,0x87,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0xe1,0x19,0x3e,0x1c,0xfe,0xff,0x0f,
- 0x1f,0x1c,0xfe,0x3f,0x1c,0xfe,0x0f,0x9f,0x07,0xcf,0x07,0x80,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0xe1,0x1d,0x3e,0x1c,0xfe,0xff,0x0f,0x01,
- 0x1f,0xfe,0x3f,0x1c,0xfe,0x0f,0x9f,0x0f,0xce,0x07,0x80,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0xc0,0xcc,0xc1,0x1c,0x3e,0x1c,0xfe,0xff,0x0f,0xc3,0x1f,
- 0xfe,0x3f,0x1c,0xfe,0x0f,0x9f,0x0f,0xce,0x87,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x3f,0xc0,0xcc,0xc3,0x1c,0x3e,0x1c,0xfe,0xff,0x0f,0xc3,0x1f,0xfe,
- 0x3f,0x1c,0xfe,0x0f,0x9f,0x1f,0xcc,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0xc0,0xcc,0x03,0x1e,0x3e,0x1c,0xfc,0xff,0x0f,0x87,0x1f,0xfe,0x1f,
- 0x1c,0xfe,0x0f,0x9f,0x3f,0xc8,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0xc0,0xcc,0x07,0x1e,0x3e,0x1c,0xfc,0xff,0x0f,0x87,0x1f,0xfe,0x1f,0x1e,
- 0xfe,0x0f,0x9f,0x7f,0xc8,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0xc0,0xcc,0x07,0x1e,0x3e,0x3c,0xfc,0xff,0x0f,0x0f,0x3f,0xfe,0x1f,0x1e,0xfe,
- 0x0f,0x9f,0x7f,0xc0,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,
- 0xcc,0x07,0x1f,0x3e,0x3c,0xfc,0xff,0x0c,0x0f,0x3f,0xfc,0x1f,0x1e,0xfe,0x0f,
- 0x9f,0xff,0xc0,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,
- 0x0f,0x1f,0x3e,0x7c,0xf8,0x7f,0x0e,0x1f,0x3e,0xfc,0x0f,0x1f,0xfe,0x0f,0x9f,
- 0xff,0xc1,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0x8f,
- 0x1f,0x3e,0xfc,0xf0,0x3f,0x0f,0x1f,0x7e,0xfc,0x8f,0x1f,0xfe,0x0f,0x9f,0xff,
- 0xc1,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0x9f,0x1f,
- 0x3e,0xfc,0xe0,0x1f,0x0f,0x3f,0xfc,0xf8,0x87,0x1f,0xfe,0x0f,0x9f,0xff,0xc3,
- 0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0x9f,0x1f,0x3e,
- 0xfc,0x83,0x87,0x0f,0x3f,0xfc,0xf1,0xc3,0x1f,0x00,0x0c,0x9f,0xff,0xc7,0x07,
- 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xcc,0xff,0x1f,0x3e,0xfc,
- 0x07,0xe0,0x0f,0x7f,0xf8,0x03,0xf0,0x1f,0x00,0x0c,0x9f,0xff,0xc7,0x07,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xf0,0x07,0xf8,0x03,0xfc,0xf9,0x81,0xff,0xff,0x00,
- 0x00,0xf8,0x0f,0x00,0xfc,0xff,0x7f,0xfe,0xff,0xff,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0xe0,0x07,0xf8,0x03,0xfc,0xf8,0x81,0xff,0xff,0x03,0x00,
- 0xff,0x7f,0x00,0xfc,0xff,0x7f,0xfe,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0xe0,0x07,0xf8,0x07,0xfc,0xf8,0x81,0xff,0xff,0x0f,0x80,0xff,
- 0xff,0x01,0xfc,0xff,0x7f,0xfe,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0xe0,0x0f,0xf8,0x07,0xfc,0xf8,0x81,0xff,0xff,0x1f,0xc0,0xff,0xff,
- 0x03,0xfc,0xff,0x7f,0xfe,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0xc0,0x0f,0xfc,0x07,0x7e,0xf8,0x81,0x1f,0xc0,0x3f,0xe0,0x0f,0xf8,0x07,
- 0xfc,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0xc0,0x0f,0xfc,0x07,0x7e,0xf8,0x81,0x1f,0x00,0x3f,0xf0,0x07,0xe0,0x0f,0xfc,
- 0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,
- 0x0f,0xbc,0x0f,0x7e,0xf8,0x81,0x1f,0x00,0x7f,0xf8,0x03,0xc0,0x0f,0xfc,0x00,
- 0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x80,0x1f,
- 0xbc,0x0f,0x3e,0xf8,0x81,0x1f,0x00,0x7e,0xf8,0x01,0x00,0x00,0xfc,0x00,0x00,
- 0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x80,0x1f,0xbe,
- 0x0f,0x3f,0xf8,0x81,0x1f,0x00,0xfe,0xf8,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,
- 0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x80,0x1f,0xbe,0x0f,
- 0x3f,0xf8,0x81,0x1f,0x00,0xfc,0xfc,0x00,0x00,0x00,0xfc,0xff,0x3f,0x00,0xfc,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x1f,0x1e,0x1f,0x1f,
- 0xf8,0x81,0x1f,0x00,0xfc,0xfc,0x00,0xfe,0x0f,0xfc,0xff,0x3f,0x00,0xfc,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x3f,0x1e,0x1f,0x1f,0xf8,
- 0x81,0x1f,0x00,0xfc,0xfc,0x00,0xfe,0x0f,0xfc,0xff,0x3f,0x00,0xfc,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x3f,0x1f,0x9f,0x1f,0xf8,0x81,
- 0x1f,0x00,0xfc,0xfc,0x00,0xfe,0x0f,0xfc,0xff,0x3f,0x00,0xfc,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x3e,0x1f,0x9e,0x0f,0xf8,0x81,0x1f,
- 0x00,0xfc,0xfc,0x00,0xfe,0x0f,0xfc,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x7e,0x0f,0xbe,0x0f,0xf8,0x81,0x1f,0x00,
- 0xfc,0xfc,0x01,0x80,0x0f,0xfc,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x7e,0x0f,0xbe,0x0f,0xf8,0x81,0x1f,0x00,0x7e,
- 0xf8,0x01,0x80,0x0f,0xfc,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0xfc,0x0f,0xfc,0x07,0xf8,0x81,0x1f,0x00,0x7f,0xf8,
- 0x03,0xc0,0x0f,0xfc,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0xfc,0x07,0xfc,0x07,0xf8,0x81,0x1f,0x00,0x3f,0xf0,0x07,
- 0xe0,0x0f,0xfc,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0xf8,0x07,0xfc,0x07,0xf8,0x81,0x1f,0xc0,0x3f,0xe0,0x1f,0xf8,
- 0x0f,0xfc,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0xf8,0x07,0xfc,0x03,0xf8,0x81,0xff,0xff,0x1f,0xc0,0xff,0xff,0x0f,
- 0xfc,0xff,0xff,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0xf8,0x07,0xf8,0x03,0xf8,0x81,0xff,0xff,0x0f,0x80,0xff,0x7f,0x0f,0xfc,
- 0xff,0xff,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0xf0,0x03,0xf8,0x03,0xf8,0x81,0xff,0xff,0x03,0x00,0xfe,0x3f,0x0f,0xfc,0xff,
- 0xff,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xf0,
- 0x03,0xf8,0x01,0xf8,0x81,0xff,0xff,0x00,0x00,0xf0,0x07,0x0f,0xfc,0xff,0xff,
- 0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x01,0x00,0x3c,0xf0,0xff,0x07,0xe0,0xff,0x0f,0x00,0x80,0x03,0x00,0xfe,
- 0xff,0xe1,0x03,0x00,0x38,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x01,0x00,0x3c,0xf0,0x00,0x1f,0xe0,0x01,0x3f,0x00,0x80,0x03,0x00,0x1e,0xe0,
- 0xc3,0x07,0x00,0x1c,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,
- 0x00,0x3c,0xf0,0x00,0x3c,0xe0,0x01,0x78,0x00,0xc0,0x07,0x00,0x1e,0x80,0x8f,
- 0x0f,0x00,0x0e,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,
- 0x3c,0xf0,0x00,0x3c,0xe0,0x01,0xf8,0x00,0xc0,0x07,0x00,0x1e,0x00,0x0f,0x1f,
- 0x00,0xe7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,
- 0xf0,0x00,0x3c,0xe0,0x01,0xf0,0x00,0x60,0x0f,0x00,0x1e,0x00,0x0f,0x1e,0x80,
- 0x43,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,
- 0x00,0x3c,0xe0,0x01,0xf0,0x00,0x30,0x1f,0x00,0x1e,0x00,0x0f,0x3c,0x80,0x41,
- 0xc5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0x00,
- 0x3c,0xe0,0x01,0x78,0x00,0x30,0x1e,0x00,0x1e,0x00,0x0f,0x78,0xc0,0x01,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0x00,0x1c,
- 0xe0,0x01,0x78,0x00,0x18,0x3c,0x00,0x1e,0x80,0x07,0xf8,0xe0,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0x80,0x07,0xe0,
- 0x01,0x3e,0x00,0x18,0x3c,0x00,0x1e,0xc0,0x03,0xf0,0x61,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0xff,0x00,0xe0,0xff,
- 0x07,0x00,0x0c,0x78,0x00,0xfe,0x7f,0x00,0xe0,0x19,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0xc0,0x0f,0xe0,0x7f,0x00,
- 0x00,0x0c,0xf8,0x00,0xfe,0x07,0x00,0xc0,0x1f,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0x00,0x1e,0xe0,0xfd,0x00,0x00,
- 0xfe,0xff,0x00,0x9e,0x0f,0x00,0x80,0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0x00,0x7c,0xe0,0xf9,0x00,0x00,0xff,
- 0xff,0x01,0x1e,0x1f,0x00,0x00,0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x01,0x00,0x3c,0xf0,0x00,0x78,0xe0,0xf1,0x03,0x00,0x03,0xe0,
- 0x01,0x1e,0x3e,0x00,0x00,0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x01,0x00,0x3c,0xf0,0x00,0x78,0xe0,0xc1,0x07,0x80,0x01,0xc0,0x03,
- 0x1e,0x78,0x00,0x00,0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x01,0x00,0x3c,0xf0,0x00,0x78,0xe0,0x81,0x07,0x80,0x01,0xc0,0x03,0x1e,
- 0xf0,0x00,0x00,0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x01,0x00,0x3c,0xf0,0x00,0x78,0xe0,0x01,0x1f,0xc0,0x00,0x80,0x07,0x1e,0xe0,
- 0x03,0x00,0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,
- 0x00,0x3c,0xf0,0x00,0x78,0xe0,0x01,0x3e,0xe0,0x00,0x00,0x0f,0x1e,0xc0,0x07,
- 0x00,0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,
- 0x3c,0xf0,0x00,0x3c,0xe0,0x01,0x7c,0x60,0x00,0x00,0x0e,0x1e,0x80,0x07,0x00,
- 0x0f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x1f,0x3c,
- 0xf0,0x00,0x0f,0xe0,0x01,0xf8,0x71,0x00,0x00,0x1e,0x1e,0x00,0x1f,0x00,0x0f,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x1f,0x3c,0xf0,
- 0xff,0x03,0xe0,0x01,0xe0,0x33,0x00,0x00,0x1c,0x1e,0x00,0x3e,0x00,0x0f,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,
- 0x03,0x00,0xfc,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x0f,
- 0x00,0xfe,0x01,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x1c,0x00,
- 0x87,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x18,0x00,0x03,
- 0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x80,0x01,0x06,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x80,0x01,0x06,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x80,0x01,0x06,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x07,0x80,0x01,0x06,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x0f,0x80,0x01,0x06,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x80,0x01,0x06,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x01,0x06,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x30,0x80,0x01,0x06,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x30,0x80,0x01,0x06,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x0c,0x30,0x80,0x01,0x06,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x1c,0x38,0x00,0x03,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,
- 0x1c,0x00,0x87,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x0f,
- 0x06,0xfe,0x01,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x03,0x06,
- 0xfc,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x80,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x40,0x20,0x40,0x70,0x38,0x3c,0x00,0x82,0xc3,0xe1,0x40,0x90,0x00,0x00,0x48,
- 0x00,0x00,0x78,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x20,
- 0x46,0x60,0x88,0x44,0x04,0x00,0x43,0x24,0x12,0xc1,0x18,0x00,0x00,0x08,0x00,
- 0x00,0x84,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x10,0x89,
- 0x50,0x88,0x44,0x02,0x80,0x42,0x24,0x12,0xc0,0x98,0x18,0xe5,0x48,0x1a,0x0e,
- 0x84,0x38,0x7f,0x44,0x8e,0x72,0x00,0x00,0xc0,0x00,0x00,0x00,0x90,0x90,0x40,
- 0x88,0x44,0x1e,0x00,0x42,0x24,0xd2,0x40,0x95,0x24,0x13,0x49,0x26,0x11,0x04,
- 0x44,0x52,0x44,0x91,0x89,0x00,0x00,0xc0,0x00,0x00,0x00,0x90,0x80,0x40,0xc8,
- 0x64,0x22,0x00,0x42,0x26,0x33,0x41,0x95,0x04,0x11,0x49,0x22,0x11,0x78,0x44,
- 0x92,0x2a,0x90,0x88,0x00,0x00,0xc0,0x00,0x00,0x00,0x90,0x80,0x40,0xb0,0x58,
- 0x20,0x00,0x82,0xc5,0x12,0x41,0x95,0x04,0x11,0x49,0x22,0x1f,0x80,0x44,0x92,
- 0x2a,0x9e,0xf8,0x00,0x00,0xc0,0x00,0x00,0x00,0x90,0x90,0x40,0x80,0x40,0x20,
- 0x00,0x02,0x04,0x12,0x41,0x95,0x04,0x11,0x49,0x22,0x01,0x84,0x44,0x92,0x2a,
- 0x91,0x08,0x00,0x00,0xc0,0x00,0x00,0x00,0x10,0x89,0x40,0x88,0x44,0x22,0x00,
- 0x42,0x24,0x12,0x41,0x92,0x24,0x11,0x49,0x22,0x11,0x84,0x44,0x12,0x11,0x99,
- 0x88,0x00,0x00,0xc0,0x00,0x00,0x00,0x20,0x46,0x40,0x70,0x38,0x1c,0x02,0x82,
- 0xc3,0xe1,0x40,0x92,0x18,0xe1,0x48,0x22,0x0e,0x78,0x38,0x32,0x11,0x96,0x70,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x02,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x80,0x1f,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
- };
-
- Pixmap coverPixmapW, coverPixmapB, coverPixmask;
- GC coverGC;
-
- static void CoverExpose();
-
- void AddCoverTabForm(folder)
- Widget folder;
- {
- Widget form, da;
- Display *dpy;
- Window root;
- XmString str;
-
- str = XmStringCreateSimple("Cover Page");
- form = XmLFolderAddTabForm(folder, str);
- XmStringFree(str);
- CreatePixmap(form, 0, &coverPixmapW, &coverPixmask,
- (char *)cover_bits, cover_width, cover_height);
- CreatePixmap(form, 1, &coverPixmapB, &coverPixmask,
- (char *)cover_bits, cover_width, cover_height);
-
- dpy = XtDisplay(form);
- root = DefaultRootWindow(dpy);
- coverGC = XCreateGC(dpy, root, 0, NULL);
- da = XtVaCreateManagedWidget("drawArea",
- xmDrawingAreaWidgetClass, form,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_FORM,
- NULL);
- XtAddCallback(da, XmNexposeCallback, CoverExpose, NULL);
-
- }
-
- static void CoverExpose(w, clientData, callData)
- Widget w;
- XtPointer clientData, callData;
- {
- XRectangle rect;
- Pixel black, white;
-
- XClearArea(XtDisplay(w), XtWindow(w), 0, 0, 0, 0, False);
- black = BlackPixelOfScreen(XtScreen(w));
- white = WhitePixelOfScreen(XtScreen(w));
- rect.x = 1;
- rect.y = 1;
- XtVaGetValues(w,
- XmNwidth, &rect.width,
- XmNheight, &rect.height,
- NULL);
- XmLPixmapDraw(w, coverPixmapW, coverPixmask, cover_width, cover_height,
- XmALIGNMENT_CENTER, coverGC, &rect, &rect);
- rect.x = 0;
- rect.y = 0;
- XmLPixmapDraw(w, coverPixmapB, coverPixmask, cover_width, cover_height,
- XmALIGNMENT_CENTER, coverGC, &rect, &rect);
- }
-
- /*
- Intro Tab Form
- */
-
- #define logo_width 230
- #define logo_height 90
- static unsigned char logo_bits[] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xf8,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0xf8,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0xf8,0xff,0xff,0xff,0xff,0x7f,
- 0xf0,0xff,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x18,0xfc,0x3f,0x7c,0xf8,0x0f,0xc6,
- 0x1f,0x00,0xfe,0x07,0xe0,0x3f,0xfc,0x1f,0x3e,0xfc,0x9f,0x0f,0x00,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x18,0xfc,0x3f,0x7c,0xf8,0x87,0xbf,0x1f,
- 0x3e,0xf8,0xe3,0x87,0x3f,0xfc,0x1f,0x3e,0xf8,0x9f,0x0f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xc0,0x18,0xf8,0x1f,0x7c,0xf8,0xe3,0x3f,0x1f,0x7e,
- 0xf8,0xf1,0x0f,0x3f,0xfc,0x1f,0x3e,0xf8,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xc0,0x18,0xf8,0x1f,0x7c,0xf8,0xf1,0x7f,0x1e,0xfe,0xf8,
- 0xf0,0x1f,0x3e,0xfc,0x1f,0x3e,0xf0,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xc0,0x18,0xf0,0x0f,0x7c,0xf8,0xf0,0xff,0x1c,0xfe,0xf0,0xf8,
- 0x1f,0x3e,0xfc,0x1f,0x3e,0xe0,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xc0,0x18,0xf0,0x0f,0x7c,0xf8,0xf8,0xff,0x1f,0xfe,0x70,0xf8,0x3f,
- 0x3c,0xfc,0x1f,0x3e,0xe1,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xc0,0x98,0xf0,0x2f,0x7c,0x78,0xf8,0xff,0x1f,0xfe,0x70,0xfc,0x3f,0x3c,
- 0xfc,0x1f,0x3e,0xc1,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xc0,0x98,0xe0,0x27,0x7c,0x78,0xf8,0xff,0x1f,0xfe,0x30,0xfc,0x3f,0x3c,0xfc,
- 0x1f,0x3e,0x83,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,
- 0x98,0xe1,0x27,0x7c,0x78,0xf8,0xff,0x1f,0xfe,0x30,0xfc,0x3f,0x38,0xfc,0x1f,
- 0x3e,0x07,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,
- 0xc1,0x33,0x7c,0x38,0xfc,0xff,0x1f,0x7e,0x38,0xfc,0x3f,0x38,0xfc,0x1f,0x3e,
- 0x07,0x9f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0xc3,
- 0x33,0x7c,0x38,0xfc,0xff,0x1f,0x3e,0x38,0xfc,0x7f,0x38,0xfc,0x1f,0x3e,0x0f,
- 0x9e,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0xc3,0x3b,
- 0x7c,0x38,0xfc,0xff,0x1f,0x02,0x3e,0xfc,0x7f,0x38,0xfc,0x1f,0x3e,0x1f,0x9c,
- 0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0x83,0x39,0x7c,
- 0x38,0xfc,0xff,0x1f,0x86,0x3f,0xfc,0x7f,0x38,0xfc,0x1f,0x3e,0x1f,0x9c,0x0f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0x87,0x39,0x7c,0x38,
- 0xfc,0xff,0x1f,0x86,0x3f,0xfc,0x7f,0x38,0xfc,0x1f,0x3e,0x3f,0x98,0x0f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0x07,0x3c,0x7c,0x38,0xf8,
- 0xff,0x1f,0x0e,0x3f,0xfc,0x3f,0x38,0xfc,0x1f,0x3e,0x7f,0x90,0x0f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0x0f,0x3c,0x7c,0x38,0xf8,0xff,
- 0x1f,0x0e,0x3f,0xfc,0x3f,0x3c,0xfc,0x1f,0x3e,0xff,0x90,0x0f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0x0f,0x3c,0x7c,0x78,0xf8,0xff,0x1f,
- 0x1e,0x7e,0xfc,0x3f,0x3c,0xfc,0x1f,0x3e,0xff,0x80,0x0f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xc0,0x98,0x0f,0x3e,0x7c,0x78,0xf8,0xff,0x19,0x1e,
- 0x7e,0xf8,0x3f,0x3c,0xfc,0x1f,0x3e,0xff,0x81,0x0f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xc0,0x98,0x1f,0x3e,0x7c,0xf8,0xf0,0xff,0x1c,0x3e,0x7c,
- 0xf8,0x1f,0x3e,0xfc,0x1f,0x3e,0xff,0x83,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xc0,0x98,0x1f,0x3f,0x7c,0xf8,0xe1,0x7f,0x1e,0x3e,0xfc,0xf8,
- 0x1f,0x3f,0xfc,0x1f,0x3e,0xff,0x83,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xc0,0x98,0x3f,0x3f,0x7c,0xf8,0xc1,0x3f,0x1e,0x7e,0xf8,0xf1,0x0f,
- 0x3f,0xfc,0x1f,0x3e,0xff,0x87,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xc0,0x98,0x3f,0x3f,0x7c,0xf8,0x07,0x0f,0x1f,0x7e,0xf8,0xe3,0x87,0x3f,
- 0x00,0x18,0x3e,0xff,0x8f,0x0f,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xc0,0x98,0xff,0x3f,0x7c,0xf8,0x0f,0xc0,0x1f,0xfe,0xf0,0x07,0xe0,0x3f,0x00,
- 0x18,0x3e,0xff,0x8f,0x0f,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,
- 0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0xf8,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0xf8,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xe0,0x0f,0xf0,0x07,
- 0xf8,0xf3,0x03,0xff,0xff,0x01,0x00,0xf0,0x1f,0x00,0xf8,0xff,0xff,0xfc,0xff,
- 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0x0f,0xf0,0x07,0xf8,
- 0xf1,0x03,0xff,0xff,0x07,0x00,0xfe,0xff,0x00,0xf8,0xff,0xff,0xfc,0xff,0xff,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0x0f,0xf0,0x0f,0xf8,0xf1,
- 0x03,0xff,0xff,0x1f,0x00,0xff,0xff,0x03,0xf8,0xff,0xff,0xfc,0xff,0xff,0x03,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0x1f,0xf0,0x0f,0xf8,0xf1,0x03,
- 0xff,0xff,0x3f,0x80,0xff,0xff,0x07,0xf8,0xff,0xff,0xfc,0xff,0xff,0x03,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x80,0x1f,0xf8,0x0f,0xfc,0xf0,0x03,0x3f,
- 0x80,0x7f,0xc0,0x1f,0xf0,0x0f,0xf8,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x80,0x1f,0xf8,0x0f,0xfc,0xf0,0x03,0x3f,0x00,
- 0x7e,0xe0,0x0f,0xc0,0x1f,0xf8,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x80,0x1f,0x78,0x1f,0xfc,0xf0,0x03,0x3f,0x00,0xfe,
- 0xf0,0x07,0x80,0x1f,0xf8,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x3f,0x78,0x1f,0x7c,0xf0,0x03,0x3f,0x00,0xfc,0xf0,
- 0x03,0x00,0x00,0xf8,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x3f,0x7c,0x1f,0x7e,0xf0,0x03,0x3f,0x00,0xfc,0xf1,0x03,
- 0x00,0x00,0xf8,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x3f,0x7c,0x1f,0x7e,0xf0,0x03,0x3f,0x00,0xf8,0xf9,0x01,0x00,
- 0x00,0xf8,0xff,0x7f,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x3e,0x3c,0x3e,0x3e,0xf0,0x03,0x3f,0x00,0xf8,0xf9,0x01,0xfc,0x1f,
- 0xf8,0xff,0x7f,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x7e,0x3c,0x3e,0x3e,0xf0,0x03,0x3f,0x00,0xf8,0xf9,0x01,0xfc,0x1f,0xf8,
- 0xff,0x7f,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x7e,0x3e,0x3e,0x3f,0xf0,0x03,0x3f,0x00,0xf8,0xf9,0x01,0xfc,0x1f,0xf8,0xff,
- 0x7f,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x7c,
- 0x3e,0x3c,0x1f,0xf0,0x03,0x3f,0x00,0xf8,0xf9,0x01,0xfc,0x1f,0xf8,0x01,0x00,
- 0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xfc,0x1e,
- 0x7c,0x1f,0xf0,0x03,0x3f,0x00,0xf8,0xf9,0x03,0x00,0x1f,0xf8,0x01,0x00,0x00,
- 0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xfc,0x1e,0x7c,
- 0x1f,0xf0,0x03,0x3f,0x00,0xfc,0xf0,0x03,0x00,0x1f,0xf8,0x01,0x00,0x00,0xf8,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xf8,0x1f,0xf8,0x0f,
- 0xf0,0x03,0x3f,0x00,0xfe,0xf0,0x07,0x80,0x1f,0xf8,0x01,0x00,0x00,0xf8,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xf8,0x0f,0xf8,0x0f,0xf0,
- 0x03,0x3f,0x00,0x7e,0xe0,0x0f,0xc0,0x1f,0xf8,0x01,0x00,0x00,0xf8,0x01,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xf0,0x0f,0xf8,0x0f,0xf0,0x03,
- 0x3f,0x80,0x7f,0xc0,0x3f,0xf0,0x1f,0xf8,0x01,0x00,0x00,0xf8,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xf0,0x0f,0xf8,0x07,0xf0,0x03,0xff,
- 0xff,0x3f,0x80,0xff,0xff,0x1f,0xf8,0xff,0xff,0x01,0xf8,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xf0,0x0f,0xf0,0x07,0xf0,0x03,0xff,0xff,
- 0x1f,0x00,0xff,0xff,0x1e,0xf8,0xff,0xff,0x01,0xf8,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0xe0,0x07,0xf0,0x07,0xf0,0x03,0xff,0xff,0x07,
- 0x00,0xfc,0x7f,0x1e,0xf8,0xff,0xff,0x01,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0xe0,0x07,0xf0,0x03,0xf0,0x03,0xff,0xff,0x01,0x00,
- 0xe0,0x0f,0x1e,0xf8,0xff,0xff,0x01,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0xff,0x0f,0xc0,0xff,
- 0x1f,0x00,0x00,0x07,0x00,0xfc,0xff,0xc3,0x07,0x00,0x70,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0x3e,0xc0,0x03,0x7e,
- 0x00,0x00,0x07,0x00,0x3c,0xc0,0x87,0x0f,0x00,0x38,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0x78,0xc0,0x03,0xf0,0x00,
- 0x80,0x0f,0x00,0x3c,0x00,0x1f,0x1f,0x00,0x1c,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0x78,0xc0,0x03,0xf0,0x01,0x80,
- 0x0f,0x00,0x3c,0x00,0x1e,0x3e,0x00,0xce,0xcf,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0x78,0xc0,0x03,0xe0,0x01,0xc0,0x1e,
- 0x00,0x3c,0x00,0x1e,0x3c,0x00,0x87,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0x78,0xc0,0x03,0xe0,0x01,0x60,0x3e,0x00,
- 0x3c,0x00,0x1e,0x78,0x00,0x83,0xca,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0x03,0x00,0x78,0xe0,0x01,0x78,0xc0,0x03,0xf0,0x00,0x60,0x3c,0x00,0x3c,
- 0x00,0x1e,0xf0,0x80,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0x03,0x00,0x78,0xe0,0x01,0x38,0xc0,0x03,0xf0,0x00,0x30,0x78,0x00,0x3c,0x00,
- 0x0f,0xf0,0xc1,0x01,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,
- 0x00,0x78,0xe0,0x01,0x0f,0xc0,0x03,0x7c,0x00,0x30,0x78,0x00,0x3c,0x80,0x07,
- 0xe0,0xc3,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,
- 0x78,0xe0,0xff,0x01,0xc0,0xff,0x0f,0x00,0x18,0xf0,0x00,0xfc,0xff,0x00,0xc0,
- 0x33,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,
- 0xe0,0x81,0x1f,0xc0,0xff,0x00,0x00,0x18,0xf0,0x01,0xfc,0x0f,0x00,0x80,0x3f,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,
- 0x01,0x3c,0xc0,0xfb,0x01,0x00,0xfc,0xff,0x01,0x3c,0x1f,0x00,0x00,0x1f,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,
- 0xf8,0xc0,0xf3,0x01,0x00,0xfe,0xff,0x03,0x3c,0x3e,0x00,0x00,0x1e,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0xf0,
- 0xc0,0xe3,0x07,0x00,0x06,0xc0,0x03,0x3c,0x7c,0x00,0x00,0x1e,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0xf0,0xc0,
- 0x83,0x0f,0x00,0x03,0x80,0x07,0x3c,0xf0,0x00,0x00,0x1e,0x00,0xc0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0xf0,0xc0,0x03,
- 0x0f,0x00,0x03,0x80,0x07,0x3c,0xe0,0x01,0x00,0x1e,0x00,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0xf0,0xc0,0x03,0x3e,
- 0x80,0x01,0x00,0x0f,0x3c,0xc0,0x07,0x00,0x1e,0x00,0xc0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0xf0,0xc0,0x03,0x7c,0xc0,
- 0x01,0x00,0x1e,0x3c,0x80,0x0f,0x00,0x1e,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0x03,0x00,0x78,0xe0,0x01,0x78,0xc0,0x03,0xf8,0xc0,0x00,
- 0x00,0x1c,0x3c,0x00,0x0f,0x00,0x1e,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x80,0x03,0x3e,0x78,0xe0,0x01,0x1e,0xc0,0x03,0xf0,0xe3,0x00,0x00,
- 0x3c,0x3c,0x00,0x3e,0x00,0x1e,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0xff,0x3f,0x78,0xe0,0xff,0x07,0xc0,0x03,0xc0,0x67,0x00,0x00,0x38,
- 0x3c,0x00,0x7c,0x00,0x1e,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0
- };
-
- void AddIntroTabForm(folder)
- Widget folder;
- {
- Widget form, label;
- Pixmap pixmap, pixmask;
- XmString str;
- static char *desc =
- "Welcome to a Quick Look at the Microline Widget Library version 3.0. \
- This program presents an overview of widgets contained in the library.\
- \n\n\
- If you understand widget resources, you may want to try clicking the Editor \
- button to display and edit some of the example widget's resources. \
- Please note that the editor is blank for the Cover Page and this \
- Introduction screen.\
- \n\n\
- Further information on the library including pricing, supported platforms, \
- licensing policies, etc. may be found on our web site \
- http://www.mlsoft.com. You can also email us at info@mlsoft.com.\
- \n\n\
- Microline Widget Library is a trademark of Microline Software. \
- All other trademarks are the property of their respective owners.";
-
- str = XmStringCreateSimple("Introduction");
- form = XmLFolderAddTabForm(folder, str);
- XmStringFree(str);
- CreatePixmap(form, 1, &pixmap, &pixmask,
- (char *)logo_bits, logo_width, logo_height);
- label = XtVaCreateManagedWidget("label",
- xmLabelWidgetClass, form,
- XmNlabelType, XmPIXMAP,
- XmNlabelPixmap, pixmap,
- XmNmarginHeight, 25,
- XmNtopAttachment, XmATTACH_FORM,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- NULL);
-
- CreateText(form, desc, label, 0);
- }
-
- /*
- Folder Tab Form
- */
-
-
- #define sphere_width 10
- #define sphere_height 10
- static unsigned char sphere_bits[] = {
- 0x00, 0x00, 0x78, 0x00, 0xf4, 0x00, 0xe2, 0x01, 0xf6, 0x01, 0xfe, 0x01,
- 0xfe, 0x01, 0xfc, 0x00, 0x78, 0x00, 0x00, 0x00};
-
-
- #define cross_width 10
- #define cross_height 10
- static unsigned char cross_bits[] = {
- 0x00, 0x00, 0x30, 0x00, 0xb4, 0x00, 0x30, 0x00, 0xfe, 0x01, 0xfe, 0x01,
- 0x30, 0x00, 0xb4, 0x00, 0x30, 0x00, 0x00, 0x00};
-
- static Pixmap spherePixmap;
- static Pixmap spherePixmask;
- static Pixmap crossPixmap;
- static Pixmap crossPixmask;
-
- static void FolderSwitchCB();
-
- Widget _folder;
-
- void AddFolderTabForm(folder)
- Widget folder;
- {
- Widget form, w, sampleForm;
- XmString str;
- int i;
- static char *labels[] =
- {
- "Configuration", "Appearance", "Documents", "Keys" };
- static char *desc =
- "The Folder widget provides a folder containing single or \
- multiple rows of tabs along the top, bottom, left or right \
- and an area managed by the tabs in the center.\
- \n\n\
- The Folder One sample contains a single row of tabs with arc-style \
- corners, each containing a pixmap image.\
- \n\n\
- The Folder Two sample also contains a single row of tabs but placed on the \
- bottom with the \"none\" corner style. If you increase \
- the width of the demo program, you will notice that this row of tabs \
- will always fill the entire row with the individual tabs taking up \
- a width proportional to their contents and the width of the row.\
- \n\n\
- The Folder Three sample contains tabs in 2 rows placed on the right. \
- Again, the size of the tabs are proportional to the size of \
- their contents and will fit to the row.\
- \n\n\
- The Folder is a Manager widget and each tab \
- consists of a Primitive widget (usually a DrawnButton widget) \
- surrounded by tab decorations including an optional pixmap. \
- Any non-Primitive widget children of the Folder are placed in \
- the center area. Tab widgets may be assigned a widget \
- in the center area of the folder to display/manage when the \
- tab is selected or the application can change the contents \
- in the center area itself as tabs are selected.\
- \n\n\
- Resources exist to set the style of the corners, pixmaps \
- to display in the tabs, number of tabs per row, \
- various colors, sizes and spacing in and around the tabs. \
- Also, since the tabs themselves \
- have Primitive widgets like DrawnButtons inside of them, they \
- retain all display abilities of their respective Primitive \
- widgets. DrawnButton tabs, for example, may be displayed with \
- different fonts, character sets, colors, alignments, etc.\
- \n\n\
- Tabs may be be added or deleted by adding or deleting \
- Primitive-based widgets to the Folder. Callbacks are provided \
- which can notify an application when a tab is activated, allowing \
- the application to either accept or reject the activation.\
- \n\n\
- The 3.0 release adds multiple rows of tabs, improved tab layout \
- and also a rewrite of the Folder's geometry management.\
- \n\n\
- Keyboard traversal of the tabs is supported by using the arrow \
- keys to move from one tab to the next. Tabs may be activated \
- by either selection with the mouse or by activating their \
- underlying Primitive widget. For example, DrawnButton tabs \
- may be activated by pressing the space bar when focus is in the tab.";
-
- form = AddWidgetSample(folder, "Folder", desc);
- _folder = XtVaCreateManagedWidget("sampleFolder",
- xmlFolderWidgetClass, form,
- XmNleftAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginWidth, 4,
- NULL);
- CreatePixmap(_folder, 4, &spherePixmap, &spherePixmask,
- (char *)sphere_bits, sphere_width, sphere_height);
- CreatePixmap(_folder, 2, &crossPixmap, &crossPixmask,
- (char *)cross_bits, cross_width, cross_height);
- for (i = 0; i < 4; i++)
- {
- str = XmStringCreateSimple(labels[i]);
- w = XmLFolderAddTab(_folder, str);
- XmStringFree(str);
- if (i % 2)
- XtVaSetValues(w,
- XmNtabPixmap, crossPixmap,
- XmNtabInactivePixmap, crossPixmap,
- NULL);
- else
- XtVaSetValues(w,
- XmNtabPixmap, spherePixmap,
- XmNtabInactivePixmap, spherePixmap,
- NULL);
- }
- sampleForm = XtVaCreateManagedWidget("sampleForm",
- xmFormWidgetClass, _folder,
- NULL);
- str = XmStringCreateLtoR("\nSample Folder\nPage Area\n",
- XmSTRING_DEFAULT_CHARSET);
- XtVaCreateManagedWidget("label",
- xmLabelWidgetClass, sampleForm,
- XmNlabelString, str,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_FORM,
- NULL);
- XmStringFree(str);
-
-
- XtAddCallback(XtParent(form), XmNactivateCallback, FolderSwitchCB, NULL);
- }
-
- static void FolderSwitchCB(w, clientData, callData)
- Widget w;
- XtPointer clientData, callData;
- {
- XmLFolderCallbackStruct *cbs;
-
- cbs = (XmLFolderCallbackStruct *)callData;
- if (cbs->pos == 0)
- XtVaSetValues(_folder,
- XmNcornerStyle, XmCORNER_ARC,
- XmNcornerDimension, 2,
- XmNtabPlacement, XmFOLDER_TOP,
- XmNtabsPerRow, 0,
- NULL);
- else if (cbs->pos == 1)
- XtVaSetValues(_folder,
- XmNcornerStyle, XmCORNER_NONE,
- XmNtabPlacement, XmFOLDER_BOTTOM,
- XmNtabsPerRow, 4,
- NULL);
- else
- XtVaSetValues(_folder,
- XmNcornerStyle, XmCORNER_ARC,
- XmNcornerDimension, 3,
- XmNtabPlacement, XmFOLDER_RIGHT,
- XmNtabsPerRow, 2,
- NULL);
- }
-
- /*
- Grid Tab Form
- */
-
- static void GridSwitchCB();
- static void GridSample1();
- static void GridSample2();
- static void GridSample3();
- Widget _grid;
-
- void AddGridTabForm(folder)
- Widget folder;
- {
- Widget form;
- XmString str;
- static char *desc =
- "The Grid widget provides an editable grid of \
- cells containing text or images in rows and columns.\
- \n\n\
- The Grid One sample above is a multiple row selection Grid which \
- allows column resizing by dragging column headings larger or smaller. \
- It contains one heading row and has columns fixed on the left and right. \
- The arrows in the Price column are an example of pixmap (image) cell \
- types.\
- \n\n\
- The Grid Two sample demonstrates cell spanning (the 1995 Income \
- Summary heading spans 2 columns) and control of cell borders, \
- colors and alignment. This Grid is set to not allow selection.\
- \n\n\
- The Grid Three sample allows editing and is set to allow \
- selection of mulitple rows, columns and/or cells. Note that an \
- edit may be accepted by pressing Return or by moving to a new \
- location and may be rejected with the Escape key. You may \
- edit an existing cell's contents using the F2 or Insert key. \
- This Grid also supports interactive row and column resizing. \
- Drag and drop is permitted by selecting an area to be dragged \
- and performing a drag-and-drop operation (using mouse button 2) \
- to copy the selected area to another location.\
- \n\n\
- The Grid includes a number of advanced features such as:\
- \n\
- - string (editable or non-editable XmString format) or pixmap cells\n\
- - keyboard traversal using arrow keys, page keys, etc.\n\
- - add, delete, reorder, move and hiding of rows/columns\n\
- - heading, content and footer rows/columns\n\
- - top, bottom, left and/or right fixed rows/columns\n\
- - rows/column intelligently size to cell fonts/images\n\
- - user-adjustable row/column sizes\n\
- - cells may span rows/columns\n\
- - full control of cell borders and colors\n\
- - 9 cell alignment options (top-left, center, etc)\n\
- - uses reference-counted cell attributes to save memory\n\
- - SetValues on ranges of cells/rows/columns\n\
- - callbacks for select, activate, draw, edit, focus, etc.\n\
- - cut, paste, drag and drop of cell contents\n\
- - ASCII file import and export\
- \n\n\
- The Grid widget is ideal for replacing single-column Motif \
- scrolled lists with multi-column lists. Its also perfect for creating \
- high-performance tables. Tables may be created where the data \
- displayed is not kept in the Grid itself but retrieved from a \
- database when it needs to be displayed. This direct database \
- access can save memory and time loading/storing the table. \
- Click-sorting may be added to the table to allow a user to \
- sort rows by clicking on a column heading.\
- \n\n\
- Cell attributes in the Grid are reference counted. If a number \
- of cells in the Grid have similar attributes (color, fonts, etc) \
- they may all contain a pointer to the same attributes structure \
- instead of creating an attributes structure for each individual \
- cell. This reference counting is transparent to a programmer \
- creating a Grid.\
- \n\n\
- Cells may have borders set on the top, bottom, left and right and \
- have a number of color/alignment options. Keyboard traversal is \
- provided using the standard Motif key mappings of Page Up, \
- Page Down, Home, etc. Selection modes are provided to allow \
- selection of a single row (browse mode or single mode), multiple \
- rows and arbitrary regions of rows, columns and cells. \
- Functions are provided to easily import data to and from text \
- files.\
- \n\n\
- The 3.0 release has added resources allowing you to specify cell \
- defaults on a per-column basis (e.g. all cells in column 2 will be \
- editable). Also, the Grid's layout has improved for sizing policies \
- where scrollbars appear as needed. The Grid now will use all the \
- space it can for data instead of not using the space where the \
- scrollbars would appear. \
- \n\n\
- A number of resources have been added in the 3.0 release to support \
- better integration with interface builders. You can now add and \
- delete rows and also set column widths and simple headings through \
- resources.\
- \n\n\
- Internally the Grid is a Manager widget which contains two \
- ScrollBar children and one Text widget child.";
-
- form = AddWidgetSample(folder, "Grid", desc);
-
- _grid = XtVaCreateManagedWidget("grid",
- xmlGridWidgetClass, form,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_FORM,
- NULL);
- GridSample1();
- XtAddCallback(XtParent(form), XmNactivateCallback, GridSwitchCB, NULL);
- }
-
- static void GridSwitchCB(w, clientData, callData)
- Widget w;
- XtPointer clientData, callData;
- {
- XmLFolderCallbackStruct *cbs;
- Pixel bg;
-
- cbs = (XmLFolderCallbackStruct *)callData;
-
- /* reset defaults to grid */
- XtVaSetValues(_grid,
- XmNallowDragSelected, False,
- XmNallowDrop, False,
- XmNallowColumnResize, False,
- XmNallowRowResize, False,
- XmNhighlightRowMode, False,
- XmNheadingRows, 0,
- XmNrows, 0,
- XmNfooterRows, 0,
- XmNheadingColumns, 0,
- XmNcolumns, 0,
- XmNfooterColumns, 0,
- XmNshadowThickness, 2,
- XmNtopFixedCount, 0,
- XmNbottomFixedCount, 0,
- XmNleftFixedCount, 0,
- XmNrightFixedCount, 0,
- NULL);
- XtVaGetValues(_grid,
- XmNbackground, &bg,
- NULL);
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcellBackground, bg,
- XmNcellAlignment, XmALIGNMENT_CENTER,
- XmNcellLeftBorderType, XmBORDER_LINE,
- XmNcellRightBorderType, XmBORDER_LINE,
- XmNcellTopBorderType, XmBORDER_LINE,
- XmNcellBottomBorderType, XmBORDER_LINE,
- NULL);
-
- if (cbs->pos == 0)
- GridSample1();
- else if (cbs->pos == 1)
- GridSample2();
- else
- GridSample3();
- }
-
- static Pixmap upPixmap = XmUNSPECIFIED_PIXMAP;
- static Pixmap upPixmask;
- static Pixmap downPixmap = XmUNSPECIFIED_PIXMAP;
- static Pixmap downPixmask;
-
- #define up_width 12
- #define up_height 16
- static unsigned char up_bits[] = {
- 0x00, 0x00, 0x60, 0x00, 0xf0, 0x00, 0xf8, 0x01, 0xfc, 0x03, 0xfe, 0x07,
- 0xfe, 0x07, 0xf6, 0x06, 0xf2, 0x04, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00,
- 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x00, 0x00};
-
- #define down_width 12
- #define down_height 16
- static unsigned char down_bits[] = {
- 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00,
- 0xf0, 0x00, 0xf2, 0x04, 0xf6, 0x06, 0xfe, 0x07, 0xfe, 0x07, 0xfc, 0x03,
- 0xf8, 0x01, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00};
-
- static void GridSample1()
- {
- static char *data =
- "Name|Price||Change|Close Date|Location|Yield\n\
- TZZ 3.0 Tana Zin|102.23||-1.2|1/1/94|Tomano, RE|5.6%\n\
- BLC 4.5 Board L|103.23||+2.5|2/15/94|Rino, LO|6.8%\n\
- DGB 5.4 Dig Gen|101.53||+3.7|6/20/94|Carolana, CA|7.5%\n\
- KLC 5.3 Kord L|108.98||-2.5|2/15/94|Cannes, CA|8.7%\n\
- LLO 3.4 Liw Lol|107.24||+2.2|2/20/94|Tenise, MI|6.7%\n\
- MMN 3.1 Mon Mor|105.63||+1.4|2/15/94|Waterton, MN|6.3%\n\
- PLP 4.3 Pol Lab|102.12||-2.3|2/20/94|Holard, LM|7.6%\n\
- SZN 4.5 Siml Zi|101.11||+1.6|2/15/94|Tempest, CA|5.4%\n\
- TTL 5.6 Towa Tin|101.12||+2.7|3/15/94|Conila, OK|6.7%\n\
- ULD 5.4 Upl La D|105.12||-2.2|4/15/94|Mandrill, HI|7.8%";
-
- XtVaSetValues(_grid, XmNlayoutFrozen, True, NULL);
-
- XtVaSetValues(_grid,
- XmNallowColumnResize, True,
- XmNselectionPolicy, XmSELECT_MULTIPLE_ROW,
- XmNhighlightRowMode, True,
- XmNheadingRows, 1,
- XmNcolumns, 7,
- XmNsimpleWidths, "18c 8c 16p 8c 12c 16c 6c",
- XmNrightFixedCount, 1,
- XmNleftFixedCount, 1,
- NULL);
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
- XmNcellLeftBorderType, XmBORDER_NONE,
- XmNcellRightBorderType, XmBORDER_NONE,
- XmNcellTopBorderType, XmBORDER_NONE,
- XmNcellBottomBorderType, XmBORDER_NONE,
- NULL);
- XtVaSetValues(_grid,
- XmNrowType, XmHEADING,
- XmNcolumn, 1,
- XmNcellColumnSpan, 1,
- NULL);
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcellAlignment, XmALIGNMENT_RIGHT,
- NULL);
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcolumn, 0,
- XmNcellAlignment, XmALIGNMENT_LEFT,
- NULL);
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcolumn, 1,
- XmNcellRightBorderType, XmBORDER_NONE,
- NULL);
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcolumn, 2,
- XmNcellType, XmPIXMAP_CELL,
- XmNcellLeftBorderType, XmBORDER_NONE,
- NULL);
- XmLGridAddRows(_grid, XmCONTENT, -1, 10);
- XmLGridSetStrings(_grid, data);
-
- if (upPixmap == XmUNSPECIFIED_PIXMAP)
- CreatePixmap(_grid, 2, &upPixmap, &upPixmask,
- (char *)up_bits, up_width, up_height);
- if (downPixmap == XmUNSPECIFIED_PIXMAP)
- CreatePixmap(_grid, 3, &downPixmap, &downPixmask,
- (char *)down_bits, down_width, down_height);
- XtVaSetValues(_grid,
- XmNcolumn, 2,
- XmNcellPixmap, upPixmap,
- XmNcellPixmapMask, upPixmask,
- NULL);
- XtVaSetValues(_grid,
- XmNcolumn, 2,
- XmNrowStep, 3,
- XmNcellPixmap, downPixmap,
- XmNcellPixmapMask, downPixmask,
- NULL);
-
- XtVaSetValues(_grid, XmNlayoutFrozen, False, NULL);
- }
-
-
- static void GridSample2()
- {
- static char *data =
- "|1995 Income Summary\n\
- |Shampoo|Conditioner|Soap|Total\n\
- Revenues:\n\
- Sales|$ 1,600,000|$ 1,000,000|$ 800,000|$ 3,400,000\n\
- Less Discounts|(16,000)|(10,000)|(8,000)|(34,000)\n\
- Less Return Allowance|(8,000)|(5,000)|(4,000)|(17,000)\n\
- Net Revenue|1,576,000|985,000|792,000|3,349,000\n\
- \n\
- Less Expenses:\n\
- Cost of Goods Sold|(640,000)|(330,000)|(264,000)|(1,234,000)\n\
- Salary Expense|(380,000)|(280,000)|(180,000)|(840,000)\n\
- Marketing Expense|(157,600)|(98,500)|(79,200)|(335,300)\n\
- Rent Expense|(36,000)|(36,000)|(36,000)|(108,000)\n\
- Misc. Other Expense|(36,408)|(22,335)|(16,776)|(75,519)\n\
- Total Expenses|(1,250,008)|(766,835)|(575,976)|(2,592,819)\n\
- \n\
- Income Tax Expense|(130,397)|(87,266)|(86,410)|(304,072)\n\
- Net Income|195,595|130,899|129,614|456,109";
-
- XtVaSetValues(_grid, XmNlayoutFrozen, True, NULL);
-
- XtVaSetValues(_grid,
- XmNheadingColumns, 1,
- XmNcolumns, 3,
- XmNfooterColumns, 1,
- XmNsimpleWidths, "22c 12c 12c 12c 12c",
- XmNselectionPolicy, XmSELECT_NONE,
- NULL);
-
- /* add 'Income Summary' heading row */
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcellLeftBorderType, XmBORDER_NONE,
- XmNcellRightBorderType, XmBORDER_NONE,
- XmNcellTopBorderType, XmBORDER_NONE,
- XtVaTypedArg, XmNcellBottomBorderColor, XmRString, "black", 6,
- XmNcellAlignment, XmALIGNMENT_CENTER,
- XtVaTypedArg, XmNcellForeground, XmRString, "#000080", 8,
- NULL);
- XmLGridAddRows(_grid, XmHEADING, -1, 1);
- XtVaSetValues(_grid,
- XmNrowType, XmHEADING,
- XmNrow, 0,
- XmNcolumn, 0,
- XmNcellColumnSpan, 2,
- NULL);
-
- /* add 'Shampoo Conditioner Soap' heading row */
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
- XtVaTypedArg, XmNcellForeground, XmRString, "black", 6,
- XmNcellBottomBorderType, XmBORDER_NONE,
- NULL);
- XmLGridAddRows(_grid, XmHEADING, -1, 1);
-
- /* bold heading rows */
- XtVaSetValues(_grid,
- XmNrowType, XmHEADING,
- XmNcolumnType, XmALL_TYPES,
- XtVaTypedArg, XmNcellFontList, XmRString,
- BOLDFONT, strlen(BOLDFONT) + 1,
- NULL);
-
- /* add content and footer rows */
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcellAlignment, XmALIGNMENT_RIGHT,
- NULL);
- XmLGridAddRows(_grid, XmCONTENT, -1, 15);
- XmLGridAddRows(_grid, XmFOOTER, -1, 1);
-
- /* left justify left-most (heading) column */
- XtVaSetValues(_grid,
- XmNcolumn, 0,
- XmNcolumnType, XmHEADING,
- XmNrowType, XmALL_TYPES,
- XmNcellAlignment, XmALIGNMENT_LEFT,
- NULL);
-
- /* bold 'Revenues' cell */
- XtVaSetValues(_grid,
- XmNcolumnType, XmHEADING,
- XmNcolumn, 0,
- XmNrow, 0,
- XtVaTypedArg, XmNcellFontList, XmRString,
- BOLDFONT, strlen(BOLDFONT) + 1,
- NULL);
-
- /* bold 'Less Expenses' cell */
- XtVaSetValues(_grid,
- XmNcolumnType, XmHEADING,
- XmNcolumn, 0,
- XmNrow, 6,
- XtVaTypedArg, XmNcellFontList, XmRString,
- BOLDFONT, strlen(BOLDFONT) + 1,
- NULL);
-
- /* grey middle and footer content column */
- XtVaSetValues(_grid,
- XmNrowType, XmALL_TYPES,
- XmNcolumnType, XmALL_TYPES,
- XmNcolumnRangeStart, 2,
- XmNcolumnRangeEnd, 4,
- XmNcolumnStep, 2,
- XtVaTypedArg, XmNcellBackground, XmRString, "#E8E8E8", 8,
- NULL);
-
- /* set 'Income Summary' heading row yellow */
- XtVaSetValues(_grid,
- XmNcolumnType, XmALL_TYPES,
- XmNrowType, XmHEADING,
- XmNrow, 0,
- XtVaTypedArg, XmNcellBackground, XmRString, "#FFFF00", 8,
- NULL);
-
- /* blue and bold 'Net Revenue' and 'Total Expenses' rows */
- XtVaSetValues(_grid,
- XmNrowRangeStart, 4,
- XmNrowRangeEnd, 12,
- XmNrowStep, 8,
- XmNcolumnType, XmALL_TYPES,
- XtVaTypedArg, XmNcellForeground, XmRString, "white", 6,
- XtVaTypedArg, XmNcellBackground, XmRString, "#000080", 8,
- XtVaTypedArg, XmNcellFontList, XmRString,
- BOLDFONT, strlen(BOLDFONT) + 1,
- NULL);
-
- /* blue and bold 'Net Income' footer row */
- XtVaSetValues(_grid,
- XmNrow, 0,
- XmNrowType, XmFOOTER,
- XmNcolumnType, XmALL_TYPES,
- XtVaTypedArg, XmNcellForeground, XmRString, "white", 6,
- XtVaTypedArg, XmNcellBackground, XmRString, "#000080", 8,
- XtVaTypedArg, XmNcellFontList, XmRString,
- BOLDFONT, strlen(BOLDFONT) + 1,
- NULL);
- XmLGridSetStrings(_grid, data);
-
- XtVaSetValues(_grid, XmNlayoutFrozen, False, NULL);
-
- }
-
- static void GridSample3()
- {
- char buf[4];
- int i;
-
- XtVaSetValues(_grid, XmNlayoutFrozen, True, NULL);
-
- XtVaSetValues(_grid,
- XmNallowDragSelected, True,
- XmNallowDrop, True,
- XmNhsbDisplayPolicy, XmSTATIC,
- XmNvsbDisplayPolicy, XmSTATIC,
- XmNselectionPolicy, XmSELECT_CELL,
- XmNallowColumnResize, True,
- XmNallowRowResize, True,
- XmNshadowThickness, 1,
- NULL);
- XtVaSetValues(_grid,
- XmNcellDefaults, True,
- XmNcellEditable, True,
- XmNcellAlignment, XmALIGNMENT_RIGHT,
- XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
- XmNcellLeftBorderType, XmBORDER_NONE,
- XmNcellTopBorderType, XmBORDER_NONE,
- NULL);
- XtVaSetValues(_grid,
- XmNheadingRows, 1,
- XmNheadingColumns, 1,
- XmNcolumns, 26,
- XmNrows, 100,
- NULL);
-
- XtVaSetValues(_grid, XmNlayoutFrozen, False, NULL);
- for (i = 0; i < 26; i++)
- {
- sprintf(buf, "%c", 'A' + i);
- XmLGridSetStringsPos(_grid, XmHEADING, 0, XmCONTENT, i, buf);
- }
- for (i = 0; i < 100; i++)
- {
- sprintf(buf, "%d", i + 1);
- XmLGridSetStringsPos(_grid, XmCONTENT, i, XmHEADING, 0, buf);
- }
- XtVaSetValues(_grid,
- XmNrowType, XmALL_TYPES,
- XmNcolumnType, XmHEADING,
- XmNcolumn, 0,
- XmNcellAlignment, XmALIGNMENT_CENTER,
- XtVaTypedArg, XmNcellBackground, XmRString, "#C0C0C0", 8,
- XtVaTypedArg, XmNcellFontList, XmRString,
- BOLDFONT, strlen(BOLDFONT) + 1,
- XmNcellLeftBorderType, XmBORDER_LINE,
- XmNcellTopBorderType, XmBORDER_LINE,
- NULL);
- XtVaSetValues(_grid,
- XmNrowType, XmHEADING,
- XmNrow, 0,
- XmNcellAlignment, XmALIGNMENT_CENTER,
- XtVaTypedArg, XmNcellBackground, XmRString, "#C0C0C0", 8,
- XtVaTypedArg, XmNcellFontList, XmRString,
- BOLDFONT, strlen(BOLDFONT) + 1,
- XmNcellLeftBorderType, XmBORDER_LINE,
- XmNcellTopBorderType, XmBORDER_LINE,
- NULL);
- }
-
- /*
- Progress Tab Form
- */
-
- static void ProgSwitchCB();
- static void ProgSweepCB();
- Widget _progress;
-
- void AddProgTabForm(folder)
- Widget folder;
- {
- Widget form, button;
- XmString str;
- static char *desc =
- "The Progress widget may be used to chart the completion of a task.\
- \n\n\
- The Progress One sample displays a standard bar-style Progress widget. \
- You may press the Quick Sweep or the Slow Sweep button to chart progress \
- of a simulated task.\
- \n\n\
- The Progress Two sample displays a box-style Progress widget with 20 boxes.\
- \n\n\
- The Progress Three sample contains a bar-style Progress widget which \
- displays elapsed time and estimated time to completion. \
- Press the Slow Sweep button to display this behavior. These \
- times are calculated automatically by the Progress widget. \
- \n\n\
- Resources exist to set colors, fonts, shadows, the style of the \
- meter bar and the values used to determine level of completeness. \
- \n\n\
- The Progress widget is a subclasss of the Primitive widget.";
-
- form = AddWidgetSample(folder, "Progress", desc);
- _progress = XtVaCreateManagedWidget("progress",
- xmlProgressWidgetClass, form,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_POSITION,
- XmNtopPosition, 30,
- XmNheight, 24,
- XmNvalue, 50,
- XtVaTypedArg, XmNforeground, XmRString, "#0000C0", 8,
- XtVaTypedArg, XmNbackground, XmRString, "white", 6,
- NULL);
- button = XtVaCreateManagedWidget("Quick Sweep",
- xmPushButtonWidgetClass, form,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNmarginWidth, 15,
- NULL);
- XtAddCallback(button, XmNactivateCallback, ProgSweepCB, (XtPointer)1);
- button = XtVaCreateManagedWidget("Slow Sweep",
- xmPushButtonWidgetClass, form,
- XmNrightAttachment, XmATTACH_WIDGET,
- XmNrightWidget, button,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginWidth, 15,
- NULL);
- XtAddCallback(button, XmNactivateCallback, ProgSweepCB, (XtPointer)0);
- XtAddCallback(XtParent(form), XmNactivateCallback, ProgSwitchCB, NULL);
- }
-
- static void ProgSwitchCB(w, clientData, callData)
- Widget w;
- XtPointer clientData, callData;
- {
- XmLFolderCallbackStruct *cbs;
-
- cbs = (XmLFolderCallbackStruct *)callData;
- if (cbs->pos == 0)
- XtVaSetValues(_progress,
- XmNvalue, 50,
- XmNshadowThickness, 2,
- XmNmeterStyle, XmMETER_BAR,
- XtVaTypedArg, XmNforeground, XmRString, "#0000C0", 8,
- XmNshowTime, False,
- NULL);
- else if (cbs->pos == 1)
- XtVaSetValues(_progress,
- XmNvalue, 50,
- XmNshadowThickness, 1,
- XmNmeterStyle, XmMETER_BOXES,
- XmNnumBoxes, 20,
- XtVaTypedArg, XmNforeground, XmRString, "#0000C0", 8,
- XmNshowTime, False,
- NULL);
- else
- XtVaSetValues(_progress,
- XmNvalue, 50,
- XmNshadowThickness, 2,
- XmNmeterStyle, XmMETER_BAR,
- XtVaTypedArg, XmNforeground, XmRString, "#E00000", 8,
- XmNshowTime, True,
- NULL);
- }
-
- static void ProgSweepCB(w, clientData, callData)
- Widget w;
- XtPointer clientData;
- XtPointer callData;
- {
- int i, quickSweep;
-
- quickSweep = (int)clientData;
- if (quickSweep)
- for (i = 0; i <= 100; i += 4)
- XtVaSetValues(_progress,
- XmNvalue, i,
- NULL);
- else
- {
- for (i = 0; i <= 100; i += 23)
- {
- XtVaSetValues(_progress,
- XmNvalue, i,
- NULL);
- sleep(1);
- }
- XtVaSetValues(_progress,
- XmNvalue, 100,
- NULL);
- }
- }
-
- /*
- Tree Tab Form
- */
-
- static void TreeSwitchCB();
- static void TreeSample();
- Widget _tree;
-
- void AddTreeTabForm(folder)
- Widget folder;
- {
- Widget form, w;
- XmString str;
- static char *desc =
- "The Tree widget may be used to display hierarchical data and \
- parent-child relationships.\
- \n\n\
- The Tree One sample contains a simple Tree in browse select mode. \
- Note that horizontal scrolling is on a per-pixel basis while vertical \
- scrolling is on a per-row basis and the horizontal and vertical \
- scrollbars only appear as needed. The plus and minus indicators \
- may be used to expand and collapse rows. Activating a row \
- with Return or by double clicking on it will toggle the expanded \
- state of the row.\
- \n\n\
- The Tree Two sample contains a Tree in multiple row select mode with \
- application defined pixmaps.\
- \n\n\
- The Tree Three sample displays a Tree in browse select mode containing \
- multiple columns. The columns support interactive resizing by \
- dragging a column heading larger or smaller.\
- \n\n\
- The Tree widget is a subclass of the Grid, meaning it includes all the \
- functionality of the Grid widget. This includes selection policies \
- of single row, multiple row, etc. as well as full control over colors, \
- fonts, alignment, borders, etc. on a per-cell basis. The Tree \
- also supports all the other features of the Grid, including heading, \
- content and footer rows and columns, various cell types etc.\
- \n\n\
- An application may add rows to the Tree and let the Tree handle \
- the expansion and collapse of rows, or for large trees, \
- an application may handle the expansion and collapse of rows \
- by adding (creating) and deleting rows dynamically as needed.\
- \n\n\
- Resources exist to set the indent level, various colors of the \
- Tree, etc. As stated earlier, the Tree also contains all the \
- resources available in the Grid.\
- \n\n\
- This widget is new in the 3.0 release.";
-
- form = AddWidgetSample(folder, "Tree", desc);
- _tree = XtVaCreateManagedWidget("tree",
- xmlTreeWidgetClass, form,
- XmNleftAttachment, XmATTACH_FORM,
- XmNrightAttachment, XmATTACH_FORM,
- XmNtopAttachment, XmATTACH_FORM,
- XmNbottomAttachment, XmATTACH_FORM,
- NULL);
- TreeSample(0);
- XtAddCallback(XtParent(form), XmNactivateCallback, TreeSwitchCB, NULL);
- }
-
- static void TreeSwitchCB(w, clientData, callData)
- Widget w;
- XtPointer clientData, callData;
- {
- XmLFolderCallbackStruct *cbs;
-
- cbs = (XmLFolderCallbackStruct *)callData;
- TreeSample(cbs->pos);
- }
-
- #define dot_width 16
- #define dot_height 16
- static unsigned char dot_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0xb0, 0x1f,
- 0x18, 0x3f, 0xb8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf0, 0x1f,
- 0xe0, 0x0f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00};
-
- #define win_width 16
- #define win_height 16
- static unsigned char win_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x08, 0x40, 0xe8, 0x6f, 0xe8, 0x61,
- 0xe8, 0x61, 0xe8, 0x61, 0x28, 0x60, 0x28, 0x60, 0x28, 0x60, 0x08, 0x60,
- 0x08, 0x60, 0xe8, 0x7f, 0xf0, 0x7f, 0x00, 0x00};
-
- static Pixmap dotPixmap = XmUNSPECIFIED_PIXMAP;
- static Pixmap dotPixmask;
- static Pixmap winPixmap = XmUNSPECIFIED_PIXMAP;
- static Pixmap winPixmask;
-
- static void TreeSample(num)
- int num;
- {
- XmLTreeRowDefinition *rows;
- int i, n, size, level;
- Pixel bg;
- char buf[80];
- static struct
- {
- Boolean expands;
- int level;
- } defs[10] =
- {
- True, 0,
- True, 1,
- True, 2,
- False, 3,
- False, 2,
- False, 2,
- True, 1,
- False, 2,
- False, 2,
- True, 2,
- };
-
- if (dotPixmap == XmUNSPECIFIED_PIXMAP)
- CreatePixmap(_tree, 4, &dotPixmap, &dotPixmask,
- (char *)dot_bits, dot_width, dot_height);
- if (winPixmap == XmUNSPECIFIED_PIXMAP)
- CreatePixmap(_tree, 1, &winPixmap, &winPixmask,
- (char *)win_bits, win_width, win_height);
-
- XtVaSetValues(_tree,
- XmNlayoutFrozen, True,
- NULL);
-
- XmLGridDeleteAllRows(_tree, XmCONTENT);
- XtVaSetValues(_tree,
- XmNallowColumnResize, False,
- XmNheadingRows, 0,
- XmNcolumns, 1,
- XmNshadowThickness, 1,
- XmNselectionPolicy, XmSELECT_BROWSE_ROW,
- XmNhighlightRowMode, False,
- XmNglobalPixmapWidth, 0,
- XmNglobalPixmapHeight, 0,
- NULL);
- XtVaSetValues(_tree,
- XmNcolumn, 0,
- XmNcolumnSizePolicy, XmVARIABLE,
- NULL);
- XtVaGetValues(_tree,
- XmNbackground, &bg,
- NULL);
- XtVaSetValues(_tree,
- XmNcellDefaults, True,
- XmNcellBackground, bg,
- XmNcellLeftBorderType, XmBORDER_LINE,
- XmNcellRightBorderType, XmBORDER_LINE,
- XmNcellTopBorderType, XmBORDER_LINE,
- XmNcellBottomBorderType, XmBORDER_LINE,
- XmNcellAlignment, XmALIGNMENT_CENTER,
- NULL);
-
- n = 100;
-
- if (num == 1)
- XtVaSetValues(_tree,
- XmNselectionPolicy, XmSELECT_MULTIPLE_ROW,
- XmNglobalPixmapWidth, 16,
- XmNglobalPixmapHeight, 16,
- NULL);
- else if (num == 2)
- XtVaSetValues(_tree,
- XmNhighlightRowMode, True,
- XmNheadingRows, 1,
- XmNcolumns, 5,
- XmNsimpleHeadings, "Object|Position|Size|Method|Note",
- XmNsimpleWidths, "1c 10c 10c 15c 15c",
- XmNallowColumnResize, True,
- NULL);
-
- XtVaSetValues(_tree,
- XmNcellDefaults, True,
- XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
- XmNcellLeftBorderType, XmBORDER_NONE,
- XmNcellRightBorderType, XmBORDER_NONE,
- XmNcellTopBorderType, XmBORDER_NONE,
- XmNcellBottomBorderType, XmBORDER_NONE,
- XmNcellAlignment, XmALIGNMENT_RIGHT,
- NULL);
- if (num == 2)
- XtVaSetValues(_tree,
- XmNcellDefaults, True,
- XmNcolumnRangeStart, 3,
- XmNcolumnRangeEnd, 4,
- XmNcellAlignment, XmALIGNMENT_CENTER,
- NULL);
-
- size = sizeof(XmLTreeRowDefinition);
- rows = (XmLTreeRowDefinition *)malloc(size * n);
- level = 0;
- for (i = 0; i < n; i++)
- {
- rows[i].level = defs[i % 10].level;
- rows[i].expands = defs[i % 10].expands;
- rows[i].isExpanded = True;
- if (num < 2)
- {
- if (i % 30 >= 10)
- rows[i].level += 3;
- if (i % 30 >= 20)
- rows[i].level += 3;
- }
- if (num != 1)
- {
- rows[i].pixmap = XmUNSPECIFIED_PIXMAP;
- rows[i].pixmask = XmUNSPECIFIED_PIXMAP;
- }
- else
- {
- if (rows[i].expands == True)
- {
- rows[i].pixmap = dotPixmap;
- rows[i].pixmask = dotPixmask;
- }
- else
- {
- rows[i].pixmap = winPixmap;
- rows[i].pixmask = winPixmask;
- }
- }
- if (num == 0)
- sprintf(buf, "Row %d Level %d\n", i, rows[i].level);
- else if (num == 2)
- {
- if (rows[i].expands)
- sprintf(buf, "Composite");
- else if (i % 5)
- sprintf(buf, "Curve");
- else
- sprintf(buf, "Surface");
- }
- else
- {
- if (rows[i].expands == True)
- sprintf(buf, "Sector Number %d-%d%d",
- rows[i].level, i % 2, i + 413);
- else
- sprintf(buf, "Item Number %d%d%d", i % 12, i % 3, i % 2);
- }
- rows[i].string = XmStringCreateSimple(buf);
- }
- XmLTreeAddRows(_tree, rows, n, -1);
- for (i = 0; i < n; i++)
- {
- XmStringFree(rows[i].string);
- if (num == 2)
- {
- sprintf(buf, "%d %d|%d points|Open|In Progress",
- i % 20, i % 15, i % 4);
- XmLGridSetStringsPos(_tree, XmCONTENT, i, XmCONTENT, 1, buf);
- }
- }
- free((char *)rows);
-
- XtVaSetValues(_tree,
- XmNlayoutFrozen, False,
- NULL);
- }
-