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 #ifndef INCLUDED_SVX_SVXPRESETLISTBOX_HXX 21 #define INCLUDED_SVX_SVXPRESETLISTBOX_HXX 22 23 #include <svtools/valueset.hxx> 24 #include <svx/xtable.hxx> 25 #include <tools/gen.hxx> 26 27 class SVX_DLLPUBLIC SvxPresetListBox final : public SvtValueSet 28 { 29 private: 30 static constexpr sal_uInt32 nColCount = 3; 31 Size const aIconSize; 32 Link<SvxPresetListBox*,void> maRenameHdl; 33 Link<SvxPresetListBox*,void> maDeleteHdl; 34 35 void OnMenuItemSelected(const OString& rIdent); 36 37 template< typename ListType, typename EntryType > 38 void FillPresetListBoxImpl(ListType& pList, sal_uInt32 nStartIndex); 39 40 public: 41 SvxPresetListBox(std::unique_ptr<weld::ScrolledWindow> pWindow); 42 43 virtual void Resize() override; 44 virtual bool Command(const CommandEvent& rEvent) override; getColumnCount()45 static sal_uInt32 getColumnCount() { return nColCount; } GetIconSize() const46 Size const & GetIconSize() const { return aIconSize; } 47 SetRenameHdl(const Link<SvxPresetListBox *,void> & rLink)48 void SetRenameHdl( const Link<SvxPresetListBox*,void>& rLink ) 49 { 50 maRenameHdl = rLink; 51 } SetDeleteHdl(const Link<SvxPresetListBox *,void> & rLink)52 void SetDeleteHdl( const Link<SvxPresetListBox*,void>& rLink ) 53 { 54 maDeleteHdl = rLink; 55 } 56 57 void FillPresetListBox(XGradientList& pList, sal_uInt32 nStartIndex = 1); 58 void FillPresetListBox(XHatchList& pList, sal_uInt32 nStartIndex = 1); 59 void FillPresetListBox(XBitmapList& pList, sal_uInt32 nStartIndex = 1); 60 void FillPresetListBox(XPatternList& pList, sal_uInt32 nStartIndex = 1); 61 void DrawLayout(); 62 }; 63 64 #endif // INCLUDED_SVX_SVXPRESETLISTBOX_HXX 65 66 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 67