20#include <osl/file.hxx>
25#include <svx/svxids.hrc>
37#include <editeng/editeng.hxx>
76#define MAX_USER_MOVE 2
82#include <com/sun/star/animations/TransitionSubType.hpp>
83#include <com/sun/star/animations/TransitionType.hpp>
84#include <com/sun/star/document/XDocumentProperties.hpp>
85#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
86#include <com/sun/star/drawing/LineStyle.hpp>
87#include <com/sun/star/frame/XModel.hpp>
100 : maParam(rDocStream)
103 std::unique_ptr<PropRead> pSummaryInformation(
new PropRead( rStorage,
"\005SummaryInformation" ));
104 if ( pSummaryInformation->IsValid() )
106 pSummaryInformation->Read();
109 0xe0, 0x85, 0x9f, 0xf2, 0xf9, 0x4f, 0x68, 0x10, 0xab, 0x91, 0x08, 0x00, 0x2b, 0x27, 0xb3, 0xd9
111 Section* pSection =
const_cast<Section*
>(pSummaryInformation->GetSection( aPropSetGUID ));
118 aPropItem.
Read( aComment );
119 if ( aComment.indexOf(
"Applixware" ) >= 0 )
126 pSummaryInformation.reset();
130 if (pCurrentUserStream)
139 std::shared_ptr<SfxStyleSheetIterator> aIter =
140 std::make_shared<SfxStyleSheetIterator>(pStyleSheetPool, SfxStyleFamily::All);
166 , mrStorage(rStorage_)
167 , mbDocumentFound(false)
171 , mnBackgroundObjectsLayerID(0)
180 sal_uInt32 nDggContainerOfs = 0;
200 sal_uInt32 nSvxMSDffOLEConvFlags2 = 0;
239 EEControlBits nControlWord = rOutl.GetEditEngine().GetControlWord();
240 nControlWord |= EEControlBits::ULSPACESUMMATION;
241 const_cast<EditEngine&
>(rOutl.GetEditEngine()).SetControlWord( nControlWord );
251 std::unique_ptr<PropRead> pDInfoSec2(
new PropRead(
mrStorage,
"\005DocumentSummaryInformation" ));
252 if ( pDInfoSec2->IsValid() )
256 sal_uInt32
nType(0), nPropCount(0);
262 0x02, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
264 Section* pSection =
const_cast<Section*
>(pDInfoSec2->GetSection( aPropSetGUID ));
273 sal_uInt32 nSlideCount(0), nVecCount(0);
277 sal_uInt32 nSlideTitleIndex = 0, nSlideTitleCount = 0;
287 sal_uInt32 nEntryCount = 0;
288 for (sal_uInt32
i = 0;
i < nVecCount; ++
i)
297 if ( aUString ==
"Slide Titles" || aUString ==
"Folientitel" )
299 nSlideTitleCount = nTemp;
300 nSlideTitleIndex = nEntryCount;
302 nEntryCount += nTemp;
310 bool bVecOk = ( ( nVecCount >= (nSlideTitleIndex + nSlideTitleCount) )
315 for (sal_uInt32
i = 0;
i != nSlideTitleIndex; ++
i)
319 if (!aPropItem.
good())
324 auto nPos = aPropItem.
Tell() + nTemp;
334 for (sal_uInt32
i = 0;
i < nSlideTitleCount; ++
i)
336 if (!aPropItem.
Read(aUString,
nType,
false))
339 OUString aString( aUString );
340 if ( aString ==
"No Slide Title" )
344 std::vector<OUString>::const_iterator pIter =
360 0x05, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
362 pSection =
const_cast<Section*
>(pDInfoSec2->GetSection( aUserPropSetGUID ));
369 auto iter = aDict.find( OUString(
"_PID_HLINKS") );
371 if ( iter != aDict.end() )
373 if ( pSection->
GetProperty( iter->second, aPropItem ) )
379 sal_uInt32 nPropSize;
383 if ( ! ( nPropCount % 6 ) )
389 for (
i = 0;
i < nPropCount;
i++ )
421 sal_uInt32 nPageNumber = 0;
423 OString aStringAry[ 3 ];
424 size_t nTokenCount = 0;
428 aStringAry[nTokenCount] =
433 bool bDocInternalSubAddress =
false;
440 sal_Int32 nNumber = aStringAry[
nToken ].toInt32();
441 if ( nNumber & ~0xff )
446 sal_uInt16 nPage = pPageList->
FindPage( nNumber );
450 bDocInternalSubAddress =
true;
457 if ( !bDocInternalSubAddress )
461 OUString aToken(OStringToOUString(aStringAry[
nToken], RTL_TEXTENCODING_UTF8));
462 std::vector<OUString>::const_iterator pIter =
468 bDocInternalSubAddress =
true;
472 if ( !bDocInternalSubAddress )
478 sal_Int32 nNumber = aStringAry[
nToken ].toInt32();
479 if ( ( nNumber & ~0xff ) == 0 )
481 nPageNumber =
static_cast<sal_uInt32
>(nNumber) - 1;
482 bDocInternalSubAddress =
true;
489 if ( bDocInternalSubAddress )
570 case PptViewTypeEnum::Notes:
571 case PptViewTypeEnum::NotesMaster:
577 Scale( aVisAreaSize );
583 std::unique_ptr<SfxProgress> xStbMgr;
587 SdResId( STR_POWERPOINT_IMPORT),
592 sal_uInt32 nImportedPages = 0;
596 for ( sal_uInt16 nMasterNum = 0; nMasterNum < nMasterCnt; nMasterNum++ )
610 pPage->SetPageKind( ePgKind );
612 if ( bNotesMaster && bStarDrawFiller )
616 std::optional< sal_Int16 > oStartNumbering;
618 if ( nMasterNum == 1 )
648 OUString aLayoutName(
SdResId( STR_LAYOUT_DEFAULT_NAME ) );
649 if ( nMasterNum > 2 )
653 aLayoutName =
SdResId( STR_LAYOUT_DEFAULT_TITLE_NAME ) +
654 OUString::number(
static_cast<sal_Int32
>( ( nMasterNum + 1 ) / 2 - 1 ) );
660 pPage->SetName( aLayoutName );
662 pPage->SetLayoutName( aLayoutName );
667 TSS_Type nTitleInstance = TSS_Type::PageTitle;
668 TSS_Type nOutlinerInstance = TSS_Type::Body;
670 bool bSwapStyleSheet = pSlideLayout->
eLayout == PptSlideLayout::TITLEMASTERSLIDE;
671 if ( bSwapStyleSheet )
673 nTitleInstance = TSS_Type::Title;
674 nOutlinerInstance = TSS_Type::Subtitle;
693 for ( nLevel = 0; nLevel < 9; nLevel++ )
695 OUString
aName = pPage->GetLayoutName() +
696 " " + OUString::number( nLevel + 1 );
698 DBG_ASSERT( pOutlineSheet,
"Template for outline object not found" );
709 pParagraphs[ nLevel ] =
nullptr;
711 for ( nLevel = 0; nLevel < 9;
delete pParagraphs[ nLevel++ ] ) ;
745 if (pMPage ==
nullptr)
764 pNotesClone->SetPresentationLayout( aLayoutName,
false,
false );
765 pNotesClone->SetLayoutName( aLayoutName );
771 while( (
pE->aSlideAtom.nFlags & 4 ) &&
pE->aSlideAtom.nMasterId )
773 auto nOrigMasterId =
pE->aSlideAtom.nMasterId;
778 pE = &(*pList)[ nNextMaster ];
779 if (
pE->aSlideAtom.nMasterId == nOrigMasterId)
781 SAL_WARN(
"filter.ms",
"loop in atom chain");
789 bool bNewAnimationsUsed =
false;
817 sal_uInt32 nObjCount = 0;
857 switch( aProgTagContentHd.
nRecType )
861 css::uno::Reference< css::drawing::XDrawPage > xPage( pMPage->
getUnoPage(), css::uno::UNO_QUERY );
863 bNewAnimationsUsed = aImporter.
import( xPage, aProgTagContentHd ) > 0;
877 SAL_WARN(
"filter.ms",
"Could not seek to end of record");
886 pObj = pMPage->
GetObj( 0 );
887 if ( pObj && pObj->GetObjIdentifier() == SdrObjKind::Rectangle )
919 xStbMgr->SetState( nImportedPages++ );
935 for ( sal_uInt16 nPage = 0; nPage < nPageCnt; nPage++ )
946 if ( pPageList && nMasterNum < pPageList->
size() )
947 pMasterPersist = &(*pPageList)[ nMasterNum ];
959 bool bNewAnimationsUsed =
false;
979 switch( aProgTagContentHd.
nRecType )
983 css::uno::Reference< css::drawing::XDrawPage > xPage( pPage->getUnoPage(), css::uno::UNO_QUERY );
985 bNewAnimationsUsed = aImporter.
import( xPage, aProgTagContentHd ) > 0;
1022 sal_uInt16 nNotesPageIndex =
m_pNotePages->FindPage( nNotesPageId );
1024 nNotesPageIndex = 0;
1031 if ( pPageList && nNotesMasterNum < pPageList->
size() )
1032 pMasterPersist2 = &(*pPageList)[ nNotesMasterNum ];
1033 pNotesPage->SetLayoutName(
static_cast<SdPage&
>(pNotesPage->TRG_GetMasterPage()).
GetLayoutName() );
1038 ImportPage( pNotesPage.get(), pMasterPersist2 );
1054 xStbMgr->SetState( nImportedPages++ );
1066 SdPage* pFoundMaster =
nullptr;
1067 for ( nMaster = 1; nMaster < nMasterCount; nMaster++ )
1073 if ( !pFoundMaster )
1074 pFoundMaster = pMaster;
1076 pFoundMaster = pMaster;
1083 pPage->TRG_SetMasterPage( *pFoundMaster );
1110 switch ( pSlideLayout->
eLayout )
1112 case PptSlideLayout::TITLEANDBODYSLIDE :
1118 case PptPlaceholder::BODY :
1121 case PptPlaceholder::TABLE :
1124 case PptPlaceholder::ORGANISZATIONCHART :
1127 case PptPlaceholder::GRAPH :
1130 case PptPlaceholder::OBJECT :
1133 case PptPlaceholder::VERTICALTEXTBODY :
1141 case PptSlideLayout::TWOCOLUMNSANDTITLE :
1146 if ( nID1 == PptPlaceholder::BODY && nID2 == PptPlaceholder::GRAPH )
1148 else if ( nID1 == PptPlaceholder::GRAPH && nID2 == PptPlaceholder::BODY )
1150 else if ( nID1 == PptPlaceholder::BODY && nID2 == PptPlaceholder::CLIPART )
1152 else if ( nID1 == PptPlaceholder::CLIPART && nID2 == PptPlaceholder::BODY )
1154 else if ( nID1 == PptPlaceholder::CLIPART && nID2 == PptPlaceholder::VERTICALTEXTBODY )
1156 else if ( ( nID1 == PptPlaceholder::BODY )
1157 && ( ( nID2 == PptPlaceholder::OBJECT ) || ( nID2 == PptPlaceholder::MEDIACLIP ) ) )
1159 else if ( ( nID2 == PptPlaceholder::BODY )
1160 && ( ( nID1 == PptPlaceholder::OBJECT ) || ( nID1 == PptPlaceholder::MEDIACLIP ) ) )
1162 else if ( ( nID1 == PptPlaceholder::OBJECT ) && ( nID2 == PptPlaceholder::OBJECT ) )
1167 case PptSlideLayout::TWOROWSANDTITLE :
1172 if ( nID1 == PptPlaceholder::BODY && nID2 == PptPlaceholder::OBJECT )
1174 else if ( nID1 == PptPlaceholder::OBJECT && nID2 == PptPlaceholder::BODY )
1179 case PptSlideLayout::TITLESLIDE :
1182 case PptSlideLayout::ONLYTITLE :
1185 case PptSlideLayout::RIGHTCOLUMN2ROWS :
1188 case PptSlideLayout::LEFTCOLUMN2ROWS :
1191 case PptSlideLayout::TOPROW2COLUMN :
1194 case PptSlideLayout::FOUROBJECTS :
1197 case PptSlideLayout::BIGOBJECT :
1200 case PptSlideLayout::TITLERIGHTBODYLEFT :
1203 case PptSlideLayout::TITLERIGHT2BODIESLEFT :
1207 case PptSlideLayout::BOTTOMROW2COLUMNS :
1208 case PptSlideLayout::BLANKSLIDE :
1209 case PptSlideLayout::MASTERSLIDE :
1210 case PptSlideLayout::TITLEMASTERSLIDE :
1211 case PptSlideLayout::MASTERNOTES :
1212 case PptSlideLayout::NOTESTITLEBODY :
1213 case PptSlideLayout::HANDOUTLAYOUT :
1234 if ( !
aName.isEmpty() )
1249 pFrameView = new ::sd::FrameView(
mpDoc );
1250 rViews.push_back( std::unique_ptr<sd::FrameView>(pFrameView) );
1252 sal_uInt16 nSelectedPage = 0;
1258 case PptViewTypeEnum::Outline:
1261 case PptViewTypeEnum::SlideSorter:
1264 case PptViewTypeEnum::TitleMaster:
1267 case PptViewTypeEnum::SlideMaster:
1273 case PptViewTypeEnum::NotesMaster:
1276 case PptViewTypeEnum::Notes:
1279 case PptViewTypeEnum::Handout:
1283 case PptViewTypeEnum::Slide:
1309 sal_uInt32 nBCount = aContent.
nRecLen;
1310 if (nBCount > nRemainingSize)
1312 SAL_WARN(
"filter.ms",
"page number data len longer than remaining stream size");
1313 nBCount = nRemainingSize;
1315 sal_uInt32 nSCount = nBCount >> 2;
1317 if ( pPageList && nSCount )
1322 std::unique_ptr<SdCustomShow> pSdCustomShow(
new SdCustomShow);
1323 pSdCustomShow->SetName( aCuShow );
1324 sal_uInt32 nFound = 0;
1325 for ( sal_uInt32 nS = 0; nS < nSCount; nS++ )
1327 sal_uInt32 nPageNumber;
1329 sal_uInt16 nPage = pPageList->
FindPage( nPageNumber );
1335 pSdCustomShow->PagesVector().push_back( pPage );
1341 pList->
push_back( std::move(pSdCustomShow) );
1350 OUStringBuffer aCustomShow;
1351 sal_uInt32 nFlags = 1;
1352 sal_uInt16 nStartSlide = 0;
1358 sal_uInt32 nPenColor = 0x1000000;
1359 sal_Int32 nRestartTime = 0x7fffffff;
1360 sal_Int16 nEndSlide = 0;
1367 for ( sal_uInt32 i2 = 0; i2 < 32; i2++ )
1371 aCustomShow.append( nChar );
1381 if ( !aCustomShow.isEmpty() )
1387 OUString aCustomShowStr = aCustomShow.makeStringAndClear();
1388 for( pPtr = pList->
First(); pPtr; pPtr = pList->
Next() )
1390 if ( pPtr->
GetName() == aCustomShowStr )
1399 rPresSettings.
mbManual = ( nFlags & 1 ) == 0;
1401 rPresSettings.
mbAll = ( nFlags & 4 ) == 0;
1403 rPresSettings.
mbEndless = ( nFlags & 0x80 ) != 0;
1406 if ( nStartSlide && ( nStartSlide <=
GetPageCount() ) )
1417 uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
1419 uno::Reference<document::XDocumentProperties> xDocProps
1420 = xDPS->getDocumentProperties();
1422 xDocProps->setTemplateName(OUString());
1440 for (
i = 0;
i < 4;
i++ )
1483 rHeaderFooterSettings.
maHeaderText = aPlaceHolderString;
1489 rHeaderFooterSettings.
maFooterText = aPlaceHolderString;
1505struct Ppt97AnimationStlSortHelper
1507 bool operator()(
const std::pair< SdrObject*, Ppt97AnimationPtr >& p1,
const std::pair< SdrObject*, Ppt97AnimationPtr >& p2 );
1512bool Ppt97AnimationStlSortHelper::operator()(
const std::pair< SdrObject*, Ppt97AnimationPtr >& p1,
const std::pair< SdrObject*, Ppt97AnimationPtr >& p2 )
1514 if( !p1.second || !p2.second )
1515 return p1.second.get() < p2.second.get();
1516 if( *p1.second < *p2.second )
1518 if( *p1.second > *p2.second )
1520 return p1.first->GetOrdNum() < p2.first->GetOrdNum();
1552 bool bSSSlideInfoAtom =
false;
1563 bSSSlideInfoAtom =
true;
1566 if ( pActualSlidePersist )
1571 sal_Int8 nDirection, nTransitionType, nByteDummy, nSpeed;
1572 sal_Int16 nBuildFlags;
1573 sal_Int32 nSlideTime, nSoundRef;
1582 switch ( nTransitionType )
1586 if ( nDirection == 0 )
1587 pPage->
SetFadeEffect( css::presentation::FadeEffect_VERTICAL_STRIPES );
1588 else if ( nDirection == 1 )
1589 pPage->
SetFadeEffect( css::presentation::FadeEffect_HORIZONTAL_STRIPES );
1594 if ( nDirection == 0 )
1595 pPage->
SetFadeEffect( css::presentation::FadeEffect_HORIZONTAL_CHECKERBOARD );
1596 else if ( nDirection == 1 )
1597 pPage->
SetFadeEffect( css::presentation::FadeEffect_VERTICAL_CHECKERBOARD );
1602 if ( nDirection == 0 )
1603 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_RIGHT );
1604 else if ( nDirection == 1 )
1605 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_BOTTOM );
1606 else if ( nDirection == 2 )
1607 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_LEFT );
1608 else if ( nDirection == 3 )
1609 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_TOP );
1610 else if ( nDirection == 4 )
1611 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_LOWERRIGHT );
1612 else if ( nDirection == 5 )
1613 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_LOWERLEFT );
1614 else if ( nDirection == 6 )
1615 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_UPPERRIGHT );
1616 else if ( nDirection == 7 )
1617 pPage->
SetFadeEffect( css::presentation::FadeEffect_MOVE_FROM_UPPERLEFT );
1624 if ( nDirection == 0 )
1626 else if ( nDirection == 1 )
1638 pPage->
SetFadeEffect(css::presentation::FadeEffect_DISSOLVE);
1642 if ( nDirection == 0 )
1643 pPage->
SetFadeEffect( css::presentation::FadeEffect_HORIZONTAL_LINES );
1644 else if ( nDirection == 1 )
1645 pPage->
SetFadeEffect( css::presentation::FadeEffect_VERTICAL_LINES );
1650 if ( nDirection == 0 )
1651 pPage->
SetFadeEffect( css::presentation::FadeEffect_OPEN_VERTICAL );
1652 else if ( nDirection == 1 )
1653 pPage->
SetFadeEffect( css::presentation::FadeEffect_CLOSE_VERTICAL );
1654 else if ( nDirection == 2 )
1655 pPage->
SetFadeEffect( css::presentation::FadeEffect_OPEN_HORIZONTAL );
1656 else if ( nDirection == 3 )
1657 pPage->
SetFadeEffect( css::presentation::FadeEffect_CLOSE_HORIZONTAL );
1662 if ( nDirection == 4 )
1663 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_LOWERRIGHT );
1664 else if ( nDirection == 5 )
1665 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_LOWERLEFT );
1666 else if ( nDirection == 6 )
1667 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_UPPERRIGHT );
1668 else if ( nDirection == 7 )
1669 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_UPPERLEFT );
1674 if ( nDirection == 0 )
1675 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_LEFT );
1676 else if ( nDirection == 1 )
1677 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_TOP );
1678 else if ( nDirection == 2 )
1679 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_RIGHT );
1680 else if ( nDirection == 3 )
1681 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_BOTTOM );
1682 else if ( nDirection == 4 )
1683 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_UPPERLEFT );
1684 else if ( nDirection == 5 )
1685 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT );
1686 else if ( nDirection == 6 )
1687 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_LOWERLEFT );
1688 else if ( nDirection == 7 )
1689 pPage->
SetFadeEffect( css::presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT );
1694 if ( nDirection == 0 )
1695 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_RIGHT );
1696 else if ( nDirection == 1 )
1697 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_BOTTOM );
1698 else if ( nDirection == 2 )
1699 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_LEFT );
1700 else if ( nDirection == 3 )
1701 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_TOP );
1705 pPage->
SetFadeEffect( css::presentation::FadeEffect_RANDOM );
1716 if ( nDirection == 0 )
1717 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_FROM_CENTER );
1718 else if ( nDirection == 1 )
1719 pPage->
SetFadeEffect( css::presentation::FadeEffect_FADE_TO_CENTER );
1750 switch( nDirection )
1753 case 1 : nSubType = animations::TransitionSubType::ONEBLADE;
break;
1754 case 2 : nSubType = animations::TransitionSubType::TWOBLADEVERTICAL;
break;
1755 case 3 : nSubType = animations::TransitionSubType::THREEBLADE;
break;
1756 case 4 : nSubType = animations::TransitionSubType::FOURBLADE;
break;
1757 case 8 : nSubType = animations::TransitionSubType::EIGHTBLADE;
break;
1766 switch( nDirection )
1769 case 0 : nSubType = animations::TransitionSubType::FROMRIGHT;
break;
1770 case 1 : nSubType = animations::TransitionSubType::FROMBOTTOM;
break;
1771 case 2 : nSubType = animations::TransitionSubType::FROMLEFT;
break;
1772 case 3 : nSubType = animations::TransitionSubType::FROMTOP;
break;
1780 pPage->
setTransitionSubtype( nDirection ? animations::TransitionSubType::COMBVERTICAL : animations::TransitionSubType::COMBHORIZONTAL );
1799 else if ( nSpeed == 1 )
1801 else if ( nSpeed == 2 )
1804 if ( nBuildFlags & 0x400 )
1807 pPage->
SetTime( nSlideTime / 1000.0 );
1812 if ( nBuildFlags & 4 )
1814 if ( nBuildFlags & 16 )
1817 OUString aSoundFile(
ReadSound( nSoundRef ) );
1820 if ( nBuildFlags & ( 1 << 6 ) )
1822 if ( nBuildFlags & ( 1 << 8 ) )
1831 if ( bTryTwice && !bSSSlideInfoAtom )
1838 if ( pPageList && ( nMasterNum < pPageList->
size() ) )
1840 assert( !pPageList->
is_null( nMasterNum ) );
1846 nPageRecEnd = nOfs + 16;
1858 if ( !bNewAnimationsUsed )
1860 std::vector< std::pair< SdrObject*, Ppt97AnimationPtr > > aAnimationsOnThisPage;
1864 while ( aSdrIter.
IsMore() )
1867 tAnimationMap::iterator aFound =
maAnimations.find( pObj );
1870 std::pair< SdrObject*, Ppt97AnimationPtr > aPair( (*aFound).first, (*aFound).second );
1871 aAnimationsOnThisPage.push_back( aPair );
1875 std::sort( aAnimationsOnThisPage.begin(), aAnimationsOnThisPage.end(), Ppt97AnimationStlSortHelper() );
1877 for(
auto& rEntry : aAnimationsOnThisPage )
1880 if( pPpt97Animation )
1881 pPpt97Animation->createAndSetCustomAnimationEffect( rEntry.first );
1904 bool bRefStrValid =
false;
1915 bRefStrValid =
true;
1919 if ( std::u16string_view(OUString::number(nSoundRef)) == aRefStr )
1933 bool bSoundExists =
false;
1934 ::std::vector< OUString > aSoundList;
1939 for(
size_t n = 0; (
n < aSoundList.size() ) && !bSoundExists; ++
n )
1943 if (
aURL.GetLastName() == aRetval)
1945 aRetval = aSoundList[
n ];
1946 bSoundExists =
true;
1952 if ( !bSoundExists )
1958 OUString aGalleryDir;
1960 osl_getTempDirURL(&aGalleryDir.pData);
1965 INetURLObject aGalleryUserSound( aGalleryDir.subView(aGalleryDir.lastIndexOf(
';')+1) );
1967 aGalleryUserSound.
Append( aRetval );
1969 sal_uInt32 nSoundDataLen = aSoundDataRecHd.
nRecLen;
1970 if (nSoundDataLen > nRemainingSize)
1972 SAL_WARN(
"filter.ms",
"sound data len longer than remaining stream size");
1973 nSoundDataLen = nRemainingSize;
1975 std::vector<sal_uInt8>
aBuf(nSoundDataLen);
1982 pOStm->WriteBytes(
aBuf.data(), nSoundDataLen);
2014 while ( (
rStCtrl.
Tell() < nEndRecPos ) && aRetVal.isEmpty() )
2031 if (
nRef == nMediaRef )
2047 if( osl::FileBase::getFileURLFromSystemPath(
aStr, aRetVal )
2048 == osl::FileBase::E_None )
2082 pInfo->
meClickAction = css::presentation::ClickAction_SOUND;
2090 pInfo->
meClickAction = css::presentation::ClickAction_PROGRAM;
2096 switch( rIAtom.
nJump )
2099 pInfo->
meClickAction = css::presentation::ClickAction_NEXTPAGE;
2102 pInfo->
meClickAction = css::presentation::ClickAction_PREVPAGE;
2105 pInfo->
meClickAction = css::presentation::ClickAction_FIRSTPAGE;
2108 pInfo->
meClickAction = css::presentation::ClickAction_LASTPAGE;
2111 pInfo->
meClickAction = css::presentation::ClickAction_PREVPAGE;
2114 pInfo->
meClickAction = css::presentation::ClickAction_STOPPRESENTATION;
2138 if ( !pPtr->
aTarget.isEmpty() )
2147 if( INetProtocol::NotValid ==
aURL.GetProtocol()
2148 && (osl::FileBase::getFileURLFromSystemPath(
2150 != osl::FileBase::E_None) )
2151 aBookmarkURL.clear();
2152 if( aBookmarkURL.isEmpty() )
2155 pInfo->
meClickAction = css::presentation::ClickAction_PROGRAM;
2168 pInfo->
meClickAction = css::presentation::ClickAction_BOOKMARK;
2193 ppStyleSheetAry =
nullptr;
2197 OUString aPresentationText;
2200 switch( pPlaceHolder->nPlaceholderId )
2202 case PptPlaceholder::MASTERNOTESSLIDEIMAGE :
2203 case PptPlaceholder::MASTERCENTEREDTITLE :
2204 case PptPlaceholder::MASTERTITLE :
2210 case PptPlaceholder::MASTERBODY :
2216 case PptPlaceholder::MASTERSUBTITLE :
2222 case PptPlaceholder::MASTERNOTESBODYIMAGE :
2237 case TSS_Type::PageTitle :
2238 case TSS_Type::Title :
2243 DBG_ASSERT( pSheet,
"ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for titleobject (SJ)" );
2246 case TSS_Type::Subtitle :
2251 DBG_ASSERT( pSheet,
"ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for subtitleobject (SJ)" );
2254 case TSS_Type::Body :
2255 case TSS_Type::HalfBody :
2256 case TSS_Type::QuarterBody :
2258 for ( sal_uInt16 nLevel = 9; nLevel; nLevel-- )
2263 pText->StartListening( *pSheet );
2264 pStyleSheetAry[ nLevel - 1 ] = pSheet;
2266 DBG_ASSERT( pSheet,
"ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for outlinerobject (SJ)" );
2269 ppStyleSheetAry = &pStyleSheetAry[ 0 ];
2272 case TSS_Type::Notes :
2274 if ( pPlaceHolder && ( ( pPlaceHolder->nPlaceholderId == PptPlaceholder::NOTESSLIDEIMAGE )
2275 || ( pPlaceHolder->nPlaceholderId == PptPlaceholder::MASTERNOTESSLIDEIMAGE ) ) )
2280 DBG_ASSERT( pSheet,
"ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for titleobject (SJ)" );
2285 DBG_ASSERT( pSheet,
"ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for notesobj (SJ)" );
2291 case TSS_Type::Unused :
2292 case TSS_Type::TextInShape :
2312 if ( pPlaceHolder && pPlaceHolder->nPlaceholderId != PptPlaceholder::NONE )
2316 bool bCreatePlaceHolder = ( pTextObj->
GetInstance() != TSS_Type::Unused );
2319 if ( bCreatePlaceHolder && ( pTextObj->
GetInstance() == TSS_Type::TextInShape ) )
2320 bCreatePlaceHolder = bIsHeaderFooter;
2321 if ( bCreatePlaceHolder )
2323 if ( !bIsHeaderFooter )
2333 if ( !aPresentationText.isEmpty() )
2334 pPage->
SetObjText( pText, pOutl, ePresKind, aPresentationText );
2358 aTempAttr.
Put( aMinHeight );
2360 aTempAttr.
Put( aAutoGrowHeight );
2373 sal_uInt32 nPlacementId = pPlaceHolder->nPlacementId;
2376 bool bEmptyPresObj =
true;
2377 bool bVertical =
false;
2383 switch ( nPlaceholderId )
2386 case PptPlaceholder::VERTICALTEXTTITLE :
2390 case PptPlaceholder::VERTICALTEXTBODY :
2399 if ( pTextObj->
Count() == 0 )
2401 switch ( nPlaceholderId )
2403 case PptPlaceholder::MEDIACLIP :
2417 if ( !pTextObj->
Count() &&
dynamic_cast< const SdrGrafObj *
>( pObj ) !=
nullptr )
2419 bEmptyPresObj =
false;
2420 switch ( nPlaceholderId )
2422 case PptPlaceholder::MEDIACLIP :
2434 if ( !bEmptyPresObj )
2448 if ( pTextObj->
Count() == 1 )
2475 aOutlineSize = aOutlineRect.
GetSize();
2480 switch ( nPlacementId )
2484 if ( aLogicRect != aTitleRect )
2491 if ( pSlideLayout->
eLayout == PptSlideLayout::TITLEANDBODYSLIDE )
2493 if ( aLogicRect != aOutlineRect )
2496 else if ( pSlideLayout->
eLayout == PptSlideLayout::TWOCOLUMNSANDTITLE )
2501 aOutlineSize.
Width() == 0 ||
2502 static_cast<double>(aLogicSize.
Width()) / aOutlineSize.
Width() < 0.48 ||
2503 static_cast<double>(aLogicSize.
Width()) / aOutlineSize.
Width() > 0.5)
2508 else if ( pSlideLayout->
eLayout == PptSlideLayout::TWOROWSANDTITLE )
2527 if ( pSlideLayout->
eLayout == PptSlideLayout::TWOCOLUMNSANDTITLE )
2532 aOutlineSize.
Width() == 0 ||
2533 static_cast<double>(aLogicSize.
Width()) / aOutlineSize.
Width() < 0.48 ||
2534 static_cast<double>(aLogicSize.
Width()) / aOutlineSize.
Width() > 0.5)
2539 else if ( pSlideLayout->
eLayout == PptSlideLayout::TWOROWSANDTITLE )
2580 else if ( !pTextObj->
Count() )
2596 if (
dynamic_cast<const SdrPageObj*
>(pObj.get()))
2608 bool bInhabitanceChecked =
false;
2609 bool bAnimationInfoFound =
false;
2630 if( pAnimation->HasEffect() )
2633 pAnimation->SetDimColor(
MSO_CLR_ToColor(pAnimation->GetDimColor()) );
2635 if( pAnimation->HasSoundEffect() )
2636 pAnimation->SetSoundFileUrl(
ReadSound( pAnimation->GetSoundRef() ) );
2638 bool bDontAnimateInvisibleShape =
false;
2642 if( pTextObj && pTextObj->
HasText() &&
2643 dynamic_cast< SdrObjGroup *
>( pObj.get() ) ==
nullptr &&
2644 pAnimation->HasAnimateAssociatedShape() )
2646 const SfxItemSet& rObjItemSet = pObj->GetMergedItemSet();
2651 if ( ( eFillStyle == drawing::FillStyle_NONE ) && ( eLineStyle == drawing::LineStyle_NONE ) )
2652 bDontAnimateInvisibleShape =
true;
2655 if( bDontAnimateInvisibleShape )
2656 pAnimation->SetAnimateAssociatedShape(
false);
2663 bAnimationInfoFound =
true;
2670 sal_uInt32 nOldFilePos2 = rSt.
Tell();
2671 OUString aMacroName;
2676 rSt.
Seek( nOldFilePos2 );
2687 if ( aInteractiveInfoAtom.
nAction == 6 )
2696 if ( aMediaURL.isEmpty() )
2698 if ( !aMediaURL.isEmpty() )
2701 pObj->getSdrModelFromSdrObject(),
2702 pObj->GetSnapRect());
2703 pMediaObj->SetMergedItemSet( pObj->GetMergedItemSet() );
2708 tAnimationMap::iterator aFound =
maAnimations.find( pObj.get() );
2711 pAnimation = (*aFound).second;
2718 pMediaObj->setURL( aMediaURL,
"" );
2732 if ( bInhabitanceChecked || bAnimationInfoFound )
2734 bInhabitanceChecked =
true;
2741 rHdClientData = aMasterShapeHd;
2751 uno::Reference< frame::XModel >
xModel;
2765 std::unique_ptr<SdPPTImport> pImport(
new SdPPTImport( pDocument, rDocStream, rStorage, rMedium ));
2766 return pImport->Import();
2775 if (xStorage->GetError())
2779 if ( !xDocStream.
is() )
2784 SfxMedium aSrcMed(
"", StreamMode::STD_READ);
2786 xDocStream->SetVersion(xStorage->GetVersion());
2787 xDocStream->SetCryptMaskKey(xStorage->GetKey());
2794 bRet =
ImportPPT(pDoc, *xDocStream, *xStorage, aSrcMed);
2800 xDocShRef->DoClose();
AUTOLAYOUT_TITLE_2CONTENT_OVER_CONTENT
AUTOLAYOUT_TITLE_CONTENT_OVER_CONTENT
AUTOLAYOUT_VTITLE_VCONTENT_OVER_VCONTENT
AUTOLAYOUT_VTITLE_VCONTENT
AUTOLAYOUT_TITLE_2CONTENT
AUTOLAYOUT_TITLE_2CONTENT_CONTENT
AUTOLAYOUT_TITLE_CONTENT_2CONTENT
AUTOLAYOUT_TITLE_VCONTENT
AUTOLAYOUT_TITLE_4CONTENT
sal_uInt32 GetPropertyValue(sal_uInt32 nId, sal_uInt32 nDefault) const
bool IsProperty(sal_uInt32 nRecType) const
static sal_uLong SanitizeEndPos(SvStream &rIn, sal_uLong nEndRecPos)
void ApplyAttributes(SvStream &rIn, SfxItemSet &rSet) const
DffRecordHeader * GetRecordHeader(sal_uInt16 nRecType, DffSeekToContentMode eMode=SEEK_FROM_BEGINNING)
DffRecordHeader * Current()
bool SeekToContent(SvStream &rIn, sal_uInt16 nRecType, DffSeekToContentMode eMode=SEEK_FROM_BEGINNING)
static bool FillObjList(std::u16string_view rThemeName, std::vector< OUString > &rObjList)
static bool InsertURL(std::u16string_view rThemeName, std::u16string_view rURL)
OUString GetMainURL(DecodeMechanism eMechanism, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
bool Append(std::u16string_view rTheSegment, EncodeMechanism eMechanism=EncodeMechanism::WasEncoded, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8)
virtual rtl::Reference< SdrObject > ProcessObj(SvStream &rSt, DffObjData &rData, SvxMSDffClientData &rClientData, ::tools::Rectangle &rTextRect, SdrObject *pObj) override
OUString ReadSound(sal_uInt32 nSoundRef) const
OUString ReadMedia(sal_uInt32 nMediaRef) const
virtual ~ImplSdPPTImport() override
virtual bool ReadFormControl(tools::SvRef< SotStorage > &rSrc1, css::uno::Reference< css::form::XFormComponent > &rFormComp) const override
tools::SvRef< SotStorageStream > mxPicturesStream
tAnimationMap maAnimations
virtual SdrObject * ApplyTextObj(PPTTextObj *pTextObj, SdrTextObj *pText, SdPageCapsule pPage, SfxStyleSheet *, SfxStyleSheet **) const override
void ImportPageEffect(SdPage *pPage, const bool bNewAnimationsUsed)
SdrLayerID mnBackgroundObjectsLayerID
void SetHeaderFooterPageSettings(SdPage *pPage, const PptSlidePersistEntry *pMasterPersist)
std::vector< OUString > maSlideNameList
void FillSdAnimationInfo(SdAnimationInfo *pInfo, const PptInteractiveInfoAtom &rIAtom, const OUString &rMacroName)
sal_uInt32 mnFilterOptions
void AppendPortion(PPTPortionObj &rPortion)
void ApplyTo(SfxItemSet &rSet, std::optional< sal_Int16 > &rStartNumbering, SdrPowerPointImport const &rManager, TSS_Type nInstanceInSheet)
void ApplyTo(SfxItemSet &rSet, SdrPowerPointImport &rManager, TSS_Type nInstanceInSheet)
PPTParagraphObj * First()
MSO_SPT GetShapeType() const
const std::optional< PptOEPlaceholderAtom > & GetOEPlaceHolderAtom() const
TSS_Type GetInstance() const
TSS_Type GetDestinationInstance() const
bool is_null(size_t nIdx) const
sal_uInt16 FindPage(sal_uInt32 nId) const
bool Read(OUString &rString, sal_uInt32 nType=VT_EMPTY, bool bDwordAlign=true)
void SetBookmark(const OUString &rBookmark)
css::presentation::ClickAction meClickAction
Action at mouse click.
OUString GetBookmark() const
void push_back(std::unique_ptr< SdCustomShow > p)
const OUString & GetName() const
SAL_DLLPRIVATE std::vector< std::unique_ptr< sd::FrameView > > & GetFrameViewList()
static SdAnimationInfo * GetShapeUserData(SdrObject &rObject, bool bCreate=false)
SAL_DLLPRIVATE const sd::PresentationSettings & getPresentationSettings() const
SAL_DLLPRIVATE SfxItemPool & GetPool()
SAL_DLLPRIVATE void SetSummationOfParagraphs(bool bOn=true)
bool CreateMissingNotesAndHandoutPages()
SdPage * GetSdPage(sal_uInt16 nPgNum, PageKind ePgKind) const
OUString CreatePageNumValue(sal_uInt16 nNum) const
SdCustomShowList * GetCustomShowList(bool bCreate=false)
SdStyleSheetPool * GetSdStyleSheetPool() const
Get the style sheet pool if it was a SdStyleSheetPool.
SdPage * GetMasterSdPage(sal_uInt16 nPgNum, PageKind ePgKind)
SAL_DLLPRIVATE::sd::FrameView * GetFrameView(sal_uLong nPos)
SAL_DLLPRIVATE::sd::DrawDocShell * GetDocSh() const
sal_uInt16 GetSdPageCount(PageKind ePgKind) const
SdPPTImport(SdDrawDocument *pDoc, SvStream &rDocStream, SotStorage &rStorage, SfxMedium &rMed)
PowerPointImportParam maParam
std::unique_ptr< ImplSdPPTImport > pFilter
void setTransitionFadeColor(sal_Int32 nTransitionFadeColor)
SdrObject * CreatePresObj(PresObjKind eObjKind, bool bVertical, const ::tools::Rectangle &rRect)
creates a presentation object with the given PresObjKind on this page.
virtual rtl::Reference< SdrObject > RemoveObject(size_t nObjNum) override
PageKind GetPageKind() const
SfxStyleSheet * GetStyleSheetForMasterPageBackground() const
void SetObjText(SdrTextObj *pObj, SdrOutliner *pOutliner, PresObjKind eObjKind, std::u16string_view rStr)
void SetTime(double fNewTime)
void SetExcluded(bool bNewExcluded)
OUString GetPresObjText(PresObjKind eObjKind) const
const sd::HeaderFooterSettings & getHeaderFooterSettings() const
SfxStyleSheet * GetStyleSheetForPresObj(PresObjKind eObjKind) const
void SetFadeEffect(css::presentation::FadeEffect eNewEffect)
void SetLoopSound(bool bLoopSound)
void setTransitionSubtype(sal_Int16 nTransitionSubtype)
void SetAutoLayout(AutoLayout eLayout, bool bInit=false, bool bCreate=false)
void SetPresChange(PresChange eChange)
void InsertPresObj(SdrObject *pObj, PresObjKind eKind)
inserts the given SdrObject into the presentation object list
virtual OUString GetLayoutName() const override
const OUString & GetName() const
void SetSoundFile(const OUString &rStr)
void SetStopSound(bool bStopSound)
virtual void NbcInsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE) override
void setHeaderFooterSettings(const sd::HeaderFooterSettings &rNewSettings)
void setTransitionType(sal_Int16 nTransitionType)
void SetName(const OUString &rName)
Set the name of the page and broadcast a model change.
void SetSound(bool bNewSoundOn)
void setTransitionDuration(double fTransitionDuration)
virtual rtl::Reference< SdrPage > CloneSdrPage(SdrModel &rTargetModel) const override
virtual rtl::Reference< SdrObject > ProcessObj(SvStream &rSt, DffObjData &rData, SvxMSDffClientData &rClientData, tools::Rectangle &rTextRect, SdrObject *pObj) override
friend friend class ImplSdPPTImport
bool ReadString(OUString &rStr) const
DffRecordManager aDocRecManager
SdrLayerID GetLayerID(const OUString &rName) const
virtual void InsertPage(SdrPage *pPage, sal_uInt16 nPos=0xFFFF)
const SdrPage * GetMasterPage(sal_uInt16 nPgNum) const
void DeleteMasterPage(sal_uInt16 nPgNum)
SdrOutliner & GetDrawOutliner(const SdrTextObj *pObj=nullptr) const
sal_uInt16 GetMasterPageCount() const
const SfxItemPool & GetItemPool() const
void EnableUndo(bool bEnable)
SfxStyleSheetBasePool * GetStyleSheetPool() const
virtual void InsertMasterPage(SdrPage *pPage, sal_uInt16 nPos=0xFFFF)
bool IsUndoEnabled() const
const SdrPage * GetPage(sal_uInt16 nPgNum) const
const SdrLayerAdmin & GetLayerAdmin() const
SdrObject * GetObj(size_t nNum) const
const SfxPoolItem & GetMergedItem(const sal_uInt16 nWhich) const
void SetUserCall(SdrObjUserCall *pUser)
void SetEmptyPresObj(bool bEpt)
void SetMergedItemSet(const SfxItemSet &rSet, bool bClearAllItems=false)
void NbcSetStyleSheet(SfxStyleSheet *pNewStyleSheet, bool bDontRemoveHardAttr)
virtual void SetLogicRect(const tools::Rectangle &rRect)
void SetNotVisibleAsMaster(bool bFlg)
const SfxItemSet & GetMergedItemSet() const
virtual const tools::Rectangle & GetLogicRect() const
void SetStyleSheet(SfxStyleSheet *pStyleSheet)
void PutItemSet(const SfxItemSet &rSet)
void ClearItem(const sal_uInt16 nWhich=0)
css::uno::Reference< css::uno::XInterface > const & getUnoPage()
SdrPage & TRG_GetMasterPage() const
void TRG_SetMasterPageVisibleLayers(const SdrLayerIDSet &rNew)
bool TRG_HasMasterPage() const
SdrPageProperties & getSdrPageProperties()
const SdrLayerIDSet & TRG_GetMasterPageVisibleLayers() const
std::unique_ptr< PptSlidePersistList > m_pSlidePages
sal_uInt16 GetMasterPageIndex(sal_uInt16 nPageNum, PptPageKind ePageKind=PPT_SLIDEPAGE) const
virtual SdrObject * ApplyTextObj(PPTTextObj *pTextObj, SdrTextObj *pText, SdPageCapsule pPage, SfxStyleSheet *, SfxStyleSheet **) const
void ApplyTextAnchorAttributes(PPTTextObj const &rTextObj, SfxItemSet &rSet) const
sal_uInt16 GetPageCount(PptPageKind eKind=PPT_SLIDEPAGE) const
sal_uInt16 m_nCurrentPageNum
::std::vector< SdHyperlinkEntry > m_aHyperList
rtl::Reference< SdrPage > MakeBlankPage(bool bMaster) const
const PPTStyleSheet * m_pPPTStyleSheet
bool SeekToCurrentPage(DffRecordHeader *pRecHd) const
void ImportPage(SdrPage *pPage, const PptSlidePersistEntry *pMasterPersist)
PptSlidePersistList * GetPageList(PptPageKind ePageKind) const
void SeekOle(SfxObjectShell *pShell, sal_uInt32 nFilterOptions)
virtual bool SeekToShape(SvStream &rSt, SvxMSDffClientData *pClientData, sal_uInt32 nId) const override
PptUserEditAtom m_aUserEditAtom
static bool SeekToContentOfProgTag(sal_Int32 nVersion, SvStream &rSt, const DffRecordHeader &rProgTagBinaryDataHd, DffRecordHeader &rContentHd)
virtual const PptSlideLayoutAtom * GetSlideLayoutAtom() const override
rtl::Reference< SdrObject > ImportPageBackgroundObject(const SdrPage &rPage, sal_uInt32 &nBgFileOffset)
static SdrOutliner * GetDrawOutliner(SdrTextObj const *pSdrText)
PptPageKind m_eCurrentPageKind
std::unique_ptr< PptSlidePersistList > m_pNotePages
void SetPageNum(sal_uInt16 nPageNum, PptPageKind=PPT_SLIDEPAGE)
bool SeekToDocument(DffRecordHeader *pRecHd) const
sal_uInt32 GetNotesPageId(sal_uInt16 nPageNum) const
std::unique_ptr< PptSlidePersistList > m_pMasterPages
bool HasMasterPage(sal_uInt16 nPageNum, PptPageKind ePageKind=PPT_SLIDEPAGE) const
virtual const tools::Rectangle & GetLogicRect() const override
virtual bool HasText() const override
void GetDictionary(PropDictionary &rDict)
bool GetProperty(sal_uInt32 nId, PropItem &rPropItem)
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
OUString GetBaseURL(bool bForSaving=false)
SfxItemSet & GetItemSet() const
virtual void SetVisArea(const tools::Rectangle &rVisArea)
SfxMedium * GetMedium() const
css::uno::Reference< css::frame::XModel3 > GetModel() const
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
virtual SfxItemSet & GetItemSet()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
tools::SvRef< SotStorageStream > OpenSotStream(const OUString &rEleName, StreamMode=StreamMode::STD_READWRITE)
SvStream & ReadInt16(sal_Int16 &rInt16)
SvStream & ReadUInt32(sal_uInt32 &rUInt32)
SvStream & ReadUtf16(sal_Unicode &rUtf16)
sal_uInt64 Seek(sal_uInt64 nPos)
SvStream & ReadInt32(sal_Int32 &rInt32)
std::size_t ReadBytes(void *pData, std::size_t nSize)
sal_uInt64 SeekRel(sal_Int64 nPos)
SvStream & ReadSChar(signed char &rChar)
SvStream & ReadUInt16(sal_uInt16 &rUInt16)
sal_uInt64 remainingSize()
bool IsMathType2Math() const
bool IsWinWord2Writer() const
static SvtFilterOptions & Get()
bool IsExcel2Calc() const
bool IsPowerPoint2Impress() const
bool IsLoadPPointBasicCode() const
const OUString & GetGalleryPath() const
DffRecordManager maShapeRecords
void InitSvxMSDffManager(sal_uInt32 nOffsDgg_, SvStream *pStData_, sal_uInt32 nSvxMSDffOLEConvFlags)
void Scale(sal_Int32 &rVal) const
void SetSvxMSDffSettings(sal_uInt32 nSettings)
Color MSO_CLR_ToColor(sal_uInt32 nColorCode, sal_uInt16 nContextProperty=DFF_Prop_lineColor) const
rtl::Reference< SdrObject > ImportObj(SvStream &rSt, SvxMSDffClientData &rData, tools::Rectangle &rClientRect, const tools::Rectangle &rGlobalChildRect, int nCalledByGroup, sal_Int32 *pShapeId)
static bool SeekToRec(SvStream &rSt, sal_uInt16 nRecId, sal_uLong nMaxFilePos, DffRecordHeader *pRecHd=nullptr, sal_uLong nSkipCount=0)
void SetModel(SdrModel *pModel, tools::Long nApplicationScale)
bool ReadOCXStorage(tools::SvRef< SotStorage > const &rSrc1, css::uno::Reference< css::form::XFormComponent > &rxFormComp)
int import(const css::uno::Reference< css::drawing::XDrawPage > &xPage, const DffRecordHeader &rProgTagContentHd)
void SetSelectedPage(sal_uInt16 nPage)
void SetPageKind(PageKind eKind)
void SetViewShEditMode(EditMode eMode)
Set EditMode (Page or MasterPage) of working mode.
static std::unique_ptr< SvStream > CreateStream(const OUString &rFileName, StreamMode eOpenMode, css::uno::Reference< css::awt::XWindow > xParentWin=nullptr)
#define DBG_ASSERT(sCon, aError)
virtual OUString GetName() const override
constexpr TypedWhichId< SvxAutoKernItem > EE_CHAR_PAIRKERNING(EE_CHAR_START+11)
#define GALLERY_THEME_USERSOUNDS
#define GALLERY_THEME_SOUNDS
constexpr OUStringLiteral SD_LT_SEPARATOR
#define SAL_WARN(area, stream)
#define SAL_N_ELEMENTS(arr)
if(aStr !=aBuf) UpdateName_Impl(m_xFollowLb.get()
#define DFF_msofbtClientData
#define DFF_msofbtDgContainer
#define DFF_msofbtDggContainer
#define DFF_msofbtSpContainer
#define DFF_Prop_hspMaster
#define DFF_msofbtSpgrContainer
#define SVXMSDFF_SETTINGS_IMPORT_PPT
SEEK_FROM_CURRENT_AND_RESTART
#define OLE_EXCEL_2_STARCALC
#define SVXMSDFF_SETTINGS_CROP_BITMAPS
#define OLE_MATHTYPE_2_STARMATH
#define OLE_WINWORD_2_STARWRITER
#define OLE_POWERPOINT_2_STARIMPRESS
SVL_DLLPUBLIC Link< OUString *, bool > const & GetMaybeFileHdl()
SVL_DLLPUBLIC OUString SmartRel2Abs(INetURLObject const &rTheBaseURIRef, OUString const &rTheRelURIRef, Link< OUString *, bool > const &rMaybeFileHdl=Link< OUString *, bool >(), bool bCheckFileExists=true, bool bIgnoreFragment=false, INetURLObject::EncodeMechanism eEncodeMechanism=INetURLObject::EncodeMechanism::WasEncoded, INetURLObject::DecodeMechanism eDecodeMechanism=INetURLObject::DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
bool isdigitAsciiString(std::string_view rString)
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
ErrCode LoadOlePropertySet(const uno::Reference< document::XDocumentProperties > &i_xDocProps, SotStorage *i_pStorage)
#define PPT_TRANSITION_TYPE_PLUS
#define PPT_TRANSITION_TYPE_CIRCLE
#define PPT_TRANSITION_TYPE_RANDOM
#define PPT_TRANSITION_TYPE_PULL
#define PPT_TRANSITION_TYPE_WIPE
#define PPT_TRANSITION_TYPE_PUSH
#define PPT_TRANSITION_TYPE_ZOOM
#define PPT_TRANSITION_TYPE_SPLIT
#define PPT_TRANSITION_TYPE_DIAMOND
#define PPT_TRANSITION_TYPE_COVER
#define DFF_msofbtAnimGroup
#define PPT_TRANSITION_TYPE_BLINDS
#define PPT_TRANSITION_TYPE_NEWSFLASH
#define PPT_TRANSITION_TYPE_SMOOTHFADE
#define PPT_TRANSITION_TYPE_DISSOLVE
#define PPT_TRANSITION_TYPE_WHEEL
#define PPT_TRANSITION_TYPE_WEDGE
#define PPT_TRANSITION_TYPE_COMB
#define PPT_TRANSITION_TYPE_RANDOM_BARS
#define PPT_TRANSITION_TYPE_STRIPS
#define PPT_TRANSITION_TYPE_FADE
#define PPT_TRANSITION_TYPE_NONE
#define PPT_TRANSITION_TYPE_CHECKER
SAL_DLLPUBLIC_EXPORT bool TestImportPPT(SvStream &rStream)
SAL_DLLPUBLIC_EXPORT bool ImportPPT(SdDrawDocument *pDocument, SvStream &rDocStream, SotStorage &rStorage, SfxMedium &rMedium)
std::shared_ptr< Ppt97Animation > Ppt97AnimationPtr
std::map< OUString, sal_uInt32 > PropDictionary
OUString SdResId(TranslateId aId)
SdrOnOffItem makeSdrTextAutoGrowHeightItem(bool bAuto)
SdrMetricItem makeSdrTextMinFrameHeightItem(tools::Long mnHeight)
#define STREAM_SEEK_TO_BEGIN
TOOLS_DLLPUBLIC bool checkSeek(SvStream &rSt, sal_uInt64 nOffset)
constexpr OUStringLiteral STR_LAYOUT_OUTLINE
static void GetDateTime(const sal_uInt32 nVal, SvxDateFormat &eDateFormat, SvxTimeFormat &eTimeFormat)
PptCurrentUserAtom aCurrentUserAtom
Size const & GetSlidesPageSize() const
Size const & GetNotesPageSize() const
bool bTitlePlaceholdersOmitted
sal_uInt32 nExHyperlinkId
PptSlideLayoutAtom aLayout
PptPlaceholder aPlaceholderId[8]
PptSlidePersistAtom aPersistAtom
std::unique_ptr< HeaderFooterEntry > xHeaderFooterEntry
PptViewTypeEnum eLastViewType
Reference< XModel > xModel
constexpr TypedWhichId< SdrMetricItem > SDRATTR_TEXT_LEFTDIST(SDRATTR_MISC_FIRST+4)
constexpr TypedWhichId< SdrTextHorzAdjustItem > SDRATTR_TEXT_HORZADJUST(SDRATTR_MISC_FIRST+13)
constexpr TypedWhichId< SdrTextVertAdjustItem > SDRATTR_TEXT_VERTADJUST(SDRATTR_MISC_FIRST+8)
constexpr TypedWhichId< SdrMetricItem > SDRATTR_TEXT_RIGHTDIST(SDRATTR_MISC_FIRST+5)
constexpr TypedWhichId< SdrMetricItem > SDRATTR_TEXT_LOWERDIST(SDRATTR_MISC_FIRST+7)
constexpr TypedWhichId< SdrMetricItem > SDRATTR_TEXT_UPPERDIST(SDRATTR_MISC_FIRST+6)
SvStream & ReadPptCurrentUserAtom(SvStream &rIn, PptCurrentUserAtom &rAtom)
bool ReadPptInteractiveInfoAtom(SvStream &rIn, PptInteractiveInfoAtom &rAtom)
#define PPT_PST_ExAviMovie
#define PPT_PST_PPDrawingGroup
#define PPT_PST_ExMCIMovie
#define PPT_PST_NamedShows
#define PPT_PST_ExHyperlinkAtom
#define PPT_PST_InteractiveInfo
#define PPT_PST_InteractiveInfoAtom
#define PPT_PST_ExObjList
#define PPT_PST_SlideTime10Atom
#define PPT_PST_SSDocInfoAtom
#define PPT_PST_PPDrawing
#define PPT_PST_SoundCollection
#define PPT_PST_HashCodeAtom
#define PPT_PST_ExObjRefAtom
#define PPT_PST_HeadersFooters
#define PPT_PST_SSSlideInfoAtom
#define PPT_PST_SoundData
#define PPT_PST_NamedShow
#define PPT_PST_AnimationInfo
#define PPT_PST_NamedShowSlides
#define PPT_PST_ExHyperlink
#define PPTSLIDEPERSIST_ENTRY_NOTFOUND
#define PPT_IMPORTFLAGS_NO_TEXT_ASSERT
#define PPT_PST_AnimationInfoAtom
#define PPT_PST_ExMediaAtom
SVXCORE_DLLPUBLIC SdrTextObj * DynCastSdrTextObj(SdrObject *)
constexpr OUStringLiteral sUNO_LayerName_background_objects
constexpr TypedWhichId< XLineStyleItem > XATTR_LINESTYLE(XATTR_LINE_FIRST)
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)