Mercurial > bellaciao
comparison layout_view.h @ 9:0d7875c26974
layout designer: hints on widget placement during drag and drop
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 26 Aug 2011 12:15:21 +0200 |
parents | c63d67895cbe |
children | 877a005c2b42 |
comparison
equal
deleted
inserted
replaced
8:c63d67895cbe | 9:0d7875c26974 |
---|---|
23 #include <QDragEnterEvent> | 23 #include <QDragEnterEvent> |
24 #include "layout_widget.h" | 24 #include "layout_widget.h" |
25 | 25 |
26 #define LAYOUT_WIDGET_MIME "application/x-bellaciao-widget" | 26 #define LAYOUT_WIDGET_MIME "application/x-bellaciao-widget" |
27 | 27 |
28 class WidgetView : public QLabel | |
29 { | |
30 Q_OBJECT | |
31 public: | |
32 WidgetView(const QString& name); | |
33 }; | |
28 | 34 |
29 class LayoutView : public QWidget | 35 class LayoutView : public QWidget |
30 { | 36 { |
31 Q_OBJECT | 37 Q_OBJECT |
32 | 38 |
33 public: | 39 public: |
34 LayoutView(QWidget* parent=0); | 40 LayoutView(QWidget* parent=0); |
35 ~LayoutView(); | 41 ~LayoutView(); |
36 void setLayoutWidgets(const QHash<QString, LayoutWidget*>& layout_widgets); | 42 void setLayoutWidgets(const QHash<QString, LayoutWidget*>& layout_widgets); |
37 void dragEnterEvent (QDragEnterEvent* event ); | 43 void dragEnterEvent (QDragEnterEvent* event ); |
44 void dragLeaveEvent (QDragLeaveEvent* event ); | |
38 void dragMoveEvent (QDragMoveEvent* event ); | 45 void dragMoveEvent (QDragMoveEvent* event ); |
39 void dropEvent (QDropEvent * event); | 46 void dropEvent (QDropEvent * event); |
40 protected: | 47 protected: |
41 void addWidget(const QString& name); | 48 void addWidget(const QString& name); |
49 void paintEvent(QPaintEvent* event); | |
42 private: | 50 private: |
43 QHash<QString, LayoutWidget*> m_layout_widgets; | 51 QHash<QString, LayoutWidget*> m_layout_widgets; |
44 QList<LayoutWidget> m_widgets_list; | 52 QList<LayoutWidget> m_widgets_list; |
45 QVBoxLayout* m_layout; | 53 QVBoxLayout* m_layout; |
54 QRect m_loc_hint; | |
55 int m_insert_pos; //position in the layout when a widget must be inserted | |
46 }; | 56 }; |
47 #endif | 57 #endif |