HAL
node_drag_shadow.h
Go to the documentation of this file.
1 // MIT License
2 //
3 // Copyright (c) 2019 Ruhr University Bochum, Chair for Embedded Security. All Rights reserved.
4 // Copyright (c) 2019 Marc Fyrbiak, Sebastian Wallat, Max Hoffmann ("ORIGINAL AUTHORS"). All rights reserved.
5 // Copyright (c) 2021 Max Planck Institute for Security and Privacy. All Rights reserved.
6 // Copyright (c) 2021 Jörn Langheinrich, Julian Speith, Nils Albartus, René Walendy, Simon Klix ("ORIGINAL AUTHORS"). All Rights reserved.
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // The above copyright notice and this permission notice shall be included in all
16 // copies or substantial portions of the Software.
17 //
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 // SOFTWARE.
25 
26 #pragma once
27 
28 #include <QGraphicsItem>
29 #include <QRectF>
30 #include <QList>
31 
32 namespace hal
33 {
39  {
40 
41  public:
42  enum class DragCue
43  {
44  Movable = 0,
45  Swappable = 1,
46  Rejected = 2
47  };
48 
50 
51  void start(const QPointF& posF, const QSizeF& sizeF);
52  void stop();
53 
54  /*
55  qreal width() const;
56  qreal height() const;
57  QSizeF size() const;
58 
59  void setWidth(const qreal width);
60  void setHeight(const qreal height);
61 */
62 
63  void setVisualCue(const DragCue cue);
65 
66  static void setLod(const qreal lod);
67  static void loadSettings();
68 
69  protected:
70  void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = nullptr) override;
71  QRectF boundingRect() const override;
72  QPainterPath shape() const override;
73 
74  private:
75  static qreal sLod;
76  static QPen sPen;
77  static QColor sColorPen[];
78  static QColor sColorSolid[];
79  static QColor sColorTranslucent[];
80 
81  DragCue mCue;
82  QRectF mRect;
83  };
84 } // namespace hal
An item that is drawn when a node is dragged through the scene.
QRectF boundingRect() const override
void start(const QPointF &posF, const QSizeF &sizeF)
QList< QPoint > multiMoveGridPositions() const
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=nullptr) override
void setVisualCue(const DragCue cue)
QPainterPath shape() const override
static void loadSettings()
static void setLod(const qreal lod)
option(PL_GUI "PL_GUI" ON) if(PL_GUI OR BUILD_ALL_PLUGINS) cmake_minimum_required(VERSION 3.1.0) if(APPLE AND CMAKE_HOST_APPLE AND NOT Qt5_DIR) set(Qt5_DIR "/usr/local/opt/qt@5/lib/cmake") endif(APPLE AND CMAKE_HOST_APPLE AND NOT Qt5_DIR) find_package(Qt5 COMPONENTS Core REQUIRED) find_package(Qt5 COMPONENTS Widgets REQUIRED) if(Qt5Widgets_FOUND) message(VERBOSE "Qt5Widgets_INCLUDE_DIRS
Definition: CMakeLists.txt:1