| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef _SFX_OBJSH_HXX |
| #define _SFX_OBJSH_HXX |
| |
| #include "sal/config.h" |
| |
| #include "tools/solar.h" |
| #include "sfx2/dllapi.h" |
| #include "sal/types.h" |
| #include <com/sun/star/frame/XFrame.hpp> |
| #include <com/sun/star/uno/Reference.h> |
| #include <com/sun/star/uno/Sequence.hxx> |
| #include <com/sun/star/script/XLibraryContainer.hpp> |
| #include <com/sun/star/script/provider/XScriptProviderSupplier.hpp> |
| #include <com/sun/star/embed/XStorage.hpp> |
| #include <com/sun/star/beans/PropertyValue.hpp> |
| #include <com/sun/star/security/DocumentSignatureInformation.hpp> |
| #include <com/sun/star/security/XDocumentDigitalSignatures.hpp> |
| #include <com/sun/star/task/XInteractionHandler.hpp> |
| |
| #include <com/sun/star/beans/XPropertySet.hpp> |
| |
| #include <boost/shared_ptr.hpp> |
| |
| |
| //________________________________________________________________________________________________________________ |
| // include something else |
| //________________________________________________________________________________________________________________ |
| |
| //#if 0 // _SOLAR__PRIVATE |
| #include <vcl/timer.hxx> |
| //#endif |
| #include <svl/poolitem.hxx> |
| #include <vcl/timer.hxx> |
| #include <vcl/bitmap.hxx> |
| #include <sot/storage.hxx> |
| #include <rsc/rscsfx.hxx> |
| |
| #include <sfx2/XmlIdRegistry.hxx> |
| #include <sfx2/shell.hxx> |
| #include <comphelper/embeddedobjectcontainer.hxx> |
| #include <com/sun/star/frame/XModel.hpp> |
| |
| class SbxValue; |
| class SvxMacro; |
| class SbxArray; |
| class BasicManager; |
| class SfxMedium; |
| class SfxObjectFactory; |
| class SfxDocumentInfoDialog; |
| class SfxStyleSheetBasePool; |
| class INote; |
| class SfxStyleSheetPool; |
| class SfxFrame; |
| class SbMethod; |
| class SfxConfigManager; |
| class StarBASIC; |
| class Printer; |
| class SvKeyValueIterator; |
| class SfxBaseModel; |
| class SfxModule; |
| class SvPseudoObject; |
| class SvData; |
| class SfxProgress; |
| class GDIMetaFile; |
| class Bitmap; |
| class INetURLObject; |
| class IndexBitSet; |
| class JobSetup; |
| class Size; |
| class Point; |
| |
| // From embobj.hxx |
| #define ASPECT_CONTENT 1 |
| #define ASPECT_THUMBNAIL 2 /* 120 * 120, 6 Farben DIB in MetaFile */ |
| #define ASPECT_ICON 4 |
| #define ASPECT_DOCPRINT 8 |
| #define ASPECT_ALL (ASPECT_CONTENT | ASPECT_THUMBNAIL | ASPECT_ICON | ASPECT_DOCPRINT) |
| |
| // from pseudo.hxx; must be the same as in OLE2 |
| #define SVOBJ_MISCSTATUS_SERVERRESIZE 1 |
| #define SVOBJ_MISCSTATUS_NOTREPLACE 4 |
| #define SVOBJ_MISCSTATUS_CANTLINKINSIDE 16 |
| #define SVOBJ_MISCSTATUS_LINK 64 |
| #define SVOBJ_MISCSTATUS_INSIDEOUT 128 |
| #define SVOBJ_MISCSTATUS_ACTIVATEWHENVISIBLE 256 |
| #define SVOBJ_MISCSTATUS_NOTRESIZEABLE 512 |
| #define SVOBJ_MISCSTATUS_ALWAYSACTIVATE 1024 |
| #define SVOBJ_MISCSTATUS_RESIZEONPRINTERCHANGE 2048 |
| #define SVOBJ_MISCSTATUS_SPECIALOBJECT 4096 |
| |
| |
| namespace sfx2 |
| { |
| class SvLinkSource; |
| } |
| |
| namespace com { namespace sun { namespace star { namespace datatransfer { class XTransferable; } } } } |
| |
| namespace com { namespace sun { namespace star { |
| namespace document { |
| class XDocumentProperties; |
| } |
| } } } |
| |
| typedef sal_uInt32 SfxObjectShellFlags; |
| #define SFXOBJECTSHELL_HASOPENDOC 0x01L |
| #define SFXOBJECTSHELL_DONTREPLACE 0x02L |
| #define SFXOBJECTSHELL_HASMENU 0x04L |
| #define SFXOBJECTSHELL_DONTLOADFILTERS 0x08L |
| #define SFXOBJECTSHELL_DONTCLOSE 0x10L |
| #define SFXOBJECTSHELL_NODOCINFO 0x20L |
| #define SFXOBJECTSHELL_STD_NORMAL ( SFXOBJECTSHELL_HASOPENDOC ) |
| #define SFXOBJECTSHELL_STD_SPECIAL ( SFXOBJECTSHELL_DONTLOADFILTERS ) |
| #define SFXOBJECTSHELL_UNDEFINED 0xf000000 |
| |
| //-------------------------------------------------------------------- |
| |
| #define SFX_TITLE_TITLE 0 |
| #define SFX_TITLE_FILENAME 1 |
| #define SFX_TITLE_FULLNAME 2 |
| #define SFX_TITLE_APINAME 3 |
| #define SFX_TITLE_DETECT 4 |
| #define SFX_TITLE_CAPTION 5 |
| #define SFX_TITLE_PICKLIST 6 |
| #define SFX_TITLE_HISTORY 7 |
| #define SFX_TITLE_MAXLEN 10 // ab hier sind das L"angenbegrenzungen |
| |
| #define SFX_LOADED_MAINDOCUMENT 1 |
| #define SFX_LOADED_IMAGES 2 |
| #define SFX_LOADED_ALL 3 |
| |
| //-------------------------------------------------------------------- |
| |
| #define HIDDENINFORMATION_RECORDEDCHANGES 0x0001 |
| #define HIDDENINFORMATION_NOTES 0x0002 |
| #define HIDDENINFORMATION_DOCUMENTVERSIONS 0x0004 |
| |
| enum HiddenWarningFact |
| { |
| WhenSaving = 0, |
| WhenPrinting, |
| WhenSigning, |
| WhenCreatingPDF |
| }; |
| |
| //-------------------------------------------------------------------- |
| |
| enum SfxObjectCreateMode |
| { |
| SFX_CREATE_MODE_EMBEDDED, |
| SFX_CREATE_MODE_STANDARD, |
| SFX_CREATE_MODE_PREVIEW, |
| SFX_CREATE_MODE_ORGANIZER, |
| SFX_CREATE_MODE_PLUGIN, |
| SFX_CREATE_MODE_INTERNAL |
| }; |
| |
| /*==================================================================== |
| |
| Die Klasse SfxObjectShell ist die Basisklasse f"ur SFx-Objekte, also |
| f"ur Dokumente und Teile von Dokumenten, die als selbst"andige Objekte |
| in fremde Objekte integriert werden k"onnen. |
| |
| ----------------------------------------------------------------------*/ |
| |
| class SfxToolBoxConfig; |
| struct TransferableObjectDescriptor; |
| |
| class SFX2_DLLPUBLIC SfxObjectShell : |
| public SfxShell, virtual public SotObject, |
| public ::comphelper::IEmbeddedHelper, public ::sfx2::IXmlIdRegistrySupplier |
| { |
| friend struct ModifyBlocker_Impl; |
| friend class SfxObjectShellLock; |
| |
| private: |
| struct SfxObjectShell_Impl* pImp; // interne Daten |
| |
| SfxMedium * pMedium; // Beschreibung der Datei bzw. des Storage, in dem sich das Objekt befindet |
| SfxStyleSheetBasePool* pStyleSheetPool; // StyleSheets |
| SfxObjectCreateMode eCreateMode; // Zweck des Objekts |
| sal_Bool bHasName :1, // sal_True := bestehendes Objekt, sal_False := es ist ein neues Objekt |
| bIsTmp :1; // temp. Storage |
| sal_Bool bIsInGenerateThumbnail; //optimize thumbnail generate and store procedure to improve odt saving performance, i120030 |
| |
| protected: |
| // methods called in implementation of <ImportFrom(..)> |
| virtual void BeforeLoading( SfxMedium&, const ::rtl::OUString &, const ::rtl::OUString & ) |
| { |
| }; |
| |
| virtual void AfterLoading( SfxMedium&, const ::rtl::OUString &, const ::rtl::OUString & ) |
| { |
| }; |
| |
| private: |
| //#if 0 // _SOLAR__PRIVATE |
| SAL_DLLPRIVATE void UpdateTime_Impl(const ::com::sun::star::uno::Reference< |
| ::com::sun::star::document::XDocumentProperties> & i_xDocProps); |
| |
| SAL_DLLPRIVATE sal_Bool SaveTo_Impl(SfxMedium &rMedium, const SfxItemSet* pSet ); |
| |
| //REMOVE sal_Bool SaveInfoAndConfig_Impl( SvStorageRef pNewStg ); |
| |
| //#endif |
| |
| protected: |
| SfxObjectShell(SfxObjectCreateMode); |
| SfxObjectShell( const sal_uInt64 i_nCreationFlags ); // see sfxmodelfactory.hxx |
| virtual ~SfxObjectShell(); |
| |
| virtual void ModifyChanged(); |
| virtual sal_Bool Close(); |
| |
| /** declares the document to have capabilities to contain basic/dialog libraries |
| */ |
| void SetHasNoBasic(); |
| |
| /// template method, called by FlushDocInfo; this implementation is empty |
| virtual void DoFlushDocInfo(); |
| |
| public: |
| TYPEINFO(); |
| SFX_DECL_INTERFACE(SFX_INTERFACE_SFXDOCSH) |
| |
| static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); |
| /* Stampit disable/enable cancel button for print jobs |
| default = true = enable! */ |
| void Stamp_SetPrintCancelState(sal_Bool bState); |
| sal_Bool Stamp_GetPrintCancelState() const; |
| |
| using SotObject::GetInterface; |
| |
| // Document-Shell Iterator |
| static SfxObjectShell* GetFirst( const TypeId* pType = 0, |
| sal_Bool bOnlyVisible = sal_True ); |
| static SfxObjectShell* GetNext( const SfxObjectShell& rPrev, |
| const TypeId* pType = 0, |
| sal_Bool bOnlyVisible = sal_True ); |
| static SfxObjectShell* Current(); |
| static sal_uInt16 Count(); |
| static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > |
| GetCurrentComponent(); |
| static void SetCurrentComponent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent ); |
| |
| virtual void Invalidate(sal_uInt16 nId = 0); |
| |
| void SetFlags( SfxObjectShellFlags eFlags ); |
| SfxObjectShellFlags GetFlags( ) const ; |
| |
| SfxModule* GetModule() const; |
| |
| virtual SfxObjectFactory& GetFactory() const=0; |
| SfxMedium * GetMedium() const { return pMedium; } |
| void ForgetMedium() { pMedium = 0; } |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::document::XDocumentProperties > getDocProperties(); |
| void UpdateDocInfoForSave( ); |
| void FlushDocInfo(); |
| sal_Bool HasName() const { return bHasName; } |
| virtual String GetAPIName() const; |
| void SetHasName( sal_Bool bSet = sal_True ) { bHasName = bSet; } |
| void SetReadOnly(); |
| sal_Bool IsReadOnly() const; |
| sal_Bool IsReadOnlyMedium() const; |
| void SetReadOnlyUI( sal_Bool bReadOnly = sal_True ); |
| sal_Bool IsReadOnlyUI() const; |
| void SetNoName(); |
| sal_Bool IsInModalMode() const; |
| sal_Bool IsInPrepareClose() const; |
| //<!--Added by PengYunQuan for Validity Cell Range Picker |
| virtual sal_Bool AcceptStateUpdate() const; |
| //-->Added by PengYunQuan for Validity Cell Range Picker |
| sal_Bool HasModalViews() const; |
| sal_Bool IsHelpDocument() const; |
| |
| sal_Bool IsDocShared() const; |
| ::rtl::OUString GetSharedFileURL() const; |
| sal_Bool SwitchToShared( sal_Bool bShared, sal_Bool bSave ); |
| void DisconnectFromShared(); |
| SAL_DLLPRIVATE void FreeSharedFile(); |
| SAL_DLLPRIVATE void FreeSharedFile( const ::rtl::OUString& aTempFileURL ); |
| SAL_DLLPRIVATE void DoNotCleanShareControlFile(); |
| |
| void SetSharedXMLFlag( sal_Bool bFlag ) const; |
| sal_Bool HasSharedXMLFlagSet() const; |
| |
| //#if 0 // _SOLAR__PRIVATE |
| SAL_DLLPRIVATE void SetModalMode_Impl(sal_Bool bModal=sal_True); |
| SAL_DLLPRIVATE void SetMacroMode_Impl(sal_Bool bModal=sal_True); |
| //#endif |
| |
| void ResetError(); |
| sal_uInt32 GetError() const; |
| sal_uInt32 GetErrorCode() const; |
| void SetError( sal_uInt32 rErr, const ::rtl::OUString& aLogMessage ); |
| |
| void AddLog( const ::rtl::OUString& aMessage ); |
| void StoreLog(); |
| |
| sal_Bool DoInitNew( SfxMedium* pMedium=0 ); |
| sal_Bool DoLoad( SfxMedium* pMedium ); |
| sal_Bool DoSave(); |
| sal_Bool DoSaveAs( SfxMedium &rNewStor ); |
| sal_Bool DoSaveObjectAs( SfxMedium &rNewStor, sal_Bool bCommit ); |
| |
| // TODO/LATER: currently only overloaded in Calc, should be made non-virtual |
| virtual sal_Bool DoSaveCompleted( SfxMedium* pNewStor=0 ); |
| |
| virtual sal_Bool LoadOwnFormat( SfxMedium& pMedium ); |
| virtual sal_Bool SaveAsOwnFormat( SfxMedium& pMedium ); |
| virtual sal_Bool ConvertFrom( SfxMedium &rMedium ); |
| virtual sal_Bool ConvertTo( SfxMedium &rMedium ); |
| virtual sal_Bool InitNew( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ); |
| virtual sal_Bool Load( SfxMedium &rMedium ); |
| virtual sal_Bool LoadFrom( SfxMedium& rMedium ); |
| virtual sal_Bool Save(); |
| virtual sal_Bool SaveAs( SfxMedium &rMedium ); |
| virtual sal_Bool SaveCompleted( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ); |
| virtual sal_Bool SwitchPersistance( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ); |
| virtual void UpdateLinks(); |
| |
| // called for a few slots like SID_SAVE[AS]DOC, SID_PRINTDOC[DIRECT], derived classes may abort the action |
| virtual sal_Bool QuerySlotExecutable( sal_uInt16 nSlotId ); |
| |
| sal_Bool SaveChildren(sal_Bool bObjectsOnly=sal_False); |
| sal_Bool SaveAsChildren( SfxMedium &rMedium ); |
| sal_Bool SwitchChildrenPersistance( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, |
| sal_Bool bForceNonModified = sal_False ); |
| sal_Bool SaveCompletedChildren( sal_Bool bSuccess ); |
| |
| sal_Bool InsertFrom( SfxMedium &rMedium ); |
| sal_Bool ImportFrom( SfxMedium &rMedium ); |
| sal_Bool ExportTo( SfxMedium &rMedium ); |
| |
| // xmlsec05, check with SFX team |
| sal_uInt16 GetDocumentSignatureState(); |
| void SignDocumentContent(); |
| sal_uInt16 GetScriptingSignatureState(); |
| void SignScriptingContent(); |
| |
| virtual SfxDocumentInfoDialog* CreateDocumentInfoDialog( |
| Window *pParent, const SfxItemSet& ); |
| |
| ErrCode CallBasic( const String& rMacro, const String& rBasicName, |
| SbxArray* pArgs = 0, SbxValue* pRet = 0 ); |
| |
| ErrCode CallXScript( |
| const String& rScriptURL, |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aParams, |
| ::com::sun::star::uno::Any& aRet, |
| ::com::sun::star::uno::Sequence< sal_Int16 >& aOutParamIndex, |
| ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aOutParam, |
| bool bRaiseError = true |
| ); |
| |
| static ErrCode CallXScript( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxScriptContext, |
| const ::rtl::OUString& rScriptURL, |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aParams, |
| ::com::sun::star::uno::Any& aRet, |
| ::com::sun::star::uno::Sequence< sal_Int16 >& aOutParamIndex, |
| ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aOutParam, |
| bool bRaiseError = true |
| ); |
| |
| /** adjusts the internal macro mode, according to the current security settings |
| |
| Finally, the macro mode is either NEVER_EXECUTE or ALWAYS_EXECUTE_NO_WARN. |
| |
| @return |
| whether macros from this document should be executed |
| */ |
| bool AdjustMacroMode( const String& rScriptType, bool _bSuppressUI = false ); |
| |
| SvKeyValueIterator* GetHeaderAttributes(); |
| void ClearHeaderAttributesForSourceViewHack(); |
| void SetHeaderAttributesForSourceViewHack(); |
| |
| sal_Bool IsTemplate() const; |
| void SetTemplate(sal_Bool bIs); |
| |
| sal_Bool IsQueryLoadTemplate() const; |
| sal_Bool IsUseUserData() const; |
| sal_Bool IsLoadReadonly() const; |
| sal_Bool IsSaveVersionOnClose() const; |
| void SetQueryLoadTemplate( sal_Bool b ); |
| void SetUseUserData( sal_Bool bNew ); |
| void SetLoadReadonly( sal_Bool _bReadonly ); |
| void SetSaveVersionOnClose( sal_Bool bSet ); |
| void ResetFromTemplate( const String& rTemplateName, const String& rFileName ); |
| |
| // TODO/LATER: the following two methods should be replaced by Get/SetModifPasswordInfo in future |
| sal_uInt32 GetModifyPasswordHash() const; |
| sal_Bool SetModifyPasswordHash( sal_uInt32 nHash ); |
| |
| ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetModifyPasswordInfo() const; |
| sal_Bool SetModifyPasswordInfo( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aInfo ); |
| |
| static sal_uInt32 HandleFilter( SfxMedium* pMedium, SfxObjectShell* pDoc ); |
| |
| virtual void ViewAssigned(); |
| virtual sal_uInt16 PrepareClose( sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False ); |
| virtual sal_Bool IsInformationLost(); |
| virtual sal_uInt16 GetHiddenInformationState( sal_uInt16 nStates ); |
| sal_Int16 QueryHiddenInformation( HiddenWarningFact eFact, Window* pParent ); |
| virtual sal_Bool HasSecurityOptOpenReadOnly() const; |
| sal_Bool IsSecurityOptOpenReadOnly() const; |
| void SetSecurityOptOpenReadOnly( sal_Bool bOpenReadOnly = sal_True ); |
| |
| virtual Size GetFirstPageSize(); |
| virtual sal_Bool DoClose(); |
| virtual void PrepareReload(); |
| virtual ::boost::shared_ptr<GDIMetaFile> GetPreviewMetaFile( sal_Bool bFullContent = sal_False ) const; |
| virtual void CancelTransfers(); |
| |
| sal_Bool GenerateAndStoreThumbnail( |
| sal_Bool bEncrypted, |
| sal_Bool bSigned, |
| sal_Bool bIsTemplate, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStor ); |
| |
| sal_Bool WriteThumbnail( |
| sal_Bool bEncrypted, |
| sal_Bool bSigned, |
| sal_Bool bIsTemplate, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream ); |
| |
| sal_Bool IsInGenerateAndStoreThumbnail() const {return bIsInGenerateThumbnail;}//optimize thumbnail generate and store procedure to improve odt saving performance, i120030 |
| |
| // Transfer IFace |
| void AbortImport(); |
| sal_Bool IsAbortingImport() const; |
| void RegisterTransfer( SfxMedium& rMedium ); |
| sal_Bool IsReloading() const; |
| void FinishedLoading( sal_uInt16 nWhich = SFX_LOADED_ALL ); |
| void TemplateDisconnectionAfterLoad(); |
| sal_Bool IsLoading() const; |
| sal_Bool IsLoadingFinished() const; |
| void SetAutoLoad( const INetURLObject&, sal_uInt32 nTime, sal_Bool bReload = sal_True ); |
| void LockAutoLoad( sal_Bool bLock ); |
| sal_Bool IsAutoLoadLocked() const; |
| void NotifyReloadAvailable(); |
| sal_Bool IsSecure(); |
| |
| // Misc |
| sal_Bool IsPreview() const; |
| SfxObjectCreateMode GetCreateMode() const { return eCreateMode; } |
| virtual void MemoryError(); |
| SfxProgress* GetProgress() const; |
| void SetWaitCursor( sal_Bool bSet ) const; |
| |
| //(mba) virtual SotObjectRef CreateAggObj( const SotFactory* pFact ); |
| |
| // Naming Interface |
| void SetTitle( const String& rTitle ); |
| String GetTitle( sal_uInt16 nMaxLen = 0 ) const; |
| void InvalidateName(); // Zuruecksetzen auf unbenannt |
| |
| // DDE-Interface |
| virtual long DdeExecute( const String& rCmd ); |
| virtual long DdeGetData( const String& rItem, |
| const String& rMimeType, |
| ::com::sun::star::uno::Any & rValue ); |
| virtual long DdeSetData( const String& rItem, |
| const String& rMimeType, |
| const ::com::sun::star::uno::Any & rValue ); |
| virtual ::sfx2::SvLinkSource* DdeCreateLinkSource( const String& rItem ); |
| |
| // Contents |
| virtual SfxStyleSheetBasePool* GetStyleSheetPool(); |
| void SetStyleSheetPool( SfxStyleSheetBasePool *pBasePool ) { |
| pStyleSheetPool = pBasePool; } |
| |
| //determine the position of the "Automatic" filter in the stylist |
| void SetAutoStyleFilterIndex(sal_uInt16 nSet); |
| sal_uInt16 GetAutoStyleFilterIndex(); |
| virtual sal_Bool HasBasic() const; |
| BasicManager* GetBasicManager() const; |
| com::sun::star::uno::Reference< com::sun::star::script::XLibraryContainer > |
| GetBasicContainer(); |
| com::sun::star::uno::Reference< com::sun::star::script::XLibraryContainer > |
| GetDialogContainer(); |
| StarBASIC* GetBasic() const; |
| |
| // Interface Dok-Inhalte, Organizer |
| #define INDEX_IGNORE USHRT_MAX |
| |
| #define CONTENT_STYLE 0 |
| #define CONTENT_CONFIG 1 |
| #define CONTENT_MACRO 2 |
| #define DEF_CONTENT_COUNT 1 |
| |
| |
| virtual void SetOrganizerSearchMask( |
| SfxStyleSheetBasePool* ) const; |
| |
| |
| virtual sal_uInt16 GetContentCount( |
| sal_uInt16 nIdx1 = INDEX_IGNORE, |
| sal_uInt16 nIdx2 = INDEX_IGNORE ); |
| virtual sal_Bool CanHaveChilds( |
| sal_uInt16 nIdx1, |
| sal_uInt16 nIdx2 = INDEX_IGNORE ); |
| virtual void GetContent( String &, |
| Bitmap &rClosedBitmap, |
| Bitmap &rOpenedBitmap, |
| sal_Bool &bCanDelete, |
| sal_uInt16 nPos, |
| sal_uInt16 nIdx1, |
| sal_uInt16 nIdx2 = INDEX_IGNORE ); |
| |
| virtual void GetContent( String &, |
| Bitmap &rClosedBitmap, |
| Bitmap &rOpenedBitmap, |
| BmpColorMode eColorMode, |
| sal_Bool &bCanDelete, |
| sal_uInt16 nPos, |
| sal_uInt16 nIdx1, |
| sal_uInt16 nIdx2 = INDEX_IGNORE ); |
| |
| virtual void TriggerHelpPI( |
| sal_uInt16 nIdx1, sal_uInt16 nIdx2, sal_uInt16 nIdx3); |
| |
| virtual Bitmap GetStyleFamilyBitmap(SfxStyleFamily eFamily ); |
| |
| virtual Bitmap GetStyleFamilyBitmap(SfxStyleFamily eFamily, BmpColorMode eColorMode ); |
| |
| virtual sal_Bool Insert( SfxObjectShell &rSource, |
| sal_uInt16 nSourceIdx1, |
| sal_uInt16 nSourceIdx2, |
| sal_uInt16 nSourceIdx3, |
| sal_uInt16 &nIdx1, |
| sal_uInt16 &nIdx2, |
| sal_uInt16 &nIdx3, |
| sal_uInt16 &rIdxDeleted); |
| |
| virtual sal_Bool Remove( sal_uInt16 nIdx1, |
| sal_uInt16 nIdx2 = INDEX_IGNORE, |
| sal_uInt16 nIdx3 = INDEX_IGNORE); |
| |
| sal_Bool Print( Printer &rPrt, |
| sal_uInt16 nIdx1, |
| sal_uInt16 nIdx2 = INDEX_IGNORE, |
| sal_uInt16 nIdx3 = INDEX_IGNORE, |
| const String *pObjectName = 0 ); |
| |
| virtual void LoadStyles( SfxObjectShell &rSource ); |
| void ReadNote( INote * ); |
| void UpdateNote( INote * ); |
| |
| // F"ur Docs, die zum Formatieren die Viewgr"o\se |
| // ben"otigen |
| virtual SfxObjectShell* GetObjectShell(); |
| //void SetBaseURL( const String& rURL ); |
| //const String& GetBaseURL() const; |
| //const String& GetBaseURLForSaving() const; |
| //void SetEmptyBaseURL(); |
| |
| virtual SfxFrame* GetSmartSelf( SfxFrame* pSelf, SfxMedium& rMedium ); |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > |
| GetModel() const; |
| // Nur uebergangsweise fuer die Applikationen !!! |
| void SetBaseModel( SfxBaseModel* pModel ); |
| ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > GetBaseModel() const; |
| // Nur uebergangsweise fuer die Applikationen !!! |
| |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > GetEventNames(); |
| |
| Window* GetDialogParent( SfxMedium* pMedium=0 ); |
| String UpdateTitle( SfxMedium* pMed=NULL, sal_uInt16 nDocViewNo=0 ); |
| static SfxObjectShell* CreateObject( const String& rServiceName, SfxObjectCreateMode = SFX_CREATE_MODE_STANDARD ); |
| static SfxObjectShell* CreateObjectByFactoryName( const String& rURL, SfxObjectCreateMode = SFX_CREATE_MODE_STANDARD ); |
| static SfxObjectShell* CreateAndLoadObject( const SfxItemSet& rSet, SfxFrame* pFrame=0 ); |
| static String GetServiceNameFromFactory( const String& rFact ); |
| sal_Bool IsInPlaceActive(); |
| sal_Bool IsUIActive(); |
| virtual void InPlaceActivate( sal_Bool ); |
| virtual void UIActivate( sal_Bool ); |
| |
| static sal_Bool CopyStoragesOfUnknownMediaType( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xSource, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xTarget ); |
| |
| // ==== The functions from SvPersist |
| void EnableSetModified( sal_Bool bEnable = sal_True ); |
| sal_Bool IsEnableSetModified() const; |
| virtual void SetModified( sal_Bool bModified = sal_True ); |
| sal_Bool IsModified(); |
| |
| void SetupStorage( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, |
| sal_Int32 nVersion, |
| sal_Bool bTemplate ) const; |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > GetStorage(); |
| |
| //REMOVE void SetFileName( const ::rtl::OUString& ); |
| SvGlobalName GetClassName() const; |
| |
| // comphelper::IEmbeddedHelper |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > getInteractionHandler() const; |
| virtual com::sun::star::uno::Reference < com::sun::star::embed::XStorage > getStorage() const |
| { |
| return const_cast<SfxObjectShell*>(this)->GetStorage(); |
| } |
| virtual comphelper::EmbeddedObjectContainer& getEmbeddedObjectContainer() const |
| { |
| return GetEmbeddedObjectContainer(); |
| } |
| bool isEnableSetModified() const |
| { |
| return IsEnableSetModified(); |
| } |
| comphelper::EmbeddedObjectContainer& GetEmbeddedObjectContainer() const; |
| void ClearEmbeddedObjects(); |
| |
| // ==== The functions from SvEmbeddedObject |
| virtual Printer * GetDocumentPrinter(); |
| virtual OutputDevice* GetDocumentRefDev(); |
| virtual void OnDocumentPrinterChanged( Printer * pNewPrinter ); |
| virtual Rectangle GetVisArea( sal_uInt16 nAspect ) const; |
| virtual void SetVisArea( const Rectangle & rVisArea ); |
| const Rectangle & GetVisArea() const; |
| void SetVisAreaSize( const Size & rVisSize ); |
| virtual sal_uIntPtr GetMiscStatus() const; |
| |
| MapUnit GetMapUnit() const; |
| void SetMapUnit( MapUnit nMUnit ); |
| |
| void FillTransferableObjectDescriptor( TransferableObjectDescriptor& rDesc ) const; |
| void DoDraw( OutputDevice *, const Point & rObjPos, |
| const Size & rSize, |
| const JobSetup & rSetup, |
| sal_uInt16 nAspect = ASPECT_CONTENT ); |
| virtual void Draw( OutputDevice *, const JobSetup & rSetup, |
| sal_uInt16 nAspect = ASPECT_CONTENT ) = 0; |
| |
| |
| virtual void FillClass( SvGlobalName * pClassName, |
| sal_uInt32 * pFormat, |
| String * pAppName, |
| String * pFullTypeName, |
| String * pShortTypeName, |
| sal_Int32 nVersion, |
| sal_Bool bTemplate = sal_False) const = 0; |
| |
| // change recording and respective passwword protection for Writer and Calc |
| // slots available for Writer: FN_REDLINE_ON, FN_REDLINE_ON |
| // slots used for Calc: FID_CHG_RECORD, SID_CHG_PROTECT |
| virtual bool IsChangeRecording() const; |
| virtual bool HasChangeRecordProtection() const; |
| virtual void SetChangeRecording( bool bActivate ); |
| virtual bool SetProtectionPassword( const String &rPassword ); |
| virtual bool GetProtectionHash( /*out*/ ::com::sun::star::uno::Sequence< sal_Int8 > &rPasswordHash ); |
| |
| // ================================= |
| |
| //#if 0 // _SOLAR__PRIVATE |
| |
| SAL_DLLPRIVATE ::boost::shared_ptr<GDIMetaFile> CreatePreviewMetaFile_Impl( sal_Bool bFullContent, sal_Bool bHighContrast ) const; |
| |
| SAL_DLLPRIVATE sal_Bool IsOwnStorageFormat_Impl(const SfxMedium &) const; |
| |
| SAL_DLLPRIVATE sal_Bool IsPackageStorageFormat_Impl(const SfxMedium &) const; |
| |
| SAL_DLLPRIVATE sal_Bool ConnectTmpStorage_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, SfxMedium* pMedium ); |
| SAL_DLLPRIVATE sal_Bool DisconnectStorage_Impl( SfxMedium& rSrcMedium, SfxMedium& rTargetMedium ); |
| |
| SAL_DLLPRIVATE sal_Bool PutURLContentsToVersionStream_Impl( |
| ::rtl::OUString aURL, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDocStorage, |
| ::rtl::OUString aStreamName ); |
| |
| SAL_DLLPRIVATE ::rtl::OUString CreateTempCopyOfStorage_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ); |
| |
| SAL_DLLPRIVATE void InitOwnModel_Impl(); |
| SAL_DLLPRIVATE void BreakMacroSign_Impl( sal_Bool bBreakMacroSing ); |
| SAL_DLLPRIVATE void CheckSecurityOnLoading_Impl(); |
| SAL_DLLPRIVATE void CheckForBrokenDocSignatures_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler ); |
| SAL_DLLPRIVATE sal_uInt16 ImplCheckSignaturesInformation( |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::security::DocumentSignatureInformation >& aInfos ); |
| SAL_DLLPRIVATE void CheckEncryption_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler ); |
| SAL_DLLPRIVATE void SetModifyPasswordEntered( sal_Bool bEntered = sal_True ); |
| SAL_DLLPRIVATE sal_Bool IsModifyPasswordEntered(); |
| |
| SAL_DLLPRIVATE void InitBasicManager_Impl(); |
| SAL_DLLPRIVATE SfxObjectShell_Impl* Get_Impl() { return pImp; } |
| |
| SAL_DLLPRIVATE static sal_Bool UseInteractionToHandleError( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler, |
| sal_uInt32 nError ); |
| SAL_DLLPRIVATE const SfxObjectShell_Impl* Get_Impl() const { return pImp; } |
| |
| SAL_DLLPRIVATE void SetCreateMode_Impl( SfxObjectCreateMode nMode ); |
| |
| SAL_DLLPRIVATE void DoDraw_Impl( OutputDevice* pDev, |
| const Point & rViewPos, |
| const Fraction & rScaleX, |
| const Fraction & rScaleY, |
| const JobSetup & rSetup, |
| sal_uInt16 nAspect ); |
| |
| // Shell Interface |
| SAL_DLLPRIVATE void ExecFile_Impl(SfxRequest &); |
| SAL_DLLPRIVATE void GetState_Impl(SfxItemSet&); |
| SAL_DLLPRIVATE void PrintExec_Impl(SfxRequest &); |
| SAL_DLLPRIVATE void PrintState_Impl(SfxItemSet&); |
| SAL_DLLPRIVATE void ExecProps_Impl(SfxRequest &); |
| SAL_DLLPRIVATE void StateProps_Impl(SfxItemSet &); |
| SAL_DLLPRIVATE void ExecView_Impl(SfxRequest &); |
| SAL_DLLPRIVATE void StateView_Impl(SfxItemSet &); |
| |
| // Laden-speichern public internals |
| SAL_DLLPRIVATE sal_Bool ImportFromGeneratedStream_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream, |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr ); |
| SAL_DLLPRIVATE void PositionView_Impl(); |
| SAL_DLLPRIVATE void UpdateFromTemplate_Impl(); |
| SAL_DLLPRIVATE sal_Bool CanReload_Impl(); |
| SAL_DLLPRIVATE void SetNamedVisibility_Impl(); |
| SAL_DLLPRIVATE sal_Bool DoSave_Impl( const SfxItemSet* pSet=0 ); |
| SAL_DLLPRIVATE sal_Bool Save_Impl( const SfxItemSet* pSet=0 ); |
| SAL_DLLPRIVATE sal_Bool PreDoSaveAs_Impl(const String &rFileName, const String &rFiltName, SfxItemSet *); |
| SAL_DLLPRIVATE sal_Bool APISaveAs_Impl ( const String& aFileName, SfxItemSet* aParams ); |
| SAL_DLLPRIVATE sal_Bool CommonSaveAs_Impl ( const INetURLObject& aURL, const String& aFilterName, SfxItemSet* aParams ); |
| SAL_DLLPRIVATE sal_Bool GeneralInit_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, |
| sal_Bool bTypeMustBeSetAlready ); |
| SAL_DLLPRIVATE void PrepareSecondTryLoad_Impl(); |
| SAL_DLLPRIVATE void SetInitialized_Impl( const bool i_fromInitNew ); |
| |
| // public-internals |
| SAL_DLLPRIVATE IndexBitSet& GetNoSet_Impl(); |
| SAL_DLLPRIVATE void SetProgress_Impl( SfxProgress *pProgress ); |
| SAL_DLLPRIVATE void PostActivateEvent_Impl( SfxViewFrame* ); |
| SAL_DLLPRIVATE void SetActivateEvent_Impl(sal_uInt16 ); |
| SAL_DLLPRIVATE SfxObjectShell* GetParentShellByModel_Impl(); |
| |
| // configuration items |
| SAL_DLLPRIVATE SfxToolBoxConfig* GetToolBoxConfig_Impl(); |
| SAL_DLLPRIVATE sal_uInt16 ImplGetSignatureState( sal_Bool bScriptingContent = sal_False ); |
| |
| SAL_DLLPRIVATE ::com::sun::star::uno::Sequence< ::com::sun::star::security::DocumentSignatureInformation > |
| ImplAnalyzeSignature( |
| sal_Bool bScriptingContent, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::security::XDocumentDigitalSignatures >& xSigner |
| = ::com::sun::star::uno::Reference< ::com::sun::star::security::XDocumentDigitalSignatures >() ); |
| |
| SAL_DLLPRIVATE void ImplSign( sal_Bool bScriptingContent = sal_False ); |
| SAL_DLLPRIVATE sal_Bool QuerySaveSizeExceededModules_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler ); |
| //#endif |
| }; |
| |
| #define SFX_GLOBAL_CLASSID \ |
| 0x9eaba5c3, 0xb232, 0x4309, \ |
| 0x84, 0x5f, 0x5f, 0x15, 0xea, 0x50, 0xd0, 0x74 |
| |
| //#if 0 // _SOLAR__PRIVATE |
| |
| struct ModifyBlocker_Impl |
| { |
| SfxObjectShell* pPersist; |
| sal_Bool bWasEnabled; |
| ModifyBlocker_Impl( SfxObjectShell* pPersistP ) : pPersist( pPersistP ) |
| { |
| bWasEnabled = pPersistP->IsEnableSetModified(); |
| if ( bWasEnabled ) |
| pPersistP->EnableSetModified( sal_False ); |
| } |
| ~ModifyBlocker_Impl() |
| { |
| if ( bWasEnabled ) |
| pPersist->EnableSetModified( bWasEnabled ); |
| } |
| }; |
| //#endif |
| |
| //-------------------------------------------------------------------- |
| #ifndef SFX_DECL_OBJECTSHELL_DEFINED |
| #define SFX_DECL_OBJECTSHELL_DEFINED |
| SV_DECL_REF(SfxObjectShell) |
| #endif |
| SV_DECL_LOCK(SfxObjectShell) |
| SV_IMPL_LOCK(SfxObjectShell) |
| SV_IMPL_REF(SfxObjectShell) |
| |
| //#if 0 // _SOLAR__PRIVATE |
| //-------------------------------------------------------------------- |
| class AutoReloadTimer_Impl : public Timer |
| { |
| String aUrl; |
| sal_Bool bReload; |
| SfxObjectShell* pObjSh; |
| |
| public: |
| AutoReloadTimer_Impl( const String& rURL, sal_uInt32 nTime, sal_Bool bReloadP, |
| SfxObjectShell* pSh ); |
| virtual void Timeout(); |
| }; |
| //#endif |
| |
| //------------------------------------------------------------------------- |
| |
| class SFX2_DLLPUBLIC SfxObjectShellItem: public SfxPoolItem |
| { |
| SfxObjectShell* pObjSh; |
| |
| public: |
| TYPEINFO(); |
| SfxObjectShellItem() : |
| SfxPoolItem( 0 ), |
| pObjSh( 0 ) |
| {} |
| SfxObjectShellItem( SfxObjectShell *pObjShell ): |
| SfxPoolItem( 0 ), |
| pObjSh( pObjShell ) |
| {} |
| SfxObjectShellItem( sal_uInt16 nWhichId, |
| SfxObjectShell *pObjShell ): |
| SfxPoolItem( nWhichId ), |
| pObjSh( pObjShell ) |
| {} |
| |
| virtual int operator==( const SfxPoolItem& ) const; |
| virtual String GetValueText() const; |
| virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; |
| virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; |
| virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); |
| SfxObjectShell* GetObjectShell() const |
| { return pObjSh; } |
| |
| }; |
| |
| #endif |
| |