int main(int argc, char *argv[]) { Widget rc, frame1, label; XtSetLanguageProc(NULL, NULL, NULL); top = XtVaAppInitialize(&app_context, "Test-prog", NULL, 0, &argc, argv, NULL, NULL); main_window = XtVaCreateManagedWidget("mainwin", xmMainWindowWidgetClass, top, NULL); XmRepTypeInstallTearOffModelConverter(); menubar = XmCreateMenuBar(main_window, "menubar", NULL, 0); XtManageChild(menubar); XmMainWindowSetAreas(main_window,menubar,NULL,NULL,NULL,NULL); rc = XtVaCreateWidget("rc", xmRowColumnWidgetClass, main_window, NULL); XtVaSetValues(main_window, XmNworkWindow, rc, NULL); XtManageChild(rc); frame1 = XtVaCreateWidget("frame1", xmFrameWidgetClass, rc, NULL); XtManageChild(frame1); XtRealizeWidget(top); label = XtVaCreateManagedWidget("Rampaging Bulldozers", xmLabelWidgetClass, frame1, NULL); { static XtWidgetGeometry Expected[] = { CWWidth | CWHeight , 56, 72, 16, 32, 0,0,0, /* mainwin */ CWWidth | CWHeight | CWX | CWY, 0, 0, 16, 16, 0,0,0, /* menubar */ CWWidth | CWHeight | CWX | CWY, 0, 16, 16, 16, 0,0,0, /* rc */ CWWidth | CWHeight | CWX | CWY, 3, 3, 10, 4, 0,0,0, /* frame1 */ CWWidth | CWHeight | CWX | CWY, 2, 2, 6, 1, 0,0,0, /* Rampaging Bulldozers */ }; /* toplevel should be replaced with to correct applicationShell */ PrintDetails(top, Expected); } LessTifTestMainLoop(top); exit(0); }
void main(int argc, char *argv[]) { int i; #ifdef IRIX_5_1_MOTIF_BUG_WORKAROUND /* * XXX Unfortunately a bug in the IRIX 5.1 Motif shared library * causes a BadMatch X protocol error if the SGI look&feel * is enabled for this program. If we detect we are on an * IRIX 5.1 system, skip the first two fallback resources which * specify using the SGI look&feel. */ struct utsname versionInfo; if(uname(&versionInfo) >= 0) { if(!strcmp(versionInfo.sysname, "IRIX") && !strncmp(versionInfo.release, "5.1", 3)) { toplevel = XtAppInitialize(&app, "Textfun", NULL, 0, &argc, argv, &fallbackResources[2], NULL, 0); } } if(toplevel == NULL) { toplevel = XtAppInitialize(&app, "Textfun", NULL, 0, &argc, argv, fallbackResources, NULL, 0); } #else toplevel = XtAppInitialize(&app, "Textfun", NULL, 0, &argc, argv, fallbackResources, NULL, 0); #endif dpy = XtDisplay(toplevel); /* find an OpenGL-capable RGB visual with depth buffer */ vi = glXChooseVisual(dpy, DefaultScreen(dpy), dblBuf); if (vi == NULL) { vi = glXChooseVisual(dpy, DefaultScreen(dpy), snglBuf); if (vi == NULL) XtAppError(app, "no RGB visual with depth buffer"); doubleBuffer = GL_FALSE; } for (i = 0; i < NUM_FONT_ENTRIES; i++) { fontEntry[i].xfont = XLoadQueryFont(dpy, fontEntry[i].xlfd); if (i == 0 && !fontEntry[i].xfont) XtAppError(app, "could not get basic font"); } fontEntry[0].fontinfo = SuckGlyphsFromServer(dpy, fontEntry[0].xfont->fid); if (!fontEntry[0].fontinfo) XtAppError(app, "could not get font glyphs"); /* create an OpenGL rendering context */ cx = glXCreateContext(dpy, vi, /* no display list sharing */ None, /* favor direct */ GL_TRUE); if (cx == NULL) XtAppError(app, "could not create rendering context"); /* create an X colormap since probably not using default visual */ cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone); XtVaSetValues(toplevel, XtNvisual, vi->visual, XtNdepth, vi->depth, XtNcolormap, cmap, NULL); XtAddEventHandler(toplevel, StructureNotifyMask, False, map_state_changed, NULL); mainw = XmCreateMainWindow(toplevel, "mainw", NULL, 0); XtManageChild(mainw); /* create menu bar */ menubar = XmCreateMenuBar(mainw, "menubar", NULL, 0); XtManageChild(menubar); /* hack around Xt's ignorance of visuals */ XtSetArg(menuPaneArgs[0], XmNdepth, DefaultDepthOfScreen(XtScreen(mainw))); XtSetArg(menuPaneArgs[1], XmNcolormap, DefaultColormapOfScreen(XtScreen(mainw))); /* create File pulldown menu: Quit */ menupane = XmCreatePulldownMenu(menubar, "menupane", menuPaneArgs, 2); btn = XmCreatePushButton(menupane, "Quit", NULL, 0); XtAddCallback(btn, XmNactivateCallback, quit, NULL); XtManageChild(btn); XtSetArg(args[0], XmNsubMenuId, menupane); cascade = XmCreateCascadeButton(menubar, "File", args, 1); XtManageChild(cascade); /* create Options pulldown menu: Motion, Dolly, Rotate, Wobble */ menupane = XmCreatePulldownMenu(menubar, "menupane", menuPaneArgs, 2); btn = XmCreateToggleButton(menupane, "Motion", NULL, 0); XtAddCallback(btn, XmNvalueChangedCallback, (XtCallbackProc) toggle, NULL); XtManageChild(btn); btn = XmCreateToggleButton(menupane, "Dolly", NULL, 0); XtAddCallback(btn, XmNvalueChangedCallback, (XtCallbackProc) dolly, NULL); XtVaSetValues(btn, XmNset, True, NULL); XtManageChild(btn); btn = XmCreateToggleButton(menupane, "Rotate", NULL, 0); XtAddCallback(btn, XmNvalueChangedCallback, (XtCallbackProc) rotate, NULL); XtManageChild(btn); btn = XmCreateToggleButton(menupane, "Wobble", NULL, 0); XtAddCallback(btn, XmNvalueChangedCallback, (XtCallbackProc) wobble, NULL); XtManageChild(btn); XtSetArg(args[0], XmNsubMenuId, menupane); cascade = XmCreateCascadeButton(menubar, "Options", args, 1); XtManageChild(cascade); XtSetArg(menuPaneArgs[2], XmNradioBehavior, True); XtSetArg(menuPaneArgs[3], XmNradioAlwaysOne, True); menupane = XmCreatePulldownMenu(menubar, "menupane", menuPaneArgs, 4); XtAddCallback(menupane, XmNentryCallback, (XtCallbackProc) fontSelect, NULL); for (i = 0; i < NUM_FONT_ENTRIES; i++) { btn = XmCreateToggleButton(menupane, fontEntry[i].name, NULL, 0); XtAddCallback(btn, XmNvalueChangedCallback, (XtCallbackProc) neverCalled, &fontEntry[i]); if (i == 0) XtVaSetValues(btn, XmNset, True, NULL); if (!fontEntry[i].xfont) XtSetSensitive(btn, False); XtManageChild(btn); } XtSetArg(args[0], XmNsubMenuId, menupane); cascade = XmCreateCascadeButton(menubar, "Font", args, 1); XtManageChild(cascade); /* create framed drawing area for OpenGL rendering */ frame = XmCreateFrame(mainw, "frame", NULL, 0); XtManageChild(frame); glxarea = XtCreateManagedWidget("glxarea", xmDrawingAreaWidgetClass, frame, NULL, 0); XtAddCallback(glxarea, XmNexposeCallback, (XtCallbackProc) draw, NULL); XtAddCallback(glxarea, XmNresizeCallback, resize, NULL); XtAddCallback(glxarea, XmNinputCallback, input, NULL); /* set up application's window layout */ XmMainWindowSetAreas(mainw, menubar, NULL, NULL, NULL, frame); XtRealizeWidget(toplevel); /* * Once widget is realized (ie, associated with a created X window), we * can bind the OpenGL rendering context to the window. */ glXMakeCurrent(dpy, XtWindow(glxarea), cx); made_current = GL_TRUE; /* setup OpenGL state */ glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glClearDepth(1.0); glMatrixMode(GL_PROJECTION); glFrustum(-1.0, 1.0, -1.0, 1.0, 1.0, 80); glMatrixMode(GL_MODELVIEW); MakeCube(); if (argv[1] != NULL) { numMessages = argc - 1; messages = &argv[1]; } else { numMessages = NUM_DEFAULT_MESSAGES; messages = defaultMessage; } base = glGenLists(numMessages + 1); SetupMessageDisplayList(&fontEntry[0], numMessages, messages); tick(); /* start event processing */ XtAppMainLoop(app); }
int main(int argc, char **argv) { XtAppContext theApp; Widget shell, toplevel, menubar, filepane; Widget button, button1, button2, sep; Widget saveAsPane, button3, button4, button5; Widget button6, button7, editpane; Widget one, two, three; Widget mb; XmString xmstr; shell = XtVaAppInitialize(&theApp, "mainW", NULL, 0, &argc, argv, NULL, NULL); toplevel = XmCreateMainWindow(shell, "MainWindow", NULL, 0); XtManageChild(toplevel); menubar = XmCreateMenuBar(toplevel, "menuBar", NULL,0); XtManageChild(menubar); filepane = XmCreatePulldownMenu(menubar, "pane", NULL,0); xmstr = XmStringCreateSimple("File"); button = XtVaCreateManagedWidget("File", xmCascadeButtonWidgetClass, menubar, XmNsubMenuId, filepane, XmNlabelString, xmstr, NULL); editpane = XmCreatePulldownMenu(menubar, "pane2", NULL, 0); button6 = XtVaCreateManagedWidget("Edit", xmCascadeButtonGadgetClass, menubar, XmNsubMenuId, editpane, NULL); button7 = XtVaCreateManagedWidget("Cut", xmPushButtonGadgetClass, editpane, NULL); button1 = XtVaCreateManagedWidget("Open", xmPushButtonGadgetClass, filepane, NULL); sep = XtVaCreateManagedWidget("sep", xmSeparatorGadgetClass, filepane, NULL); button2 = XtVaCreateManagedWidget("Close", xmPushButtonWidgetClass, filepane, NULL); saveAsPane = XmCreatePulldownMenu(filepane, "save_as", NULL, 0); button3 = XtVaCreateManagedWidget("Save As", xmCascadeButtonWidgetClass, filepane, XmNsubMenuId, saveAsPane, NULL); button4 = XtVaCreateManagedWidget("MS Word", xmPushButtonWidgetClass, saveAsPane, NULL); button5 = XtVaCreateManagedWidget("LaTeX", xmPushButtonWidgetClass, saveAsPane, NULL); mb = XtVaCreateManagedWidget("mb", xmMessageBoxWidgetClass, toplevel, NULL); XtVaSetValues(toplevel, XmNmessageWindow, mb, NULL); one = XtVaCreateManagedWidget("form", xmFormWidgetClass, toplevel, NULL); two = XtVaCreateManagedWidget("two", xmPushButtonWidgetClass, one, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); three = XtVaCreateManagedWidget("three", xmPushButtonWidgetClass, one, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, two, NULL); XmMainWindowSetAreas(toplevel, menubar, NULL, NULL, NULL, one); XtRealizeWidget(shell); { static XtWidgetGeometry Expected[] = { CWWidth | CWHeight , 56, 72, 212, 143, 0,0,0, /* MainWindow */ CWWidth | CWHeight | CWX | CWY, 0, 0, 212, 31, 0,0,0, /* menuBar */ CWWidth | CWHeight | CWX | CWY, 5, 5, 40, 21, 0,0,0, /* File */ CWWidth | CWHeight | CWX | CWY, 45, 5, 40, 21, 0,0,0, /* Edit */ CWWidth | CWHeight | CWX | CWY, 0, 56, 212, 87, 0,0,0, /* mb */ CWWidth | CWHeight | CWX | CWY, 0, 0, 4, 4, 0,0,0, /* Symbol */ CWWidth | CWHeight | CWX | CWY, 10, 10, 192, 4, 0,0,0, /* Message */ CWWidth | CWHeight | CWX | CWY, 0, 24, 212, 2, 0,0,0, /* Separator */ CWWidth | CWHeight | CWX | CWY, 10, 36, 64, 41, 0,0,0, /* OK */ CWWidth | CWHeight | CWX | CWY, 74, 36, 64, 41, 0,0,0, /* Cancel */ CWWidth | CWHeight | CWX | CWY, 138, 36, 64, 41, 0,0,0, /* Help */ CWWidth | CWHeight | CWX | CWY, 0, 31, 212, 25, 0,0,0, /* form */ CWWidth | CWHeight | CWX | CWY, 182, 0, 30, 25, 0,0,0, /* two */ CWWidth | CWHeight | CWX | CWY, 0, 0, 182, 25, 0,0,0, /* three */ }; /* toplevel should be replaced with to correct applicationShell */ PrintDetails(toplevel, Expected); } LessTifTestMainLoop(shell); exit(0); }
static Widget _Uxbuild_kuipGraphics() { Widget _UxParent; /* Creation of kuipGraphics */ _UxParent = XtVaCreatePopupShell( "kuipGraphics_shell", topLevelShellWidgetClass, UxTopLevel, XmNx, 570, XmNy, 10, XmNwidth, 530, XmNheight, 550, XmNtitle, "kuipGraphics", XmNiconName, "kuipGraphics", NULL ); kuipGraphics = XtVaCreateManagedWidget( "kuipGraphics", xmMainWindowWidgetClass, _UxParent, XmNwidth, 530, XmNheight, 550, XmNmappedWhenManaged, TRUE, XmNborderWidth, 0, NULL ); UxPutContext( kuipGraphics, (char *) UxKuipGraphicsContext ); /* Creation of kuipGraphicsFrame */ kuipGraphicsFrame = XtVaCreateManagedWidget( "kuipGraphicsFrame", xmFrameWidgetClass, kuipGraphics, NULL ); UxPutContext( kuipGraphicsFrame, (char *) UxKuipGraphicsContext ); /* Creation of graphicsForm */ graphicsForm = XtVaCreateManagedWidget( "graphicsForm", xmFormWidgetClass, kuipGraphicsFrame, XmNautoUnmanage, FALSE, XmNborderWidth, 0, XmNmarginHeight, 0, XmNmarginWidth, 0, XmNhorizontalSpacing, 0, XmNverticalSpacing, 0, NULL ); UxPutContext( graphicsForm, (char *) UxKuipGraphicsContext ); /* Creation of km_graphicsDraw */ km_graphicsDraw = XtVaCreateManagedWidget( "km_graphicsDraw", xmDrawingAreaWidgetClass, graphicsForm, XmNresizePolicy, XmRESIZE_NONE, XmNx, 0, XmNy, 10, XmNwidth, 530, XmNheight, 540, XmNbottomAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 0, XmNtopOffset, 0, XmNbottomOffset, 0, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 0, XmNtopAttachment, XmATTACH_FORM, NULL ); UxPutContext( km_graphicsDraw, (char *) UxKuipGraphicsContext ); XtAddCallback( kuipGraphics, XmNdestroyCallback, (XtCallbackProc) UxDestroyContextCB, (XtPointer) UxKuipGraphicsContext); XmMainWindowSetAreas( kuipGraphics, (Widget) NULL, (Widget) NULL, (Widget) NULL, (Widget) NULL, kuipGraphicsFrame ); return ( kuipGraphics ); }
void create_appShell (Display *display, char *app_name, int app_argc, char **app_argv) { Widget children[12]; /* Children to manage */ Arg al[64]; /* Arg List */ register int ac = 0; /* Arg Count */ char from_s [256]; /* For font list conversion */ XrmValue from_value, to_value; /* ditto */ int fg, bg; /* colour values for pixmaps */ XmString *list_items; /* For list items */ int list_item; /* Index for list_items */ XmString xmstrings[15]; /* temporary storage for XmStrings */ Widget widget1 = (Widget)NULL; Widget widget2 = (Widget)NULL; Widget widget3 = (Widget)NULL; Widget widget7 = (Widget)NULL; Widget widget8 = (Widget)NULL; Widget widget9 = (Widget)NULL; Widget widget10 = (Widget)NULL; Widget widget11 = (Widget)NULL; Widget widget12 = (Widget)NULL; Widget generateButton = (Widget)NULL; Widget deleteButton = (Widget)NULL; Widget browseButton = (Widget)NULL; Widget widget13 = (Widget)NULL; Widget widget14 = (Widget)NULL; Widget widget15 = (Widget)NULL; Widget widget16 = (Widget)NULL; Widget widget17 = (Widget)NULL; Widget nameLabel = (Widget)NULL; Widget textLabel = (Widget)NULL; Widget severityLabel = (Widget)NULL; Widget widget25 = (Widget)NULL; Widget widget27 = (Widget)NULL; Widget widget28 = (Widget)NULL; Widget widget29 = (Widget)NULL; Widget widget30 = (Widget)NULL; Widget widget31 = (Widget)NULL; Widget widget32 = (Widget)NULL; Widget widget33 = (Widget)NULL; Widget moduleLabel = (Widget)NULL; Widget widget37 = (Widget)NULL; Widget *modbutton; /* replaces 38-49 */ Widget categoryLabel = (Widget)NULL; Widget descriptionLabel = (Widget)NULL; Widget toolMenu = (Widget)NULL; Widget toolCascade = (Widget)NULL; Widget lockMenu = (Widget)NULL; Widget lockCascade = (Widget)NULL; Widget unlockButton = (Widget)NULL; Widget lockButton = (Widget)NULL; int imod; XtSetArg(al[ac], XmNallowShellResize, TRUE); ac++; XtSetArg(al[ac], XmNargc, app_argc); ac++; XtSetArg(al[ac], XmNargv, app_argv); ac++; appShell = XtAppCreateShell ( app_name, "EditMessage", applicationShellWidgetClass, display, al, ac ); ac = 0; XtSetArg(al[ac], XmNscrollingPolicy, XmAUTOMATIC); ac++; widget1 = XmCreateMainWindow ( appShell, "mainWindow", al, ac ); ac = 0; XtSetArg(al[ac], XmNhorizontalScrollBar, &widget2 ); ac++; XtSetArg(al[ac], XmNverticalScrollBar, &widget3 ); ac++; XtGetValues(widget1, al, ac ); ac = 0; widget7 = XmCreateMenuBar ( widget1, "widget7", al, ac ); widget9 = XmCreatePulldownMenu ( widget7, "fileMenu", al, ac ); /* XtAddCallback(widget9, XmNunmapCallback, grab_input, NULL); */ widget10 = XmCreatePushButton ( widget9, "openButton", al, ac ); widget11 = XmCreatePushButton ( widget9, "newButton", al, ac ); ac = 0; XtSetArg(al[ac], XmNsensitive, False); ac++; widget12 = XmCreatePushButton ( widget9, "saveButton", al, ac ); ac = 0; XtSetArg(al[ac], XmNsensitive, False); ac++; deleteButton = XmCreatePushButton ( widget9, "deleteButton", al, ac ); ac = 0; widget13 = XmCreateSeparator ( widget9, "widget13", al, ac ); widget14 = XmCreatePushButton ( widget9, "exitButton", al, ac ); XtSetArg(al[ac], XmNsubMenuId, widget9); ac++; widget8 = XmCreateCascadeButton ( widget7, "fileCascade", al, ac ); ac = 0; toolMenu = XmCreatePulldownMenu ( widget7, "toolMenu", al, ac ); /* XtAddCallback(toolMenu, XmNunmapCallback, grab_input, NULL); */ generateButton = XmCreatePushButton ( toolMenu, "generateButton", al, ac ); browseButton = XmCreatePushButton ( toolMenu, "browseButton", al, ac ); ac = 0; XtSetArg(al[ac], XmNsubMenuId, toolMenu); ac++; toolCascade = XmCreateCascadeButton ( widget7, "toolCascade", al, ac ); lockMenu = XmCreatePulldownMenu ( widget7, "lockMenu", al, ac ); /* XtAddCallback(widget9, XmNunmapCallback, grab_input, NULL); */ lockButton = XmCreatePushButton ( lockMenu, "lockButton", al, ac ); ac = 0; XtSetArg(al[ac], XmNsensitive, False); ac++; unlockButton = XmCreatePushButton ( lockMenu, "unlockButton", al, ac ); ac = 0; XtSetArg(al[ac], XmNsubMenuId, lockMenu); ac++; lockCascade = XmCreateCascadeButton ( widget7, "lockCascade", al, ac ); ac = 0; widget16 = XmCreatePulldownMenu ( widget7, "widget16", al, ac ); /* XtAddCallback(widget16, XmNunmapCallback, grab_input, NULL); */ XtSetArg(al[ac], XmNsubMenuId, widget16); ac++; widget15 = XmCreateCascadeButton ( widget7, "helpCascade", al, ac ); /* Hand-added */ XtVaSetValues(widget7, XmNmenuHelpWidget, widget15, NULL); ac = 0; widget17 = XmCreateForm ( widget1, "editMsgForm", al, ac ); XtSetArg(al[ac], XmNwidth, 100); ac++; XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; nameLabel = XmCreateLabel ( widget17, "nameLabel", al, ac ); ac = 0; XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; textLabel = XmCreateLabel ( widget17, "textLabel", al, ac ); ac = 0; XtSetArg(al[ac], XmNmaxLength, 20); ac++; nameTextField = XmCreateTextField( widget17, "nameTextField", al, ac ); XtAddCallback(nameTextField, XmNvalueChangedCallback, message_modified, NULL); ac = 0; XtSetArg(al[ac], XmNmaxLength, 50); ac++; msgTextField = XmCreateTextField ( widget17, "msgTextField", al, ac ); XtAddCallback(msgTextField, XmNvalueChangedCallback, message_modified, NULL); ac = 0; XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; severityLabel = XmCreateLabel ( widget17, "severityLabel", al, ac ); ac = 0; severityMenu = XmCreatePulldownMenu ( widget17, "severityPulldown", al, ac ); /* XtAddCallback(severityMenu, XmNunmapCallback, grab_input, NULL); */ XtSetArg(al[0], XmNuserData, (caddr_t)SEV_DEBUG); widget27 = XmCreatePushButton ( severityMenu, "debugButton", al, 1); XtSetArg(al[0], XmNuserData, (caddr_t)SEV_INFORM); widget28 = XmCreatePushButton ( severityMenu, "informButton", al, 1 ); XtSetArg(al[0], XmNuserData, (caddr_t)SEV_WARN); widget29 = XmCreatePushButton ( severityMenu, "warnButton", al, 1 ); XtSetArg(al[0], XmNuserData, (caddr_t)SEV_ERROR); widget30 = XmCreatePushButton ( severityMenu, "errorButton", al, 1 ); XtSetArg(al[0], XmNuserData, (caddr_t)SEV_ALARM); widget31 = XmCreatePushButton ( severityMenu, "alarmButton", al, 1 ); XtSetArg(al[0], XmNuserData, (caddr_t)SEV_FATAL); widget32 = XmCreatePushButton ( severityMenu, "fatalButton", al, 1 ); ac = 0; XtSetArg(al[ac], XmNuserData, (caddr_t)SEV_UNKNOWN); ac++; /* "Unknown" is only allowed if it is found in the DB */ XtSetArg(al[ac], XmNsensitive, FALSE); ac++; widget33 = XmCreatePushButton (severityMenu, "unknownButton", al, ac ); ac = 0; XtSetArg(al[ac], XmNsubMenuId, severityMenu); ac++; severityOptionMenu = XmCreateOptionMenu ( widget17, "severityOptionMenu", al, ac ); ac = 0; widget25 = XmOptionButtonGadget ( severityOptionMenu ); XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; moduleLabel = XmCreateLabel ( widget17, "moduleLabel", al, ac ); ac = 0; moduleMenu = XmCreatePulldownMenu ( widget17, "moduleMenu", al, ac ); /* XtAddCallback(moduleMenu, XmNunmapCallback, grab_input, NULL); */ /* Create the button for the chosen module as the default. */ if (strcmp(module_names[0], g_module)) { for (imod=0; imod<nmodule_names; imod++) if (!strcmp(module_names[imod], g_module)) break; strcpy(module_names[imod], module_names[0]); strcpy(module_names[0], g_module); } modbutton = (Widget *)XtMalloc(nmodule_names * sizeof(Widget)); for (imod = 0; imod < nmodule_names; imod++) { XtSetArg(al[0], XmNuserData, module_names[imod]); modbutton[imod] = XmCreatePushButton(moduleMenu, module_names[imod], al, 1 ); } XtSetArg(al[ac], XmNsubMenuId, moduleMenu); ac++; moduleOptionMenu = XmCreateOptionMenu ( widget17, "moduleOptionMenu", al, ac ); ac = 0; widget37 = XmOptionButtonGadget ( moduleOptionMenu ); XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; categoryLabel = XmCreateLabel ( widget17, "categoryLabel", al, ac ); ac = 0; categoryTextField = XmCreateTextField ( widget17, "categoryTextField", al, ac ); XtAddCallback(categoryTextField, XmNvalueChangedCallback, message_modified, NULL); XtSetArg(al[ac], XmNwidth, 101); ac++; XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; descriptionLabel = XmCreateLabel ( widget17, "descriptionLabel", al, ac ); ac = 0; XtSetArg(al[ac], XmNmaxLength, 255); ac++; descriptionText = XmCreateText ( widget17, "descriptionText", al, ac ); XtAddCallback(descriptionText, XmNvalueChangedCallback, message_modified, NULL); ac = 0; children[ac++] = widget10; children[ac++] = widget11; children[ac++] = widget12; children[ac++] = deleteButton; children[ac++] = widget13; children[ac++] = widget14; XtManageChildren(children, ac); ac = 0; children[ac++] = generateButton; children[ac++] = browseButton; XtManageChildren(children, ac); ac = 0; children[ac++] = unlockButton; children[ac++] = lockButton; XtManageChildren(children, ac); ac = 0; children[ac++] = widget8; children[ac++] = widget15; children[ac++] = toolCascade; children[ac++] = lockCascade; XtManageChildren(children, ac); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, nameTextField); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNbottomWidget, nameTextField); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNrightWidget, nameTextField); ac++; XtSetValues ( nameLabel,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, msgTextField); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNbottomWidget, msgTextField); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNrightWidget, msgTextField); ac++; XtSetValues ( textLabel,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_POSITION); ac++; XtSetValues ( nameTextField,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, nameTextField); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, nameTextField); ac++; XtSetValues ( msgTextField,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, severityOptionMenu); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNbottomWidget, severityOptionMenu); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNrightWidget, severityOptionMenu); ac++; XtSetValues ( severityLabel,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, msgTextField); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, msgTextField); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetValues ( severityOptionMenu,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, moduleOptionMenu); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNbottomWidget, moduleOptionMenu); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftOffset, 0); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNrightWidget, moduleOptionMenu); ac++; XtSetValues ( moduleLabel,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, severityOptionMenu); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, severityOptionMenu); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetValues ( moduleOptionMenu,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, categoryTextField); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNbottomWidget, categoryTextField); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNrightWidget, categoryTextField); ac++; XtSetValues ( categoryLabel,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, moduleOptionMenu); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, moduleOptionMenu); ac++; XtSetValues ( categoryTextField,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, descriptionText); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNbottomWidget, descriptionText); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNrightWidget, descriptionText); ac++; XtSetValues ( descriptionLabel,al, ac ); ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, categoryTextField); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, categoryTextField); ac++; XtSetValues ( descriptionText,al, ac ); XtAddCallback(widget10, XmNactivateCallback, open_message, NULL); XtAddCallback(browseButton, XmNactivateCallback, browse_messages, g_module); XtAddCallback(widget11, XmNactivateCallback, new_message, NULL); XtAddCallback(widget12, XmNactivateCallback, save_message, NULL); XtAddCallback(deleteButton, XmNactivateCallback, delete_message, NULL); XtAddCallback(generateButton, XmNactivateCallback, generate_header, NULL); XtAddCallback(lockButton, XmNactivateCallback, set_lock, widget9); XtAddCallback(unlockButton, XmNactivateCallback, unset_lock, widget9); XtAddCallback(widget14, XmNactivateCallback, exit_app, NULL); XtAddCallback(widget27, XmNactivateCallback, set_severity, NULL); XtAddCallback(widget28, XmNactivateCallback, set_severity, NULL); XtAddCallback(widget29, XmNactivateCallback, set_severity, NULL); XtAddCallback(widget30, XmNactivateCallback, set_severity, NULL); XtAddCallback(widget31, XmNactivateCallback, set_severity, NULL); XtAddCallback(widget32, XmNactivateCallback, set_severity, NULL); XtAddCallback(widget33, XmNactivateCallback, set_severity, NULL); for (imod = 0; imod < nmodule_names; imod++) XtAddCallback(modbutton[imod], XmNactivateCallback, set_module, NULL); ac = 0; children[ac++] = widget27; children[ac++] = widget28; children[ac++] = widget29; children[ac++] = widget30; children[ac++] = widget31; children[ac++] = widget32; children[ac++] = widget33; XtManageChildren(children, ac); XtManageChildren(modbutton, nmodule_names); ac = 0; children[ac++] = nameLabel; children[ac++] = textLabel; children[ac++] = nameTextField; children[ac++] = msgTextField; children[ac++] = severityLabel; children[ac++] = severityOptionMenu; children[ac++] = moduleLabel; children[ac++] = moduleOptionMenu; children[ac++] = categoryLabel; children[ac++] = categoryTextField; children[ac++] = descriptionLabel; children[ac++] = descriptionText; XtManageChildren(children, ac); ac = 0; XtManageChild ( widget7 ); XtManageChild ( widget17 ); XmMainWindowSetAreas(widget1, widget7, (Widget) NULL, widget2, widget3, widget17 ); XtManageChild ( widget1); }
void createColor() { Widget paletteRC; XmString buttons[N_MAX_MENU_ELES]; KeySym keySyms[N_MAX_MENU_ELES]; XmButtonType buttonType[N_MAX_MENU_ELES]; Widget colorMB; Widget colorHelpPDM; Widget menuHelpWidget; Pixel fg, bg; int i, n, childCount; Arg args[10]; /* * create a main window in a dialog, and then the palette radio box */ n = 0; XtSetArg(args[n],XtNiconName,"Colors"); n++; XtSetArg(args[n],XtNtitle,"Color Palette"); n++; XtSetArg(args[n],XtNallowShellResize,TRUE); n++; XtSetArg(args[n],XmNkeyboardFocusPolicy,XmEXPLICIT); n++; /* map window manager menu Close function to application close... */ XtSetArg(args[n],XmNdeleteResponse,XmDO_NOTHING); n++; XtSetArg(args[n],XmNmwmDecorations,MWM_DECOR_ALL|MWM_DECOR_RESIZEH); n++; colorS = XtCreatePopupShell("colorS",topLevelShellWidgetClass, mainShell,args,n); XmAddWMProtocolCallback(colorS,WM_DELETE_WINDOW, (XtCallbackProc)wmCloseCallback, (XtPointer)OTHER_SHELL); colorMW = XmCreateMainWindow(colorS,"colorMW",NULL,0); /* * create the menu bar */ buttons[0] = XmStringCreateSimple("File"); buttons[1] = XmStringCreateSimple("Help"); #if 0 keySyms[0] = 'F'; keySyms[1] = 'H'; n = 0; XtSetArg(args[n],XmNbuttonCount,N_MAIN_MENU_ELES); n++; XtSetArg(args[n],XmNbuttons,buttons); n++; XtSetArg(args[n],XmNbuttonMnemonics,keySyms); n++; XtSetArg(args[n],XmNforeground,defaultForeground); n++; XtSetArg(args[n],XmNbackground,defaultBackground); n++; colorMB = XmCreateSimpleMenuBar(colorMW, "colorMB",args,n); #endif colorMB = XmVaCreateSimpleMenuBar(colorMW, "colorMB", XmVaCASCADEBUTTON, buttons[0], 'F', XmVaCASCADEBUTTON, buttons[1], 'H', NULL); /* color colorMB properly (force so VUE doesn't interfere) */ colorMenuBar(colorMB,defaultForeground,defaultBackground); /* set the Help cascade button in the menu bar */ menuHelpWidget = XtNameToWidget(colorMB,"*button_1"); XtVaSetValues(colorMB,XmNmenuHelpWidget,menuHelpWidget, NULL); for (i = 0; i < N_MAIN_MENU_ELES; i++) XmStringFree(buttons[i]); /* * create the file pulldown menu pane */ buttons[0] = XmStringCreateSimple("Close"); keySyms[0] = 'C'; buttonType[0] = XmPUSHBUTTON; n = 0; XtSetArg(args[n],XmNbuttonCount,N_FILE_MENU_ELES); n++; XtSetArg(args[n],XmNbuttons,buttons); n++; XtSetArg(args[n],XmNbuttonType,buttonType); n++; XtSetArg(args[n],XmNbuttonMnemonics,keySyms); n++; XtSetArg(args[n],XmNpostFromButton,FILE_BTN_POSN); n++; XtSetArg(args[n],XmNsimpleCallback,fileMenuSimpleCallback); n++; XmCreateSimplePulldownMenu(colorMB,"colorFilePDM", args,n); for (i = 0; i < N_FILE_MENU_ELES; i++) XmStringFree(buttons[i]); /* * create the help pulldown menu pane */ buttons[0] = XmStringCreateSimple("On Color Palette..."); keySyms[0] = 'C'; buttonType[0] = XmPUSHBUTTON; n = 0; XtSetArg(args[n],XmNbuttonCount,N_HELP_MENU_ELES); n++; XtSetArg(args[n],XmNbuttons,buttons); n++; XtSetArg(args[n],XmNbuttonType,buttonType); n++; XtSetArg(args[n],XmNbuttonMnemonics,keySyms); n++; XtSetArg(args[n],XmNpostFromButton,HELP_BTN_POSN); n++; colorHelpPDM = XmCreateSimplePulldownMenu(colorMB, "colorHelpPDM",args,n); XmStringFree(buttons[0]); /* (MDA) for now, disable this menu */ XtSetSensitive(colorHelpPDM,False); /* * Add the Palette Radio Box for the drawing color toggle buttons * */ n = 0; XtSetArg(args[n],XmNadjustLast,False); n++; XtSetArg(args[n],XmNadjustLast,False); n++; XtSetArg(args[n],XmNpacking,XmPACK_COLUMN); n++; XtSetArg(args[n],XmNorientation,XmVERTICAL); n++; XtSetArg(args[n],XmNnumColumns,(short)(DL_MAX_COLORS/DL_COLORS_COLUMN_SIZE)); n++; XtSetArg(args[n],XmNspacing,0); n++; paletteRC = XmCreateRowColumn(colorMW,"paletteRC",args,n); XtVaGetValues(paletteRC,XmNforeground,&fg,XmNbackground,&bg,NULL); /* * create the (maximum number of) color buttons */ n = 0; XtSetArg(args[n],XmNlabelType,XmPIXMAP); n++; XtSetArg(args[n],XmNrecomputeSize,False); n++; for (childCount = 0; childCount < DL_MAX_COLORS; childCount++) { /* use values in default colormap if in valid area of colormap */ globalColorPalettePB[childCount] = XmCreatePushButton(paletteRC,"colorPB", args,n); XtAddCallback(globalColorPalettePB[childCount],XmNactivateCallback, colorPaletteActivateCallback, (XtPointer)childCount); } /* want to keep same shadow colors... but different background */ for (childCount = 0; childCount < DL_MAX_COLORS; childCount++) { XtSetArg(args[0],XmNbackground,(Pixel)defaultColormap[childCount]); XtSetValues(globalColorPalettePB[childCount],args,1); } XmMainWindowSetAreas(colorMW,colorMB,NULL,NULL,NULL,paletteRC); /* * manage the composites */ XtManageChild(colorMB); XtManageChildren(globalColorPalettePB,childCount); XtManageChild(paletteRC); XtManageChild(colorMW); }
int main(int argc, char **argv) { XtAppContext AppCtx; Widget TopLevel, Main, Menu, Form, Text, PullDownMenu; Widget Cascade, Butt1, Butt3, Butt4, Butt5; Widget Frame, Label, RowCol, w; Arg args[10]; TopLevel = XtVaAppInitialize(&AppCtx, "Demo", NULL, 0, &argc, argv, Fallbacks, NULL); Main = XmCreateMainWindow(TopLevel, "main", NULL, 0); XtManageChild(Main); Menu = XmCreateMenuBar(Main, "menu", NULL, 0); XtManageChild(Menu); XtSetArg(args[0], XmNmnemonic, XK_F); Cascade = XmCreateCascadeButton(Menu, "File", args, 1); XtManageChild(Cascade); PullDownMenu = XmCreatePulldownMenu(Cascade, "filemenu", NULL, 0); w = XmCreateToggleButtonPlus(PullDownMenu, "Enjoy it!", NULL, 0); XtVaSetValues(w, XmNmnemonic, XK_j, NULL); XtManageChild(w); XtVaCreateManagedWidget( "sepp1", xmSeparatorWidgetClass, PullDownMenu, NULL); w = XmCreateToggleButtonPlus(PullDownMenu, "One", NULL, 0); XtVaSetValues(w, XmNmnemonic, XK_O, XmNindicatorType, XmONE_OF_MANY, NULL); XtManageChild(w); w = XmCreateToggleButtonPlus(PullDownMenu, "Two", NULL, 0); XtVaSetValues(w, XmNmnemonic, XK_T, XmNindicatorType, XmONE_OF_MANY, NULL); XtManageChild(w); w = XmCreateToggleButtonPlus(PullDownMenu, "Fourtytwo", NULL, 0); XtVaSetValues(w, XmNmnemonic, XK_F, XmNindicatorType, XmONE_OF_MANY, NULL); XtManageChild(w); XtVaCreateManagedWidget( "sepp2", xmSeparatorWidgetClass, PullDownMenu, NULL); Butt1 = XtVaCreateManagedWidget( "Exit", xmPushButtonWidgetClass, PullDownMenu, XmNmnemonic, XK_E, NULL); XtAddCallback(Butt1, XmNactivateCallback, (XtCallbackProc) DummyCallback, NULL); XtVaSetValues(Cascade, XmNsubMenuId, PullDownMenu, NULL); Form = XtVaCreateManagedWidget("form", xmFormWidgetClass, Main, NULL); Label = XtVaCreateManagedWidget( "XmN_OF_MANY", xmLabelWidgetClass, Form, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 24, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, 8, NULL); Frame = XtVaCreateManagedWidget( "frame1", xmFrameWidgetClass, Form, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 20, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, Label, XmNrightAttachment, XmATTACH_POSITION, XmNrightPosition, 50, XmNrightOffset, 4, NULL); RowCol = XtVaCreateManagedWidget( "RowCol", xmRowColumnWidgetClass, Frame, NULL); Butt3 = XmCreateToggleButtonPlus(RowCol, "I like the OSF", NULL, 0); XtVaSetValues(Butt3, XmNsensitive, False, NULL); XtManageChild(Butt3); Butt4 = XmCreateToggleButtonPlus(RowCol, "Support Freeware!", NULL, 0); XtVaSetValues(Butt4, XmNset, True, NULL); XtManageChild(Butt4); Butt5 = XmCreateToggleButtonPlus(RowCol, "New Widgets", NULL, 0); XtManageChild(Butt5); Label = XtVaCreateManagedWidget( "XmONE_OF_MANY", xmLabelWidgetClass, Form, XmNleftAttachment, XmATTACH_POSITION, XmNleftPosition, 50, XmNleftOffset, 4, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, 8, NULL); Frame = XtVaCreateManagedWidget( "frame2", xmFrameWidgetClass, Form, XmNleftAttachment, XmATTACH_POSITION, XmNleftPosition, 50, XmNleftOffset, 4, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, Label, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 20, NULL); RowCol = XtVaCreateManagedWidget( "RowCol", xmRowColumnWidgetClass, Frame, XmNradioBehavior, True, XmNradioAlwaysOne, True, NULL); Butt3 = XmCreateToggleButtonPlus(RowCol, "Athena", NULL, 0); XtVaSetValues(Butt3, XmNindicatorType, XmONE_OF_MANY, NULL); XtManageChild(Butt3); Butt4 = XmCreateToggleButtonPlus(RowCol, "OSF/Motif(=Hades)", NULL, 0); XtVaSetValues(Butt4, XmNindicatorType, XmONE_OF_MANY, NULL); XtManageChild(Butt4); Butt5 = XmCreateToggleButtonPlus(RowCol, "Harry's Motif Widgets", NULL, 0); XtVaSetValues(Butt5, XmNindicatorType, XmONE_OF_MANY, XmNset, True, NULL); XtManageChild(Butt5); /* Label = XtVaCreateManagedWidget( "XmNtriState = True", xmLabelWidgetClass, Form, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 20, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, Frame, XmNtopOffset, 8, NULL); Frame = XtVaCreateManagedWidget( "frame3", xmFrameWidgetClass, Form, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 20, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, Label, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 20, NULL); RowCol = XtVaCreateManagedWidget( "RowCol", xmRowColumnWidgetClass, Frame, NULL); Butt3 = XtVaCreateManagedWidget( "Click on me several times.", xmToggleButtonWidgetClass, RowCol, XmNtriState, True, XmNset, XmTOGGLE_DONTKNOW, NULL); */ Text = XtVaCreateManagedWidget( "The new xmToggleButtonWidgetClass", xmLabelWidgetClass, Form, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 20, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 20, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, Frame, XmNtopOffset, 20, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, 20, NULL); XmMainWindowSetAreas(Main, Menu, NULL, NULL, NULL, Form); XtRealizeWidget(TopLevel); { static XtWidgetGeometry Expected[] = { CWWidth | CWHeight , 0, 0, 370, 204, 0,0,0, /* main */ CWWidth | CWHeight | CWX | CWY, 0, 0, 370, 31, 0,0,0, /* menu */ CWWidth | CWHeight | CWX | CWY, 5, 5, 40, 21, 0,0,0, /* File */ CWWidth | CWHeight | CWX | CWY, 0, 31, 370, 173, 0,0,0, /* form */ CWWidth | CWHeight | CWX | CWY, 24, 8, 70, 17, 0,0,0, /* XmN_OF_MANY */ CWWidth | CWHeight | CWX | CWY, 20, 25, 161, 91, 0,0,0, /* frame1 */ CWWidth | CWHeight | CWX | CWY, 2, 2, 157, 87, 0,0,0, /* RowCol */ CWWidth | CWHeight | CWX | CWY, 3, 3, 151, 25, 0,0,0, /* I like the OSF */ CWWidth | CWHeight | CWX | CWY, 3, 31, 151, 25, 0,0,0, /* Support Freeware! */ CWWidth | CWHeight | CWX | CWY, 3, 59, 151, 25, 0,0,0, /* New Widgets */ CWWidth | CWHeight | CWX | CWY, 189, 8, 82, 17, 0,0,0, /* XmONE_OF_MANY */ CWWidth | CWHeight | CWX | CWY, 189, 25, 161, 91, 0,0,0, /* frame2 */ CWWidth | CWHeight | CWX | CWY, 2, 2, 157, 87, 0,0,0, /* RowCol */ CWWidth | CWHeight | CWX | CWY, 3, 3, 151, 25, 0,0,0, /* Athena */ CWWidth | CWHeight | CWX | CWY, 3, 31, 151, 25, 0,0,0, /* OSF/Motif(=Hades) */ CWWidth | CWHeight | CWX | CWY, 3, 59, 151, 25, 0,0,0, /* Harry's Motif Widgets */ CWWidth | CWHeight | CWX | CWY, 20, 136, 330, 17, 0,0,0, /* The new xmToggleButtonWidgetClass */ }; PrintDetails( TopLevel ,Expected); }; LessTifTestMainLoop( TopLevel ); return 0; } /* main */
static Widget _Uxbuild_topLevelShell1() { Widget _UxParent; Widget menu1_p1_shell; /* Creation of topLevelShell1 */ _UxParent = UxParent; if (_UxParent == NULL) { _UxParent = UxTopLevel; } topLevelShell1 = XtVaCreatePopupShell("topLevelShell1", topLevelShellWidgetClass, _UxParent, XmNwidth, 1000, XmNheight, 662, XmNx, 49, XmNy, 161, XmNiconName, "OBJECT-VIEWER", NULL); /* Creation of mainWindow1 */ mainWindow1 = XtVaCreateManagedWidget("mainWindow1", xmMainWindowWidgetClass, topLevelShell1, XmNwidth, 1000, XmNheight, 662, XmNx, 0, XmNy, 0, XmNunitType, XmPIXELS, NULL); /* Creation of menu1 */ menu1 = XtVaCreateManagedWidget("menu1", xmRowColumnWidgetClass, mainWindow1, XmNrowColumnType, XmMENU_BAR, XmNmenuAccelerator, "<KeyUp>F10", NULL); /* Creation of menu1_p1 */ menu1_p1_shell = XtVaCreatePopupShell("menu1_p1_shell", xmMenuShellWidgetClass, menu1, XmNwidth, 1, XmNheight, 1, XmNallowShellResize, TRUE, XmNoverrideRedirect, TRUE, NULL); menu1_p1 = XtVaCreateWidget("menu1_p1", xmRowColumnWidgetClass, menu1_p1_shell, XmNrowColumnType, XmMENU_PULLDOWN, NULL); /* Creation of menu1_p1_b1 */ menu1_p1_b1 = XtVaCreateManagedWidget("menu1_p1_b1", xmSeparatorWidgetClass, menu1_p1, NULL); /* Creation of menu1_p1_b2 */ menu1_p1_b2 = XtVaCreateManagedWidget("menu1_p1_b2", xmPushButtonWidgetClass, menu1_p1, RES_CONVERT(XmNlabelString, "Open"), RES_CONVERT(XmNmnemonic, "O"), NULL); XtAddCallback(menu1_p1_b2, XmNactivateCallback, (XtCallbackProc) activateCB_menu1_p1_b2, (XtPointer) NULL); /* Creation of menu1_p1_b3 */ menu1_p1_b3 = XtVaCreateManagedWidget("menu1_p1_b3", xmSeparatorWidgetClass, menu1_p1, NULL); /* Creation of menu1_p1_b4 */ menu1_p1_b4 = XtVaCreateManagedWidget("menu1_p1_b4", xmPushButtonWidgetClass, menu1_p1, RES_CONVERT(XmNlabelString, "Quit"), RES_CONVERT(XmNmnemonic, "Q"), NULL); XtAddCallback(menu1_p1_b4, XmNactivateCallback, (XtCallbackProc) activateCB_menu1_p1_b4, (XtPointer) NULL); /* Creation of menu1_top_b1 */ menu1_top_b1 = XtVaCreateManagedWidget("menu1_top_b1", xmCascadeButtonWidgetClass, menu1, RES_CONVERT(XmNlabelString, "File"), RES_CONVERT(XmNmnemonic, "F"), XmNsubMenuId, menu1_p1, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1"), NULL); /* Creation of bulletinBoard1 */ bulletinBoard1 = XtVaCreateManagedWidget("bulletinBoard1", xmBulletinBoardWidgetClass, mainWindow1, NULL); /* Creation of label1 */ label1 = XtVaCreateManagedWidget("label1", xmLabelWidgetClass, bulletinBoard1, XmNx, 10, XmNy, 80, XmNwidth, 176, XmNheight, 28, RES_CONVERT(XmNlabelString, "INFORMATION ENTITY"), XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"), NULL); /* Creation of label2 */ label2 = XtVaCreateManagedWidget("label2", xmLabelWidgetClass, bulletinBoard1, XmNx, 320, XmNy, 80, XmNwidth, 88, XmNheight, 24, RES_CONVERT(XmNlabelString, "MODULES"), XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"), NULL); /* Creation of scrolledWindowList1 */ scrolledWindowList1 = XtVaCreateManagedWidget("scrolledWindowList1", xmScrolledWindowWidgetClass, bulletinBoard1, XmNscrollingPolicy, XmAPPLICATION_DEFINED, XmNvisualPolicy, XmVARIABLE, XmNscrollBarDisplayPolicy, XmSTATIC, XmNshadowThickness, 0, XmNx, 10, XmNy, 110, NULL); /* Creation of scrolledList1 */ scrolledList1 = XtVaCreateManagedWidget("scrolledList1", xmListWidgetClass, scrolledWindowList1, XmNwidth, 280, XmNheight, 324, XmNx, 0, XmNy, 110, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-100-100-100-p-82-iso8859-1"), NULL); XtAddCallback(scrolledList1, XmNbrowseSelectionCallback, (XtCallbackProc) browseSelectionCB_scrolledList1, (XtPointer) NULL); /* Creation of scrolledWindowList2 */ scrolledWindowList2 = XtVaCreateManagedWidget("scrolledWindowList2", xmScrolledWindowWidgetClass, bulletinBoard1, XmNscrollingPolicy, XmAPPLICATION_DEFINED, XmNvisualPolicy, XmVARIABLE, XmNscrollBarDisplayPolicy, XmSTATIC, XmNshadowThickness, 0, XmNx, 310, XmNy, 110, NULL); /* Creation of scrolledList2 */ scrolledList2 = XtVaCreateManagedWidget("scrolledList2", xmListWidgetClass, scrolledWindowList2, XmNwidth, 316, XmNheight, 324, XmNx, 0, XmNy, 110, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-100-100-100-p-82-iso8859-1"), NULL); XtAddCallback(scrolledList2, XmNbrowseSelectionCallback, (XtCallbackProc) browseSelectionCB_scrolledList2, (XtPointer) NULL); /* Creation of label3 */ label3 = XtVaCreateManagedWidget("label3", xmLabelWidgetClass, bulletinBoard1, XmNx, 20, XmNy, 440, XmNwidth, 92, XmNheight, 28, RES_CONVERT(XmNlabelString, "ATTRIBUTE "), XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"), NULL); /* Creation of text1 */ text1 = XtVaCreateManagedWidget("text1", xmTextWidgetClass, bulletinBoard1, XmNwidth, 400, XmNx, 10, XmNy, 470, XmNheight, 70, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-100-100-100-p-82-iso8859-1"), NULL); /* Creation of scrolledWindowList3 */ scrolledWindowList3 = XtVaCreateManagedWidget("scrolledWindowList3", xmScrolledWindowWidgetClass, bulletinBoard1, XmNscrollingPolicy, XmAPPLICATION_DEFINED, XmNvisualPolicy, XmVARIABLE, XmNscrollBarDisplayPolicy, XmSTATIC, XmNshadowThickness, 0, XmNx, 650, XmNy, 110, NULL); /* Creation of scrolledList3 */ scrolledList3 = XtVaCreateManagedWidget("scrolledList3", xmListWidgetClass, scrolledWindowList3, XmNwidth, 304, XmNheight, 324, XmNx, 0, XmNy, 110, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-100-100-100-p-82-iso8859-1"), NULL); XtAddCallback(scrolledList3, XmNbrowseSelectionCallback, (XtCallbackProc) browseSelectionCB_scrolledList3, (XtPointer) NULL); /* Creation of label4 */ label4 = XtVaCreateManagedWidget("label4", xmLabelWidgetClass, bulletinBoard1, XmNx, 660, XmNy, 80, XmNwidth, 104, XmNheight, 24, RES_CONVERT(XmNlabelString, "ATTRIBUTES"), XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"), NULL); /* Creation of text2 */ text2 = XtVaCreateManagedWidget("text2", xmTextWidgetClass, bulletinBoard1, XmNwidth, 560, XmNx, 410, XmNy, 470, XmNheight, 70, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1"), XmNwordWrap, FALSE, NULL); /* Creation of label5 */ label5 = XtVaCreateManagedWidget("label5", xmLabelWidgetClass, bulletinBoard1, XmNx, 420, XmNy, 440, XmNwidth, 196, XmNheight, 28, RES_CONVERT(XmNlabelString, "ATTRIBUTE INFORMATION"), XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"), NULL); /* Creation of scrolledWindowText1 */ scrolledWindowText1 = XtVaCreateManagedWidget("scrolledWindowText1", xmScrolledWindowWidgetClass, bulletinBoard1, XmNscrollingPolicy, XmAPPLICATION_DEFINED, XmNvisualPolicy, XmVARIABLE, XmNscrollBarDisplayPolicy, XmSTATIC, XmNx, 30, XmNy, 550, NULL); /* Creation of scrolledText1 */ scrolledText1 = XtVaCreateManagedWidget("scrolledText1", xmTextWidgetClass, scrolledWindowText1, XmNwidth, 890, XmNheight, 50, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1"), NULL); /* Creation of text3 */ text3 = XtVaCreateManagedWidget("text3", xmTextWidgetClass, bulletinBoard1, XmNwidth, 880, XmNx, 90, XmNy, 20, XmNheight, 40, XmNfontList, UxConvertFontList("-adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1"), NULL); XmMainWindowSetAreas(mainWindow1, menu1, (Widget) NULL, (Widget) NULL, (Widget) NULL, bulletinBoard1); return (topLevelShell1); }
static void CreateAnotherContainer() { Widget PopupShell; Widget MainW2, menubar2, pulldown2, menu_btn2; Widget CutPB2, CopyPB2, CopyLinkPB2, PastePB2, PasteLinkPB2; Widget OtherContainer4; Widget IconGad6, IconGad7, IconGad8, IconGad9, IconGad10; Cardinal n; XmString Label; Arg args[MAX_ARGS]; /* * Create a Dialog Shell */ n = 0; XtSetArg(args[n], XtNgeometry, "=375x375+400+300"); n++; XtSetArg(args[n], XtNallowShellResize, True); n++; PopupShell = XtCreatePopupShell("OtherContainer", topLevelShellWidgetClass, Shell1, args, n); /* * Create a main window */ n = 0; XtSetArg(args[n], XmNborderWidth, 2); n++; MainW2 = XmCreateMainWindow(PopupShell, "MainW2", args, n); XtManageChild(MainW2); /* * Create a menu bar with a pulldown menu for interacting with the * clipboard */ n = 0; menubar2 = XmCreateMenuBar(MainW2, "menubar2", args, n); XtManageChild(menubar2); n = 0; pulldown2 = XmCreatePulldownMenu(menubar2, "pulldown2", args, n); Label = XmStringCreate("Edit", XmSTRING_DEFAULT_CHARSET); n = 0; XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNsubMenuId, pulldown2); n++; menu_btn2 = XmCreateCascadeButton(menubar2, "menu_btn2", args, n); XtManageChild(menu_btn2); XmStringFree(Label); n = 0; Label = XmStringCreate("Cut", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; CutPB2 = XmCreatePushButtonGadget(pulldown2, "CutPB2", args, n); XtManageChild(CutPB2); XmStringFree(Label); n = 0; Label = XmStringCreate("Copy", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; CopyPB2 = XmCreatePushButtonGadget(pulldown2, "CopyPB2", args, n); XtManageChild(CopyPB2); XmStringFree(Label); n = 0; Label = XmStringCreate("Copy Link", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; CopyLinkPB2 = XmCreatePushButtonGadget(pulldown2, "CopyLinkPB2", args, n); XtManageChild(CopyLinkPB2); XmStringFree(Label); n = 0; Label = XmStringCreate("Paste", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; PastePB2 = XmCreatePushButtonGadget(pulldown2, "PastePB2", args, n); XtManageChild(PastePB2); XmStringFree(Label); n = 0; Label = XmStringCreate("Paste Link", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; PasteLinkPB2= XmCreatePushButtonGadget(pulldown2, "PasteLinkPB2", args, n); XtManageChild(PasteLinkPB2); XmStringFree(Label); /* * Create the container */ n = 0; XtSetArg(args[n], XmNwidth, 450); n++; XtSetArg(args[n], XmNheight, 450); n++; XtSetArg(args[n], XmNentryViewType, XmANY_ICON); n++; XtSetArg(args[n], XmNlayoutType, XmSPATIAL); n++; XtSetArg(args[n], XmNspatialStyle, XmNONE); n++; XtSetArg(args[n], XmNautomaticSelection, XmNO_AUTO_SELECT); n++; OtherContainer4 = XmCreateContainer(MainW2, "OtherContainer", args, n); XtManageChild(OtherContainer4); XtAddCallback(OtherContainer4, XmNconvertCallback, ConvertCB, NULL); XtAddCallback(OtherContainer4, XmNdestinationCallback, DestinationCB, NULL); XtAddCallback(CutPB2, XmNactivateCallback, CutCB, (XtPointer) OtherContainer4); XtAddCallback(CopyPB2, XmNactivateCallback, CopyCB, (XtPointer) OtherContainer4); XtAddCallback(CopyLinkPB2, XmNactivateCallback, CopyLinkCB, (XtPointer) OtherContainer4); XtAddCallback(PastePB2, XmNactivateCallback, PasteCB, (XtPointer) OtherContainer4); XtAddCallback(PasteLinkPB2, XmNactivateCallback, PasteLinkCB, (XtPointer) OtherContainer4); n = 0; XtSetArg(args[n], XmNx, 50); n++; XtSetArg(args[n], XmNy, 50); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; IconGad6 = XmCreateIconGadget(OtherContainer4, "IconGad6", args, n); XtManageChild(IconGad6); n = 0; XtSetArg(args[n], XmNx, 150); n++; XtSetArg(args[n], XmNy, 150); n++; XtSetArg(args[n], XmNviewType, XmLARGE_ICON); n++; IconGad7 = XmCreateIconGadget(OtherContainer4, "IconGad7", args, n); XtManageChild(IconGad7); n = 0; XtSetArg(args[n], XmNx, 50); n++; XtSetArg(args[n], XmNy, 300); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; IconGad8 = XmCreateIconGadget(OtherContainer4, "IconGad8", args, n); XtManageChild(IconGad8); n = 0; XtSetArg(args[n], XmNx, 300); n++; XtSetArg(args[n], XmNy, 300); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; IconGad9 = XmCreateIconGadget(OtherContainer4, "IconGad9", args, n); XtManageChild(IconGad9); n = 0; XtSetArg(args[n], XmNx, 200); n++; XtSetArg(args[n], XmNy, 50); n++; XtSetArg(args[n], XmNviewType, XmLARGE_ICON); n++; IconGad10 = XmCreateIconGadget(OtherContainer4, "IconGad10", args, n); XtManageChild(IconGad10); XmMainWindowSetAreas(MainW2, menubar2, NULL, NULL, NULL, OtherContainer4); XtPopup(PopupShell, XtGrabNone); }
void main(int argc, char **argv) { int i,j; Cardinal n; XmString Label; Arg args[MAX_ARGS]; int test_num; char test_char; char ContainerName[NAME_LEN + 1]; ContainerName[0] = '\0'; test_num = 0; test_char = '\0'; CommonTestInit(argc, argv); if (UserData != NULL) { if (strcmp(UserData, "a") == 0) test_num = 1; else if (strcmp(UserData, "b") == 0) test_num = 2; else if (strcmp(UserData, "c") == 0) test_num = 3; else if (strcmp(UserData, "d") == 0) test_num = 4; test_char = *UserData; free(UserData); } sprintf(ContainerName, "Container4%c", test_char); /* * Create a main window */ n = 0; XtSetArg(args[n], XmNborderWidth, 2); n++; MainW1 = XmCreateMainWindow(Shell1, "MainW1", args, n); XtManageChild(MainW1); /* * Create a menu bar with a pulldown menu for interacting with the * clipboard */ n = 0; menubar1 = XmCreateMenuBar(MainW1, "menubar1", args, n); XtManageChild(menubar1); n = 0; pulldown1 = XmCreatePulldownMenu(menubar1, "pulldown1", args, n); Label = XmStringCreate("Edit", XmSTRING_DEFAULT_CHARSET); n = 0; XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNsubMenuId, pulldown1); n++; menu_btn1 = XmCreateCascadeButton(menubar1, "menu_btn1", args, n); XtManageChild(menu_btn1); XmStringFree(Label); n = 0; Label = XmStringCreate("Cut", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; CutPB1 = XmCreatePushButtonGadget(pulldown1, "CutPB1", args, n); XtManageChild(CutPB1); XmStringFree(Label); n = 0; Label = XmStringCreate("Copy", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; CopyPB1 = XmCreatePushButtonGadget(pulldown1, "CopyPB1", args, n); XtManageChild(CopyPB1); XmStringFree(Label); n = 0; Label = XmStringCreate("Copy Link", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; CopyLinkPB1 = XmCreatePushButtonGadget(pulldown1, "CopyLinkPB1", args, n); XtManageChild(CopyLinkPB1); XmStringFree(Label); n = 0; Label = XmStringCreate("Paste", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; PastePB1 = XmCreatePushButtonGadget(pulldown1, "PastePB1", args, n); XtManageChild(PastePB1); XmStringFree(Label); n = 0; Label = XmStringCreate("Paste Link", XmSTRING_DEFAULT_CHARSET); XtSetArg(args[n], XmNlabelString, Label); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; PasteLinkPB1= XmCreatePushButtonGadget(pulldown1, "PasteLinkPB1", args, n); XtManageChild(PasteLinkPB1); XmStringFree(Label); /* * Create the container */ ColumnHeadings = (XmStringTable) XtMalloc(NUM_COL * sizeof(XmString)); for (i = 0; i < NUM_COL; i++) ColumnHeadings[i] = XmStringGenerate(ColumnHeadingText[i], NULL, XmCHARSET_TEXT, NULL); n = 0; XtSetArg(args[n], XmNdetailColumnHeading, ColumnHeadings); n++; XtSetArg(args[n], XmNdetailColumnHeadingCount, NUM_COL); n++; XtSetArg(args[n], XmNdetailOrderCount, NUM_COL-1); n++; Container4 = XmCreateContainer(MainW1, ContainerName, args, n); XtManageChild(Container4); XtAddCallback(Container4, XmNdefaultActionCallback, PrintChildrenCB, NULL); XtAddCallback(Container4, XmNconvertCallback, ConvertCB, NULL); XtAddCallback(Container4, XmNdestinationCallback, DestinationCB, NULL); XtAddCallback(CutPB1, XmNactivateCallback, CutCB, (XtPointer) Container4); XtAddCallback(CopyPB1, XmNactivateCallback, CopyCB, (XtPointer)Container4); XtAddCallback(CopyLinkPB1, XmNactivateCallback, CopyLinkCB, (XtPointer) Container4); XtAddCallback(PastePB1, XmNactivateCallback, PasteCB, (XtPointer) Container4); XtAddCallback(PasteLinkPB1, XmNactivateCallback, PasteLinkCB, (XtPointer) Container4); for (i=0; i<NUM_COL; i++) XmStringFree(ColumnHeadings[i]); XtFree((XtPointer) ColumnHeadings); EntryDetails = (XmStringTable *) XtMalloc(NUM_OBJ * sizeof(XmStringTable)); for (i = 0; i < NUM_OBJ; i++) { ColumnHeadings = (XmStringTable)XtMalloc((NUM_COL-1) * sizeof(XmString)); ColumnHeadings[0] = XmStringGenerate(FullTitleText[i], NULL, XmCHARSET_TEXT, NULL); ColumnHeadings[1] = XmStringGenerate(FlavorText[i], NULL, XmCHARSET_TEXT, NULL); ColumnHeadings[2] = XmStringGenerate(AgeText[i], NULL, XmCHARSET_TEXT, NULL); EntryDetails[i] = ColumnHeadings; } n = 0; XtSetArg(args[n], XmNx, 100); n++; XtSetArg(args[n], XmNy, 100); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[0]); n++; IconGad1 = XmCreateIconGadget(Container4, "IconGad1", args, n); XtManageChild(IconGad1); n = 0; XtSetArg(args[n], XmNx, 200); n++; XtSetArg(args[n], XmNy, 200); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[1]); n++; IconGad2 = XmCreateIconGadget(Container4, "IconGad2", args, n); XtManageChild(IconGad2); n = 0; XtSetArg(args[n], XmNx, 300); n++; XtSetArg(args[n], XmNy, 100); n++; XtSetArg(args[n], XmNviewType, XmLARGE_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[2]); n++; IconGad3 = XmCreateIconGadget(Container4, "IconGad3", args, n); XtManageChild(IconGad3); n = 0; XtSetArg(args[n], XmNx, 50); n++; XtSetArg(args[n], XmNy, 400); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[3]); n++; IconGad4 = XmCreateIconGadget(Container4, "IconGad4", args, n); XtManageChild(IconGad4); n = 0; XtSetArg(args[n], XmNentryParent, IconGad3); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; XtSetArg(args[n], XmNdetail, EntryDetails[4]); n++; IconGad31 = XmCreateIconGadget(Container4, "IconGad31", args, n); XtManageChild(IconGad31); n = 0; XtSetArg(args[n], XmNentryParent, IconGad3); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[5]); n++; IconGad32 = XmCreateIconGadget(Container4, "IconGad32", args, n); XtManageChild(IconGad32); n = 0; XtSetArg(args[n], XmNentryParent, IconGad32); n++; XtSetArg(args[n], XmNviewType, XmLARGE_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[6]); n++; IconGad321 = XmCreateIconGadget(Container4, "IconGad321", args, n); XtManageChild(IconGad321); n = 0; XtSetArg(args[n], XmNentryParent, IconGad321); n++; XtSetArg(args[n], XmNviewType, XmLARGE_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[7]); n++; IconGad3211 = XmCreateIconGadget(Container4, "IconGad3211", args, n); XtManageChild(IconGad3211); n = 0; XtSetArg(args[n], XmNentryParent, IconGad3); n++; XtSetArg(args[n], XmNviewType, XmSMALL_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[8]); n++; IconGad33 = XmCreateIconGadget(Container4, "IconGad33", args, n); XtManageChild(IconGad33); n = 0; XtSetArg(args[n], XmNx, 70); n++; XtSetArg(args[n], XmNy, 420); n++; XtSetArg(args[n], XmNviewType, XmLARGE_ICON); n++; XtSetArg(args[n], XmNdetailCount, NUM_COL-1); n++; XtSetArg(args[n], XmNdetail, EntryDetails[9]); n++; IconGad5 = XmCreateIconGadget(Container4, "IconGad5", args, n); XtManageChild(IconGad5); XmMainWindowSetAreas(MainW1, menubar1, NULL, NULL, NULL, Container4); for (i = 0; i < NUM_OBJ; i++) { ColumnHeadings = EntryDetails[i]; for (j = 0; j < NUM_COL-1; j++) XmStringFree(ColumnHeadings[j]); XtFree((XtPointer)ColumnHeadings); } XtFree((XtPointer)EntryDetails); XtRealizeWidget(Shell1); CommonPause(); CommonPause(); XmContainerRelayout(Container4); CommonPause(); if ((test_num == 1) || (test_num == 2)) { TestContainerReorder(); CommonPause(); } /* * Create another Container for UTM testing */ CreateAnotherContainer(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); CommonPause(); XtAppMainLoop(app_context); }
XSilChessWindow::XSilChessWindow(XtAppContext app, Widget toplevel, Visual * vsl, int vsldepth, Colormap cmap) { char tmp[512]; Arg al[10]; int i; XmString xms; // Initialize member variables App=app; TopLevel=toplevel; Disp=XtDisplay(TopLevel); Vsl=vsl; VslDepth=vsldepth; CMap=cmap; DlgVsl=DefaultVisual(Disp,XScreenNumberOfScreen(XtScreen(TopLevel))); DlgVslDepth=DefaultDepth(Disp,XScreenNumberOfScreen(XtScreen(TopLevel))); DlgCMap=DefaultColormap(Disp,XScreenNumberOfScreen(XtScreen(TopLevel))); PixelSize=(VslDepth<=8 ? 1 : (VslDepth<=16 ? 2 : 4)); RedMask=Vsl->red_mask; GreenMask=Vsl->green_mask; BlueMask=Vsl->blue_mask; SelX=SelY-1; IsSearching=false; AbortSearching=false; NeedPainting=false; IsPainting=false; HintWanted=false; HintValid=false; // Create main window MainWin=XtVaCreateManagedWidget( "mainWin",xmMainWindowWidgetClass,TopLevel, (char*)NULL ); // Create main menu bar MainMenu=XmCreateMenuBar(MainWin,(char*)"mainMenu",NULL,0); XtManageChild(MainMenu); // Create menu item: file XtSetArg(al[0],XmNvisual,Vsl); XtSetArg(al[1],XmNdepth,VslDepth); XtSetArg(al[2],XmNcolormap,CMap); FileMenu=XmCreatePulldownMenu(MainMenu,(char*)"fileMenu",al,3); BFile=XtVaCreateManagedWidget( "file",xmCascadeButtonWidgetClass,MainMenu, XmNsubMenuId,FileMenu, (char*)NULL ); // Create menu item: file/load BFileLoad=XtVaCreateManagedWidget( "load",xmPushButtonWidgetClass,FileMenu, (char*)NULL ); XtAddCallback(BFileLoad,XmNactivateCallback,HandleCallback,this); // Create menu item: file/save BFileSave=XtVaCreateManagedWidget( "save",xmPushButtonWidgetClass,FileMenu, (char*)NULL ); XtAddCallback(BFileSave,XmNactivateCallback,HandleCallback,this); // Create menu item: file/exit XtVaCreateManagedWidget( "separator",xmSeparatorWidgetClass,FileMenu, (char*)NULL ); BFileExit=XtVaCreateManagedWidget( "exit",xmPushButtonWidgetClass,FileMenu, (char*)NULL ); XtAddCallback(BFileExit,XmNactivateCallback,HandleCallback,this); // Create menu item: game XtSetArg(al[0],XmNvisual,Vsl); XtSetArg(al[1],XmNdepth,VslDepth); XtSetArg(al[2],XmNcolormap,CMap); GameMenu=XmCreatePulldownMenu(MainMenu,(char*)"gameMenu",al,3); BGame=XtVaCreateManagedWidget( "game",xmCascadeButtonWidgetClass,MainMenu, XmNsubMenuId,GameMenu, (char*)NULL ); // Create menu item: game/new BGameNew=XtVaCreateManagedWidget( "new",xmPushButtonWidgetClass,GameMenu, (char*)NULL ); XtAddCallback(BGameNew,XmNactivateCallback,HandleCallback,this); // Create menu item: game/flip BGameFlip=XtVaCreateManagedWidget( "flip",xmPushButtonWidgetClass,GameMenu, (char*)NULL ); XtAddCallback(BGameFlip,XmNactivateCallback,HandleCallback,this); // Create menu item: game/undo BGameUndo=XtVaCreateManagedWidget( "undo",xmPushButtonWidgetClass,GameMenu, (char*)NULL ); XtAddCallback(BGameUndo,XmNactivateCallback,HandleCallback,this); // Create menu item: game/list BGameList=XtVaCreateManagedWidget( "list",xmPushButtonWidgetClass,GameMenu, (char*)NULL ); XtAddCallback(BGameList,XmNactivateCallback,HandleCallback,this); // Create menu item: computer XtSetArg(al[0],XmNvisual,Vsl); XtSetArg(al[1],XmNdepth,VslDepth); XtSetArg(al[2],XmNcolormap,CMap); CompMenu=XmCreatePulldownMenu(MainMenu,(char*)"compMenu",al,3); BComp=XtVaCreateManagedWidget( "comp",xmCascadeButtonWidgetClass,MainMenu, XmNsubMenuId,CompMenu, (char*)NULL ); // Create menu item: computer/hint BCompHint=XtVaCreateManagedWidget( "hint",xmPushButtonWidgetClass,CompMenu, (char*)NULL ); XtAddCallback(BCompHint,XmNactivateCallback,HandleCallback,this); // Create menu item: computer/depth XtSetArg(al[0],XmNvisual,Vsl); XtSetArg(al[1],XmNdepth,VslDepth); XtSetArg(al[2],XmNcolormap,CMap); XtSetArg(al[3],XmNradioBehavior,True); DepthMenu=XmCreatePulldownMenu(CompMenu,(char*)"depthMenu",al,4); BCompDepth=XtVaCreateManagedWidget( "depth",xmCascadeButtonWidgetClass,CompMenu, XmNsubMenuId,DepthMenu, (char*)NULL ); // Create menu items: computer/depth/1... for (i=0; i<=SilChessMachine::MAX_SEARCH_DEPTH; i++) { sprintf(tmp,"%d",i); BDepth[i]=XtVaCreateManagedWidget( tmp,xmToggleButtonWidgetClass,DepthMenu, (char*)NULL ); XtAddCallback(BDepth[i],XmNvalueChangedCallback,HandleCallback,this); } // Create menu item: help XtSetArg(al[0],XmNvisual,Vsl); XtSetArg(al[1],XmNdepth,VslDepth); XtSetArg(al[2],XmNcolormap,CMap); HelpMenu=XmCreatePulldownMenu(MainMenu,(char*)"helpMenu",al,3); BHelp=XtVaCreateManagedWidget( "help",xmCascadeButtonWidgetClass,MainMenu, XmNsubMenuId,HelpMenu, (char*)NULL ); XtVaSetValues(MainMenu,XmNmenuHelpWidget,BHelp,(char*)NULL); // Create menu item: help/about BHelpAbout=XtVaCreateManagedWidget( "about",xmPushButtonWidgetClass,HelpMenu, (char*)NULL ); XtAddCallback(BHelpAbout,XmNactivateCallback,HandleCallback,this); // Create a parent for status bar and view MainForm=XtVaCreateManagedWidget( "mainForm",xmFormWidgetClass,MainWin, (char*)NULL ); // Create status line StatusFrame=XtVaCreateManagedWidget( "statusFrame",xmFrameWidgetClass,MainForm, XmNleftAttachment,XmATTACH_FORM, XmNrightAttachment,XmATTACH_FORM, XmNtopAttachment,XmATTACH_FORM, (char*)NULL ); StatusLabel=XtVaCreateManagedWidget( "statusLabel",xmLabelWidgetClass,StatusFrame, XmNalignment, XmALIGNMENT_BEGINNING, (char*)NULL ); // Create the chess board view ViewFrame=XtVaCreateManagedWidget( "viewFrame",xmFrameWidgetClass,MainForm, XmNtopAttachment,XmATTACH_WIDGET, XmNtopWidget,StatusFrame, XmNleftAttachment,XmATTACH_FORM, XmNrightAttachment,XmATTACH_FORM, XmNbottomAttachment,XmATTACH_FORM, (char*)NULL ); ViewArea=XtVaCreateManagedWidget( "viewArea",xmDrawingAreaWidgetClass,ViewFrame, XmNtopAttachment,XmATTACH_FORM, XmNleftAttachment,XmATTACH_FORM, XmNrightAttachment,XmATTACH_FORM, XmNbottomAttachment,XmATTACH_FORM, (char*)NULL ); XtAddCallback(ViewArea,XmNexposeCallback,HandleCallback,this); XtAddCallback(ViewArea,XmNresizeCallback,HandleCallback,this); XtAddEventHandler( ViewArea,ButtonPressMask|ButtonMotionMask|ButtonReleaseMask| StructureNotifyMask,False,HandleEvent,this ); XtVaGetValues(ViewArea,XmNwidth,&ViewWidth,(char*)NULL); XtVaGetValues(ViewArea,XmNheight,&ViewHeight,(char*)NULL); ViewWin=0; ViewGC=NULL; // Create dialog: load game XtSetArg(al[0],XmNvisual,DlgVsl); XtSetArg(al[1],XmNdepth,DlgVslDepth); XtSetArg(al[2],XmNcolormap,DlgCMap); XtSetArg(al[3],XmNautoUnmanage,True); LoadDialog=XmCreateFileSelectionDialog(TopLevel,(char*)"loadDialog",al,4); XtAddCallback(LoadDialog,XmNokCallback,HandleCallback,this); XtUnmanageChild(XmFileSelectionBoxGetChild(LoadDialog,XmDIALOG_HELP_BUTTON)); // Create dialog: save game XtSetArg(al[0],XmNvisual,DlgVsl); XtSetArg(al[1],XmNdepth,DlgVslDepth); XtSetArg(al[2],XmNcolormap,DlgCMap); XtSetArg(al[3],XmNautoUnmanage, True); SaveDialog=XmCreateFileSelectionDialog(TopLevel,(char*)"saveDialog",al,4); XtAddCallback(SaveDialog,XmNokCallback,HandleCallback,this); XtUnmanageChild(XmFileSelectionBoxGetChild(SaveDialog,XmDIALOG_HELP_BUTTON)); // Create dialog: file exists, overwrite? XtSetArg(al[0],XmNvisual,DlgVsl); XtSetArg(al[1],XmNdepth,DlgVslDepth); XtSetArg(al[2],XmNcolormap,DlgCMap); XtSetArg(al[3],XmNautoUnmanage, True); OverwriteDialog=XmCreateWarningDialog(TopLevel,(char*)"overwriteDialog",al,4); XtUnmanageChild(XmMessageBoxGetChild(OverwriteDialog,XmDIALOG_HELP_BUTTON)); XtAddCallback(OverwriteDialog,XmNokCallback,HandleCallback,this); // Create dialog: error message XtSetArg(al[0],XmNvisual,DlgVsl); XtSetArg(al[1],XmNdepth,DlgVslDepth); XtSetArg(al[2],XmNcolormap,DlgCMap); XtSetArg(al[3],XmNautoUnmanage, True); ErrorBox=XmCreateWarningDialog(TopLevel,(char*)"errorBox",al,4); XtUnmanageChild(XmMessageBoxGetChild(ErrorBox,XmDIALOG_CANCEL_BUTTON)); XtUnmanageChild(XmMessageBoxGetChild(ErrorBox,XmDIALOG_HELP_BUTTON)); // Create dialog: list of moves ListDialogPopup=XtVaCreateWidget( "listDialog_popup",xmDialogShellWidgetClass,TopLevel, XmNvisual,DlgVsl, XmNdepth,DlgVslDepth, XmNcolormap,DlgCMap, (char*)NULL ); ListDialog=XtVaCreateWidget( "listDialog",xmFormWidgetClass,ListDialogPopup, (char*)NULL ); LDClose=XtVaCreateManagedWidget( "close",xmPushButtonWidgetClass,ListDialog, XmNleftAttachment,XmATTACH_FORM, XmNrightAttachment,XmATTACH_FORM, XmNbottomAttachment,XmATTACH_FORM, (char*)NULL ); XtAddCallback(LDClose,XmNactivateCallback,HandleCallback,this); LDScroll=XtVaCreateManagedWidget( "scroll",xmScrolledWindowWidgetClass,ListDialog, XmNscrollingPolicy,XmAUTOMATIC, XmNscrollBarDisplayPolicy,XmAS_NEEDED, XmNleftAttachment,XmATTACH_FORM, XmNrightAttachment,XmATTACH_FORM, XmNtopAttachment,XmATTACH_FORM, XmNbottomAttachment,XmATTACH_WIDGET, XmNbottomWidget,LDClose, (char*)NULL ); LDList=XtVaCreateManagedWidget( "list",xmLabelGadgetClass,LDScroll, XmNalignment,XmALIGNMENT_BEGINNING, (char*)NULL ); // Create dialog: about xms=XmStringCreateLtoR((char*)AboutText,XmFONTLIST_DEFAULT_TAG); XtSetArg(al[0],XmNvisual,DlgVsl); XtSetArg(al[1],XmNdepth,DlgVslDepth); XtSetArg(al[2],XmNcolormap,DlgCMap); XtSetArg(al[3],XmNautoUnmanage,True); XtSetArg(al[4],XmNmessageString,xms); XtSetArg(al[5],XmNmessageAlignment,XmALIGNMENT_CENTER); AboutDialog=XmCreateMessageDialog(TopLevel,(char*)"aboutDialog",al,6); XmStringFree(xms); XtUnmanageChild(XmMessageBoxGetChild(AboutDialog,XmDIALOG_CANCEL_BUTTON)); XtUnmanageChild(XmMessageBoxGetChild(AboutDialog,XmDIALOG_HELP_BUTTON)); // Set main window areas XmMainWindowSetAreas(MainWin,MainMenu,NULL,NULL,NULL,MainForm); // Create chess machine Machine = new SilChessMachine(); // Setup ray tracer RT.SetViewSize(ViewWidth,ViewHeight); RT.SetWorld(Machine); // Update all UpdateStatusBar(); UpdateMovesList(); UpdateView(); UpdateDepthMenu(); }
static Widget _Uxbuild_topLevelShell1() { Widget _UxParent; Widget menu1_p1_shell; /* Creation of topLevelShell1 */ _UxParent = UxParent; if (_UxParent == NULL) { _UxParent = UxTopLevel; } topLevelShell1 = XtVaCreatePopupShell("topLevelShell1", topLevelShellWidgetClass, _UxParent, XmNwidth, 1070, XmNheight, 780, XmNx, 107, XmNy, 225, NULL); /* Creation of mainWindow1 */ mainWindow1 = XtVaCreateManagedWidget("mainWindow1", xmMainWindowWidgetClass, topLevelShell1, XmNwidth, 1070, XmNheight, 780, XmNx, 190, XmNy, 210, XmNunitType, XmPIXELS, NULL); /* Creation of menu1 */ menu1 = XtVaCreateManagedWidget("menu1", xmRowColumnWidgetClass, mainWindow1, XmNrowColumnType, XmMENU_BAR, XmNmenuAccelerator, "<KeyUp>F10", NULL); /* Creation of menu1_p1 */ menu1_p1_shell = XtVaCreatePopupShell("menu1_p1_shell", xmMenuShellWidgetClass, menu1, XmNwidth, 1, XmNheight, 1, XmNallowShellResize, TRUE, XmNoverrideRedirect, TRUE, NULL); menu1_p1 = XtVaCreateWidget("menu1_p1", xmRowColumnWidgetClass, menu1_p1_shell, XmNrowColumnType, XmMENU_PULLDOWN, NULL); /* Creation of menu1_p1_b2 */ menu1_p1_b2 = XtVaCreateManagedWidget("menu1_p1_b2", xmPushButtonWidgetClass, menu1_p1, RES_CONVERT(XmNlabelString, "Edit Database"), NULL); XtAddCallback(menu1_p1_b2, XmNactivateCallback, (XtCallbackProc) activateCB_menu1_p1_b2, (XtPointer) NULL); /* Creation of menu1_p1_b3 */ menu1_p1_b3 = XtVaCreateManagedWidget("menu1_p1_b3", xmPushButtonWidgetClass, menu1_p1, RES_CONVERT(XmNlabelString, "Demonstration Interface"), NULL); XtAddCallback(menu1_p1_b3, XmNactivateCallback, (XtCallbackProc) activateCB_menu1_p1_b3, (XtPointer) NULL); /* Creation of menu1_p1_b5 */ menu1_p1_b5 = XtVaCreateManagedWidget("menu1_p1_b5", xmPushButtonWidgetClass, menu1_p1, RES_CONVERT(XmNlabelString, "Configuration"), NULL); XtAddCallback(menu1_p1_b5, XmNactivateCallback, (XtCallbackProc) activateCB_menu1_p1_b5, (XtPointer) NULL); /* Creation of menu1_p1_b4 */ menu1_p1_b4 = XtVaCreateManagedWidget("menu1_p1_b4", xmSeparatorGadgetClass, menu1_p1, NULL); /* Creation of menu1_p1_b1 */ menu1_p1_b1 = XtVaCreateManagedWidget("menu1_p1_b1", xmPushButtonWidgetClass, menu1_p1, RES_CONVERT(XmNlabelString, "Quit"), NULL); XtAddCallback(menu1_p1_b1, XmNactivateCallback, (XtCallbackProc) activateCB_menu1_p1_b1, (XtPointer) NULL); /* Creation of menu1_top_b1 */ menu1_top_b1 = XtVaCreateManagedWidget("menu1_top_b1", xmCascadeButtonWidgetClass, menu1, RES_CONVERT(XmNlabelString, "Control"), XmNsubMenuId, menu1_p1, NULL); /* Creation of form1 */ form1 = XtVaCreateManagedWidget("form1", xmFormWidgetClass, mainWindow1, NULL); XmMainWindowSetAreas(mainWindow1, menu1, (Widget) NULL, (Widget) NULL, (Widget) NULL, form1); return (topLevelShell1); }
main(int argc, char *argv[]) { toplevel = XtAppInitialize(&app, "Paperplane", NULL, 0, &argc, argv, fallbackResources, NULL, 0); dpy = XtDisplay(toplevel); /* find an OpenGL-capable RGB visual with depth buffer */ vi = glXChooseVisual(dpy, DefaultScreen(dpy), dblBuf); if (vi == NULL) { vi = glXChooseVisual(dpy, DefaultScreen(dpy), snglBuf); if (vi == NULL) XtAppError(app, "no RGB visual with depth buffer"); doubleBuffer = GL_FALSE; } /* create an OpenGL rendering context */ cx = glXCreateContext(dpy, vi, /* no display list sharing */ None, /* favor direct */ GL_TRUE); if (cx == NULL) XtAppError(app, "could not create rendering context"); /* create an X colormap since probably not using default visual */ #ifdef noGLwidget cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone); /* * Establish the visual, depth, and colormap of the toplevel * widget _before_ the widget is realized. */ XtVaSetValues(toplevel, XtNvisual, vi->visual, XtNdepth, vi->depth, XtNcolormap, cmap, NULL); #endif XtAddEventHandler(toplevel, StructureNotifyMask, False, map_state_changed, NULL); mainw = XmCreateMainWindow(toplevel, "mainw", NULL, 0); XtManageChild(mainw); /* create menu bar */ menubar = XmCreateMenuBar(mainw, "menubar", NULL, 0); XtManageChild(menubar); #ifdef noGLwidget /* Hack around Xt's unfortunate default visual inheritance. */ XtSetArg(menuPaneArgs[0], XmNvisual, vi->visual); menupane = XmCreatePulldownMenu(menubar, "menupane", menuPaneArgs, 1); #else menupane = XmCreatePulldownMenu(menubar, "menupane", NULL, 0); #endif btn = XmCreatePushButton(menupane, "Quit", NULL, 0); XtAddCallback(btn, XmNactivateCallback, quit, NULL); XtManageChild(btn); XtSetArg(args[0], XmNsubMenuId, menupane); cascade = XmCreateCascadeButton(menubar, "File", args, 1); XtManageChild(cascade); #ifdef noGLwidget menupane = XmCreatePulldownMenu(menubar, "menupane", menuPaneArgs, 1); #else menupane = XmCreatePulldownMenu(menubar, "menupane", NULL, 0); #endif btn = XmCreateToggleButton(menupane, "Motion", NULL, 0); XtAddCallback(btn, XmNvalueChangedCallback, (XtCallbackProc)toggle, NULL); XtManageChild(btn); btn = XmCreatePushButton(menupane, "Add plane", NULL, 0); XtAddCallback(btn, XmNactivateCallback, (XtCallbackProc)add_plane, NULL); XtManageChild(btn); btn = XmCreatePushButton(menupane, "Remove plane", NULL, 0); XtAddCallback(btn, XmNactivateCallback, (XtCallbackProc)remove_plane, NULL); XtManageChild(btn); XtSetArg(args[0], XmNsubMenuId, menupane); cascade = XmCreateCascadeButton(menubar, "Planes", args, 1); XtManageChild(cascade); /* create framed drawing area for OpenGL rendering */ frame = XmCreateFrame(mainw, "frame", NULL, 0); XtManageChild(frame); #ifdef noGLwidget glxarea = XtVaCreateManagedWidget("glxarea", xmDrawingAreaWidgetClass, frame, NULL); #else #ifdef noMotifGLwidget /* notice glwDrawingAreaWidgetClass lacks an 'M' */ glxarea = XtVaCreateManagedWidget("glxarea", glwDrawingAreaWidgetClass, #else glxarea = XtVaCreateManagedWidget("glxarea", glwMDrawingAreaWidgetClass, #endif frame, GLwNvisualInfo, vi, NULL); #endif XtAddCallback(glxarea, XmNexposeCallback, (XtCallbackProc)draw, NULL); XtAddCallback(glxarea, XmNresizeCallback, resize, NULL); XtAddCallback(glxarea, XmNinputCallback, input, NULL); /* set up application's window layout */ XmMainWindowSetAreas(mainw, menubar, NULL, NULL, NULL, frame); XtRealizeWidget(toplevel); /* * Once widget is realized (ie, associated with a created X window), we * can bind the OpenGL rendering context to the window. */ glXMakeCurrent(dpy, XtWindow(glxarea), cx); made_current = GL_TRUE; /* setup OpenGL state */ glClearDepth(1.0); glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glFrustum(-1.0, 1.0, -1.0, 1.0, 1.0, 20); glMatrixMode(GL_MODELVIEW); /* add three initial random planes */ srandom(getpid()); add_plane(); add_plane(); add_plane(); add_plane(); add_plane(); /* start event processing */ toggle(); XtAppMainLoop(app); }