1
0
Fork 0
libreoffice/include/vcl/themecolors.hxx
Daniel Baumann 8e63e14cf6
Adding upstream version 4:25.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 16:20:04 +02:00

143 lines
7 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/.
*/
#pragma once
#include <vcl/dllapi.h>
#include <svtools/colorcfg.hxx>
class VCL_DLLPUBLIC ThemeColors
{
ThemeColors() {}
static bool m_bIsThemeLoaded;
static ThemeColors m_aThemeColors;
public:
static ThemeColors& GetThemeColors() { return m_aThemeColors; }
static void SetThemeColors(const ThemeColors& rThemeColors) { m_aThemeColors = rThemeColors; }
static bool IsThemeLoaded() { return m_bIsThemeLoaded; }
static void SetThemeLoaded(bool bLoaded) { m_bIsThemeLoaded = bLoaded; }
static bool IsAutomaticTheme(std::u16string_view rThemeName)
{
return rThemeName == svtools::AUTOMATIC_COLOR_SCHEME;
}
void SetWindowColor(const Color& rColor) { m_aWindowColor = rColor; }
void SetWindowTextColor(const Color& rColor) { m_aWindowTextColor = rColor; }
void SetBaseColor(const Color& rColor) { m_aBaseColor = rColor; }
void SetButtonColor(const Color& rColor) { m_aButtonColor = rColor; }
void SetButtonTextColor(const Color& rColor) { m_aButtonTextColor = rColor; }
void SetAccentColor(const Color& rColor) { m_aAccentColor = rColor; }
void SetDisabledColor(const Color& rColor) { m_aDisabledColor = rColor; }
void SetDisabledTextColor(const Color& rColor) { m_aDisabledTextColor = rColor; }
void SetShadeColor(const Color& rColor) { m_aShadeColor = rColor; }
void SetSeparatorColor(const Color& rColor) { m_aSeparatorColor = rColor; }
void SetFaceColor(const Color& rColor) { m_aFaceColor = rColor; }
void SetActiveColor(const Color& rColor) { m_aActiveColor = rColor; }
void SetActiveTextColor(const Color& rColor) { m_aActiveTextColor = rColor; }
void SetActiveBorderColor(const Color& rColor) { m_aActiveBorderColor = rColor; }
void SetFieldColor(const Color& rColor) { m_aFieldColor = rColor; }
void SetMenuBarColor(const Color& rColor) { m_aMenuBarColor = rColor; }
void SetMenuBarTextColor(const Color& rColor) { m_aMenuBarTextColor = rColor; }
void SetMenuBarHighlightColor(const Color& rColor) { m_aMenuBarHighlightColor = rColor; }
void SetMenuBarHighlightTextColor(const Color& rColor)
{
m_aMenuBarHighlightTextColor = rColor;
}
void SetMenuColor(const Color& rColor) { m_aMenuColor = rColor; }
void SetMenuTextColor(const Color& rColor) { m_aMenuTextColor = rColor; }
void SetMenuHighlightColor(const Color& rColor) { m_aMenuHighlightColor = rColor; }
void SetMenuHighlightTextColor(const Color& rColor) { m_aMenuhighlightTextColor = rColor; }
void SetMenuBorderColor(const Color& rColor) { m_aMenuBorderColor = rColor; }
void SetInactiveColor(const Color& rColor) { m_aInactiveColor = rColor; }
void SetInactiveTextColor(const Color& rColor) { m_aInactiveTextColor = rColor; }
void SetInactiveBorderColor(const Color& rColor) { m_aInactiveBorderColor = rColor; }
void SetThemeName(const OUString& rName) { m_sThemeName = rName; }
void SetAppBackBitmapFileName(const OUString& rBitmapStr)
{
m_aAppBackBitmapFileName = rBitmapStr;
}
void SetAppBackBitmapStretched(bool bStretched) { m_bStretched = bStretched; }
void SetAppBackUseBitmap(bool bDrawBitmap) { m_bUseBitmapForAppBack = bDrawBitmap; }
const Color& GetWindowColor() const { return m_aWindowColor; }
const Color& GetWindowTextColor() const { return m_aWindowTextColor; }
const Color& GetBaseColor() const { return m_aBaseColor; }
const Color& GetButtonColor() const { return m_aButtonColor; }
const Color& GetButtonTextColor() const { return m_aButtonTextColor; }
const Color& GetAccentColor() const { return m_aAccentColor; }
const Color& GetDisabledColor() const { return m_aDisabledColor; }
const Color& GetDisabledTextColor() const { return m_aDisabledTextColor; }
const Color& GetShadeColor() const { return m_aShadeColor; }
const Color& GetSeparatorColor() const { return m_aSeparatorColor; }
const Color& GetFaceColor() const { return m_aFaceColor; }
const Color& GetActiveColor() const { return m_aActiveColor; }
const Color& GetActiveTextColor() const { return m_aActiveTextColor; }
const Color& GetActiveBorderColor() const { return m_aActiveBorderColor; }
const Color& GetFieldColor() const { return m_aFieldColor; }
const Color& GetMenuBarColor() const { return m_aMenuBarColor; }
const Color& GetMenuBarTextColor() const { return m_aMenuBarTextColor; }
const Color& GetMenuBarHighlightColor() const { return m_aMenuBarHighlightColor; }
const Color& GetMenuBarHighlightTextColor() const { return m_aMenuBarHighlightTextColor; }
const Color& GetMenuColor() const { return m_aMenuColor; }
const Color& GetMenuTextColor() const { return m_aMenuTextColor; }
const Color& GetMenuHighlightColor() const { return m_aMenuHighlightColor; }
const Color& GetMenuHighlightTextColor() const { return m_aMenuhighlightTextColor; }
const Color& GetMenuBorderColor() const { return m_aMenuBorderColor; }
const Color& GetInactiveColor() const { return m_aInactiveColor; }
const Color& GetInactiveTextColor() const { return m_aInactiveTextColor; }
const Color& GetInactiveBorderColor() const { return m_aInactiveBorderColor; }
const OUString& GetThemeName() const { return m_sThemeName; }
const OUString& GetAppBackBitmapFileName() const { return m_aAppBackBitmapFileName; }
bool IsAppBackBitmapStretched() { return m_bStretched; }
bool GetAppBackUseBitmap() { return m_bUseBitmapForAppBack; }
private:
Color m_aWindowColor;
Color m_aWindowTextColor;
Color m_aBaseColor;
Color m_aButtonColor;
Color m_aButtonTextColor;
Color m_aAccentColor;
Color m_aDisabledColor;
Color m_aDisabledTextColor;
Color m_aShadeColor;
Color m_aSeparatorColor;
Color m_aFaceColor;
Color m_aActiveColor;
Color m_aActiveTextColor;
Color m_aActiveBorderColor;
Color m_aFieldColor;
Color m_aMenuBarColor;
Color m_aMenuBarTextColor;
Color m_aMenuBarHighlightColor;
Color m_aMenuBarHighlightTextColor;
Color m_aMenuColor;
Color m_aMenuTextColor;
Color m_aMenuHighlightColor;
Color m_aMenuhighlightTextColor;
Color m_aMenuBorderColor;
Color m_aInactiveColor;
Color m_aInactiveTextColor;
Color m_aInactiveBorderColor;
OUString m_sThemeName;
// using values for now as only one element is bitmap customizable. but as the number increases
// we might want to replace these colors with structs similar to `struct ColorConfigValue`
// The actual bitmap object is in StyleSettings because we cannot have non primitive objects in
// static singleton classes as the order of initialization would be undefined.
bool m_bStretched = false;
bool m_bUseBitmapForAppBack = false;
OUString m_aAppBackBitmapFileName = "";
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */