int main(int argc, char **argv) { XtAppContext app; int i; XtSetLanguageProc(NULL, NULL, NULL); toplevel = XtVaAppInitialize(&app, "Label", NULL, 0, &argc, argv, NULL, NULL); pane = XtVaCreateManagedWidget("pane", xmPanedWindowWidgetClass, toplevel, NULL); #ifdef LESSTIF_REVISION printf("sashinc: %d resizeAtRealize: %d\n", PW_IncrementCount(pane), PW_ResizeAtRealize(pane)); #endif field = XtVaCreateManagedWidget("field",xmPushButtonWidgetClass, pane, NULL); #if 1 #ifdef LESSTIF_REVISION printf("sashinc: %d resizeAtRealize: %d\n", PW_IncrementCount(pane), PW_ResizeAtRealize(pane)); #endif button = XtVaCreateManagedWidget("button", xmPushButtonWidgetClass, pane, #if PANEBOUND XmNpaneMinimum, 20, XmNpaneMaximum, 40, #endif NULL); XtAddCallback(button, XmNactivateCallback, reorient, NULL); #ifdef LESSTIF_REVISION printf("sashinc: %d resizeAtRealize: %d\n", PW_IncrementCount(pane), PW_ResizeAtRealize(pane)); #endif button2 = XtVaCreateManagedWidget("button2", xmPushButtonWidgetClass, pane, #if PANEBOUND XmNpaneMinimum, 20, XmNpaneMaximum, 20, #endif NULL); XtAddCallback(button2, XmNactivateCallback, activate_callback, NULL); #if 1 #ifdef LESSTIF_REVISION printf("sashinc: %d resizeAtRealize: %d\n", PW_IncrementCount(pane), PW_ResizeAtRealize(pane)); #endif button3 = XtVaCreateManagedWidget("button3", xmPushButtonWidgetClass, pane, #if PANEBOUND XmNpaneMinimum, 20, XmNpaneMaximum, 40, #endif NULL); XtAddCallback(button3, XmNactivateCallback, activate_callback, NULL); #endif #endif XtRealizeWidget(toplevel); { static XtWidgetGeometry Expected[] = { NULL }; PrintDetails(toplevel,Expected); }; #if 0 printf("DUMP\n"); printf("sashinc: %d resizeAtRealize: %d\n", PW_IncrementCount(pane), PW_ResizeAtRealize(pane)); for (i = 0; i < PW_NumManagedChildren(pane); i++) { printf("child: %-8p %-10s ", PW_ManagedChildren(pane)[i], XtName(PW_ManagedChildren(pane)[i])); printf("sep: %-8p sash: %-8p index: %d position: %d\n", PWC_Separator(PW_ManagedChildren(pane)[i]), PWC_Sash(PW_ManagedChildren(pane)[i]), PWC_PositionIndex(PW_ManagedChildren(pane)[i]), PWC_Position(PW_ManagedChildren(pane)[i])); } printf("ALL CHILDREN\n"); for (i = 0; i < MGR_NumChildren(pane); i++) { printf("child: %-8p %-10s ", MGR_Children(pane)[i], XtName(MGR_Children(pane)[i])); printf("sep: %-8p sash: %-8p index: %d position: %d\n", PWC_Separator(MGR_Children(pane)[i]), PWC_Sash(MGR_Children(pane)[i]), PWC_PositionIndex(MGR_Children(pane)[i]), PWC_Position(MGR_Children(pane)[i])); } printf("\n"); printf("UNMANAGE\n"); XtUnmanageChild(button); XtUnmanageChild(button2); printf("sashinc: %d resizeAtRealize: %d\n", PW_IncrementCount(pane), PW_ResizeAtRealize(pane)); for (i = 0; i < PW_NumManagedChildren(pane); i++) { printf("child: %-8p %-10s ", PW_ManagedChildren(pane)[i], XtName(PW_ManagedChildren(pane)[i])); printf("sep: %-8p sash: %-8p index: %d position: %d\n", PWC_Separator(PW_ManagedChildren(pane)[i]), PWC_Sash(PW_ManagedChildren(pane)[i]), PWC_PositionIndex(PW_ManagedChildren(pane)[i]), PWC_Position(PW_ManagedChildren(pane)[i])); } printf("ALL CHILDREN\n"); for (i = 0; i < MGR_NumChildren(pane); i++) { printf("child: %-8p %-10s ", MGR_Children(pane)[i], XtName(MGR_Children(pane)[i])); printf("sep: %-8p sash: %-8p index: %d position: %d\n", PWC_Separator(MGR_Children(pane)[i]), PWC_Sash(MGR_Children(pane)[i]), PWC_PositionIndex(MGR_Children(pane)[i]), PWC_Position(MGR_Children(pane)[i])); } printf("\n"); printf("MANAGE\n"); XtManageChild(button2); printf("sashinc: %d resizeAtRealize: %d\n", PW_IncrementCount(pane), PW_ResizeAtRealize(pane)); for (i = 0; i < PW_NumManagedChildren(pane); i++) { printf("child: %-8p %-10s ", PW_ManagedChildren(pane)[i], XtName(PW_ManagedChildren(pane)[i])); printf("sep: %-8p sash: %-8p index: %d position: %d\n", PWC_Separator(PW_ManagedChildren(pane)[i]), PWC_Sash(PW_ManagedChildren(pane)[i]), PWC_PositionIndex(PW_ManagedChildren(pane)[i]), PWC_Position(PW_ManagedChildren(pane)[i])); } printf("ALL CHILDREN\n"); for (i = 0; i < MGR_NumChildren(pane); i++) { printf("child: %-8p %-10s ", MGR_Children(pane)[i], XtName(MGR_Children(pane)[i])); printf("sep: %-8p sash: %-8p index: %d position: %d\n", PWC_Separator(MGR_Children(pane)[i]), PWC_Sash(MGR_Children(pane)[i]), PWC_PositionIndex(MGR_Children(pane)[i]), PWC_Position(MGR_Children(pane)[i])); } printf("\n"); #endif /* #if 0 */ LessTifTestMainLoop(toplevel); exit(0); }
int main (int argc, char *argv [], char *environ []) { XEvent event; Boolean dispatchEvent; setlocale(LC_ALL, ""); #ifndef NO_MULTIBYTE #ifdef WSM /* * Set up environment variables for this HP DT client */ _DtEnvControl(DT_ENV_SET); /* * Force LANG lookup early. * (Front end may change $LANG to 'C' as part * of string space reduction optimization.) */ { char * foo = ((char *)GETMESSAGE(44, 1, "")); } #endif /* WSM */ XtSetLanguageProc (NULL, (XtLanguageProc)NULL, NULL); #endif #ifdef WSM /* * Get Identity */ WmIdentity = WmReturnIdentity(argc, argv, environ); #endif /* WSM */ /* * Initialize the workspace: */ InitWmGlobal (argc, argv, environ); #ifdef WSM /* * Set up PATH variable if it must run as standalone command * invoker */ if (wmGD.dtLite) { _DtEnvControl(DT_ENV_SET_BIN); } #endif /* WSM */ /* * MAIN EVENT HANDLING LOOP: */ for (;;) { XtAppNextEvent (wmGD.mwmAppContext, &event); /* * Check for, and process non-widget events. The events may be * reported to the root window, to some client frame window, * to an icon window, or to a "special" window management window. * The lock modifier is "filtered" out for window manager processing. */ wmGD.attributesWindow = 0L; #ifdef WSM if ((event.type == ButtonPress) || (event.type == ButtonRelease)) { if ((wmGD.evLastButton.button != 0) && ReplayedButtonEvent (&(wmGD.evLastButton), &(event.xbutton))) { wmGD.bReplayedButton = True; } else { /* save this button for next comparison */ memcpy (&wmGD.evLastButton, &event, sizeof (XButtonEvent)); wmGD.bReplayedButton = False; } } #endif /* WSM */ dispatchEvent = True; if (wmGD.menuActive) { /* * Do special menu event preprocessing. */ if (wmGD.checkHotspot || wmGD.menuUnpostKeySpec || wmGD.menuActive->accelKeySpecs) { dispatchEvent = WmDispatchMenuEvent ((XButtonEvent *) &event); } } if (dispatchEvent) { if (ManagedRoot(event.xany.window)) { dispatchEvent = WmDispatchWsEvent (&event); } else { dispatchEvent = WmDispatchClientEvent (&event); } if (dispatchEvent) { /* * Dispatch widget related event: */ XtDispatchEvent (&event); } } } } /* END OF FUNCTION main */
/****************************************************************************** * MAIN function ******************************************************************************/ int main ( int argc, char **argv ) { trace_main = TRACE_MAIN; XtAppContext app; m_init(); XtSetLanguageProc (NULL, NULL, NULL); XawInitializeWidgetSet(); /* -- Intialize Toolkit creating the application shell */ Widget appShell = XtOpenApplication (&app, APP_NAME, /* resources: can be set from argv */ options, XtNumber(options), &argc, argv, fallback_resources, sessionShellWidgetClass, NULL, 0 ); load_icon(XtDisplay(appShell)); // load_icon_default(); /* -- Enable Editres support */ XtAddEventHandler(appShell, (EventMask) 0, True, _XEditResCheckMessages, NULL); XtAddCallback( appShell, XtNdieCallback, quit_cb, NULL ); /* -- not parsed options are removed by XtOpenApplication the only entry left should be the program name */ if (argc != 1) { m_destruct(); syntax(); exit(1); } TopLevel = appShell; /* -- Register all application specific callbacks and widget classes */ RegisterApplication ( appShell ); /* -- Register all Athena and Public widget classes, CBs, ACTs */ XpRegisterAll ( app ); /* -- Create widget tree below toplevel shell using Xrm database */ WcWidgetCreation ( appShell ); /* -- Get application resources and widget ptrs */ XtGetApplicationResources( appShell, (XtPointer)&CWNET, CWNET_CONFIG_RES, XtNumber(CWNET_CONFIG_RES), (ArgList)0, 0 ); InitializeApplication(appShell); /* -- Realize the widget tree and enter the main application loop */ XtRealizeWidget ( appShell ); /* -- Set Icon for Window */ set_app_icon(appShell); grab_window_quit( appShell ); /*------------------------------------------------------------------------*/ CWNET.lgfx = lgfx_init( CWNET.widget_draw1 ); /* init commands */ cp_init(); cp_add( "PUT:", cmd_put ); cp_add( "EXIT", cmd_exit ); cp_add( "CIRCLE:", cmd_circle ); cp_add( "CLRSCR", cmd_clrscr ); cp_add( "RECT:", cmd_rect ); cp_add( "MEASURE", cmd_measure ); int sln = sln_init(); CWNET.sln = sln; XtAppAddTimeOut(app , 1000, try_connect, (XtPointer) (intptr_t) sln ); /*------------------------------------------------------------------------*/ XtAppMainLoop ( app ); /* use XtAppSetExitFlag */ XtDestroyWidget(appShell); sln_destruct(); m_destruct(); return EXIT_SUCCESS; }