ArchitectureColoredPainting/qt-material-widgets/components/lib/qtmaterialtheme.h

345 lines
6.3 KiB
C
Raw Permalink Normal View History

2023-03-06 12:38:25 +08:00
#ifndef QTMATERIALTHEME_H
#define QTMATERIALTHEME_H
#include <QObject>
#include <QScopedPointer>
#include <QColor>
#include <QIcon>
namespace Material
{
enum ButtonPreset {
FlatPreset,
CheckablePreset
};
enum RippleStyle {
CenteredRipple,
PositionedRipple,
NoRipple
};
enum OverlayStyle {
NoOverlay,
TintedOverlay,
GrayOverlay
};
enum Role {
Default,
Primary,
Secondary
};
enum ButtonIconPlacement {
LeftIcon,
RightIcon
};
enum ProgressType {
DeterminateProgress,
IndeterminateProgress
};
enum AvatarType {
ImageAvatar,
IconAvatar,
LetterAvatar
};
enum Color {
red50,
red100,
red200,
red300,
red400,
red500,
red600,
red700,
red800,
red900,
redA100,
redA200,
redA400,
redA700,
pink50,
pink100,
pink200,
pink300,
pink400,
pink500,
pink600,
pink700,
pink800,
pink900,
pinkA100,
pinkA200,
pinkA400,
pinkA700,
purple50,
purple100,
purple200,
purple300,
purple400,
purple500,
purple600,
purple700,
purple800,
purple900,
purpleA100,
purpleA200,
purpleA400,
purpleA700,
deepPurple50,
deepPurple100,
deepPurple200,
deepPurple300,
deepPurple400,
deepPurple500,
deepPurple600,
deepPurple700,
deepPurple800,
deepPurple900,
deepPurpleA100,
deepPurpleA200,
deepPurpleA400,
deepPurpleA700,
indigo50,
indigo100,
indigo200,
indigo300,
indigo400,
indigo500,
indigo600,
indigo700,
indigo800,
indigo900,
indigoA100,
indigoA200,
indigoA400,
indigoA700,
blue50,
blue100,
blue200,
blue300,
blue400,
blue500,
blue600,
blue700,
blue800,
blue900,
blueA100,
blueA200,
blueA400,
blueA700,
lightBlue50,
lightBlue100,
lightBlue200,
lightBlue300,
lightBlue400,
lightBlue500,
lightBlue600,
lightBlue700,
lightBlue800,
lightBlue900,
lightBlueA100,
lightBlueA200,
lightBlueA400,
lightBlueA700,
cyan50,
cyan100,
cyan200,
cyan300,
cyan400,
cyan500,
cyan600,
cyan700,
cyan800,
cyan900,
cyanA100,
cyanA200,
cyanA400,
cyanA700,
teal50,
teal100,
teal200,
teal300,
teal400,
teal500,
teal600,
teal700,
teal800,
teal900,
tealA100,
tealA200,
tealA400,
tealA700,
green50,
green100,
green200,
green300,
green400,
green500,
green600,
green700,
green800,
green900,
greenA100,
greenA200,
greenA400,
greenA700,
lightGreen50,
lightGreen100,
lightGreen200,
lightGreen300,
lightGreen400,
lightGreen500,
lightGreen600,
lightGreen700,
lightGreen800,
lightGreen900,
lightGreenA100,
lightGreenA200,
lightGreenA400,
lightGreenA700,
lime50,
lime100,
lime200,
lime300,
lime400,
lime500,
lime600,
lime700,
lime800,
lime900,
limeA100,
limeA200,
limeA400,
limeA700,
yellow50,
yellow100,
yellow200,
yellow300,
yellow400,
yellow500,
yellow600,
yellow700,
yellow800,
yellow900,
yellowA100,
yellowA200,
yellowA400,
yellowA700,
amber50,
amber100,
amber200,
amber300,
amber400,
amber500,
amber600,
amber700,
amber800,
amber900,
amberA100,
amberA200,
amberA400,
amberA700,
orange50,
orange100,
orange200,
orange300,
orange400,
orange500,
orange600,
orange700,
orange800,
orange900,
orangeA100,
orangeA200,
orangeA400,
orangeA700,
deepOrange50,
deepOrange100,
deepOrange200,
deepOrange300,
deepOrange400,
deepOrange500,
deepOrange600,
deepOrange700,
deepOrange800,
deepOrange900,
deepOrangeA100,
deepOrangeA200,
deepOrangeA400,
deepOrangeA700,
brown50,
brown100,
brown200,
brown300,
brown400,
brown500,
brown600,
brown700,
brown800,
brown900,
blueGrey50,
blueGrey100,
blueGrey200,
blueGrey300,
blueGrey400,
blueGrey500,
blueGrey600,
blueGrey700,
blueGrey800,
blueGrey900,
grey50,
grey100,
grey200,
grey300,
grey400,
grey500,
grey600,
grey700,
grey800,
grey900,
black,
white,
transparent,
fullBlack,
darkBlack,
lightBlack,
minBlack,
faintBlack,
fullWhite,
darkWhite,
lightWhite
};
}
class QtMaterialThemePrivate;
class QtMaterialTheme : public QObject
{
Q_OBJECT
public:
explicit QtMaterialTheme(QObject *parent = 0);
~QtMaterialTheme();
QColor getColor(const QString &key) const;
void setColor(const QString &key, const QColor &color);
void setColor(const QString &key, Material::Color color);
static QIcon icon(QString category, QString icon);
protected:
const QScopedPointer<QtMaterialThemePrivate> d_ptr;
private:
Q_DISABLE_COPY(QtMaterialTheme)
Q_DECLARE_PRIVATE(QtMaterialTheme)
};
#endif // QTMATERIALTHEME_H