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 #ifndef INCLUDED_SVX_SOURCE_INC_DEFAULTSHAPESPANEL_HXX 20 #define INCLUDED_SVX_SOURCE_INC_DEFAULTSHAPESPANEL_HXX 21 22 #include <vcl/ctrl.hxx> 23 #include <com/sun/star/frame/XFrame.hpp> 24 25 #include <map> 26 #include <svx/sidebar/PanelLayout.hxx> 27 #include <vcl/layout.hxx> 28 #include <svtools/valueset.hxx> 29 #include "ShapesUtil.hxx" 30 31 using namespace css; 32 using namespace ::com::sun::star::uno; 33 using namespace ::com::sun::star::frame; 34 35 namespace svx { namespace sidebar { 36 37 /** This panel provides buttons for inserting shapes into a document. 38 */ 39 class DefaultShapesPanel 40 : public PanelLayout, public SvxShapeCommandsMap 41 { 42 public: 43 DefaultShapesPanel ( 44 vcl::Window* pParent, 45 const css::uno::Reference<css::frame::XFrame>& rxFrame); 46 static VclPtr<vcl::Window> Create( 47 vcl::Window* pParent, 48 const css::uno::Reference<css::frame::XFrame>& rxFrame); 49 virtual ~DefaultShapesPanel() override; 50 virtual void dispose() override; 51 52 private: 53 VclPtr<ValueSet> mpLineArrowSet; 54 VclPtr<ValueSet> mpCurveSet; 55 VclPtr<ValueSet> mpConnectorSet; 56 VclPtr<ValueSet> mpBasicShapeSet; 57 VclPtr<ValueSet> mpSymbolShapeSet; 58 VclPtr<ValueSet> mpBlockArrowSet; 59 VclPtr<ValueSet> mpFlowchartSet; 60 VclPtr<ValueSet> mpCalloutSet; 61 VclPtr<ValueSet> mpStarSet; 62 VclPtr<ValueSet> mp3DObjectSet; 63 Reference< XFrame > mxFrame; 64 std::map<VclPtr<ValueSet>, std::map<sal_uInt16, OUString>> mpShapesSetMap; 65 66 void populateShapes(); 67 void Initialize(); 68 DECL_LINK( ShapeSelectHdl, ValueSet*, void ); 69 }; 70 71 72 } } // end of namespace sd::sidebar 73 74 #endif 75 76 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 77