Mercurial > bellaciao
view 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 |
line wrap: on
line source
/* Bellaciao: a Salut à Toi frontend Copyright (C) 2011 Jérôme Poisson (goffi@goffi.org) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef LAYOUT_VIEW_H #define LAYOUT_VIEW_H #include <QWidget> #include <QDragEnterEvent> #include "layout_widget.h" #define LAYOUT_WIDGET_MIME "application/x-bellaciao-widget" class WidgetView : public QLabel { Q_OBJECT public: WidgetView(const QString& name); }; class LayoutView : public QWidget { Q_OBJECT public: LayoutView(QWidget* parent=0); ~LayoutView(); void setLayoutWidgets(const QHash<QString, LayoutWidget*>& layout_widgets); void dragEnterEvent (QDragEnterEvent* event ); void dragLeaveEvent (QDragLeaveEvent* event ); void dragMoveEvent (QDragMoveEvent* event ); void dropEvent (QDropEvent * event); protected: void addWidget(const QString& name); void paintEvent(QPaintEvent* event); private: QHash<QString, LayoutWidget*> m_layout_widgets; QList<LayoutWidget> m_widgets_list; QVBoxLayout* m_layout; QRect m_loc_hint; int m_insert_pos; //position in the layout when a widget must be inserted }; #endif