///////////////////////////////////////////////////////////////////////////// // Name: pokegen/TilemapModel.h // Purpose: Provides a model for tiles in the tilemap editor // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Tue Feb 5 18:40:57 2008 // Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions // Licence: // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU 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 General Public License for more details. // // You should have received a copy of the GNU General Public License along // with this program. If not, see . ///////////////////////////////////////////////////////////////////////////// #ifndef __POKEMODR_TILEMAPMODEL__ #define __POKEMODR_TILEMAPMODEL__ #include #include #include #include #include class TilemapModel : public QAbstractTableModel { Q_OBJECT public: TilemapModel(QObject* parent, Matrix* tilemap, const Pokemod* mod); void apply(); void discard(); int rowCount(const QModelIndex& = QModelIndex()) const; int columnCount(const QModelIndex& = QModelIndex()) const; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); Qt::ItemFlags flags(const QModelIndex&) const; bool addRow(); bool addColumn(); bool insertRows(int row, int count, const QModelIndex& = QModelIndex()); bool insertColumns(int column, int count, const QModelIndex& = QModelIndex()); bool removeRows(int row, int count, const QModelIndex& = QModelIndex()); bool removeColumns(int column, int count, const QModelIndex& = QModelIndex()); private: Matrix* map; const Pokemod* pokemod; }; #endif