summaryrefslogtreecommitdiff
path: root/svx/source/table/celltypes.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/table/celltypes.hxx')
-rw-r--r--svx/source/table/celltypes.hxx112
1 files changed, 112 insertions, 0 deletions
diff --git a/svx/source/table/celltypes.hxx b/svx/source/table/celltypes.hxx
new file mode 100644
index 000000000000..be2b22d249a1
--- /dev/null
+++ b/svx/source/table/celltypes.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: celltypes.hxx,v $
+ * $Revision: 1.3 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SVX_CELLTYPES_HXX_
+#define _SVX_CELLTYPES_HXX_
+
+#include <rtl/ref.hxx>
+#include <vector>
+
+namespace sdr { namespace table {
+
+class Cell;
+class TableModel;
+class TableRow;
+class TableColumn;
+class TableRows;
+class TableColumns;
+typedef rtl::Reference< Cell > CellRef;
+typedef rtl::Reference< TableModel > TableModelRef;
+typedef rtl::Reference< TableRow > TableRowRef;
+typedef rtl::Reference< TableColumn > TableColumnRef;
+typedef rtl::Reference< TableRows > TableRowsRef;
+typedef rtl::Reference< TableColumns > TableColumnsRef;
+typedef std::vector< CellRef > CellVector;
+typedef std::vector< TableRowRef > RowVector;
+typedef std::vector< TableColumnRef > ColumnVector;
+
+class TableDesignUser
+{
+public:
+ virtual bool isInUse() = 0;
+};
+
+template< typename T >
+class RangeIterator
+{
+public:
+ /** creates an iterator from rStart (including) to rEnd (excluding) if
+ bForeward is true or from nEnd (excluding to nStart (including).
+ rStart must be <= rEnd.
+ */
+ RangeIterator( const T& rStart, const T& rEnd, bool bForeward = true )
+ {
+ if( bForeward )
+ {
+ maIter = rStart;
+ maEnd = rEnd;
+ }
+ else
+ {
+ maIter = rEnd-1;
+ maEnd = rStart-1;
+ }
+ }
+
+ /* returns true if the next call to next() will return true also. */
+ bool hasNext() const
+ {
+ return maIter != maEnd;
+ }
+
+ /* iterates in the configured direction and returns true if rValue
+ now contains a valid positon in the range of this iterator */
+ bool next( T& rValue )
+ {
+ if( maIter == maEnd )
+ return false;
+
+ rValue = maIter;
+ if( maIter < maEnd )
+ maIter++;
+ else
+ maIter--;
+ return true;
+ }
+
+private:
+ T maEnd;
+ T maIter;
+};
+
+} }
+
+#endif
+