Mercurial > bellaciao
view layout_widget.h @ 11:98485ebbdb86 default tip
LayoutView: WidgetViewBox fix
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 27 Aug 2011 00:31:20 +0200 |
parents | c63d67895cbe |
children |
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_WIDGETS_H #define LAYOUT_WIDGETS_H #include <QtGui> #define LAYOUT_WIDGET_MIME "application/x-bellaciao-widget" typedef enum { NONE, BOOL, LIST } WidgetPropertyType; class WidgetProperty { public: WidgetProperty(const QString& name, const QString& tooltip); protected: QString m_name, m_tooltip; WidgetPropertyType m_type; }; class WidgetPropertyBool: public WidgetProperty { public: WidgetPropertyBool(const QString& name, bool checked=false, const QString& tooltip = QString()); protected: bool m_checked; }; class LayoutWidget { public: LayoutWidget(const QString &name, const QString& icon=""); ~LayoutWidget(); const QString& getName() const; private: QString m_name, m_icon; QList<WidgetProperty> m_properties; }; class LayoutWidgetModel: public QAbstractListModel { Q_OBJECT public: LayoutWidgetModel(QObject* parent=0); ~LayoutWidgetModel(); int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role) const; Qt::ItemFlags flags (const QModelIndex& index) const; QStringList mimeTypes() const; QMimeData* mimeData (const QModelIndexList& indexes ) const; void append(LayoutWidget* layout_widget); const QList<LayoutWidget*>& getLayoutWidgets() const; const QHash<QString, LayoutWidget*>& getLayoutWidgetsDict() const; private: QList<LayoutWidget*> m_layout_widgets; QHash<QString, LayoutWidget*> m_layout_widgets_dict; }; #endif