diff options
Diffstat (limited to 'framework/inc/classes/addonmenu.hxx')
-rw-r--r-- | framework/inc/classes/addonmenu.hxx | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/framework/inc/classes/addonmenu.hxx b/framework/inc/classes/addonmenu.hxx deleted file mode 100644 index 4bc5bb8f5990..000000000000 --- a/framework/inc/classes/addonmenu.hxx +++ /dev/null @@ -1,140 +0,0 @@ -/************************************************************************* - * - * 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 __FRAMEWORK_CLASSES_ADDONMENU_HXX_ -#define __FRAMEWORK_CLASSES_ADDONMENU_HXX_ - -//_________________________________________________________________________________________________________________ -// interface includes -//_________________________________________________________________________________________________________________ - -#include <com/sun/star/frame/XFrame.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <com/sun/star/uno/Sequence.hxx> - -//_________________________________________________________________________________________________________________ -// includes of other projects -//_________________________________________________________________________________________________________________ - -#include <vcl/menu.hxx> - -#define ADDONMENU_ITEMID_START 2000 -#define ADDONMENU_ITEMID_END 3000 - -namespace framework -{ - -class AddonMenu : public PopupMenu -{ - public: - AddonMenu( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame ); - ~AddonMenu(); - - protected: - ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame; -}; - -class AddonMenuManager; -class AddonPopupMenu : public AddonMenu -{ - public: - ~AddonPopupMenu(); - - // Check if command URL string has the unique prefix to identify addon popup menus - static sal_Bool IsCommandURLPrefix( const rtl::OUString& aCmdURL ); - - void SetCommandURL( const rtl::OUString& aCmdURL ) { m_aCommandURL = aCmdURL; } - const rtl::OUString& GetCommandURL() const { return m_aCommandURL; } - - protected: - void Initialize( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& rAddonPopupMenuDefinition ); - - private: - AddonPopupMenu( const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame ); - - rtl::OUString m_aCommandURL; - - friend class AddonMenuManager; -}; - -class AddonMenuManager -{ - public: - enum MenuType - { - ADDON_MENU, - ADDON_POPUPMENU - }; - - static sal_Bool HasAddonMenuElements(); - static sal_Bool HasAddonHelpMenuElements(); - - static sal_Bool IsAddonMenuId( USHORT nId ) { return (( nId >= ADDONMENU_ITEMID_START ) && ( nId < ADDONMENU_ITEMID_END )); } - - // Check if the context string matches the provided xModel context - static sal_Bool IsCorrectContext( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rModel, const rtl::OUString& aContext ); - - // Factory method to create different Add-On menu types - static PopupMenu* CreatePopupMenuType( MenuType eMenuType, const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame ); - - // Create the Add-Ons menu - static AddonMenu* CreateAddonMenu( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame ); - - // Merge the Add-Ons help menu items into the given menu bar at a defined pos - static void MergeAddonHelpMenu( const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame, - MenuBar* pMergeMenuBar ); - - // Merge the addon popup menus into the given menu bar at the provided pos. - static void MergeAddonPopupMenus( const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame, - const com::sun::star::uno::Reference< com::sun::star::frame::XModel >& rModel, - USHORT nMergeAtPos, - MenuBar* pMergeMenuBar ); - - // Returns the next position to insert a menu item/sub menu - static USHORT GetNextPos( USHORT nPos ); - - // Build up the menu item and sub menu into the provided pCurrentMenu. The sub menus should be of type nSubMenuType. - static void BuildMenu( PopupMenu* pCurrentMenu, - MenuType nSubMenuType, - USHORT nInsPos, - USHORT& nUniqueMenuId, - com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > > aAddonMenuDefinition, - const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame, - const com::sun::star::uno::Reference< com::sun::star::frame::XModel >& rModel ); - - // Retrieve the menu entry property values from a sequence - static void GetMenuEntry( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& rAddonMenuEntry, - ::rtl::OUString& rTitle, - ::rtl::OUString& rURL, - ::rtl::OUString& rTarget, - ::rtl::OUString& rImageId, - ::rtl::OUString& rContext, - com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > >& rAddonSubMenu ); -}; - -} // namespace framework - -#endif // #ifndef __FRAMEWORK_CLASSES_ADDONMENU_HXX_ |