File indexing completed on 2024-04-28 04:05:03
0001 /* 0002 SPDX-FileCopyrightText: 2010 Stefan Majewsky <majewsky@gmx.net> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #ifndef KGAMERENDEREDITEM_H 0008 #define KGAMERENDEREDITEM_H 0009 0010 // own 0011 #include "kdegames_export.h" 0012 #include "kgamerendererclient.h" 0013 // Qt 0014 #include <QGraphicsItem> 0015 // Std 0016 #include <memory> 0017 0018 class KGameRenderedItemPrivate; 0019 0020 /** 0021 * @class KGameRenderedItem kgamerendereditem.h <KGameRenderedItem> 0022 * @short A QGraphicsPixmapItem which reacts to theme changes automatically. 0023 * 0024 * This class is a QGraphicsPixmapItem which retrieves its pixmap from a 0025 * KGameRenderer, and updates it automatically when the KGameRenderer changes 0026 * the theme. 0027 * @since 4.6 0028 */ 0029 class KDEGAMES_EXPORT KGameRenderedItem : public QGraphicsPixmapItem, public KGameRendererClient 0030 { 0031 public: 0032 /// Creates a new KGameRenderedItem which renders the sprite with the 0033 /// given @a spriteKey as provided by the given @a renderer. 0034 KGameRenderedItem(KGameRenderer *renderer, const QString &spriteKey, QGraphicsItem *parent = nullptr); 0035 ~KGameRenderedItem() override; 0036 0037 protected: 0038 void receivePixmap(const QPixmap &pixmap) override; 0039 0040 private: 0041 friend class KGameRenderedItemPrivate; 0042 std::unique_ptr<KGameRenderedItemPrivate> const d_ptr; 0043 Q_DECLARE_PRIVATE(KGameRenderedItem) 0044 }; 0045 0046 #endif // KGAMERENDEREDITEM_H