Qt ForkAwesome 0.2.0
Library that bundles ForkAwesome for use within Qt applications
Loading...
Searching...
No Matches
renderer.h
Go to the documentation of this file.
1#ifndef QT_FORK_AWESOME_RENDERER
2#define QT_FORK_AWESOME_RENDERER
3
4#include "./global.h"
5#include "./iconfwd.h"
6
7#include <QString>
8
9#include <memory>
10
11QT_FORWARD_DECLARE_CLASS(QByteArray)
12QT_FORWARD_DECLARE_CLASS(QColor)
13QT_FORWARD_DECLARE_CLASS(QPainter)
14QT_FORWARD_DECLARE_CLASS(QRect)
15QT_FORWARD_DECLARE_CLASS(QSize)
16QT_FORWARD_DECLARE_CLASS(QPaintDevice)
17QT_FORWARD_DECLARE_CLASS(QPixmap)
18QT_FORWARD_DECLARE_CLASS(QIcon)
19
20namespace QtForkAwesome {
21
23 struct InternalData;
24
25public:
26 explicit Renderer(const QString &fontFileName = QString());
27 explicit Renderer(const QByteArray &fontData);
28 ~Renderer();
29
30 operator bool() const;
31 void render(QChar character, QPainter *painter, const QRect &rect, const QColor &color) const;
32 void render(Icon icon, QPainter *painter, const QRect &rect, const QColor &color) const;
33
34 QPixmap pixmap(QChar icon, const QSize &size, const QColor &color, qreal scaleFactor) const;
35 QPixmap pixmap(Icon icon, const QSize &size, const QColor &color, qreal scaleFactor) const;
36 QPixmap pixmap(QChar icon, const QSize &size, const QColor &color) const;
37 QPixmap pixmap(Icon icon, const QSize &size, const QColor &color) const;
38
39 void addThemeOverride(QChar character, const QString &iconNameInTheme);
40 void addThemeOverride(Icon icon, const QString &iconNameInTheme);
41 void addOverride(QChar character, const QIcon &override);
42 void addOverride(Icon icon, const QIcon &override);
43 void setAssociatedPaintDevice(QPaintDevice *paintDevice);
44 void clearOverrides();
45
46 static Renderer &global();
47
48private:
49 std::unique_ptr<Renderer::InternalData> m_d;
50};
51
55inline void Renderer::render(Icon icon, QPainter *painter, const QRect &rect, const QColor &color) const
56{
57 render(QChar(static_cast<IconBaseType>(icon)), painter, rect, color);
58}
59
63inline void Renderer::addThemeOverride(Icon icon, const QString &iconNameInTheme)
64{
65 addThemeOverride(QChar(static_cast<IconBaseType>(icon)), iconNameInTheme);
66}
67
71inline void Renderer::addOverride(Icon icon, const QIcon &override)
72{
73 addOverride(QChar(static_cast<IconBaseType>(icon)), override);
74}
75
76} // namespace QtForkAwesome
77
78#endif // QT_FORK_AWESOME_RENDERER
Allows rendering a QtForkAwesome::Icon (or an arbitrary QChar using an arbitrary font file).
Definition renderer.h:22
#define QT_FORK_AWESOME_EXPORT
Marks the symbol to be exported by the qtforkawesome library.
Definition global.h:14
Contains classes provided by the QtForkAwesome library.
Definition renderer.h:20
Icon
The Icon enum specifies a ForkAwesome icon for calling QtForkAwesome::Renderer::render().
Definition icon.h:11
std::remove_reference_t< decltype(QChar().unicode())> IconBaseType
Definition iconfwd.h:10