forked from amazingfate/loongoffice
This is the first step to decouple resolving of command names to image (icon) names. This is necessary to make allow additional processing of images before the image is passed on and better decision which image source to take. Change-Id: I129dc6a1ae812aaaca32696ef2a2749d5fa86a54
65 lines
1.6 KiB
C++
65 lines
1.6 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
#ifndef INCLUDED_VCL_COMMANDICONRESOLVER_HXX
|
|
#define INCLUDED_VCL_COMMANDICONRESOLVER_HXX
|
|
|
|
#include <vcl/dllapi.h>
|
|
#include <vcl/image.hxx>
|
|
|
|
#include <com/sun/star/uno/Sequence.hxx>
|
|
|
|
#include <unordered_map>
|
|
#include <vector>
|
|
|
|
namespace vcl
|
|
{
|
|
|
|
enum ImageType
|
|
{
|
|
ImageType_Color = 0,
|
|
ImageType_Color_Large,
|
|
ImageType_COUNT
|
|
};
|
|
|
|
class VCL_DLLPUBLIC CommandImageResolver
|
|
{
|
|
private:
|
|
typedef std::unordered_map<OUString, OUString, OUStringHash, std::equal_to<OUString>> CommandToImageNameMap;
|
|
|
|
CommandToImageNameMap m_aCommandToImageNameMap;
|
|
std::vector<OUString> m_aImageCommandNameVector;
|
|
std::vector<OUString> m_aImageNameVector;
|
|
|
|
ImageList* m_pImageList[ImageType_COUNT];
|
|
OUString m_sIconTheme;
|
|
|
|
ImageList* getImageList(sal_Int16 nImageType);
|
|
|
|
public:
|
|
CommandImageResolver();
|
|
virtual ~CommandImageResolver();
|
|
|
|
bool registerCommands(css::uno::Sequence<OUString>& aCommandSequence);
|
|
Image getImageFromCommandURL(sal_Int16 nImageType, const OUString& rCommandURL);
|
|
|
|
std::vector<OUString>& getCommandNames()
|
|
{
|
|
return m_aImageCommandNameVector;
|
|
}
|
|
|
|
bool hasImage(const OUString& rCommandURL);
|
|
};
|
|
|
|
} // end namespace vcl
|
|
|
|
#endif // INCLUDED_VCL_COMMANDICONRESOLVER_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|