1 // SPDX-License-Identifier: LGPL-2.1-or-later 2 // 3 // SPDX-FileCopyrightText: 2009 Bastian Holst <bastianholst@gmx.de> 4 // 5 6 #ifndef MARBLE_LABELGRAPHICSITEM_H 7 #define MARBLE_LABELGRAPHICSITEM_H 8 9 // Marble 10 #include "FrameGraphicsItem.h" 11 #include "marble_export.h" 12 13 #include <QSize> 14 15 class QImage; 16 class QIcon; 17 18 namespace Marble 19 { 20 21 class LabelGraphicsItemPrivate; 22 23 /** 24 * A label item provides an Item that displays text or images/pixmaps. 25 * The text is displayed as plain text. 26 * The item also provides frames. 27 */ 28 class MARBLE_EXPORT LabelGraphicsItem : public FrameGraphicsItem 29 { 30 public: 31 explicit LabelGraphicsItem( MarbleGraphicsItem *parent = nullptr ); 32 ~LabelGraphicsItem() override; 33 34 void setContentSize( const QSizeF &contentSize ) override; 35 36 QString text() const; 37 void setText( const QString& text ); 38 39 QImage image() const; 40 void setImage( const QImage& image, const QSize& size = QSize() ); 41 42 QIcon icon() const; 43 void setIcon( const QIcon& icon, const QSize& size ); 44 45 void setMinimumSize( const QSizeF& size ); 46 QSizeF minimumSize() const; 47 48 void clear(); 49 50 protected: 51 void paintContent( QPainter *painter ) override; 52 53 private: 54 Q_DISABLE_COPY( LabelGraphicsItem ) 55 Q_DECLARE_PRIVATE(LabelGraphicsItem) 56 }; 57 58 } // namespace Marble 59 60 #endif 61