office-gobmx/include/svx/PaletteManager.hxx
Norbert Thiebaud db380aab10 Reverts a commit series that cripple windows ci.
Revert "SvxShadowTabPage::Construct was removed"
 f9a2c1c12e.
Revert "replace OColorPopup with SvxColorWindow"
 f300754bb1.
Revert "drop AutoColorInvalid/SID_ATTR_AUTO_COLOR_INVALID"
 347c2c3345.
Revert "replace last ColorLB use with a listbox of colors"
 604b35bf55.
Revert "simplify, its just a vector of colors"
 351a97ce6b.
Revert "replace user draw with an Image of the color"
 df738e0f8c.
Revert "strip down to the used pieces"
 commit 08d6cd788f.
Revert "move now combined ColorLB to location of last user"
 a19b18ad7c.
Revert "fold ColorListBox and ColorLB together"
 a989a0b1f2.
Revert "move ColorListBox beside sole thing that uses it"
 760a198e69.
Revert "extensions leaks out details of Color Selector, patch it up"
 8bea644d61.
Revert "inherit FillAttrLB from ListBox not ColorListBox"
 d2ce812f1d.
Revert "unify color selectors"
 43bc303148.
2016-11-05 13:42:40 -05:00

89 lines
3.3 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/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_SVX_PALETTEMANAGER_HXX
#define INCLUDED_SVX_PALETTEMANAGER_HXX
#include <svx/SvxColorValueSet.hxx>
#include <svx/Palette.hxx>
#include <rtl/ustring.hxx>
#include <svx/tbxcolorupdate.hxx>
#include <tools/urlobj.hxx>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/util/XURLTransformer.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <deque>
#include <vector>
#include <memory>
class SVX_DLLPUBLIC PaletteManager
{
const sal_uInt16 mnMaxRecentColors;
sal_uInt16 mnNumOfPalettes;
sal_uInt16 mnCurrentPalette;
long mnColorCount;
svx::ToolboxButtonColorUpdater* mpBtnUpdater;
XColorListRef pColorList;
Color mLastColor;
typedef std::pair<Color, OUString> color_and_name;
std::deque<color_and_name> maRecentColors;
std::vector<std::unique_ptr<Palette>> m_Palettes;
std::function<void(const OUString&, const Color&)> maColorSelectFunction;
css::uno::Reference < css::uno::XComponentContext > m_context;
public:
PaletteManager();
~PaletteManager();
PaletteManager(const PaletteManager&) = delete;
PaletteManager& operator=(const PaletteManager&) = delete;
void LoadPalettes();
void ReloadColorSet(SvxColorValueSet& rColorSet);
void ReloadRecentColorSet(SvxColorValueSet& rColorSet);
std::vector<OUString> GetPaletteList();
void SetPalette( sal_Int32 nPos );
sal_Int32 GetPalette();
sal_Int32 GetPaletteCount() { return mnNumOfPalettes; }
OUString GetPaletteName();
OUString GetSelectedPalettePath();
long GetColorCount();
long GetRecentColorCount();
const Color& GetLastColor();
void SetLastColor(const Color& rLastColor);
void AddRecentColor(const Color& rRecentColor, const OUString& rColorName);
void SetBtnUpdater(svx::ToolboxButtonColorUpdater* pBtnUpdater);
void PopupColorPicker(const OUString& aCommand);
void SetColorSelectFunction(const std::function<void(const OUString&, const Color&)>& aColorSelectFunction);
static void DispatchColorCommand(const OUString& aCommand, const Color& rColor);
};
#endif // INCLUDED_SVX_PALETTEMANAGER_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */