BOOL ScaleTab::InitSection() { TRACEUSER( "Neville", _T("ScaleTab::InitSection\n")); ERROR2IF(pPrefsDlg == NULL,FALSE,"ScaleTab::InitSection called with no dialog pointer"); // BOOL ReadOk = FALSE; // Flag to say whether the preference value was read ok // Make sure the information field displaying the name of the current document // is correct. String_256 DocumentName(_R(IDT_OPTS_SCALING_INFO)); DocumentName += *GetDocumentName(); pPrefsDlg->SetStringGadgetValue(_R(IDC_OPTS_INFO), DocumentName); // Section = Scale settings DocView* pSelectedView = DocView::GetSelected(); // This may now be a valid state so must not error //ERROR3IF(pSelectedView == NULL,"ScaleTab::InitSection Where's the current view eh?"); if (pSelectedView != NULL) { Spread* pSpread = pSelectedView->GetFirstSelectedSpread(); // If no selected spread then use the visible spread if (pSpread == NULL) pSpread = pSelectedView->GetVisibleSpread(); // If no selected spread then use the first spread // Of course, this should not be here but above routines seem to return // null a bit too often for my liking if (pSpread == NULL) { TRACEUSER( "Neville", _T("ScaleTab::InitSection BODGE! using 1st spread\n")); Document* pSelectedDoc = Document::GetSelected(); if (pSelectedDoc !=NULL ) pSpread = pSelectedDoc->FindFirstSpread(); } // Go and get a pointer to the scaling values if (pSpread != NULL) { pDimScale = pSpread->GetPtrDimScale(); if (pDimScale != NULL) { // And now show the initial state of the controls given this // scaling ShowScaleDetails(); } } } else { // If no current view then ensure section is greyed GreySection(); } return TRUE; }
BOOL EditTab::InitSection() { TRACEUSER( "Neville", _T("InitEditSection\n")); ERROR2IF(pPrefsDlg == NULL,FALSE,"EditTab::InitSection called with no dialog pointer"); BOOL ReadOk = FALSE; // Flag to say whether the preference value was read ok BOOL ok = TRUE; // Flag for whether value set up ok // Section = Attributes BOOL AskBeforeSetting = FALSE; ReadOk = Camelot.GetPrefValue(TEXT("Attributes"), TEXT("AskBeforeSettingCurrentAttr"), &AskBeforeSetting); pPrefsDlg->SetLongGadgetValue(_R(IDC_OPTS_ASKSETATTRB), AskBeforeSetting); ERROR2IF(!ReadOk,FALSE,_R(IDE_OPTS_READPREF_EDIT)); BOOL LastAttribute = FALSE; ReadOk = Camelot.GetPrefValue(TEXT("Attributes"), TEXT("LastAttrAppliedBecomesCurrent"), &LastAttribute); pPrefsDlg->SetLongGadgetValue(_R(IDC_OPTS_LASTATTRB), LastAttribute); ERROR2IF(!ReadOk,FALSE,_R(IDE_OPTS_READPREF_EDIT)); // Set up the units that are used in the currently selected document // All units work off the selected document and so we must do nothing if there is no // selected document. ok = SetUpDocUnits(); if (!ok) { // If this fails then there is no document and so we must ensure // things which need a selected document are greyed. GreySection(); return (TRUE); } // Section = Constraints // Now the constraint angle combo box double Angle = 0.0; // Angle stored in radians in the preference system double AngleInDegrees = 0; // Angle displayed in degrees to the user ReadOk = Camelot.GetPrefValue(TEXT("Constraints"), TEXT("Constrain Angle"), &Angle); TRACEUSER( "Neville", _T("set constraint angle '%d'\n"),Angle); // Set up the list of available options pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), 12.0); pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), 15.0); pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), 30.0); pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), 45.0); pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), 60.0); pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), 72.0); pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), 90.0); pPrefsDlg->SetComboListLength(_R(IDC_OPTS_ANGLECONST)); // Set up the default option displayed AngleInDegrees = (Angle * 180.0/PI); // Convert angle to degrees ok = pPrefsDlg->SetDoubleGadgetValue(_R(IDC_OPTS_ANGLECONST), AngleInDegrees, FALSE, -1); ERROR2IF(!ReadOk,FALSE,_R(IDE_OPTS_READPREF_EDIT)); // Now the duplicate distance // INT32 x = 0; // INT32 y = 0; DocCoord offset = pDocument->GetDuplicationOffset(); // ReadOk = Camelot.GetPrefValue(TEXT("Duplicate"), TEXT("DuplicatePlacementX"), &x); ok = pPrefsDlg->SetUnitGadgetValue(_R(IDC_OPTS_XDUPLICATE), CurrentScaledUnits, offset.x, FALSE, -1); ERROR2IF(!ReadOk,FALSE,_R(IDE_OPTS_READPREF_EDIT)); // ReadOk = Camelot.GetPrefValue(TEXT("Duplicate"), TEXT("DuplicatePlacementY"), &y); ok = pPrefsDlg->SetUnitGadgetValue(_R(IDC_OPTS_YDUPLICATE), CurrentScaledUnits, offset.y, FALSE, -1); ERROR2IF(!ReadOk,FALSE,_R(IDE_OPTS_READPREF_EDIT)); // Now the nudge size distance UINT32 Nudge = pDocument->GetDocNudge (); //ReadOk SetOk = pDocument->SetDocNudge (Nudge);//Camelot.GetPrefValue(TEXT("Nudge"), TEXT("StepSize"), &Nudge); ok = pPrefsDlg->SetUnitGadgetValue(_R(IDC_OPTS_NUDGESIZE), CurrentScaledUnits, Nudge, FALSE, -1); ERROR2IF(!ReadOk,FALSE,_R(IDE_OPTS_READPREF_EDIT)); return TRUE; }