2021-03-05 02:35:15 +03:00
|
|
|
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
2017-05-16 21:46:45 +03:00
|
|
|
#pragma once
|
2017-04-06 02:06:42 +03:00
|
|
|
|
|
|
|
#include <QColor>
|
2021-05-15 00:35:34 +03:00
|
|
|
#include <QPalette>
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2017-10-15 22:08:51 +03:00
|
|
|
namespace ui {
|
2017-04-06 02:06:42 +03:00
|
|
|
// Default font size.
|
|
|
|
const int FontSize = 16;
|
|
|
|
|
|
|
|
// Default avatar size. Width and height.
|
|
|
|
const int AvatarSize = 40;
|
|
|
|
|
2017-10-15 22:08:51 +03:00
|
|
|
enum class ButtonPreset
|
|
|
|
{
|
2021-09-18 01:22:33 +03:00
|
|
|
FlatPreset,
|
|
|
|
CheckablePreset
|
2017-10-15 22:08:51 +03:00
|
|
|
};
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2017-10-15 22:08:51 +03:00
|
|
|
enum class RippleStyle
|
|
|
|
{
|
2021-09-18 01:22:33 +03:00
|
|
|
CenteredRipple,
|
|
|
|
PositionedRipple,
|
|
|
|
NoRipple
|
2017-10-15 22:08:51 +03:00
|
|
|
};
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2017-10-15 22:08:51 +03:00
|
|
|
enum class OverlayStyle
|
|
|
|
{
|
2021-09-18 01:22:33 +03:00
|
|
|
NoOverlay,
|
|
|
|
TintedOverlay,
|
|
|
|
GrayOverlay
|
2017-10-15 22:08:51 +03:00
|
|
|
};
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2017-10-15 22:08:51 +03:00
|
|
|
enum class Role
|
|
|
|
{
|
2021-09-18 01:22:33 +03:00
|
|
|
Default,
|
|
|
|
Primary,
|
|
|
|
Secondary
|
2017-10-15 22:08:51 +03:00
|
|
|
};
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2017-10-15 22:08:51 +03:00
|
|
|
enum class ButtonIconPlacement
|
|
|
|
{
|
2021-09-18 01:22:33 +03:00
|
|
|
LeftIcon,
|
|
|
|
RightIcon
|
2017-10-15 22:08:51 +03:00
|
|
|
};
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2017-10-15 22:08:51 +03:00
|
|
|
enum class ProgressType
|
|
|
|
{
|
2021-09-18 01:22:33 +03:00
|
|
|
DeterminateProgress,
|
|
|
|
IndeterminateProgress
|
2017-10-15 22:08:51 +03:00
|
|
|
};
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2017-08-20 13:47:22 +03:00
|
|
|
} // namespace ui
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2021-05-15 00:35:34 +03:00
|
|
|
class Theme : public QPalette
|
2017-04-06 02:06:42 +03:00
|
|
|
{
|
2021-09-18 01:22:33 +03:00
|
|
|
Q_GADGET
|
|
|
|
Q_PROPERTY(QColor sidebarBackground READ sidebarBackground CONSTANT)
|
|
|
|
Q_PROPERTY(QColor alternateButton READ alternateButton CONSTANT)
|
|
|
|
Q_PROPERTY(QColor separator READ separator CONSTANT)
|
|
|
|
Q_PROPERTY(QColor red READ red CONSTANT)
|
2021-11-12 20:08:01 +03:00
|
|
|
Q_PROPERTY(QColor error READ error CONSTANT)
|
2021-11-02 00:20:15 +03:00
|
|
|
Q_PROPERTY(QColor orange READ orange CONSTANT)
|
2017-04-06 02:06:42 +03:00
|
|
|
public:
|
2021-09-18 01:22:33 +03:00
|
|
|
Theme() {}
|
2021-12-29 10:05:29 +03:00
|
|
|
explicit Theme(QStringView theme);
|
|
|
|
static QPalette paletteFromTheme(QStringView theme);
|
2017-04-06 02:06:42 +03:00
|
|
|
|
2021-09-18 01:22:33 +03:00
|
|
|
QColor sidebarBackground() const { return sidebarBackground_; }
|
|
|
|
QColor alternateButton() const { return alternateButton_; }
|
|
|
|
QColor separator() const { return separator_; }
|
|
|
|
QColor red() const { return red_; }
|
2021-11-12 20:08:01 +03:00
|
|
|
QColor error() const { return QColor(0xdd, 0x3d, 0x3d); }
|
2021-11-02 00:20:15 +03:00
|
|
|
QColor orange() const { return orange_; }
|
2017-04-06 02:06:42 +03:00
|
|
|
|
|
|
|
private:
|
2021-11-02 00:20:15 +03:00
|
|
|
QColor sidebarBackground_, separator_, red_, orange_, alternateButton_;
|
2017-04-06 02:06:42 +03:00
|
|
|
};
|