BOOL PathNameEx::CreateLocation() { PORTNOTETRACE("other","PathNameEx::CreateLocation - do nothing"); #ifndef EXCLUDE_FROM_XARALX if (!IsValid()) return FALSE; // We'll walk the location string from left to right - if we come across non-existent directories, // we create them String_256 strLocation = GetLocation(FALSE); String_256 strDirPath = drivename; INT32 nPos = drivename.Length(); // start after the drivename while( nPos < strLocation.Length() ) { while( ( strLocation[nPos] != chPathSep ) && ( nPos < strLocation.Length() ) ) { strDirPath += strLocation[nPos]; nPos++; } // strDirPath has been added a directory, we check if it exists if (_access((TCHAR*) strDirPath, 0) == -1) // not found, try to create the directory { if (_mkdir((TCHAR*) strDirPath)) { #ifdef _DEBUG TCHAR szMsg[256]; TCHAR szError[128]; switch (errno) { case EACCES: camStrcpy(szError, "access denied (EACCES)"); break; case ENOENT: camStrcpy(szError, "path not found (ENOENT)"); break; default: wsprintf(szError, "errno = %d", errno); } wsprintf(szMsg, "Create directory %s failed, %s", strDirPath, szError); ERROR3(szMsg); #endif return FALSE; } } strDirPath += chPathSep; // add a backslash in case there are further subdirectories nPos++; // move to the next position } #endif return TRUE; }
/******************************************************************************************** > TemplateAttribute::TemplateAttribute( const StringBase& InternalName, const StringBase& Question, const StringBase& Param) Author: Colin_Barfoot (Xara Group Ltd) <*****@*****.**> Created: 27/06/97 Purpose: Default constructor for TemplateAttribute Inputs: InternalName Question Param Notes: Currently forms a UserAttribute with a LongKey of WizOp\InternalName/Param ********************************************************************************************/ TemplateAttribute::TemplateAttribute( const StringBase& InternalName, const StringBase& Question, const StringBase& Param) { // Copy as much of the question as we can. SetWizOpNameAndParam(InternalName, Param); // Cache this test for faster Attribute gallery scans. m_fIsAnObjectName = (GetInternalName() == TA_NAME); if (Question.Length() > 0) { String_256 NewValue; INT32 LengthToCopy = (NewValue.MaxLength() < Question.Length()) ? TRACE( _T("TemplateAttribute::TemplateAttribute: Q truncated\n")), NewValue.MaxLength() : Question.Length(); if (LengthToCopy > 0) { String_256 TruncatedQuestion; Question.Left(&TruncatedQuestion, LengthToCopy); if (!Value.Value.Alloc(TruncatedQuestion.Length())) { ERROR1RAW(_R(IDE_NOMORE_MEMORY)); return; } Value.Value = TruncatedQuestion; } } }
BOOL PrintPSRenderRegion::WriteSepFunctions(KernelDC *pDC) { PrintControl *pPrintCtl=NULL; View *pView = GetRenderView(); if (pView) pPrintCtl = pView->GetPrintControl(); if (!pPrintCtl) return TRUE; // Get a pointer to the typeset info structure TypesetInfo *pInfo = pPrintCtl->GetTypesetInfo(); // Is screening off? if (!pInfo->AreScreening()) return TRUE; // Get hold of our PostScript prolog resource... CCResTextFile ScreenFile; // Open the file if (!ScreenFile.open(_R(IDM_PS_SPOTFUNCS), _R(IDT_PS_RES))) { // Failed to open the file... ERROR2(FALSE, "Could not get at PostScript resource!"); } // Read each line from the file and output it to the DC. String_256 LineBuf; TCHAR *pBuf = (TCHAR *) LineBuf; while (!ScreenFile.eof()) { // Copy this line to output. ScreenFile.read(&LineBuf); pDC->OutputTCHARAsChar(pBuf, LineBuf.Length()); pDC->OutputNewLine(); } // All done ScreenFile.close(); return TRUE; }
BOOL ScaleTab::CommitSection() { TRACEUSER( "Neville", _T("commit Scale section\n")); ERROR3IF(pPrefsDlg == NULL, "ScaleTab::CommitSection called with no dialog pointer"); BOOL ok = pPrefsDlg->TalkToPage(_R(IDD_OPTSTAB_SCALE)); // The Scale tab identifier if (!ok) return TRUE; // Talk to View failed to return now // Ok has been pressed so take the values from this section of the dialog box // Takes the values in the dialog and sets the DimScale object accordingly. BOOL Valid=TRUE; // Flag for validity of value // BOOL State=FALSE; // Flag for state of button/switch BOOL SetOk=TRUE; // Preference value set ok // Section = Scale settings // Now check that we have the selected view still, just in case it has switched // without us being told about it or even we have no current document/view. // This may be a valid state now, so do not complain about it. DocView* pCurrentView = DocView::GetSelected(); if (pCurrentView != NULL) { // Only if there is a current view do we read the values. String_256 DrawingStr; String_256 RealStr; //TCHAR* pDrawingStr = DrawingStr; //TCHAR* pRealStr = RealStr; BOOL Active; // Get the values from the dialog box Active = pPrefsDlg->GetLongGadgetValue(_R(IDC_OPTS_USESCALEFACTOR),0,1,0, &Valid); DrawingStr = pPrefsDlg->GetStringGadgetValue(_R(IDC_OPTS_DRAWINGSCALE), &Valid); RealStr = pPrefsDlg->GetStringGadgetValue(_R(IDC_OPTS_REALSCALE), &Valid); Spread* pSpread = pCurrentView->GetFirstSelectedSpread(); // If no selected spread then use the visible spread if (pSpread == NULL) pSpread = pCurrentView->GetVisibleSpread(); // Only do the chnage if we have a valid spread pointer and we have changed something. if ( (pSpread != NULL) && ( (OldActiveState != Active) || (OldDrawingStr != DrawingStr) || (OldRealStr != RealStr) ) ) { pDimScale = pSpread->GetPtrDimScale(); if (pDimScale != NULL) { // Only if active is set do we need to try and set new strings // and hence a new drawing scale if (Active) { // Dim Scales can only be 32 characters long String_32 DrawingStr32 = _T(""); String_32 RealStr32 = _T(""); // Check if read in strings are longer than this if (DrawingStr.Length() > DrawingStr32.MaxLength()) { InformError(_R(IDE_OPTS_INVALIDDRAWSCALE)); return FALSE; } if (RealStr.Length() > RealStr32.MaxLength()) { InformError(_R(IDE_OPTS_INVALIDREALSCALE)); return FALSE; } RealStr32 = RealStr; DrawingStr32 = DrawingStr; // Try and set these strings as new drawing and real scales strings SetOk = pDimScale->SetDrawingScaleStr(DrawingStr32); if (!SetOk) { InformError(_R(IDE_OPTS_INVALIDDRAWSCALE)); return FALSE; } SetOk = SetOk && pDimScale->SetRealScaleStr(RealStr32); if (!SetOk) { InformError(_R(IDE_OPTS_INVALIDREALSCALE)); return FALSE; } // Now try to convert these into a new scaling factor if (SetOk) SetOk = SetOk && pDimScale->SetScaleFactor(); // If we failed in any of the conversions then warn the user and fail if (!SetOk) { InformError(_R(IDE_OPTS_INVALIDSCALING)); return FALSE; } } // Set up a possibly new active state pDimScale->SetActiveState(Active); } // Now tell other users of units/scaling factors that there they are likely // to need to update any currently displayed units. Document *pCurrentDoc = (Document *)pSpread->FindOwnerDoc(); BROADCAST_TO_ALL(OptionsChangingMsg(pCurrentDoc, OptionsChangingMsg::NEWUNITS)); // unfortunately pScopeDoc is NULL!, and since pCurrentDoc is calulated I thought it ought to use! - Ed 17/10/95 // BROADCAST_TO_ALL(OptionsChangingMsg(pScopeDocument, OptionsChangingMsg::OptionsState::NEWUNITS)); // Make sure the document is marked as modified. pCurrentDoc->SetModified(TRUE); // And note the new states OldActiveState = Active; OldDrawingStr = DrawingStr; OldRealStr = RealStr; } } // else // ERROR2(FALSE,_R(IDE_OPTS_READPREF_SCALE)); return TRUE; }