// front end void EngineOutputPopUp() { FARPROC lpProc; static int needInit = TRUE; CheckMenuItem(GetMenu(hwndMain), IDM_ShowEngineOutput, MF_CHECKED); if( engineOutputDialog ) { SendMessage( engineOutputDialog, WM_INITDIALOG, 0, 0 ); if( ! engineOutputDialogUp ) { ShowWindow(engineOutputDialog, SW_SHOW); } } else { lpProc = MakeProcInstance( (FARPROC) EngineOutputProc, hInst ); /* Note to self: dialog must have the WS_VISIBLE style set, otherwise it's not shown! */ CreateDialog( hInst, MAKEINTRESOURCE(DLG_EngineOutput), hwndMain, (DLGPROC)lpProc ); FreeProcInstance(lpProc); } // [HGM] displaced to after creation of dialog, to allow initialization of output fields if( needInit ) { InitializeEngineOutput(); needInit = FALSE; } engineOutputDialogUp = TRUE; }
void EngineOutputPopUp () { Arg args[16]; int j; Widget edit; static int needInit = TRUE; static char *title = N_("Engine output"), *text = N_("This feature is experimental"); if (engineOutputShell == NULL) { engineOutputShell = EngineOutputCreate(_(title), _(text)); XtRealizeWidget(engineOutputShell); CatchDeleteWindow(engineOutputShell, "EngineOutputPopDown"); if( needInit ) { InitializeEngineOutput(); needInit = FALSE; } SetEngineColorIcon( 0 ); SetEngineColorIcon( 1 ); SetEngineState( 0, STATE_IDLE, "" ); SetEngineState( 1, STATE_IDLE, "" ); } else { edit = XtNameToWidget(engineOutputShell, "*form.text"); j = 0; XtSetArg(args[j], XtNstring, text); j++; XtSetValues(edit, args, j); j = 0; XtSetArg(args[j], XtNiconName, (XtArgVal) _(title)); j++; XtSetArg(args[j], XtNtitle, (XtArgVal) _(title)); j++; XtSetValues(engineOutputShell, args, j); } XtPopup(engineOutputShell, XtGrabNone); XSync(xDisplay, False); j=0; XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; XtSetValues(XtNameToWidget(menuBarWidget, "menuView.Show Engine Output"), args, j); engineOutputDialogUp = True; ShowThinkingEvent(); // [HGM] thinking: might need to prompt engine for thinking output }