21 #ifndef TULIPFONTICONENGINE_H 22 #define TULIPFONTICONENGINE_H 24 #include <QIconEngine> 27 #include <tulip/tulipconf.h> 29 class TLP_QT_SCOPE TulipFontIconEngine :
public QIconEngine {
30 unsigned int codePoint;
33 void init(
const std::string &iconName);
36 TulipFontIconEngine(
const std::string &iconName);
37 TulipFontIconEngine(
const QString &iconName);
38 TulipFontIconEngine(
const TulipFontIconEngine &engine)
39 : QIconEngine(), codePoint(engine.codePoint), fontName(engine.fontName) {}
41 TulipFontIconEngine *clone()
const {
42 return new TulipFontIconEngine(*
this);
45 void paint(QPainter *painter,
const QRect &rect, QIcon::Mode mode, QIcon::State state)
override;
47 QPixmap pixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state)
override;
49 static inline QIcon icon(
const char *iconName) {
50 return QIcon(
new TulipFontIconEngine(std::string(iconName)));
53 static inline QIcon icon(
const std::string &iconName) {
54 return QIcon(
new TulipFontIconEngine(iconName));
57 static inline QIcon icon(
const QString &iconName) {
58 return QIcon(
new TulipFontIconEngine(iconName));
61 static inline QPixmap pixmap(
const std::string &iconName,
unsigned int height,
62 QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::On) {
63 return TulipFontIconEngine(iconName).pixmap(QSize(height, height), mode, state);
66 static inline QPixmap pixmap(
const QString &iconName,
unsigned int height,
67 QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::On) {
68 return TulipFontIconEngine(iconName).pixmap(QSize(height, height), mode, state);