summaryrefslogtreecommitdiff
path: root/sd/inc/drawdoc.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/inc/drawdoc.hxx')
-rw-r--r--sd/inc/drawdoc.hxx403
1 files changed, 403 insertions, 0 deletions
diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx
new file mode 100644
index 000000000000..e74135473662
--- /dev/null
+++ b/sd/inc/drawdoc.hxx
@@ -0,0 +1,403 @@
+/*************************************************************************
+ *
+ * $RCSfile: drawdoc.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DRAWDOC_HXX
+#define _DRAWDOC_HXX
+
+#ifndef _SV_PRINT_HXX
+#include <vcl/print.hxx>
+#endif
+#ifndef _FM_FMMODEL_HXX
+#include <svx/fmmodel.hxx>
+#endif
+#ifndef _PRESENTATION_HXX
+#include "pres.hxx"
+#endif
+#ifndef _SVX_PAGEITEM_HXX //autogen
+#include <svx/pageitem.hxx>
+#endif
+#ifndef _UNOTOOLS_CHARCLASS_HXX
+#include <unotools/charclass.hxx>
+#endif
+#ifndef _TOOLS_INTN_HXX
+#include <tools/intn.hxx>
+#endif
+#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
+#include <com/sun/star/lang/Locale.hpp>
+#endif
+
+#ifdef SVX_LIGHT
+#define SdOutliner Outliner
+#endif
+#ifndef _RSCSFX_HXX
+#include <rsc/rscsfx.hxx>
+#endif
+
+
+class Timer;
+class SfxObjectShell;
+class SdPage;
+class FrameView;
+class SdDrawDocShell;
+class SdOutliner;
+class SdAnimationInfo;
+class SdIMapInfo;
+class IMapObject;
+class SdStyleSheetPool;
+class SfxMedium;
+class SvxSearchItem;
+class SdrOle2Obj;
+class EditStatus;
+class Graphic;
+class Point;
+class Window;
+struct SpellCallbackInfo;
+struct StyleRequestData;
+
+#ifndef SVX_LIGHT
+#ifndef SV_DECL_SDDRAWDOCSHELL_DEFINED
+#define SV_DECL_SDDRAWDOCSHELL_DEFINED
+SV_DECL_REF(SdDrawDocShell)
+#endif
+#endif
+
+struct StyleReplaceData
+{
+ SfxStyleFamily nFamily;
+ SfxStyleFamily nNewFamily;
+ String aName;
+ String aNewName;
+};
+
+enum DocCreationMode
+{
+ NEW_DOC,
+ DOC_LOADED
+};
+
+#ifdef SVX_LIGHT
+class SvStream;
+
+class SdDrawDocShell
+{
+private:
+ SvStream* pStream;
+ Printer* pPrinter;
+public:
+ SdDrawDocShell( SvStream* pS ) { pPrinter = NULL; pStream = pS; }
+ ~SdDrawDocShell() { delete pPrinter; }
+
+ virtual void SetPrinter( Printer* pPrntr ) { pPrinter = pPrntr; }
+ virtual Printer* GetPrinter( BOOL bCreate ) { if( pPrinter == NULL && bCreate ) pPrinter = new Printer(); return pPrinter; }
+
+ virtual SvStream* GetDocumentStream(FASTBOOL& rbDeleteAfterUse) const { return pStream; }
+};
+
+#endif
+
+
+//==================================================================
+
+class SdDrawDocument : public FmFormModel
+{
+public:
+ static SdDrawDocument* pDocLockedInsertingLinks; // static to prevent recursions while resolving links
+
+private:
+ SdOutliner* pOutliner; // Lokaler Outliner fuer den Gliederungsmodus
+ SdOutliner* pInternalOutliner; // Interner Outliner zum Erzeugen von Textobjekten
+ Timer* pWorkStartupTimer;
+ Timer* pOnlineSpellingTimer;
+ List* pOnlineSpellingList;
+ List* pDeletedPresObjList;
+ SvxSearchItem* pOnlineSearchItem;
+ List* pFrameViewList;
+ List* pCustomShowList;
+ SdDrawDocShell* pDocSh;
+ BOOL bHasOnlineSpellErrors;
+ BOOL bInitialOnlineSpellingEnabled;
+ String aBookmarkFile; // Zum Laden von Bookmarks
+#ifndef SVX_LIGHT
+ SdDrawDocShellRef xBookmarkDocShRef; // Zum Laden von Bookmarks
+#endif
+ String aPresPage;
+ BOOL bNewOrLoadCompleted;
+ BOOL bPresAll;
+ BOOL bPresEndless;
+ BOOL bPresManual;
+ BOOL bPresMouseVisible;
+ BOOL bPresMouseAsPen;
+ BOOL bStartPresWithNavigator;
+ BOOL bAnimationAllowed;
+ BOOL bPresLockedPages;
+ BOOL bPresAlwaysOnTop;
+ BOOL bPresFullScreen;
+ ULONG nPresPause;
+ BOOL bPresShowLogo;
+ BOOL bSdDataObj;
+ BOOL bOnlineSpell;
+ BOOL bHideSpell;
+ BOOL bCustomShow;
+ ULONG nPresFirstPage;
+ LanguageType eLanguage;
+ SvxNumType ePageNumType;
+ Link aOldNotifyUndoActionHdl;
+#ifndef SVX_LIGHT
+ SdDrawDocShellRef xAllocedDocShRef; // Fuer AllocModel()
+ BOOL bAllocDocSh; // Fuer AllocModel()
+#endif
+ DocumentType eDocType;
+ UINT16 nFileFormatVersion;
+
+ void UpdatePageObjectsInNotes(USHORT nStartPos);
+ DECL_LINK(NotifyUndoActionHdl, SfxUndoAction*);
+ DECL_LINK(WorkStartupHdl, Timer*);
+ DECL_LINK(OnlineSpellingHdl, Timer*);
+ DECL_LINK(OnlineSpellEventHdl, EditStatus*);
+ void FillOnlineSpellingList(SdPage* pPage);
+ void SpellObject(SdrTextObj* pObj);
+
+ International* mpInternational;
+ ::com::sun::star::lang::Locale* mpLocale;
+ CharClass* mpCharClass;
+
+public:
+ TYPEINFO();
+
+ SdDrawDocument(DocumentType eType, SfxObjectShell* pDocSh);
+ ~SdDrawDocument();
+
+ virtual SdrModel* AllocModel() const;
+ virtual SdrPage* AllocPage(FASTBOOL bMasterPage);
+#ifndef SVX_LIGHT
+ virtual const SdrModel* LoadModel(const String& rFileName);
+ virtual void DisposeLoadedModels();
+#endif
+ virtual FASTBOOL IsReadOnly() const;
+
+ SfxItemPool& GetPool() { return( *pItemPool ); }
+
+ SdOutliner* GetOutliner(BOOL bCreateOutliner=TRUE);
+ SdOutliner* GetInternalOutliner(BOOL bCreateOutliner=TRUE);
+
+ SdDrawDocShell* GetDocSh() { return(pDocSh) ; }
+
+ LanguageType GetLanguage() const;
+ void SetLanguage( LanguageType eNewLang );
+
+ SvxNumType GetPageNumType() const { return ePageNumType; }
+ void SetPageNumType(SvxNumType eType) { ePageNumType = eType; }
+ String CreatePageNumValue(USHORT nNum) const;
+
+ DocumentType GetDocumentType() const { return eDocType; }
+
+#ifndef SVX_LIGHT
+ void SetAllocDocSh(BOOL bAlloc);
+#endif
+
+ void CreatingDataObj(BOOL bDataObj) { bSdDataObj = bDataObj; }
+
+ void CreateFirstPages();
+ BOOL CreateMissingNotesAndHandoutPages();
+
+ void MovePage(USHORT nPgNum, USHORT nNewPos);
+ void InsertPage(SdrPage* pPage, USHORT nPos=0xFFFF);
+ void DeletePage(USHORT nPgNum);
+ SdrPage* RemovePage(USHORT nPgNum);
+ void RemoveUnnessesaryMasterPages( SdPage* pMaster=NULL, BOOL bOnlyDuplicatePages=FALSE, BOOL bUndo=TRUE );
+ void SetMasterPage(USHORT nSdPageNum, const String& rLayoutName,
+ SdDrawDocument* pSourceDoc, BOOL bMaster, BOOL bCheckMasters);
+
+ SdDrawDocument* OpenBookmarkDoc(const String& rBookmarkFile);
+ SdDrawDocument* OpenBookmarkDoc(SfxMedium& rMedium);
+ BOOL InsertBookmark(List* pBookmarkList, List* pExchangeList, BOOL bLink,
+ BOOL bReplace, USHORT nPgPos, BOOL bNoDialogs,
+ SdDrawDocShell* pBookmarkDocSh, BOOL bCopy,
+ Point* pObjPos);
+ BOOL InsertBookmarkAsPage(List* pBookmarkList, List* pExchangeList,
+ BOOL bLink, BOOL bReplace, USHORT nPgPos,
+ BOOL bNoDialogs, SdDrawDocShell* pBookmarkDocSh,
+ BOOL bCopy, BOOL bMergeMasterPages);
+ BOOL InsertBookmarkAsObject(List* pBookmarkList, List* pExchangeListL,
+ BOOL bLink, SdDrawDocShell* pBookmarkDocSh,
+ Point* pObjPos);
+ void CloseBookmarkDoc();
+
+ SdrObject* GetObj(const String& rObjName) const;
+
+ USHORT GetPageByName(const String& rPgName) const;
+ SdPage* GetSdPage(USHORT nPgNum, PageKind ePgKind) const;
+ USHORT GetSdPageCount(PageKind ePgKind) const;
+ void SetSelected(SdPage* pPage, BOOL bSelect);
+ BOOL MovePages(USHORT nTargetPage);
+
+ SdPage* GetMasterSdPage(USHORT nPgNum, PageKind ePgKind);
+ USHORT GetMasterSdPageCount(PageKind ePgKind) const;
+
+ USHORT GetMasterPageUserCount(SdrPage* pMaster) const;
+
+ void SetPresPage( const String& rPresPage ) { aPresPage = rPresPage; }
+ const String& GetPresPage() const { return aPresPage; }
+
+ void SetPresAll(BOOL bNewPresAll);
+ BOOL GetPresAll() const { return bPresAll; }
+
+ void SetPresEndless(BOOL bNewPresEndless);
+ BOOL GetPresEndless() const { return bPresEndless; }
+
+ void SetPresManual(BOOL bNewPresManual);
+ BOOL GetPresManual() const { return bPresManual; }
+
+ void SetPresMouseVisible(BOOL bNewPresMouseVisible);
+ BOOL GetPresMouseVisible() const { return bPresMouseVisible; }
+
+ void SetPresMouseAsPen(BOOL bNewPresMouseAsPen);
+ BOOL GetPresMouseAsPen() const { return bPresMouseAsPen; }
+
+ void SetPresFirstPage (ULONG nNewFirstPage);
+ ULONG GetPresFirstPage() const { return nPresFirstPage; }
+
+ void SetStartPresWithNavigator (BOOL bStart);
+ BOOL GetStartPresWithNavigator() const { return bStartPresWithNavigator; }
+
+ void SetAnimationAllowed (BOOL bAllowed) { bAnimationAllowed = bAllowed; }
+ BOOL IsAnimationAllowed() const { return bAnimationAllowed; }
+
+ void SetPresPause( ULONG nSecondsToWait ) { nPresPause = nSecondsToWait; }
+ ULONG GetPresPause() const { return nPresPause; }
+
+ void SetPresShowLogo( BOOL bShowLogo ) { bPresShowLogo = bShowLogo; }
+ BOOL IsPresShowLogo() const { return bPresShowLogo; }
+
+ void SetPresLockedPages (BOOL bLock);
+ BOOL GetPresLockedPages() const { return bPresLockedPages; }
+
+ void SetPresAlwaysOnTop (BOOL bOnTop);
+ BOOL GetPresAlwaysOnTop() const { return bPresAlwaysOnTop; }
+
+ void SetPresFullScreen (BOOL bNewFullScreen);
+ BOOL GetPresFullScreen() const { return bPresFullScreen; }
+
+#ifndef SVX_LIGHT
+ void SetOnlineSpell( BOOL bIn );
+ BOOL GetOnlineSpell() const { return bOnlineSpell; }
+ void StopOnlineSpelling();
+ void StartOnlineSpelling(BOOL bForceSpelling=TRUE);
+ DECL_LINK(OnlineSpellCallback, SpellCallbackInfo*);
+
+ void InsertObject(SdrObject* pObj, SdPage* pPage);
+ void RemoveObject(SdrObject* pObj, SdPage* pPage);
+
+ void SetHideSpell( BOOL bIn );
+ BOOL GetHideSpell() const { return bHideSpell; }
+#endif
+
+ ULONG GetLinkCount();
+
+ List* GetFrameViewList() const { return pFrameViewList; }
+ List* GetCustomShowList(BOOL bCreate = FALSE);
+
+ void SetCustomShow(BOOL bCustShow) { bCustomShow = bCustShow; }
+ BOOL IsCustomShow() const { return bCustomShow; }
+
+ friend SvStream& operator << (SvStream& rOut, SdDrawDocument& rDoc);
+ friend SvStream& operator >> (SvStream& rIn, SdDrawDocument& rDoc);
+
+ virtual void SetChanged(FASTBOOL bFlag = TRUE);
+ virtual void NbcSetChanged(FASTBOOL bFlag = TRUE) { bChanged = bFlag; }
+ virtual SvStream* GetDocumentStream(FASTBOOL& rbDeleteAfterUse) const;
+
+ void SetTextDefaults() const;
+
+ void CreateLayoutTemplates();
+ void RenameLayoutTemplate(const String& rOldLayoutName, const String& rNewName);
+
+ void StopWorkStartupDelay();
+
+ void NewOrLoadCompleted(DocCreationMode eMode);
+ BOOL IsNewOrLoadCompleted() const {return bNewOrLoadCompleted; }
+
+ FrameView* GetFrameView(ULONG nPos)
+ { return (FrameView*) pFrameViewList->GetObject(nPos); }
+
+ SdAnimationInfo* GetAnimationInfo(SdrObject* pObject) const;
+
+ SdIMapInfo* GetIMapInfo( SdrObject* pObject ) const;
+ IMapObject* GetHitIMapObject( SdrObject* pObject, const Point& rWinPoint, const Window& rCmpWnd );
+
+ Graphic GetGraphicFromOle2Obj( const SdrOle2Obj* pOle2Obj );
+
+ List* GetDeletedPresObjList();
+
+ CharClass* GetCharClass() const { return mpCharClass; }
+ International* GetInternational() const { return mpInternational; }
+
+#ifndef SVX_LIGHT
+ void RestoreLayerNames();
+#endif
+ void MakeUniqueLayerNames();
+};
+
+
+
+#endif // _DRAWDOC_HXX
+
+