Guitar
Theme.h
Go to the documentation of this file.
1 #ifndef THEME_H
2 #define THEME_H
3 
4 #include <QImage>
5 #include <QPalette>
6 #include <memory>
7 #include "TextEditorTheme.h"
8 
9 #define USE_DARK_THEME
10 
11 class QStyle;
12 
14 public:
22 
23  AbstractTheme() = default;
24  virtual ~AbstractTheme() = default;
25  virtual QStyle *newStyle() = 0;
26  virtual QImage graphColorMap() = 0;
27 
28  virtual QPixmap resource_clear_png() = 0;
29  virtual QPixmap resource_maximize_png() = 0;
30  virtual QPixmap resource_menu_png() = 0;
31 };
32 
33 using ThemePtr = std::shared_ptr<AbstractTheme>;
34 
35 class LightTheme : public AbstractTheme {
36 public:
37  LightTheme() = default;
38  QStyle *newStyle() override;
39  QImage graphColorMap() override;
40  QPixmap resource_clear_png() override;
41  QPixmap resource_maximize_png() override;
42  QPixmap resource_menu_png() override;
43 };
45 
46 #ifdef USE_DARK_THEME
47 
48 class DarkTheme : public AbstractTheme {
49 public:
50  DarkTheme() = default;
51  QStyle *newStyle() override;
52  QImage graphColorMap() override;
53  QPixmap resource_clear_png() override;
54  QPixmap resource_maximize_png() override;
55  QPixmap resource_menu_png() override;
56 };
58 
59 #endif
60 
61 
62 #endif // THEME_H
AbstractTheme::AbstractTheme
AbstractTheme()=default
LightTheme::LightTheme
LightTheme()=default
createLightTheme
ThemePtr createLightTheme()
Definition: Theme.cpp:43
LightTheme::resource_menu_png
QPixmap resource_menu_png() override
Definition: Theme.cpp:38
AbstractTheme::diff_slider_del_bg
QColor diff_slider_del_bg
Definition: Theme.h:20
AbstractTheme::~AbstractTheme
virtual ~AbstractTheme()=default
LightTheme::graphColorMap
QImage graphColorMap() override
Definition: Theme.cpp:21
AbstractTheme::diff_slider_unknown_bg
QColor diff_slider_unknown_bg
Definition: Theme.h:18
AbstractTheme
Definition: Theme.h:13
DarkStyle.h
ThemePtr
std::shared_ptr< AbstractTheme > ThemePtr
Definition: Theme.h:33
AbstractTheme::text_editor_theme
TextEditorThemePtr text_editor_theme
Definition: Theme.h:15
AbstractTheme::resource_menu_png
virtual QPixmap resource_menu_png()=0
DarkTheme::resource_menu_png
QPixmap resource_menu_png() override
Definition: Theme.cpp:109
TextEditorTheme::Light
static TextEditorThemePtr Light()
Definition: TextEditorTheme.cpp:7
DarkTheme::resource_clear_png
QPixmap resource_clear_png() override
Definition: Theme.cpp:97
Theme.h
LightStyle
Definition: LightStyle.h:7
DarkTheme::graphColorMap
QImage graphColorMap() override
Definition: Theme.cpp:71
TextEditorTheme.h
TextEditorTheme::Dark
static TextEditorThemePtr Dark()
Definition: TextEditorTheme.cpp:25
AbstractTheme::dialog_header_frame_bg
QColor dialog_header_frame_bg
Definition: Theme.h:16
createDarkTheme
ThemePtr createDarkTheme()
Definition: Theme.cpp:115
DarkTheme::newStyle
QStyle * newStyle() override
Definition: Theme.cpp:66
TextEditorThemePtr
std::shared_ptr< TextEditorTheme > TextEditorThemePtr
Definition: TextEditorTheme.h:9
DarkTheme::DarkTheme
DarkTheme()=default
AbstractTheme::resource_maximize_png
virtual QPixmap resource_maximize_png()=0
DarkTheme
Definition: Theme.h:48
DarkTheme::resource_maximize_png
QPixmap resource_maximize_png() override
Definition: Theme.cpp:103
LightStyle.h
AbstractTheme::diff_slider_normal_bg
QColor diff_slider_normal_bg
Definition: Theme.h:17
AbstractTheme::graphColorMap
virtual QImage graphColorMap()=0
LightTheme::newStyle
QStyle * newStyle() override
Definition: Theme.cpp:16
AbstractTheme::diff_slider_handle
QColor diff_slider_handle
Definition: Theme.h:21
loadInvertedImage
static QImage loadInvertedImage(QString const &path)
Definition: Theme.cpp:78
AbstractTheme::diff_slider_add_bg
QColor diff_slider_add_bg
Definition: Theme.h:19
createLightTheme
ThemePtr createLightTheme()
Definition: Theme.cpp:43
LightTheme::resource_clear_png
QPixmap resource_clear_png() override
Definition: Theme.cpp:28
AbstractTheme::newStyle
virtual QStyle * newStyle()=0
LightTheme
Definition: Theme.h:35
createDarkTheme
ThemePtr createDarkTheme()
Definition: Theme.cpp:115
LightTheme::resource_maximize_png
QPixmap resource_maximize_png() override
Definition: Theme.cpp:33
DarkStyle
Definition: DarkStyle.h:8
AbstractTheme::resource_clear_png
virtual QPixmap resource_clear_png()=0