The following are the full listings for two examples. Example A-1 builds a simple notebook widget (shown in Figure A-2). Example A-2 builds an example of vertical writing (shown in Figure A-2).
/* include init */ #include <Xm/XmAll.h> #define NUM_PAGES 8 #define APPNAME “Notebook” void pageChangeCB(Widget w, XtPointer client, XtPointer call); /* end init */ int main(int argc, char ** argv) { XtAppContext AppContext; Widget TopLevel = XtVaOpenApplication(&AppContext, APPNAME, NULL, 0, &argc, argv, NULL, sessionShellWidgetClass, NULL); /* include notebook */ Widget notebook = XtVaCreateWidget(“notebook”, xmNotebookWidgetClass, TopLevel, NULL); int i; XmString xmstr; char labelString[32]; for ( i=0; i< NUM_PAGES; i++ ) { sprintf(labelString,”Page %d\n”,i); xmstr = XmStringCreateLocalized(labelString); (void) XtVaCreateManagedWidget(“label”, xmLabelWidgetClass, notebook, XmNpageNumber, i+1, XmNlabelString, xmstr, NULL); XmStringFree(xmstr); } for ( i=0; i< NUM_PAGES; i+=4 ) { int j; sprintf(labelString,”Major\nTab %d\n”,i); xmstr = XmStringCreateLocalized(labelString); (void) XtVaCreateManagedWidget(“button”, xmPushButtonWidgetClass, notebook, XmNpageNumber, i+1, XmNlabelString, xmstr, XmNnotebookChildType, XmMAJOR_TAB, NULL); XmStringFree(xmstr); for ( j=i; j<i+4; j++ ) { sprintf(labelString,”Minor\nTab %d\n”,j); xmstr = XmStringCreateLocalized(labelString); (void) XtVaCreateManagedWidget(“button”, xmPushButtonWidgetClass, notebook, XmNpageNumber, j+1, XmNlabelString, xmstr, XmNnotebookChildType, XmMINOR_TAB, NULL); XmStringFree(xmstr); } } XtAddCallback(notebook, XmNpageChangedCallback, (XtCallbackProc) pageChangeCB, NULL); XtManageChild(notebook); /* end notebook */ XtRealizeWidget(TopLevel); XtAppMainLoop(AppContext); } /* pageChangeCB - comment */ static void pageChangeCB(Widget w, XtPointer client, XtPointer call) { } |
Figure A-1 shows the widget that results from the code in Example A-1.
#include <Xm/XmAll.h> #define APPNAME “Vertical” XtAppContext AppContext; Widget TopLevel; main(int argc, char ** argv) { Widget form, vert, horiz; XtSetLanguageProc(NULL, NULL, NULL); TopLevel = XtVaOpenApplication(&AppContext, APPNAME, NULL, 0, &argc, argv, NULL, sessionShellWidgetClass, NULL); form = XtVaCreateWidget(“form”, xmFormWidgetClass, TopLevel, NULL); /* vertical text widget */ vert = XtVaCreateManagedWidget(“vertical”, xmTextWidgetClass, form, XmNtopAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, XmNlayoutDirection, XmTOP_TO_BOTTOM, XmNrows, 10, NULL); /* horizontal text widget */ horiz = XtVaCreateManagedWidget(“horizontal”, xmTextWidgetClass, form, XmNtopAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, vert, XmNrightAttachment, XmATTACH_FORM, NULL); /* manage form */ XtManageChild(form); XtRealizeWidget(TopLevel); XtAppMainLoop(AppContext); } |
Figure A-2 shows the results of the code in Example A-2.