namespace com::sun::star::xml::dom { class XNode; } namespace editeng { class SvxFieldItemUpdater; } namespace vcl { class Font; } namespace com::sun::star::presentation { class XPresentation2; } class SdOutliner; class Timer; class SfxObjectShell; class SdPage; class SdAnimationInfo; class SdStyleSheetPool; class SfxMedium; class SvxSearchItem; class EditStatus; class Point; class SdTransferable; struct SpellCallbackInfo; class SdCustomShowList; class SdUndoGroup; class SdrObject; class Idle; class Outliner; class SdrOutliner; class SdrPage; class SdrTextObj; class SfxItemPool; class Size; class SdXImpressDocument;
namespace sd
{ class DrawDocShell; #ifndef SV_DECL_DRAW_DOC_SHELL_DEFINED #define SV_DECL_DRAW_DOC_SHELL_DEFINED typedef rtl::Reference<DrawDocShell> DrawDocShellRef; #endif class UndoManager; class ShapeList; class FrameView;
}
class ImpDrawPageListWatcher; class ImpMasterPageListWatcher;
/** *Typealiasesforcommonlyuseddatastructures
*/ typedef std::vector<OUString> PageNameList; // List of page/bookmark names typedef std::vector<OUString> SlideLayoutNameList; // List of slide layout names typedef std::map<OUString, sal_Int32> SlideLayoutMap; // Map of slide layout names to indices typedef std::map<OUString, std::shared_ptr<model::Theme>> ThemeMap; // Map of theme names to theme objects
/** *Contextforstylesheettransfersduringpageoperations * *Thisstructurecontainsalldatarequiredfortransferringstyles(graphic,cell,table) *betweendocumentsorpages.Itmaintainscollectionsofstylesthatneedtobe *transferredandmanagespointerstosourceanddestinationstylesheetpools.
*/ struct StyleTransferContext
{ // Style collections to be transferred
StyleSheetCopyResultVector aGraphicStyles; // Graphic styles to be transferred
StyleSheetCopyResultVector aCellStyles; // Cell styles to be transferred
XStyleVector aTableStyles; // Table styles to be transferred
OUString aRenameString; // String for style renaming operations
// Layout information
SlideLayoutMap aSlideLayouts; // Layouts to be transferred
ThemeMap aThemes; // Themes to be transferred
// Style sheet pools (optional, set by the caller)
SdStyleSheetPool* pSourceStyleSheetPool; // Source style sheet pool
SdStyleSheetPool* pDestStyleSheetPool; // Destination style sheet pool
/** *Documentpagecountinformation * *Trackscountsofdifferentpagetypesduringdocumentoperations, *particularlyusefulduringpageinsertionandmasterpagehandling.
*/ struct DocumentPageCounts
{
sal_uInt16 nDestPageCount; // Count of standard pages in destination document
sal_uInt16 nSourcePageCount; // Count of standard pages in source document
sal_uInt16 nMasterPageCount; // Count of master pages in destination document
sal_uInt16 nNewMPageCount; // Count of new master pages after processing
// Check if all counts are valid (non-zero) bool areValid() const { return !(nDestPageCount == 0 || nSourcePageCount == 0 || nMasterPageCount == 0);
}
};
/** *Parametersrelatedtopageinsertionoperations * *Collectsallparametersneededforpageinsertionoperationsincluding *insertionposition,bookmarkname,replacementcount,undostatus,scalingoptions, *andpropertyinformationforbothmainandnotespages.
*/ struct PageInsertionParams
{
sal_uInt16 nInsertPos; // Position where to insert pages
OUString aBookmarkName; // Name of the bookmark for insertion
sal_uInt16 nReplacedStandardPages; // Number of replaced standard pages bool bUndo; // Whether undo is enabled bool bScaleObjects; // Whether to scale objects
PageNameList* pExchangeList; // List of pages for exchange operations
SdDrawDocument* pBookmarkDoc; // Source document for page insertion
PageProperties mainProps; // Properties of main pages (size, borders, etc.)
PageProperties notesProps; // Properties of notes pages (size, borders, etc.)
/** if the document does not contain at least one handout, one slide and one notes page with atleastonemastereachthismethodscreatesthem. Ifareferencedocumentisgiven,thesizesandbordersettingsofthatdocumentareused fornewlycreatedslides.
*/ void CreateFirstPages( SdDrawDocument const * pRefDocument = nullptr ); bool CreateMissingNotesAndHandoutPages();
/** Return the first page that has the given name. Regular pages and notespagesaresearchedfirst.Whennotfoundthenthemaster pagesaresearched. @paramrPgName Nameofthepagetoreturn. @paramrbIsMasterPage Issetbythemethodtoindicatewhetherthereturnedindex belongstoamasterpage(<TRUE/>)oraregularornotespage (<FALSE/>).Thegivenvalueisignored. @return Returnstheindexofthepagewiththegivennameor SDRPAGE_NOTFOUND(=0xffff)whensuchapagedoesnotexist.
*/
SAL_DLLPRIVATE sal_uInt16 GetPageByName(std::u16string_view rPgName, bool& rbIsMasterPage ) const; /** checks, if the given name is a *unique* name for an *existing* slide
/** Set the mode that controls whether (and later how) the formatting of the document dependsonthecurrentprintermetrics. @paramnMode Use<const scope="css::document::PrinterIndependentLayout">ENABLED</const> tomakeformattingprinter-independentand<const scope="css::document::PrinterIndependentLayout">DISABLED</const> tomakeformattingdependonthecurrentprintermetrics.
*/
SAL_DLLPRIVATE void SetPrinterIndependentLayout (sal_Int32 nMode);
/** Get the flag that controls whether the formatting of the document dependsonthecurrentprintermetrics. @return Use<const scope="css::document::PrinterIndependentLayout">ENABLED</const> whenformattingisprinter-independentand<const scope="css::document::PrinterIndependentLayout">DISABLED</const> whenformattingdependsonthecurrentprintermetrics.
*/
SAL_DLLPRIVATE sal_Int32 GetPrinterIndependentLayout() const { return mnPrinterIndependentLayout;}
/** replacespOldPage from all custom shows with pNewPage or removes pOldPage from allcustomshowsifpNewPageis0.
*/
SAL_DLLPRIVATE void ReplacePageInCustomShows( const SdPage* pOldPage, const SdPage* pNewPage );
public:
/// static to prevent recursions while resolving links
SAL_DLLPRIVATE static SdDrawDocument* s_pDocLockedInsertingLinks;
/** Create and insert a set of two new pages: a standard (draw) page and theassociatednotespage.Thenewpagesareinserteddirectly afterthespecifiedpageset. @parampCurrentPage Thispageisusedtoretrievethelayoutforthepageto create. @paramePageKind Thisspecifieswhether<argument>pCurrentPage</argument>isa standard(draw)pageoranotespage. @paramsStandardPageName Nameofthestandardpage.Anemptystringleadstousingan automaticallycreatedname. @paramsNotesPageName Nameofthestandardpage.Anemptystringleadstousingan automaticallycreatedname. @parameStandardLayout Layouttouseforthenewstandardpage.Notethatthislayout isnotusedwhenthegiven<argument>pCurrentPage</argument>is notastandardpage.Inthiscasethelayoutistakenfromthe standardpageassociatedwith<argument>pCurrentPage</argument>. @parameNotesLayout Layouttouseforthenewnotespage.Notethatthislayout isnotusedwhenthegiven<argument>pCurrentPage</argument>is notanotespage.Inthiscasethelayoutistakenfromthe notespageassociatedwith<argument>pCurrentPage</argument>. @parambIsPageBack Thisflagindicateswhethertoshowthebackgroundshape. @parambIsPageObj Thisflagindicateswhethertoshowtheshapesonthemasterpage. @paramnInsertPosition Positionwheretoinsertthestandardpage.When-1thenthe newpagesetisinsertedafterthecurrentpage.
/** This method acts as a simplified front end for the more complex <member>DuplicatePage()</member>method. @paramnPageNum Thepagenumberaspassedtothe<member>GetSdPage()</member> methodforwhichthestandardpageandthenotespagearetobe copied. @return Returnsanindexoftheinsertedpagesthatcanbeusedwiththe <member>GetSdPage()</member>method.
*/
SAL_DLLPRIVATE sal_uInt16 DuplicatePage (sal_uInt16 nPageNum);
/** Create and insert a set of two new pages that are copies of the given<argument>pCurrentPage</argument>anditsassociatednotes resp.standardpage.Thecopiesareinserteddirectlyafterthe specifiedpageset. @parampCurrentPage Thispageanditsassociatednotes/standardpageiscopied. @paramePageKind Thisspecifieswhether<argument>pCurrentPage</argument>isa standard(draw)pageoranotespage. @paramsStandardPageName Nameofthestandardpage.Anemptystringleadstousingan automaticallycreatedname. @paramsNotesPageName Nameofthestandardpage.Anemptystringleadstousingan automaticallycreatedname. @parambIsPageBack Thisflagindicateswhethertoshowthebackgroundshape. @parambIsPageObj Thisflagindicateswhethertoshowtheshapesonthemasterpage. @paramnInsertPosition Positionwheretoinsertthestandardpage.When-1thenthe newpagesetisinsertedafterthecurrentpage.
/** return the document fonts for latin, cjk and ctl according to the current
languages set at this document */
SAL_DLLPRIVATE void getDefaultFonts( vcl::Font& rLatinFont, vcl::Font& rCJKFont, vcl::Font& rCTLFont );
sd::UndoManager* GetUndoManager() const;
/** converts the given western font height to a corresponding ctl font height, depending on the system language */
SAL_DLLPRIVATE static sal_uInt32 convertFontHeightToCTL( sal_uInt32 nWesternFontHeight );
/** Get the style sheet pool if it was a SdStyleSheetPool.
*/
SdStyleSheetPool* GetSdStyleSheetPool() const;
/** Extract the base layout name from a layout name by removing the separator and anything after it *@paramrLayoutNameThefulllayoutnamethatmayincludeaseparatorandsuffix *@returnThebaselayoutnamewithoutseparatorandsuffix
*/ static OUString GetBaseLayoutName(std::u16string_view rLayoutName);
/** Generate a new layout name based on the original name by appending a number to it *@paramaOriginalNameTheoriginallayoutname *@returnAnewlayoutnamethatisuniqueandbasedontheoriginalname
*/ static OUString GenerateNewLayoutName(std::u16string_view rOriginalName);
/** This member stores the printer independent layout mode. Please referto<member>SetPrinterIndependentLayout()</member>forits values.
*/
sal_Int32 mnPrinterIndependentLayout;
/** Insert a given set of standard and notes page after the given <argument>pCurrentPage</argument>. @parampCurrentPage Thispageanditsassociatednotes/standardpageiscopied. @paramePageKind Thisspecifieswhether<argument>pCurrentPage</argument>isa standard(draw)pageoranotespage. @paramsStandardPageName Nameofthestandardpage.Anemptystringleadstousingan automaticallycreatedname. @paramsNotesPageName Nameofthestandardpage.Anemptystringleadstousingan automaticallycreatedname. @parambIsPageBack Thisflagindicateswhethertoshowthebackgroundshape. @parambIsPageObj Thisflagindicateswhethertoshowtheshapesonthemasterpage. @parampStandardPage Thestandardpagetoinsert. @parampNotesPage Thenotespagetoinsert. @paramnInsertPosition Positionwheretoinsertthestandardpage.When-1thenthe newpagesetisinsertedafterthecurrentpage.
/** Set up a newly created page and insert it into the list of pages. @parampPreviousPage Apagetotakethesizeandbordergeometryfrom. @parampPage Thisisthepagetosetupandinsert. @paramsPageName Thenameofthenewpage. @paramnInsertionPoint Indexofthepagebeforewhichthenewpagewillbeinserted. @parambIsPageBack Thisflagindicateswhethertoshowthebackgroundshape. @parambIsPageObj Thisflagindicateswhethertoshowtheshapesonthemaster page.
*/
SAL_DLLPRIVATE void SetupNewPage (
SdPage const * pPreviousPage,
SdPage* pPage, const OUString& sPageName,
sal_uInt16 nInsertionPoint, bool bIsPageBack, bool bIsPageObj);
/**an instance of this guard disables modification of a document
during its lifetime*/ class ModifyGuard
{ public:
ModifyGuard( SdDrawDocument* pDoc );
~ModifyGuard();
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.