diff options
Diffstat (limited to 'src/pmview/gridobj.h')
-rw-r--r-- | src/pmview/gridobj.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/pmview/gridobj.h b/src/pmview/gridobj.h new file mode 100644 index 0000000..f19dbd4 --- /dev/null +++ b/src/pmview/gridobj.h @@ -0,0 +1,107 @@ +/* + * Copyright (c) 1997 Silicon Graphics, Inc. All Rights Reserved. + * Copyright (c) 2009 Aconex. All Rights Reserved. + * + * 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 2 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. + */ +#ifndef _GRIDOBJ_H_ +#define _GRIDOBJ_H_ + +#include "baseobj.h" +#include "defaultobj.h" +#include <QtCore/QVector> + +struct GridItem +{ + ViewObj *_item; + int _row; + int _col; +}; + +typedef QList<GridItem> GridList; + +class GridObj : public BaseObj +{ +protected: + + int _minDepth; + int _minWidth; + int _width; + int _depth; + GridList _list; + QVector<int> _rowDepth; + QVector<int> _colWidth; + bool _finished; + DefaultObj _defs; + + static int theDefRowDepth; + static int theDefColWidth; + +public: + + virtual ~GridObj(); + + GridObj(bool onFlag, + const DefaultObj &defaults, + int x, int y, + int cols = 1, int rows = 1, + GridObj::Alignment align = GridObj::center); + + DefaultObj * defs() { return & _defs; } + + int numObj() const + { return _list.size(); } + int minDepth() const + { return _minDepth; } + int minWidth() const + { return _minWidth; } + int rows() const + { return _rowDepth.size(); } + int cols() const + { return _colWidth.size(); } + + // Local changes + int &minDepth() + { return _minDepth; } + int &minWidth() + { return _minWidth; } + + virtual int width() const + { return _width; } + virtual int depth() const + { return _depth; } + + virtual void setTran(float xTran, float zTran, int width, int depth); + + void addObj(ViewObj *obj, int col, int row); + + virtual void finishedAdd(); + + // Output + virtual void display(QTextStream& os) const; + + virtual const char* name() const + { return "Grid"; } + + friend QTextStream& operator<<(QTextStream& os, GridObj const& rhs); + +protected: + + void add(Modulate *mod); + +private: + + GridObj(); + GridObj(GridObj const &); + GridObj const& operator=(GridObj const &); +}; + +#endif /* _GRIDOBJ_H_ */ |