summaryrefslogtreecommitdiff
path: root/sfx2/inc/sfx2/shell.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2/inc/sfx2/shell.hxx')
-rw-r--r--sfx2/inc/sfx2/shell.hxx371
1 files changed, 0 insertions, 371 deletions
diff --git a/sfx2/inc/sfx2/shell.hxx b/sfx2/inc/sfx2/shell.hxx
deleted file mode 100644
index cba6efaf8e36..000000000000
--- a/sfx2/inc/sfx2/shell.hxx
+++ /dev/null
@@ -1,371 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * 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 .
- */
-#ifndef _SFX_SHELL_HXX
-#define _SFX_SHELL_HXX
-
-#include "sal/config.h"
-#include "sfx2/dllapi.h"
-#include "sal/types.h"
-#include <com/sun/star/embed/VerbDescriptor.hpp>
-#include <tools/debug.hxx>
-#include <tools/rtti.hxx>
-#include <svl/brdcst.hxx>
-
-#include <tools/string.hxx>
-
-#include <sfx2/sfxuno.hxx>
-
-class ResMgr;
-class Window;
-class ToolBox;
-class SfxItemPool;
-class SfxPoolItem;
-class SfxRequest;
-class SfxItemSet;
-struct SfxFormalArgument;
-class StatusBar;
-class SfxInterface;
-class SfxViewShell;
-class SfxObjectShell;
-class SfxSlotPool;
-class SvGlobalName;
-
-class SfxShellObject;
-class SfxShell;
-struct SfxShell_Impl;
-class SfxShellObject;
-class SfxDispatcher;
-class SfxViewFrame;
-class SfxSlot;
-class SfxRepeatTarget;
-class SbxVariable;
-class SbxBase;
-class SfxBindings;
-
-namespace svl
-{
- class IUndoManager;
-}
-
-//====================================================================
-
-enum SfxInterfaceId
-
-/* [Description]
-
- Id for <SfxInterface>s, gives a quasi-static access to the interface
- through an array to <SfxApplication>.
-*/
-
-{
- SFX_INTERFACE_NONE,
- SFX_INTERFACE_SFXAPP,
- SFX_INTERFACE_SFXDOCSH,
- SFX_INTERFACE_SFXIPFRM,
- SFX_INTERFACE_SFXVIEWSH,
- SFX_INTERFACE_SFXVIEWFRM,
- SFX_INTERFACE_SFXPLUGINFRM,
- SFX_INTERFACE_SFXPLUGINOBJ,
- SFX_INTERFACE_SFXPLUGINVIEWSH,
- SFX_INTERFACE_SFXFRAMESETOBJ,
- SFX_INTERFACE_SFXFRAMESETVIEWSH,
- SFX_INTERFACE_SFXINTERNALFRM,
- SFX_INTERFACE_SFXCOMPONENTDOCSH,
- SFX_INTERFACE_SFXGENERICOBJ,
- SFX_INTERFACE_SFXGENERICVIEWSH,
- SFX_INTERFACE_SFXEXPLOBJ,
- SFX_INTERFACE_SFXEXPLVIEWSH,
- SFX_INTERFACE_SFXPLUGINVIEWSHDYNAMIC,
- SFX_INTERFACE_SFXEXTERNALVIEWFRM,
- SFX_INTERFACE_SFXMODULE,
- SFX_INTERFACE_SFXFRAMESETVIEW,
- SFX_INTERFACE_SFXFRAMESETSOURCEVIEW,
- SFX_INTERFACE_SFXHELP_DOCSH,
- SFX_INTERFACE_SFXHELP_VIEWSH,
- SFX_INTERFACE_SFXTASK,
- SFX_INTERFACE_OFA_START = 100,
- SFX_INTERFACE_OFA_END = 100,
- SFX_INTERFACE_SC_START = 150,
- SFX_INTERFACE_SC_END = 199,
- SFX_INTERFACE_SD_START = 200,
- SFX_INTERFACE_SD_END = 249,
- SFX_INTERFACE_SW_START = 250,
- SFX_INTERFACE_SW_END = 299,
- SFX_INTERFACE_SIM_START = 300,
- SFX_INTERFACE_SIM_END = 319,
- SFX_INTERFACE_SCH_START = 320,
- SFX_INTERFACE_SCH_END = 339,
- SFX_INTERFACE_SMA_START = 340,
- SFX_INTERFACE_SMA_END = 359,
- SFX_INTERFACE_SBA_START = 360,
- SFX_INTERFACE_SBA_END = 399,
- SFX_INTERFACE_IDE_START = 400,
- SFX_INTERFACE_IDE_END = 409,
- //-if one is still needed
- SFX_INTERFACE_APP = SFX_INTERFACE_SW_START,
- SFX_INTERFACE_LIB = 450
-};
-
-//TODO/CLEANUP: replace by UNO constant
-#define SVVERB_SHOW -1
-
-//====================================================================
-
-typedef void (*SfxExecFunc)(SfxShell *, SfxRequest &rReq);
-typedef void (*SfxStateFunc)(SfxShell *, SfxItemSet &rSet);
-
-class SFX2_DLLPUBLIC SfxShell: public SfxBroadcaster
-
-/* [Description]
-
- The class SfxShell is the base class for all classes, which provide
- the functionality of the form <Slot>s.
-
- Each instance has a reference to an interface description, which is
- obtainable through <SfxShell::GetInterface()const>. This interface
- provides the connection to specific methods and contains some other
- descriptive data for controllers like menus and toolboxes, but also
- for the various APIs. The main part of the interface description is in
- the form of a <Type-Library>, which is generated from an IDL-file by
- the <SVIDL-Compiler>. For each SfxShell Subclass-File there is one
- such IDL-file to write.
-*/
-
-{
- friend class SfxObjectItem;
-
- SfxShell_Impl* pImp;
- SfxItemPool* pPool;
- ::svl::IUndoManager* pUndoMgr;
-
-private:
- SfxShell( const SfxShell & ); // internal
- SfxShell& operator = ( const SfxShell & ); // internal
-
-protected:
- SfxShell();
- SfxShell( SfxViewShell *pViewSh );
-
-#ifndef _SFXSH_HXX
- SAL_DLLPRIVATE void SetViewShell_Impl( SfxViewShell* pView );
- SAL_DLLPRIVATE void Invalidate_Impl( SfxBindings& rBindings, sal_uInt16 nId );
- SAL_DLLPRIVATE SfxShellObject* GetShellObj_Impl() const;
- SAL_DLLPRIVATE void SetShellObj_Impl( SfxShellObject* pObj );
-#endif
-
-public:
- TYPEINFO();
- virtual ~SfxShell();
-
- virtual SfxInterface* GetInterface() const;
- static SfxInterface* GetStaticInterface() { return 0; }
-
- void SetName( const String &rName );
- const String& GetName() const;
-
- SfxViewShell* GetViewShell() const;
-
- void CallExec( SfxExecFunc pFunc, SfxRequest &rReq )
- { (*pFunc)(this, rReq); }
- void CallState( SfxStateFunc pFunc, SfxItemSet &rSet )
- { (*pFunc)(this, rSet); }
-
- static void EmptyExecStub(SfxShell *pShell, SfxRequest &);
- static void EmptyStateStub(SfxShell *pShell, SfxItemSet &);
-
- const SfxPoolItem* GetSlotState( sal_uInt16 nSlotId, const SfxInterface *pIF = 0, SfxItemSet *pStateSet = 0 );
- const SfxPoolItem* ExecuteSlot( SfxRequest &rReq, const SfxInterface *pIF = 0 );
- const SfxPoolItem* ExecuteSlot( SfxRequest &rReq, sal_Bool bAsync );
- sal_uIntPtr ExecuteSlot( sal_uInt16 nSlot, sal_uInt16 nMemberId, SbxVariable& rRet, SbxBase* pArgs = 0 );
-
- inline SfxItemPool& GetPool() const;
- inline void SetPool( SfxItemPool *pNewPool ) ;
-
- virtual ::svl::IUndoManager*
- GetUndoManager();
- void SetUndoManager( ::svl::IUndoManager *pNewUndoMgr );
-
- SfxRepeatTarget* GetRepeatTarget() const;
- void SetRepeatTarget( SfxRepeatTarget *pTarget );
-
- virtual void Invalidate(sal_uInt16 nId = 0);
-
- sal_Bool IsActive() const;
- virtual void Activate(sal_Bool bMDI);
- virtual void Deactivate(sal_Bool bMDI);
- virtual void ParentActivate();
- virtual void ParentDeactivate();
-
- SfxDispatcher* GetDispatcher() const;
- SfxViewFrame* GetFrame() const;
- ResMgr* GetResMgr() const;
- virtual sal_Bool HasUIFeature( sal_uInt32 nFeature );
- void UIFeatureChanged();
-
- // Items
- const SfxPoolItem* GetItem( sal_uInt16 nSlotId ) const;
- void PutItem( const SfxPoolItem& rItem );
-
- // TODO/CLEANUP: still needed?!
- void SetVerbs(const com::sun::star::uno::Sequence < com::sun::star::embed::VerbDescriptor >& aVerbs);
- const com::sun::star::uno::Sequence < com::sun::star::embed::VerbDescriptor >& GetVerbs() const;
- void VerbExec (SfxRequest&);
- void VerbState (SfxItemSet&);
- SAL_DLLPRIVATE const SfxSlot* GetVerbSlot_Impl(sal_uInt16 nId) const;
-
- void SetHelpId(sal_uIntPtr nId);
- sal_uIntPtr GetHelpId() const;
- virtual SfxObjectShell* GetObjectShell();
- void SetDisableFlags( sal_uIntPtr nFlags );
- sal_uIntPtr GetDisableFlags() const;
-
- virtual SfxItemSet* CreateItemSet( sal_uInt16 nId );
- virtual void ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet );
-
-#ifndef _SFXSH_HXX
- SAL_DLLPRIVATE bool CanExecuteSlot_Impl( const SfxSlot &rSlot );
- SAL_DLLPRIVATE void DoActivate_Impl( SfxViewFrame *pFrame, sal_Bool bMDI);
- SAL_DLLPRIVATE void DoDeactivate_Impl( SfxViewFrame *pFrame, sal_Bool bMDI);
-#endif
-};
-
-//--------------------------------------------------------------------
-SfxItemPool& SfxShell::GetPool() const
-/*
- [Description]
-
- Each Subclass of SfxShell must reference a pool. This is partly set by
- SFx's own set of subclasses (eg <SfxViewShell>). In particular however
- this must be set directly from one derived SfxShell class and ny
- derivatives of SfxObjectShell.
-
- The SfxShell class itself does not have any SfxItemPool, therfore a
- null-pointer is returned.
-*/
-
-{
- DBG_ASSERT( pPool, "no pool" );
- return *pPool;
-}
-//-------------------------------------------------------------------
-inline void SfxShell::SetPool
-(
- SfxItemPool* pNewPool // Pointer to the new Pool or null
-)
-
-/* [Description]
-
- With this method, the subclasses register their special <SfxItemPool>
- in the SfxShell. Each SfxShell instance must have access to a SfxItemPool.
- Usually this is the SfxItemPool of the SfxDocumentShell. The SfxShell
- subclass does not take ownership of the orphaned pool. Before it is
- deleted it has to be deregisted with SetPool(0).
-*/
-
-{
- pPool = pNewPool;
-}
-
-//=====================================================================
-
-#define SFX_ARGUMENTMAP(ShellClass) static SfxFormalArgument a##ShellClass##Args_Impl[] =
-
-#define SFX_SLOTMAP(ShellClass) static SfxFormalArgument a##ShellClass##Args_Impl[1]; \
- static SfxSlot a##ShellClass##Slots_Impl[] =
-
-#define SFX_SLOTMAP_ARG(ShellClass) static SfxSlot a##ShellClass##Slots_Impl[] =
-
-#define SFX_DECL_INTERFACE(nId) \
- static SfxInterface* pInterface; \
- private: \
- static void InitInterface_Impl(); \
- public: \
- static const SfxFormalArgument* pSfxFormalArgs_Impl; \
- static SfxInterface* GetStaticInterface(); \
- static SfxInterfaceId GetInterfaceId() {return SfxInterfaceId(nId);} \
- static void RegisterInterface(SfxModule* pMod=NULL); \
- virtual SfxInterface* GetInterface() const;
-
-#define SFX_IMPL_INTERFACE(Class,SuperClass,NameResId) \
- \
- SfxInterface* Class::pInterface = 0; \
- const SfxFormalArgument* Class::pSfxFormalArgs_Impl = a##Class##Args_Impl;\
- SfxInterface* Class::GetStaticInterface() \
- { \
- if ( !pInterface ) \
- { \
- pInterface = \
- new SfxInterface( \
- #Class, NameResId, GetInterfaceId(), \
- SuperClass::GetStaticInterface(), \
- a##Class##Slots_Impl[0], \
- (sal_uInt16) (sizeof(a##Class##Slots_Impl) / sizeof(SfxSlot) ) ); \
- InitInterface_Impl(); \
- } \
- return pInterface; \
- } \
- \
- SfxInterface* Class::GetInterface() const \
- { \
- return GetStaticInterface(); \
- } \
- \
- void Class::RegisterInterface(SfxModule* pMod) \
- { \
- GetStaticInterface()->Register(pMod); \
- } \
- \
- void Class::InitInterface_Impl()
-
-#define SFX_POSITION_MASK 0x000F
-#define SFX_VISIBILITY_MASK 0xFFF0
-#define SFX_VISIBILITY_UNVISIBLE 0x0000 // Never visible
-#define SFX_VISIBILITY_VIEWER 0x0040
-#define SFX_VISIBILITY_READONLYDOC 0x0400
-#define SFX_VISIBILITY_DESKTOP 0x0800
-#define SFX_VISIBILITY_STANDARD 0x1000
-#define SFX_VISIBILITY_FULLSCREEN 0x2000
-#define SFX_VISIBILITY_CLIENT 0x4000
-#define SFX_VISIBILITY_SERVER 0x8000
-#define SFX_VISIBILITY_NOCONTEXT 0xFFFF // Always visable
-
-#define SFX_OBJECTBAR_REGISTRATION(nPos,rResId) \
- GetStaticInterface()->RegisterObjectBar( nPos, rResId )
-
-#define SFX_FEATURED_OBJECTBAR_REGISTRATION(nPos,rResId,nFeature) \
- GetStaticInterface()->RegisterObjectBar( nPos, rResId, nFeature )
-
-#define SFX_CHILDWINDOW_REGISTRATION(nId) \
- GetStaticInterface()->RegisterChildWindow( nId, (sal_Bool) sal_False )
-
-#define SFX_FEATURED_CHILDWINDOW_REGISTRATION(nId,nFeature) \
- GetStaticInterface()->RegisterChildWindow( nId, (sal_Bool) sal_False, nFeature )
-
-#define SFX_CHILDWINDOW_CONTEXT_REGISTRATION(nId) \
- GetStaticInterface()->RegisterChildWindow( nId, (sal_Bool) sal_True )
-
-#define SFX_POPUPMENU_REGISTRATION(rResId) \
- GetStaticInterface()->RegisterPopupMenu( rResId )
-
-#define SFX_STATUSBAR_REGISTRATION(rResId) \
- GetStaticInterface()->RegisterStatusBar( rResId )
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */