1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #pragma once 21 22 #include <helper/uiconfigelementwrapperbase.hxx> 23 24 #include <com/sun/star/lang/XComponent.hpp> 25 #include <com/sun/star/ui/XUIFunctionListener.hpp> 26 #include <com/sun/star/uno/XComponentContext.hpp> 27 28 #include <memory> 29 30 namespace weld 31 { 32 class Builder; 33 class Container; 34 class Toolbar; 35 } 36 37 namespace framework 38 { 39 40 class ToolBarManager; 41 class ToolBarWrapper final : public css::ui::XUIFunctionListener, 42 public UIConfigElementWrapperBase 43 { 44 public: 45 ToolBarWrapper( const css::uno::Reference< css::uno::XComponentContext >& xContext ); 46 virtual ~ToolBarWrapper() override; 47 48 // XInterface 49 virtual void SAL_CALL acquire() noexcept override; 50 virtual void SAL_CALL release() noexcept override; 51 virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override; 52 53 // XComponent 54 virtual void SAL_CALL dispose() override; 55 56 // XInitialization 57 virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override; 58 59 // XUIElement 60 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getRealInterface() override; 61 62 // XUpdatable 63 virtual void SAL_CALL update() override; 64 65 // XUIElementSettings 66 virtual void SAL_CALL updateSettings() override; 67 68 // XUIFunctionListener 69 virtual void SAL_CALL functionExecute( const OUString& aUIElementName, const OUString& aCommand ) override; 70 71 // XEventListener 72 using cppu::OPropertySetHelper::disposing; 73 virtual void SAL_CALL disposing( const css::lang::EventObject& aEvent ) override; 74 75 private: 76 virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const css::uno::Any& aValue ) override; 77 virtual void impl_fillNewData() override; 78 79 css::uno::Reference< css::lang::XComponent > m_xToolBarManager; 80 css::uno::Reference< css::uno::XComponentContext > m_xContext; 81 82 std::unique_ptr<weld::Builder> m_xBuilder; 83 std::unique_ptr<weld::Container> m_xTopLevel; 84 std::unique_ptr<weld::Toolbar> m_xWeldedToolbar; 85 }; 86 87 } 88 89 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 90