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