summaryrefslogtreecommitdiff
path: root/src/pmview/gridobj.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmview/gridobj.h')
-rw-r--r--src/pmview/gridobj.h107
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_ */