_THyPhyString * _THyPhy::ExecuteBF (const char * buffer, bool doPurge) { if (doPurge) { PurgeAll (true); // cleanup results of previous analysis } _String commandString (buffer); if (commandString.beginswith ("#NEXUS"),false) { lastNexusDataMatrix = ReadDataSetFile (nil, 2, &commandString); commandString = nexusBFBody; } _ExecutionList compiledCode (commandString); ApplyPreferences (); DeleteObject ((_String*)errors); DeleteObject ((_String*)warnings); DeleteObject ((_String*)textout); errors = new _String (128L,true); warnings = new _String (128L,true); textout = new _String (128L,true); askFID = compiledCode.ExecuteAndClean (0x7ffffff,&_tHYPHYAskFor); _PMathObj bfReturn = compiledCode.GetResult (); ((_String*)errors)->Finalize(); ((_String*)warnings)->Finalize(); ((_String*)textout)->Finalize(); if (currentResultHolder->sData) { free (currentResultHolder->sData); currentResultHolder->sData = nil; } if (bfReturn) { _String * serializedReturn = (_String*) bfReturn->toStr(); currentResultHolder->sData = serializedReturn->sData; serializedReturn->sData = nil; currentResultHolder->sLength = serializedReturn->sLength; } return currentResultHolder; }
LRESULT CChildView::OnPrefsApply(WPARAM /* wParam */, LPARAM lParam) { ApplyPreferences(lParam); return 0; }
void CChildView::OnPreferences() { // If the preferences dialog is already displayed, leave it alone. // if (m_prefs.GetSafeHwnd() != NULL) { return; } MeaUnitsMgr& unitsMgr = MeaUnitsMgr::Instance(); // Tool preferences // m_prefs.m_toolsPrefs.m_backColor = MeaColors::Get(MeaColors::CrossHairBack); m_prefs.m_toolsPrefs.m_borderColor = MeaColors::Get(MeaColors::CrossHairBorder); m_prefs.m_toolsPrefs.m_hiliteColor = MeaColors::Get(MeaColors::CrossHairHilite); m_prefs.m_toolsPrefs.m_lineColor = MeaColors::Get(MeaColors::LineFore); m_prefs.m_toolsPrefs.m_opacity = 100 * MeaColors::GetA(MeaColors::CrossHairOpacity) / 255; m_prefs.m_toolsPrefs.m_showDataWin = MeaDataWin::IsArmed(); m_prefs.m_toolsPrefs.m_originMarker = MeaToolMgr::Instance().IsToolEnabled(MeaOriginTool::kToolName); // Precision preferences // m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaPixelsId, unitsMgr.GetLinearDisplayPrecisions(MeaPixelsId)); m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaPointsId, unitsMgr.GetLinearDisplayPrecisions(MeaPointsId)); m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaTwipsId, unitsMgr.GetLinearDisplayPrecisions(MeaTwipsId)); m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaInchesId, unitsMgr.GetLinearDisplayPrecisions(MeaInchesId)); m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaCentimetersId, unitsMgr.GetLinearDisplayPrecisions(MeaCentimetersId)); m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaMillimetersId, unitsMgr.GetLinearDisplayPrecisions(MeaMillimetersId)); m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaPicasId, unitsMgr.GetLinearDisplayPrecisions(MeaPicasId)); m_prefs.m_precisionPrefs.SetLinearPrecisions(MeaCustomId, unitsMgr.GetLinearDisplayPrecisions(MeaCustomId)); m_prefs.m_precisionPrefs.SetAngularPrecisions(MeaDegreesId, unitsMgr.GetAngularDisplayPrecisions(MeaDegreesId)); m_prefs.m_precisionPrefs.SetAngularPrecisions(MeaRadiansId, unitsMgr.GetAngularDisplayPrecisions(MeaRadiansId)); // Custom units preferences // MeaCustomUnits* customUnits = unitsMgr.GetCustomUnits(); m_prefs.m_customPrefs.m_name = customUnits->GetName(); m_prefs.m_customPrefs.m_abbrev = customUnits->GetAbbrev(); m_prefs.m_customPrefs.SetScaleFactor(customUnits->GetScaleBasis(), customUnits->GetScaleFactor()); // Ruler preferences // m_prefs.m_rulerPrefs.m_backColor = MeaColors::Get(MeaColors::RulerBack); m_prefs.m_rulerPrefs.m_borderColor = MeaColors::Get(MeaColors::RulerBorder); m_prefs.m_rulerPrefs.m_opacity = 100 * MeaColors::GetA(MeaColors::RulerOpacity) / 255; // Calibration preferences // bool useManualRes; FSIZE manualRes; MeaScreenMgr::ScreenIter iter; MeaScreenMgr& screenMgr = MeaScreenMgr::Instance(); m_prefs.m_calibrationPrefs.m_screens.clear(); for (iter = screenMgr.GetScreenIter(); !screenMgr.AtEnd(iter); ++iter) { MeaCalibrationPrefs::Screen screen; screenMgr.GetScreenRes(iter, useManualRes, manualRes); screen.m_resMode = useManualRes ? MeaCalibrationPrefs::ManualRes : MeaCalibrationPrefs::AutoRes; screen.m_res = manualRes; screen.m_resUnits = screenMgr.GetCalInInches(iter) ? MeaCalibrationPrefs::UseInches : MeaCalibrationPrefs::UseCentimeters; m_prefs.m_calibrationPrefs.m_screens[iter] = screen; } // Advanced preferences // m_prefs.m_advancedPrefs.m_startupProfile = m_startupProfile; m_prefs.m_advancedPrefs.m_startupProfileDlg = MeaProfileMgr::Instance().CreateLoadDialog(); m_prefs.m_advancedPrefs.m_screenGrabDirectory = m_screenGrabDirectory; int res = m_prefs.DoModal(); if (res == IDOK) { ApplyPreferences(); } else if (res == ID_MEA_MASTER_RESET) { GetParentFrame()->PostMessage(MeaMasterResetMsg); } }