matrixion/src/ui/Theme.h

78 lines
1.5 KiB
C
Raw Normal View History

2021-03-05 02:35:15 +03:00
// SPDX-FileCopyrightText: 2021 Nheko Contributors
//
// SPDX-License-Identifier: GPL-3.0-or-later
#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
{
FlatPreset,
CheckablePreset
};
2017-04-06 02:06:42 +03:00
2017-10-15 22:08:51 +03:00
enum class RippleStyle
{
CenteredRipple,
PositionedRipple,
NoRipple
};
2017-04-06 02:06:42 +03:00
2017-10-15 22:08:51 +03:00
enum class OverlayStyle
{
NoOverlay,
TintedOverlay,
GrayOverlay
};
2017-04-06 02:06:42 +03:00
2017-10-15 22:08:51 +03:00
enum class Role
{
Default,
Primary,
Secondary
};
2017-04-06 02:06:42 +03:00
2017-10-15 22:08:51 +03:00
enum class ButtonIconPlacement
{
LeftIcon,
RightIcon
};
2017-04-06 02:06:42 +03:00
2017-10-15 22:08:51 +03:00
enum class ProgressType
{
DeterminateProgress,
IndeterminateProgress
};
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-05-15 00:35:34 +03:00
Q_GADGET
Q_PROPERTY(QColor sidebarBackground READ sidebarBackground CONSTANT)
2021-05-24 15:04:07 +03:00
Q_PROPERTY(QColor alternateButton READ alternateButton CONSTANT)
2021-05-15 00:35:34 +03:00
Q_PROPERTY(QColor separator READ separator CONSTANT)
2021-05-21 22:19:03 +03:00
Q_PROPERTY(QColor red READ red CONSTANT)
2017-04-06 02:06:42 +03:00
public:
2021-05-15 00:35:34 +03:00
Theme() {}
explicit Theme(std::string_view theme);
static QPalette paletteFromTheme(std::string_view theme);
2017-04-06 02:06:42 +03:00
2021-05-15 00:35:34 +03:00
QColor sidebarBackground() const { return sidebarBackground_; }
2021-05-24 15:04:07 +03:00
QColor alternateButton() const { return alternateButton_; }
2021-05-15 00:35:34 +03:00
QColor separator() const { return separator_; }
2021-05-21 22:19:03 +03:00
QColor red() const { return red_; }
2017-04-06 02:06:42 +03:00
private:
2021-05-24 15:04:07 +03:00
QColor sidebarBackground_, separator_, red_, alternateButton_;
2017-04-06 02:06:42 +03:00
};