grid.h
/***************************************************************************
** **
** GridView, a simple GridView made with Qt4 **
** Copyright (C) 2013 Sacha Schutz **
** **
** 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 http://www.gnu.org/licenses/. **
** **
****************************************************************************
** Author : Sacha Schutz **
** Website: http://www.labsquare.org **
** Email : sacha@labsquare.org **
** Date : 12.03.12 **
****************************************************************************/
#ifndef GRIDVIEW_H
#define GRIDVIEW_H
#include <QtGui>
#include <QWidget>
#include <QScrollArea>
#include <QVector>
class GridWidget;
class GridWidget : public QWidget
{
Q_OBJECT
public:
explicit GridWidget(int rowCount = 100, int columnCount =100,QWidget *parent = 0);
GridWidget(QWidget *parent);
void setGridSize(int rowCount, int columnCount);
void switchOn(int x,int y, const QColor& color);
QColor getCellColor(int x, int y) ;
void switchOff(int x, int y);
int getGridColumns() ;
int getGridRows() ;
void clear();
void setCellSize(int size);
void setTool(QString tool);
void setFront(QString front);
void setBack(QString back);
void setToolSize(int size);
void identifyTool(QString tool, int x, int y);
void Dot(int x, int y, QColor colorSelected);
void RowMajorFill(int x, int y, QColor colorClicked, QColor toolColor);
void ColMajorFill(int x, int y, QColor colorClicked, QColor toolColor);
void DiagonalLeft(int x, int y, QColor colorClicked, QColor toolColor);
void DiagonalRight(int x, int y, QColor colorClicked, QColor toolColor);
void square(int x, int y, QColor toolColor, int toolSize);
void triangle(int x, int y, QColor toolColor, int toolSize);
void circle(int x, int y, QColor toolColor, int toolSize);
void undo();
void redo();
protected:
void drawGrid(QPaintDevice * device);
virtual void paintEvent(QPaintEvent *);
virtual void mousePressEvent(QMouseEvent *);
signals:
void cellClicked(QPoint pos);
void canUndo(bool can);
void canRedo(bool can);
private:
int mCellSize;
int mRowCount;
int mColumnCount;
QPixmap mGridPix;
QHash<int, QColor > mColors;
QString Tool;
int ToolSize;
QColor frontColor;
QColor backColor;
QColor background;
QVector < QHash<int, QColor > > oldStates;
QVector < QHash<int, QColor > > newStates;
};
#endif // GRIDVIEW_H
GridWidget::frontColor
QColor frontColor
Definition: grid.h:452
GridWidget::Dot
void Dot(int x, int y, QColor colorSelected)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta la celda con el color del tool...
Definition: tools.cpp:17
GridWidget::mCellSize
int mCellSize
Definition: grid.h:437
GridWidget::circle
void circle(int x, int y, QColor toolColor, int toolSize)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta un circulo de el tamano y colo...
Definition: tools.cpp:243
GridWidget::mColumnCount
int mColumnCount
Definition: grid.h:441
GridWidget::getGridColumns
int getGridColumns()
Devuelve el numero de columnas en la cuadricula.
Definition: grid.cpp:302
GridWidget::mColors
QHash< int, QColor > mColors
Definition: grid.h:445
GridWidget::setGridSize
void setGridSize(int rowCount, int columnCount)
Ajusta el numero de columnas y fileas de la cuadricula.
Definition: grid.cpp:155
GridWidget::ToolSize
int ToolSize
Definition: grid.h:450
GridWidget::DiagonalLeft
void DiagonalLeft(int x, int y, QColor colorClicked, QColor toolColor)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta (desde ese punto diagonal) la ...
Definition: tools.cpp:111
GridWidget::triangle
void triangle(int x, int y, QColor toolColor, int toolSize)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta un triangulo de el tamano y co...
Definition: tools.cpp:213
GridWidget::getGridRows
int getGridRows()
Devuelve el numero de filas en la cuadricula.
Definition: grid.cpp:313
GridWidget::DiagonalRight
void DiagonalRight(int x, int y, QColor colorClicked, QColor toolColor)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta (desde ese punto diagonal) la ...
Definition: tools.cpp:147
GridWidget::oldStates
QVector< QHash< int, QColor > > oldStates
Definition: grid.h:458
GridWidget::mRowCount
int mRowCount
Definition: grid.h:439
GridWidget::mGridPix
QPixmap mGridPix
Definition: grid.h:443
GridWidget::switchOn
void switchOn(int x, int y, const QColor &color)
Guarda el color y la posicion dados en el vector que representa las celdas pintadas en la cuadricula...
Definition: grid.cpp:271
GridWidget::ColMajorFill
void ColMajorFill(int x, int y, QColor colorClicked, QColor toolColor)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta (desde ese punto hacia la arri...
Definition: tools.cpp:75
GridWidget::drawGrid
void drawGrid(QPaintDevice *device)
Funcion que primero ajusta el tamano del widget de la cuadricula, luego pinta las celdas con el color...
Definition: grid.cpp:370
GridWidget::backColor
QColor backColor
Definition: grid.h:454
GridWidget::switchOff
void switchOff(int x, int y)
Remueve la posicion dada del vector que representa las celdas pintadas en la cuadricula.
Definition: grid.cpp:328
GridWidget::redo
void redo()
Definition: grid.cpp:245
GridWidget::getCellColor
QColor getCellColor(int x, int y)
Devuelve el color de la celda en la posicion (x,y)
Definition: grid.cpp:289
GridWidget::Tool
QString Tool
Definition: grid.h:448
GridWidget::setTool
void setTool(QString tool)
Ajusta la herramienta.
Definition: grid.cpp:109
GridWidget::clear
void clear()
Limpa la cuadricula y la pone en su estado inicial.
Definition: grid.cpp:339
GridWidget::mousePressEvent
virtual void mousePressEvent(QMouseEvent *)
Cuando el raton (mouse) is marcada en una celda de la cuadricula obtiene las coordenadas x...
Definition: grid.cpp:186
GridWidget::newStates
QVector< QHash< int, QColor > > newStates
Definition: grid.h:460
GridWidget::setFront
void setFront(QString front)
Ajusta el color de la brocha.
Definition: grid.cpp:120
GridWidget::square
void square(int x, int y, QColor toolColor, int toolSize)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta un cuadrado de el tamano y col...
Definition: tools.cpp:181
GridWidget::setToolSize
void setToolSize(int size)
Ajusta el tamano de la herramienta.
Definition: grid.cpp:142
GridWidget::setBack
void setBack(QString back)
Ajusta el color del fondo.
Definition: grid.cpp:131
GridWidget::setCellSize
void setCellSize(int size)
Ajusta el tamano de las celdas de la cuadricula.
Definition: grid.cpp:354
GridWidget::RowMajorFill
void RowMajorFill(int x, int y, QColor colorClicked, QColor toolColor)
Recibe las coordenadas de la cuadricula donde el usuario marco y pinta (desde ese punto hacia la izq ...
Definition: tools.cpp:40
GridWidget
Definition: grid.h:42
GridWidget::background
QColor background
Definition: grid.h:456
GridWidget::identifyTool
void identifyTool(QString tool, int x, int y)
Esta funcion es llamada en cada evento de el mouse presionado dentro de la cuadricula. Identifica la forma en que el grid va a ser pintado llamando la funcion del tool recibido en los parametros (dot, rowfill, column fill, diagonal, square, triangles and circles).
Definition: grid.cpp:424
GridWidget::undo
void undo()
Cuando el boton es apretado el estado acutual es empujado en el vector(newStates) de redo y el ultimo...
Definition: grid.cpp:214
GridWidget::paintEvent
virtual void paintEvent(QPaintEvent *)
Esta funcion es invocada automaticmente cada ves que el widget o el padre recibe una senal de repinta...
Definition: grid.cpp:170