/** *DrawingofDocShell(withthehelperclassSdDrawViewShell)
*/ void DrawDocShell::Draw(OutputDevice* pOut, const JobSetup&, sal_uInt16 nAspect, bool/*bOutputForScreen*/)
{ if (nAspect == ASPECT_THUMBNAIL)
{ // THUMBNAIL: here we may can set the draft mode
}
std::optional<ClientView> pView( std::in_place, this, pOut );
// that we also get the dark lines at the right and bottom page margin
aFrac = Fraction( nMaxEdgePixel - 1, nMaxEdgePix );
aMapMode.SetScaleX( aFrac );
aMapMode.SetScaleY( aFrac );
pVDev->SetMapMode( aMapMode );
// check if name is something like 'Slide/Page n'
OUString aStrPage; if (GetDoc()->GetDocumentType() == DocumentType::Draw)
aStrPage = SdResId(STR_PAGE_NAME) + " "; else // using the same strings as SdPage::GetName
aStrPage = SdResId(STR_PAGE) + " ";
bool bIsStandardName = false;
// prevent also _future_ slide names of the form "'STR_PAGE' + ' ' + '[0-9]+|[a-z]|[A-Z]|[CDILMVX]+|[cdilmvx]+'" // (arabic, lower- and upper case single letter, lower- and upper case roman numbers) if (rInOutPageName.startsWith(aStrPage) &&
rInOutPageName.getLength() > aStrPage.getLength())
{
sal_Int32 nIdx{ aStrPage.getLength() };
std::u16string_view sRemainder = o3tl::getToken(rInOutPageName, 0, ' ', nIdx); if (!sRemainder.empty() && sRemainder[0] >= '0' && sRemainder[0] <= '9')
{ // check for arabic numbering
size_t nIndex = 1; // skip all following numbers while (nIndex < sRemainder.size() &&
sRemainder[nIndex] >= '0' && sRemainder[nIndex] <= '9')
{
nIndex++;
}
// EOL? Reserved name! if (nIndex >= sRemainder.size())
{
bIsStandardName = true;
}
} elseif (sRemainder.size() == 1 &&
rtl::isAsciiLowerCase(sRemainder[0]))
{ // lower case, single character: reserved
bIsStandardName = true;
} elseif (sRemainder.size() == 1 &&
rtl::isAsciiUpperCase(sRemainder[0]))
{ // upper case, single character: reserved
bIsStandardName = true;
} else
{ // check for upper/lower case roman numbering
OUString sReserved(u"cdilmvx"_ustr);
// skip all following characters contained in one reserved class if (sReserved.indexOf(sRemainder[0]) == -1)
sReserved = sReserved.toAsciiUpperCase();
if( bIsStandardName )
{ if( bResetStringIfStandardName )
{ // this is for insertion of slides from other files with standard // name. They get a new standard name, if the string is set to an // empty one.
rInOutPageName.clear();
bCanUseNewName = true;
} else
bCanUseNewName = false;
} else
{ if (!rInOutPageName.isEmpty())
{ bool bOutDummy;
sal_uInt16 nExistingPageNum = mpDoc->GetPageByName( rInOutPageName, bOutDummy );
bCanUseNewName = ( nExistingPageNum == SDRPAGE_NOTFOUND );
} else
bCanUseNewName = false;
}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:
(vorverarbeitet am 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.