Elaztek Developer Hub
Blamite Game Engine - Keystone  00373.04.16.23.1650.blamite
A library that enables the use of Qt in Blamite's editing tools.
drag_container.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QWidget>
4 #include <qlabel.h>
5 #include <qgraphicseffect.h>
6 #include "ui_drag_container.h"
7 
8 #include <Strings/components/classes/events/events.h>
9 
11 
12 class drag_list
13 {
14 public:
15  QBoxLayout* drag_layout = nullptr;
16 
17  void GenerateDropZones(bool clear_existing = true);
18 };
19 
20 class grip_frame : public QFrame
21 {
22 public:
23  grip_frame();
24 
25  void paintEvent(QPaintEvent* event) override;
26 };
27 
28 class drag_container : public QWidget, public BlamEventListener
29 {
30  Q_OBJECT
31 
32 private:
33  Ui::drag_container ui;
34 
35  bool enable_transparency_effects = false;
36  float drag_transparency = 0.5;
37 
38  QPoint click_point = QPoint(0, 0);
39  drag_list* parent_list = nullptr;
40  grip_frame* frame_grip = nullptr;
41  drag_drop_zone* active_drop_zone_widget = nullptr;
42  float move_distance = 0.0f;
43  bool click_start = false;
44  bool dragging = false;
45 
46  std::string style_click = "";
47  std::string style_drag = "";
48 
49  void GetDropInfo(int* insert_position, QLayoutItem** item);
50  void UpdateStylesheet();
51 
52 public:
53  drag_container(drag_list* _parent_list);
55 
56  void mousePressEvent(QMouseEvent* mouse_event) override;
57  void mouseMoveEvent(QMouseEvent* event) override;
58  void mouseReleaseEvent(QMouseEvent* mouse_event) override;
59 
60  void OnEditorThemeChangeEvent(EditorThemeChangeEvent* event) override;
61 };
drag_list::GenerateDropZones
void GenerateDropZones(bool clear_existing=true)
Definition: drag_list.cpp:5
drag_container::mousePressEvent
void mousePressEvent(QMouseEvent *mouse_event) override
Definition: drag_container.cpp:98
drag_drop_zone
Definition: drag_drop_zone.h:7
drag_container::~drag_container
~drag_container()
Definition: drag_container.cpp:93
drag_container
Definition: drag_container.h:28
grip_frame::grip_frame
grip_frame()
Definition: grip_frame.cpp:5
drag_container::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *event) override
Definition: drag_container.cpp:108
drag_list::drag_layout
QBoxLayout * drag_layout
Definition: drag_container.h:15
grip_frame
Definition: drag_container.h:20
drag_container::drag_container
drag_container(drag_list *_parent_list)
Definition: drag_container.cpp:17
drag_list
Definition: drag_container.h:12
drag_drop_zone.h
grip_frame::paintEvent
void paintEvent(QPaintEvent *event) override
Definition: grip_frame.cpp:14
drag_container::OnEditorThemeChangeEvent
void OnEditorThemeChangeEvent(EditorThemeChangeEvent *event) override
Definition: drag_container.cpp:216
drag_container::mouseReleaseEvent
void mouseReleaseEvent(QMouseEvent *mouse_event) override
Definition: drag_container.cpp:137