summaryrefslogtreecommitdiff
path: root/sfx2/inc/sfx2/objface.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2/inc/sfx2/objface.hxx')
-rw-r--r--sfx2/inc/sfx2/objface.hxx154
1 files changed, 154 insertions, 0 deletions
diff --git a/sfx2/inc/sfx2/objface.hxx b/sfx2/inc/sfx2/objface.hxx
new file mode 100644
index 000000000000..c7710f533935
--- /dev/null
+++ b/sfx2/inc/sfx2/objface.hxx
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SFXOBJFACE_HXX
+#define _SFXOBJFACE_HXX
+
+#include "sal/config.h"
+#include "sfx2/dllapi.h"
+#include "sal/types.h"
+#include <tools/string.hxx>
+#ifndef _RESID_HXX //autogen
+#include <tools/resid.hxx>
+#endif
+
+#include <sfx2/msg.hxx>
+
+struct SfxFormalArgument;
+struct SfxTypeLibImpl;
+struct SfxInterface_Impl;
+class SfxConfigManager;
+class SfxConfigItem;
+class SfxIFConfig_Impl;
+class SfxObjectUIArr_Impl ;
+class SfxModule;
+class SvStream;
+
+class SFX2_DLLPUBLIC SfxInterface
+{
+friend class SfxIFConfig_Impl;
+friend class SfxSlotPool;
+
+ const char* pName; // Sfx-internal name of interface
+ const SfxInterface* pGenoType; // base interface
+ SfxSlot* pSlots; // SlotMap
+ USHORT nCount; // number of slots in SlotMap
+ SfxInterfaceId nClassId; // Id of interface
+ ResId aNameResId; // ResId of external interface name
+ SfxInterface_Impl* pImpData;
+
+ SfxSlot* operator[]( USHORT nPos ) const;
+
+public:
+ SfxInterface( const char *pClass,
+ const ResId& rResId,
+ SfxInterfaceId nClassId,
+ const SfxInterface* pGeno,
+ SfxSlot &rMessages, USHORT nMsgCount );
+ virtual ~SfxInterface();
+
+ void SetSlotMap( SfxSlot& rMessages, USHORT nMsgCount );
+ inline USHORT Count() const;
+
+ const SfxSlot* GetRealSlot( const SfxSlot * ) const;
+ const SfxSlot* GetRealSlot( USHORT nSlotId ) const;
+ virtual const SfxSlot* GetSlot( USHORT nSlotId ) const;
+ const SfxSlot* GetSlot( const String& rCommand ) const;
+
+ const char* GetClassName() const { return pName; }
+ int HasName() const { return 0 != aNameResId.GetId(); }
+ String GetName() const
+ { return String(aNameResId); }
+ ResMgr* GetResMgr() const
+ { return aNameResId.GetResMgr(); }
+
+ const SfxInterface* GetGenoType() const { return pGenoType; }
+ const SfxInterface* GetRealInterfaceForSlot( const SfxSlot* ) const;
+
+ void RegisterObjectBar( USHORT, const ResId&, const String* pST=0 );
+ void RegisterObjectBar( USHORT, const ResId&, sal_uInt32 nFeature, const String* pST=0 );
+ void RegisterChildWindow( USHORT, BOOL bContext, const String* pST=0 );
+ void RegisterChildWindow( USHORT, BOOL bContext, sal_uInt32 nFeature, const String* pST=0 );
+ void RegisterStatusBar( const ResId& );
+ const ResId& GetObjectBarResId( USHORT nNo ) const;
+ USHORT GetObjectBarPos( USHORT nNo ) const;
+ sal_uInt32 GetObjectBarFeature( USHORT nNo ) const;
+ USHORT GetObjectBarCount() const;
+ void SetObjectBarPos( USHORT nPos, USHORT nId );
+ const String* GetObjectBarName( USHORT nNo ) const;
+ BOOL IsObjectBarVisible( USHORT nNo) const;
+ sal_uInt32 GetChildWindowFeature( USHORT nNo ) const;
+ sal_uInt32 GetChildWindowId( USHORT nNo ) const;
+ USHORT GetChildWindowCount() const;
+ void RegisterPopupMenu( const ResId& );
+ const ResId& GetPopupMenuResId() const;
+ const ResId& GetStatusBarResId() const;
+
+ void Register( SfxModule* );
+
+//#if 0 // _SOLAR__PRIVATE
+ SAL_DLLPRIVATE int ContainsSlot_Impl( const SfxSlot *pSlot ) const
+ { return pSlot >= pSlots && pSlot < pSlots + Count(); }
+ SAL_DLLPRIVATE ResMgr* GetResManager_Impl() const
+ { return aNameResId.GetResMgr(); }
+//#endif
+};
+
+//--------------------------------------------------------------------
+
+// returns the number of functions in this cluster
+
+inline USHORT SfxInterface::Count() const
+{
+ return nCount;
+}
+
+//--------------------------------------------------------------------
+
+// returns a function by position in the array
+
+inline SfxSlot* SfxInterface::operator[]( USHORT nPos ) const
+{
+ return nPos < nCount? pSlots+nPos: 0;
+}
+
+//#if 0 // _SOLAR__PRIVATE
+class SfxIFConfig_Impl
+{
+friend class SfxInterface;
+ USHORT nCount;
+ SfxObjectUIArr_Impl* pObjectBars;
+
+public:
+ SfxIFConfig_Impl();
+ ~SfxIFConfig_Impl();
+ BOOL Store(SvStream&);
+ void RegisterObjectBar( USHORT, const ResId&, sal_uInt32 nFeature, const String* pST=0 );
+ USHORT GetType();
+};
+//#endif
+
+#endif