1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef __FRAMEWORK_HELPER_ACTIONTRIGGERHELPER_HXX_ 25 #define __FRAMEWORK_HELPER_ACTIONTRIGGERHELPER_HXX_ 26 27 #include <com/sun/star/container/XIndexContainer.hpp> 28 29 // #110897# 30 #include <com/sun/star/lang/XMultiServiceFactory.hpp> 31 #include <vcl/menu.hxx> 32 #include <framework/fwedllapi.h> 33 34 35 namespace framework 36 { 37 class FWE_DLLPUBLIC ActionTriggerHelper 38 { 39 public: 40 // Fills the submitted menu with the structure contained in the second 41 // parameter rActionTriggerContainer 42 // @param pNewMenu = must be a valid and empty menu 43 // @param rActionTriggerContainer = must be an instance of service "com.sun.star.ui.ActionTriggerContaienr" 44 static void 45 CreateMenuFromActionTriggerContainer( 46 Menu* pNewMenu, 47 const com::sun::star::uno::Reference< com::sun::star::container::XIndexContainer >& rActionTriggerContainer ); 48 49 // Creates a "com::sun::star::ui::ActionTriggerContainer" with the structure of the menu 50 // provided as a parameter. The implementation class stores the menu pointer 51 // to optimize the time of creation of a menu from a actiontrigger structure. 52 // IMPORTANT: The caller must ensure that the menu pointer is valid through the 53 // life time of the XIndexContainer object!!! 54 // 55 // @param pNewMenu = Must be a valid menu. Please be aware that this implementation is based on 56 // the above mentioned restriction!!! 57 58 // #110897# 59 static com::sun::star::uno::Reference< com::sun::star::container::XIndexContainer > CreateActionTriggerContainerFromMenu( 60 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory, 61 const Menu* pMenu, const ::rtl::OUString* pMenuIdentifier ); 62 63 // Fills the submitted rActionTriggerContainer with the structure of the menu 64 // provided as the second parameter 65 // @param rActionTriggerContainer = must be an instance of service "com.sun.star.ui.ActionTriggerContainer" 66 // @param pNewMenu = must be a valid menu 67 static void 68 FillActionTriggerContainerFromMenu( 69 com::sun::star::uno::Reference< com::sun::star::container::XIndexContainer >& rActionTriggerContainer, 70 const Menu* pMenu ); 71 72 }; 73 } 74 75 #endif // __FRAMEWORK_HELPER_ACTIONTRIGGERHELPER_HXX_ 76