/* $Header: /cvsroot/lesstif/lesstif/test/Xm-2.0/notebook/test1.c,v 1.10 2002/05/01 15:47:32 amai Exp $ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../../common/Test.h" void check_geometry(Widget w) { static int result_index = 0; static XtWidgetGeometry Expected[] = { /* result test 0 */ { CWWidth | CWHeight , 4, 23, 639, 565, 0,0,0 }, /* test1.motif */ { CWWidth | CWHeight , 4, 23, 639, 565, 0,0,0 }, /* notebook */ { CWWidth | CWHeight | CWX | CWY, 446, 507, 94, 29, 0,0,0 }, /* PageScroller */ { CWWidth | CWHeight | CWX | CWY, 20, 2, 54, 25, 0,0,0 }, /* NBTextField */ { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MajorTabScrollerNext */ { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MajorTabScrollerPrevious */ { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MinorTabScrollerNext */ { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MinorTabScrollerPrevious */ { CWWidth | CWHeight | CWX | CWY, -500, -504, 500, 504, 0,0,0 }, /* configureWindow */ { CWWidth | CWHeight | CWX | CWY, 383, 160, 99, 30, 0,0,0 }, /* moveDownButton */ { CWWidth | CWHeight | CWX | CWY, 259, 160, 99, 30, 0,0,0 }, /* moveUpButton */ { CWWidth | CWHeight | CWX | CWY, 10, 160, 99, 30, 0,0,0 }, /* addDBButton */ { CWWidth | CWHeight | CWX | CWY, 10, 200, 482, 20, 0,0,0 }, /* separator2 */ { CWWidth | CWHeight | CWX | CWY, 134, 160, 100, 30, 0,0,0 }, /* deleteButton */ { CWWidth | CWHeight | CWX | CWY, 10, 426, 480, 20, 0,0,0 }, /* separator1 */ { CWWidth | CWHeight | CWX | CWY, 222, 380, 268, 36, 0,0,0 }, /* dbDescFileTf */ { CWWidth | CWHeight | CWX | CWY, 222, 332, 268, 36, 0,0,0 }, /* dbFileTf */ { CWWidth | CWHeight | CWX | CWY, 10, 383, 200, 43, 0,0,0 }, /* label5 */ { CWWidth | CWHeight | CWX | CWY, 10, 331, 202, 42, 0,0,0 }, /* label4 */ { CWWidth | CWHeight | CWX | CWY, 10, 280, 202, 41, 0,0,0 }, /* label3 */ { CWWidth | CWHeight | CWX | CWY, 222, 280, 268, 35, 0,0,0 }, /* optionMenu1 */ { CWWidth | CWHeight | CWX | CWY, 3, 3, 10, 29, 0,0,0 }, /* OptionLabel */ { CWWidth | CWHeight | CWX | CWY, 16, 3, 103, 29, 0,0,0 }, /* OptionButton */ { CWWidth | CWHeight | CWX | CWY, 222, 230, 268, 36, 0,0,0 }, /* dbNameTf */ { CWWidth | CWHeight | CWX | CWY, 10, 230, 202, 40, 0,0,0 }, /* label2 */ { CWWidth | CWHeight | CWX | CWY, 10, 50, 481, 100, 0,0,0 }, /* scrolledWindow1 */ { CWWidth | CWHeight | CWX | CWY, 0, 0, 15, 104, 0,0,0 }, /* VertScrollBar */ { CWWidth | CWHeight | CWX | CWY, 0, 0, 481, 100, 0,0,0 }, /* dbList */ { CWWidth | CWHeight | CWX | CWY, 10, 10, 101, 30, 0,0,0 }, /* label1 */ { CWWidth | CWHeight | CWX | CWY, 230, 456, 115, 31, 0,0,0 }, /* cancelButton */ { CWWidth | CWHeight | CWX | CWY, 20, 456, 115, 31, 0,0,0 }, /* applyButton */ { CWWidth | CWHeight | CWX | CWY, 0, 0, 1, 1, 0,0,0 }, /* menuShell */ { CWWidth | CWHeight | CWX | CWY, 0, 0, 78, 25, 0,0,0 }, /* pulldownMenu5 */ { CWWidth | CWHeight | CWX | CWY, 2, 2, 74, 21, 0,0,0 }, /* pushButton5 */ { CWWidth | CWHeight | CWX | CWY, -90, -25, 90, 25, 0,0,0 }, /* ConfigurePage */ { CWWidth | CWHeight | CWX | CWY, 40, 3, 500, 504, 0,0,0 }, /* tf */ { CWWidth | CWHeight | CWX | CWY, 540, 10, 90, 25, 0,0,0 }, /* Editor */ { CWWidth | CWHeight | CWX | CWY, -36, -25, 36, 25, 0,0,0 }, /* quit */ { CWWidth | CWHeight | CWX | CWY, 545, 38, 90, 25, 0,0,0 }, /* Quit */ }; #if 0 PrintDetails2(w, NULL); #else if (result_index <= 0) { PrintDetails2(w, Expected); fflush(stdout); result_index ++; } #endif } void Quit(Widget w, XtPointer client, XtPointer call) { exit(0); } Widget CreateConfigureWindow(Widget parent); Widget form, toplevel, deleteButton, dbDescFileTf, dbFileTf, DBOptionMenu, dbNameTf, dbList; int main(int argc, char **argv) { Widget toplevel, nb, b, tf, cw; XtAppContext app; Arg al[10]; int ac; XtSetLanguageProc(NULL, NULL, NULL); toplevel = XtVaAppInitialize(&app, "Notebook", NULL, 0, &argc, argv, NULL, NULL); ac = 0; XtSetArg(al[ac], XmNbindingType, XmSPIRAL); ac++; nb = XmCreateNotebook(toplevel, "notebook", al, ac); ac = 0; XtSetArg(al[ac], XmNnotebookChildType, XmPAGE); ac++; XtSetArg(al[ac], XmNpageNumber, 1); ac++; tf = XmCreateTextField(nb, "tf", al, ac); XtManageChild(tf); ac = 0; XtSetArg(al[ac], XmNnotebookChildType, XmPAGE); ac++; XtSetArg(al[ac], XmNpageNumber, 2); ac++; b = XmCreatePushButton(nb, "quit", al, ac); XtManageChild(b); XtAddCallback(b, XmNactivateCallback, Quit, NULL); cw = CreateConfigureWindow(nb); XtManageChild(cw); ac = 0; XtSetArg(al[ac], XmNpageNumber, 0); ac++; XtSetValues(cw, al, ac); ac = 0; XtSetArg(al[ac], XmNpageNumber, 0); ac++; b = XmCreatePushButton(nb, "ConfigurePage", al, ac); XtManageChild(b); ac = 0; XtSetArg(al[ac], XmNpageNumber, 1); ac++; b = XmCreatePushButton(nb, "Editor", al, ac); XtManageChild(b); ac = 0; XtSetArg(al[ac], XmNpageNumber, 2); ac++; b = XmCreatePushButton(nb, "Quit", al, ac); XtManageChild(b); XtManageChild(nb); XtRealizeWidget(toplevel); check_geometry(toplevel); LessTifTestMainLoop(toplevel); exit(0); } #define LARGE_WIDTH 400 #define LARGE_HEIGHT 500 #define SMALL_WIDTH 200 #define SMALL_HEIGHT 250 /* * Function: * CONVERT(w, from_string, to_type, to_size, success); * Description: * A converter wrapper for convenience from BuilderXcessory. * Input: * w - Widget : the widget to use for conversion * from_string - char * : the string to convert from * to_type - char * : the type to convert to * to_size - int : the size of the conversion result * success - Boolean* : Set to the result value of the conversion * Output: * None */ XtPointer CONVERT(Widget w, char *from_string, char * to_type, int to_size, Boolean * success) { XrmValue fromVal, toVal; /* resource holders */ Boolean convResult; /* return value */ unsigned char oByte; /* one byte result */ unsigned short tByte; /* two byte result */ XtPointer fByte; /* four byte result */ XtPointer aByte; /* allocated result */ /* * Zero it. */ fByte = aByte = NULL; *success = False; /* * Sometimes we do not know this at code output. */ if (to_size == 0) { if (!strcmp(to_type, XmRXmString) || !strcmp(to_type, XmRXmStringTable)) { to_size = sizeof(XtPointer); } else { to_size = strlen(from_string); } } /* * Set up the list. */ fromVal.size = strlen(from_string) + 1; fromVal.addr = from_string; switch( to_size ) { case 1: toVal.size = sizeof(unsigned char); toVal.addr = (XtPointer)&oByte; break; case 2: toVal.size = sizeof(unsigned short); toVal.addr = (XtPointer)&tByte; break; default: toVal.size = sizeof(XtPointer); toVal.addr = (XtPointer)&fByte; break; } convResult = XtConvertAndStore(w, XmRString, &fromVal, to_type, &toVal); if( convResult ) { switch( to_size ) { case 1: fByte = (XtPointer)((int)oByte); break; case 2: fByte = (XtPointer)((int)tByte); break; default: break; } } /* * Conversion will fail if we need more than 4 bytes. * For strings it will fail always the first time. */ if( !convResult && toVal.size != to_size ) { /* * Need to allocate more space for this one. */ toVal.addr = (XtPointer)XtMalloc(toVal.size); fByte = aByte = toVal.addr; convResult = XtConvertAndStore(w, XmRString, &fromVal, to_type, &toVal); } /* * Free any thing useless we may have allocated. */ if( !convResult ) { XtFree((char*)aByte); aByte = NULL; } /* * Return the result. */ *success = convResult; /*SUPPRESS 80*/ return(fByte); } /* * Function: CreateConfigureWindow() * Create configureWindow hierarchy of widgets. */ Widget CreateConfigureWindow(Widget parent) { Arg args[512]; Cardinal argcnt; Boolean argok; Widget retval; Widget configureWindow; Widget applyButton; Widget cancelButton; Widget label1; Widget scrolledWindow1; Widget label2; Widget menuShell; Widget pulldownMenu5; Widget pushButton5; Widget label3; Widget label4; Widget label5; Widget separator1; Widget separator2; Widget addDBButton; Widget moveUpButton; Widget moveDownButton; argok = False; argcnt = 0; XtSetArg(args[argcnt], XmNautoUnmanage, False); argcnt++; XtSetArg(args[argcnt], XmNresizePolicy, XmRESIZE_GROW); argcnt++; XtSetArg(args[argcnt], XmNx, 0); argcnt++; XtSetArg(args[argcnt], XmNy, 0); argcnt++; XtSetArg(args[argcnt], XmNwidth, 500); argcnt++; XtSetArg(args[argcnt], XmNheight, 504); argcnt++; configureWindow = XtCreateWidget("configureWindow", xmFormWidgetClass, parent, args, argcnt); retval = configureWindow; argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Move Down", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNwidth, 99); argcnt++; XtSetArg(args[argcnt], XmNheight, 30); argcnt++; moveDownButton = XtCreateWidget("moveDownButton", xmPushButtonWidgetClass, configureWindow, args, argcnt); XtManageChild(moveDownButton); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Move Up", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNwidth, 99); argcnt++; XtSetArg(args[argcnt], XmNheight, 30); argcnt++; moveUpButton = XtCreateWidget("moveUpButton", xmPushButtonWidgetClass, configureWindow, args, argcnt); XtManageChild(moveUpButton); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"New", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 99); argcnt++; XtSetArg(args[argcnt], XmNheight, 30); argcnt++; addDBButton = XtCreateWidget("addDBButton", xmPushButtonWidgetClass, configureWindow, args, argcnt); XtManageChild(addDBButton); argcnt = 0; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 50); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 482); argcnt++; XtSetArg(args[argcnt], XmNheight, 20); argcnt++; separator2 = XtCreateWidget("separator2", xmSeparatorWidgetClass, configureWindow, args, argcnt); XtManageChild(separator2); argcnt = 0; XtSetArg(args[argcnt], XmNsensitive, True); argcnt++; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Delete", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++; XtSetArg(args[argcnt], XmNwidth, 100); argcnt++; XtSetArg(args[argcnt], XmNheight, 30); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, addDBButton); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, addDBButton); argcnt++; deleteButton = XtCreateWidget("deleteButton", xmPushButtonWidgetClass, configureWindow, args, argcnt); XtManageChild(deleteButton); argcnt = 0; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 480); argcnt++; XtSetArg(args[argcnt], XmNheight, 20); argcnt++; separator1 = XtCreateWidget("separator1", xmSeparatorWidgetClass, configureWindow, args, argcnt); XtManageChild(separator1); argcnt = 0; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, -3); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 268); argcnt++; XtSetArg(args[argcnt], XmNheight, 36); argcnt++; dbDescFileTf = XtCreateWidget("dbDescFileTf", xmTextFieldWidgetClass, configureWindow, args, argcnt); XtManageChild(dbDescFileTf); argcnt = 0; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 1); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 268); argcnt++; XtSetArg(args[argcnt], XmNheight, 36); argcnt++; dbFileTf = XtCreateWidget("dbFileTf", xmTextFieldWidgetClass, configureWindow, args, argcnt); XtManageChild(dbFileTf); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Description File Name :", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 200); argcnt++; XtSetArg(args[argcnt], XmNheight, 43); argcnt++; label5 = XtCreateWidget("label5", xmLabelWidgetClass, configureWindow, args, argcnt); XtManageChild(label5); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"File Name :", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 202); argcnt++; XtSetArg(args[argcnt], XmNheight, 42); argcnt++; label4 = XtCreateWidget("label4", xmLabelWidgetClass, configureWindow, args, argcnt); XtManageChild(label4); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Database Type :", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 202); argcnt++; XtSetArg(args[argcnt], XmNheight, 41); argcnt++; label3 = XtCreateWidget("label3", xmLabelWidgetClass, configureWindow, args, argcnt); XtManageChild(label3); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent," ", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_OPTION); argcnt++; XtSetArg(args[argcnt], XmNwidth, 268); argcnt++; XtSetArg(args[argcnt], XmNheight, 31); argcnt++; DBOptionMenu = XtCreateWidget("optionMenu1", xmRowColumnWidgetClass, configureWindow, args, argcnt); XtManageChild(DBOptionMenu); argcnt = 0; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 268); argcnt++; XtSetArg(args[argcnt], XmNheight, 36); argcnt++; dbNameTf = XtCreateWidget("dbNameTf", xmTextFieldWidgetClass, configureWindow, args, argcnt); XtManageChild(dbNameTf); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Database Name", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 202); argcnt++; XtSetArg(args[argcnt], XmNheight, 40); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, separator2); argcnt++; label2 = XtCreateWidget("label2", xmLabelWidgetClass, configureWindow, args, argcnt); XtManageChild(label2); argcnt = 0; XtSetArg(args[argcnt], XmNscrollingPolicy, XmAPPLICATION_DEFINED); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 9); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 481); argcnt++; XtSetArg(args[argcnt], XmNheight, 100); argcnt++; scrolledWindow1 = XtCreateWidget("scrolledWindow1", xmScrolledWindowWidgetClass, configureWindow, args, argcnt); XtManageChild(scrolledWindow1); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Database Names :", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNx, 10); argcnt++; XtSetArg(args[argcnt], XmNy, 10); argcnt++; XtSetArg(args[argcnt], XmNwidth, 101); argcnt++; XtSetArg(args[argcnt], XmNheight, 30); argcnt++; label1 = XtCreateWidget("label1", xmLabelWidgetClass, configureWindow, args, argcnt); XtManageChild(label1); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Cancel", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 95); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNwidth, 115); argcnt++; XtSetArg(args[argcnt], XmNheight, 31); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, separator1); argcnt++; cancelButton = XtCreateWidget("cancelButton", xmPushButtonWidgetClass, configureWindow, args, argcnt); XtManageChild(cancelButton); argcnt = 0; XtSetArg(args[argcnt], XmNlabelString, CONVERT(parent,"Apply", "XmString", 0, &argok)); if (argok) argcnt++; XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++; XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNx, 20); argcnt++; XtSetArg(args[argcnt], XmNwidth, 115); argcnt++; XtSetArg(args[argcnt], XmNheight, 31); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, separator1); argcnt++; applyButton = XtCreateWidget("applyButton", xmPushButtonWidgetClass, configureWindow, args, argcnt); XtManageChild(applyButton); XtAddCallback(applyButton, XmNactivateCallback, Quit, 0); argcnt = 0; XtSetArg(args[argcnt], XmNleftOffset, 95); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, applyButton); argcnt++; XtSetValues(cancelButton, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNselectionPolicy, XmSINGLE_SELECT); argcnt++; XtSetArg(args[argcnt], XmNwidth, 481); argcnt++; XtSetArg(args[argcnt], XmNheight, 100); argcnt++; dbList = XtCreateWidget("dbList", xmListWidgetClass, scrolledWindow1, args, argcnt); XtManageChild(dbList); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label1); argcnt++; XtSetValues(scrolledWindow1, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label2); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, label2); argcnt++; XtSetValues(dbNameTf, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNwidth, 1); argcnt++; XtSetArg(args[argcnt], XmNheight, 1); argcnt++; menuShell = XtCreatePopupShell("menuShell", xmMenuShellWidgetClass, XtParent(DBOptionMenu), args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_PULLDOWN); argcnt++; XtSetArg(args[argcnt], XmNx, 0); argcnt++; XtSetArg(args[argcnt], XmNy, 0); argcnt++; XtSetArg(args[argcnt], XmNwidth, 78); argcnt++; XtSetArg(args[argcnt], XmNheight, 25); argcnt++; pulldownMenu5 = XtCreateWidget("pulldownMenu5", xmRowColumnWidgetClass, menuShell, args, argcnt); argcnt = 0; pushButton5 = XtCreateWidget("pushButton5", xmPushButtonWidgetClass, pulldownMenu5, args, argcnt); XtManageChild(pushButton5); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label2); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, dbNameTf); argcnt++; XtSetArg(args[argcnt], XmNsubMenuId, pulldownMenu5); argcnt++; XtSetValues(DBOptionMenu, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label2); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNrightWidget, label2); argcnt++; XtSetValues(label3, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label3); argcnt++; XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNrightWidget, label3); argcnt++; XtSetValues(label4, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label4); argcnt++; XtSetValues(label5, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 1); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label4); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, dbNameTf); argcnt++; XtSetValues(dbFileTf, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, -3); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, label5); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, dbNameTf); argcnt++; XtSetValues(dbDescFileTf, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, dbDescFileTf); argcnt++; XtSetValues(separator1, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 50); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, scrolledWindow1); argcnt++; XtSetValues(separator2, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, scrolledWindow1); argcnt++; XtSetValues(addDBButton, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, addDBButton); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, deleteButton); argcnt++; XtSetValues(moveUpButton, args, argcnt); argcnt = 0; XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++; XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNtopWidget, moveUpButton); argcnt++; XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++; XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++; XtSetArg(args[argcnt], XmNleftWidget, moveUpButton); argcnt++; XtSetValues(moveDownButton, args, argcnt); return( retval ); }