Chatterino
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BaseWidget.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QShortcut>
4 #include <QWidget>
5 #include <boost/optional.hpp>
6 #include <pajlada/signals/signal.hpp>
7 #include <pajlada/signals/signalholder.hpp>
8 
9 namespace chatterino {
10 
11 class Theme;
12 class BaseWindow;
13 
14 class BaseWidget : public QWidget
15 {
16  Q_OBJECT
17 
18 public:
19  explicit BaseWidget(QWidget *parent = nullptr,
20  Qt::WindowFlags f = Qt::WindowFlags());
21 
22  virtual float scale() const;
23  pajlada::Signals::Signal<float> scaleChanged;
24 
25  boost::optional<float> overrideScale() const;
26  void setOverrideScale(boost::optional<float>);
27 
28  QSize scaleIndependantSize() const;
29  int scaleIndependantWidth() const;
30  int scaleIndependantHeight() const;
31  void setScaleIndependantSize(int width, int height);
32  void setScaleIndependantSize(QSize);
33  void setScaleIndependantWidth(int value);
34  void setScaleIndependantHeight(int value);
35 
36  float qtFontScale() const;
37 
38 protected:
39  virtual void childEvent(QChildEvent *) override;
40  virtual void showEvent(QShowEvent *) override;
41 
42  virtual void scaleChangedEvent(float newScale);
43  virtual void themeChangedEvent();
44  [[deprecated("addShortcuts called without overriding it")]] virtual void
46  {
47  }
48 
49  void setScale(float value);
50 
52 
53  std::vector<QShortcut *> shortcuts_;
54  void clearShortcuts();
55  pajlada::Signals::SignalHolder signalHolder_;
56 
57 private:
58  float scale_{1.f};
59  boost::optional<float> overrideScale_;
60  QSize scaleIndependantSize_;
61 
62  std::vector<BaseWidget *> widgets_;
63 
64  friend class BaseWindow;
65 };
66 
67 } // namespace chatterino
boost::optional< float > overrideScale() const
Definition: BaseWidget.cpp:74
void setOverrideScale(boost::optional< float >)
Definition: BaseWidget.cpp:68
std::vector< QShortcut * > shortcuts_
Definition: BaseWidget.hpp:53
virtual void themeChangedEvent()
Definition: BaseWidget.cpp:174
int scaleIndependantWidth() const
Definition: BaseWidget.cpp:84
Definition: BaseWindow.hpp:20
Definition: Application.cpp:48
virtual void showEvent(QShowEvent *) override
Definition: BaseWidget.cpp:164
pajlada::Signals::SignalHolder signalHolder_
Definition: BaseWidget.hpp:55
Theme * theme
Definition: BaseWidget.hpp:51
void setScale(float value)
Definition: BaseWidget.cpp:57
QSize scaleIndependantSize() const
Definition: BaseWidget.cpp:79
void setScaleIndependantWidth(int value)
Definition: BaseWidget.cpp:113
pajlada::Signals::Signal< float > scaleChanged
Definition: BaseWidget.hpp:23
virtual void childEvent(QChildEvent *) override
Definition: BaseWidget.cpp:138
virtual void scaleChangedEvent(float newScale)
Definition: BaseWidget.cpp:170
void setScaleIndependantHeight(int value)
Definition: BaseWidget.cpp:119
int scaleIndependantHeight() const
Definition: BaseWidget.cpp:89
float qtFontScale() const
Definition: BaseWidget.cpp:125
void clearShortcuts()
Definition: BaseWidget.cpp:30
void setScaleIndependantSize(int width, int height)
Definition: BaseWidget.cpp:94
BaseWidget(QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
Definition: BaseWidget.cpp:18
virtual float scale() const
Definition: BaseWidget.cpp:41
Definition: BaseWidget.hpp:14
virtual void addShortcuts()
Definition: BaseWidget.hpp:45
Definition: Theme.hpp:15