QmlMaterial 0.1.0
Loading...
Searching...
No Matches
helper.hpp
1#pragma once
2
3#include <QtCore/QObject>
4#include <QtGui/QColor>
5
6#include "qml_material/core/enum.hpp"
7
8#include "cpp/palettes/tones.h"
9
10namespace qml_material
11{
12struct MdScheme {
13 QRgb primary;
14 QRgb on_primary;
15 QRgb primary_container;
16 QRgb on_primary_container;
17 QRgb primary_fixed;
18 QRgb primary_fixed_dim;
19 QRgb on_primary_fixed;
20 QRgb on_primary_fixed_variant;
21 QRgb secondary;
22 QRgb on_secondary;
23 QRgb secondary_container;
24 QRgb on_secondary_container;
25 QRgb secondary_fixed;
26 QRgb secondary_fixed_dim;
27 QRgb on_secondary_fixed;
28 QRgb on_secondary_fixed_variant;
29 QRgb tertiary;
30 QRgb on_tertiary;
31 QRgb tertiary_container;
32 QRgb on_tertiary_container;
33 QRgb tertiary_fixed;
34 QRgb tertiary_fixed_dim;
35 QRgb on_tertiary_fixed;
36 QRgb on_tertiary_fixed_variant;
37 QRgb error;
38 QRgb on_error;
39 QRgb error_container;
40 QRgb on_error_container;
41 QRgb background;
42 QRgb on_background;
43 QRgb surface;
44 QRgb on_surface;
45 QRgb surface_variant;
46 QRgb on_surface_variant;
47 QRgb outline;
48 QRgb outline_variant;
49 QRgb shadow;
50 QRgb scrim;
51 QRgb inverse_surface;
52 QRgb inverse_on_surface;
53 QRgb inverse_primary;
54
55 // surface
56 QRgb surface_1;
57 QRgb surface_2;
58 QRgb surface_3;
59 QRgb surface_4;
60 QRgb surface_5;
61
62 // surface v2
63 QRgb surface_dim;
64 QRgb surface_bright;
65 QRgb surface_container;
66 QRgb surface_container_low;
67 QRgb surface_container_lowest;
68 QRgb surface_container_high;
69 QRgb surface_container_highest;
70
71 material_color_utilities::TonalPalette neutral_palette { 0 };
72};
73
74auto material_light_color_scheme(QRgb, Enum::PaletteType) -> MdScheme;
75auto material_dark_color_scheme(QRgb, Enum::PaletteType) -> MdScheme;
76
77auto material_blend_hcthue(const QRgb design_color, const QRgb key_color, const double mount) -> QRgb;
78auto color_from_image(const QImage&) -> QRgb;
79} // namespace qml_material