1 // SPDX-License-Identifier: LGPL-2.1-or-later 2 // 3 // SPDX-FileCopyrightText: 2009 Bastian Holst <bastianholst@gmx.de> 4 // 5 6 #ifndef MARBLE_SCREENGRAPHICSITEM_H 7 #define MARBLE_SCREENGRAPHICSITEM_H 8 9 // Marble 10 #include "MarbleGraphicsItem.h" 11 #include "marble_export.h" 12 13 // Qt 14 #include <QVector> 15 16 namespace Marble 17 { 18 19 class ScreenGraphicsItemPrivate; 20 21 class MARBLE_EXPORT ScreenGraphicsItem : public MarbleGraphicsItem 22 { 23 public: 24 enum GraphicsItemFlag { 25 ItemIsMovable = 0x1, 26 ItemIsHideable = 0x2 27 }; 28 Q_DECLARE_FLAGS(GraphicsItemFlags, GraphicsItemFlag) 29 30 explicit ScreenGraphicsItem( MarbleGraphicsItem *parent = nullptr ); 31 32 ~ScreenGraphicsItem() override; 33 34 /** 35 * @brief Set the position of the ScreenGraphicsItem 36 * @param position Position 37 * 38 * Positive x-coordinates are counted left-aligned from the left border of the parent item. 39 * Negative x-coordinates are counted right-aligned from the right border of the parent item. 40 * 41 * Positive y-coordinates are counted top-aligned from the top border of the parent item. 42 * Negative y-coordinates are counted right-aligned from the bottom border of the parent item. 43 */ 44 void setPosition( const QPointF& position ); 45 46 /** 47 * @brief Return the position of the ScreenGraphicsItem 48 * 49 * Positive x-coordinates are counted left-aligned from the left border of the parent item. 50 * Negative x-coordinates are counted right-aligned from the right border of the parent item. 51 * 52 * Positive y-coordinates are counted top-aligned from the top border of the parent item. 53 * Negative y-coordinates are counted right-aligned from the bottom border of the parent item. 54 */ 55 QPointF position() const; 56 57 /** 58 * @brief Return the positive position of the ScreenGraphicsItem 59 * 60 * All coordinates are counted positive and depend on the current viewport. 61 * 62 * Positive x-coordinates are counted left-aligned from the left border of the parent item. 63 * Positive y-coordinates are counted top-aligned from the top border of the parent item. 64 */ 65 QPointF positivePosition() const; 66 67 /** 68 * @brief Return the absolute position of the ScreenGraphicsItem 69 * 70 * All coordinates are counted positive and depend on the current viewport. 71 * 72 * Positive x-coordinates are counted left-aligned from the left border of the map. 73 * Positive y-coordinates are counted top-aligned from the top border of the map. 74 * @since 0.26.0 75 */ 76 QVector<QPointF> absolutePositions() const; 77 78 /** 79 * Returns the flags of the item. 80 */ 81 GraphicsItemFlags flags() const; 82 83 /** 84 * Sets the flags to flags. All flags in flags will be enabled and all other flags will 85 * be disabled. By default all flags are disabled. 86 */ 87 void setFlags( GraphicsItemFlags flags ); 88 89 protected: 90 explicit ScreenGraphicsItem(ScreenGraphicsItemPrivate *dd); 91 92 bool eventFilter( QObject *, QEvent * ) override; 93 94 private: 95 Q_DECLARE_PRIVATE(ScreenGraphicsItem) 96 }; 97 98 } // Namespace Marble 99 100 #endif 101