Example #1
0
// verifies that TabInfo state is consistent with WindowInfo state
static NO_INLINE void VerifyTabInfo(WindowInfo* win, TabInfo* tdata) {
    CrashIf(tdata->ctrl != win->ctrl);
    AutoFreeW winTitle(win::GetText(win->hwndFrame));
    CrashIf(!str::Eq(winTitle.Get(), tdata->frameTitle));
    bool expectedTocVisibility = tdata->showToc; // if not in presentation mode
    if (PM_DISABLED != win->presentation) {
        expectedTocVisibility = false; // PM_BLACK_SCREEN, PM_WHITE_SCREEN
        if (PM_ENABLED == win->presentation) {
            expectedTocVisibility = tdata->showTocPresentation;
        }
    }
    CrashIf(win->tocVisible != expectedTocVisibility);
    CrashIf(tdata->canvasRc != win->canvasRc);
}
Example #2
0
void    _HYObjectInspector::OpenObjectWindow (void)
{
    _HYTable*       dl = (_HYTable*)GetCellObject (HY_OBJECT_INSPECTOR_TABLE_ROW,0);
    _HYButtonBar*   b1 = (_HYButtonBar*)GetCellObject (0,0);
    _HYPullDown*    p1 = (_HYPullDown*)GetCellObject (0,2);

    _SimpleList     sel;
    dl->GetSelection (sel);
    if (sel.lLength) {
        b1->EnableButton (0,true);
        for (long k = 0; k<sel.lLength; k+=2) {
            _String          windowTitle (*(_String*)dl->GetCellData (0,sel.lData[k]/2));
            long f;
            switch (p1->GetSelection()) {
            case 0: {
                _String winTitle (windowTitle);
                windowTitle = _String ("Tree ")&windowTitle;
                f = FindWindowByName (windowTitle);
                if (f<0) {
                    _HYTreePanel* newTreePanel = new _HYTreePanel (winTitle,winTitle);
                    newTreePanel->_Zoom(true);
                    newTreePanel->BringToFront();
                    //newTreePanel->Show();
                } else {
                    _HYPlatformWindow* thisWindow = (_HYPlatformWindow*)windowObjects(f);
                    thisWindow->_Activate();
                }
                break;
            }
            case 1: {
                _String winTitle (windowTitle);
                windowTitle = _String ("DataSet ")&windowTitle;
                f = FindWindowByName (windowTitle);
                if (f<0) {
                    _HYDataPanel* newDataPanel = new _HYDataPanel (winTitle,winTitle);
                    newDataPanel->BringToFront();
                } else {
                    _HYPlatformWindow* thisWindow = (_HYPlatformWindow*)windowObjects(f);
                    thisWindow->_Activate();
                }
                break;
            }
            case 2: {
                _String winTitle (windowTitle);
                windowTitle = _String ("Model ")&windowTitle;
                f = FindWindowByName (windowTitle);
                if (f<0) {
                    if (dl->cellTypes.lData[sel.lData[k]] & HY_TABLE_ITALIC) {
                        if (!warnModelOpen) {
                            windowTitle = _String ("Model \"") & winTitle & "\" is a template model, and it can't be opened. You can open a new model based on it, though.";
                            if (!warnModelOpen) {
                                if (!ProceedPromptWithCheck (windowTitle, donotWarnAgain, warnModelOpen)) {
                                    break;
                                }
                            }
                            NewObject ();
                            break;

                        }
                    } else {
                        if (sel.lData[k]/2<modelTemplates.lLength) {
                            _List* modelSpec = FindModelTemplate (&winTitle);
                            if (modelSpec) {
                                OpenModelFromFile(*(_String*)(*modelSpec)(2));
                            }
                        } else {
                            OpenModelFromMatrix (winTitle);
                        }
                    }
                } else {
                    _HYWindow* thisWindow = (_HYWindow*)windowObjectRefs(f);
                    thisWindow->BringToFront();
                }
                break;
            }
            case 3: {
                _String winTitle (windowTitle);
                windowTitle = _String ("Likelihood Function ")&windowTitle;
                f = FindWindowByName (windowTitle);
                if (f<0) {
                    f = likeFuncNamesList.Find(&winTitle);
                    if (f>=0) {
                        _HYParameterTable* newParameterTable = new _HYParameterTable (windowTitle,f);
                        newParameterTable->_Zoom(true);
                        newParameterTable->BringToFront();
                    }
                } else {
                    _HYPlatformWindow* thisWindow = (_HYPlatformWindow*)windowObjects(f);
                    thisWindow->_Activate();
                }
                break;
            }
            }
        }
    }
}