summaryrefslogtreecommitdiff
path: root/sc/inc/chartarr.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc/chartarr.hxx')
-rw-r--r--sc/inc/chartarr.hxx127
1 files changed, 127 insertions, 0 deletions
diff --git a/sc/inc/chartarr.hxx b/sc/inc/chartarr.hxx
new file mode 100644
index 000000000000..62f30a17c62e
--- /dev/null
+++ b/sc/inc/chartarr.hxx
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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 SC_CHARTARR_HXX
+#define SC_CHARTARR_HXX
+
+// -----------------------------------------------------------------------
+
+#include "collect.hxx"
+#include "rangelst.hxx"
+#include "chartpos.hxx"
+
+class ScAddress;
+class Table;
+class ScDocument;
+
+
+// ScMemChart is a stripped-down SchMemChart from old chart,
+// used only to transport a rectangular data array for the UNO API,
+// contains only column/row header text and data values.
+
+class ScMemChart
+{
+ short nRowCnt;
+ short nColCnt;
+ double* pData;
+ String* pColText;
+ String* pRowText;
+
+ ScMemChart(const ScMemChart& rMemChart); // not implemented
+
+public:
+ ScMemChart(short nCols, short nRows);
+ ~ScMemChart();
+
+ short GetColCount() const { return nColCnt; }
+ short GetRowCount() const { return nRowCnt; }
+ const String& GetColText(short nCol) const { return pColText[nCol]; }
+ const String& GetRowText(short nRow) const { return pRowText[nRow]; }
+ double GetData(short nCol, short nRow) const { return pData[nCol * nRowCnt + nRow]; }
+ void SetData(short nCol, short nRow, const double& rVal) { pData[nCol * nRowCnt + nRow] = rVal; }
+ void SetColText(short nCol, const String& rText) { pColText[nCol] = rText; }
+ void SetRowText(short nRow, const String& rText) { pRowText[nRow] = rText; }
+};
+
+
+class SC_DLLPUBLIC ScChartArray : public ScDataObject // nur noch Parameter-Struct
+{
+ String aName;
+ ScDocument* pDocument;
+ ScChartPositioner aPositioner;
+ BOOL bValid; // fuer Erzeugung aus SchMemChart
+
+private:
+ ScMemChart* CreateMemChartSingle();
+ ScMemChart* CreateMemChartMulti();
+public:
+ ScChartArray( ScDocument* pDoc, SCTAB nTab,
+ SCCOL nStartColP, SCROW nStartRowP,
+ SCCOL nEndColP, SCROW nEndRowP,
+ const String& rChartName );
+ ScChartArray( ScDocument* pDoc, const ScRangeListRef& rRangeList,
+ const String& rChartName );
+ ScChartArray( const ScChartArray& rArr );
+
+ virtual ~ScChartArray();
+ virtual ScDataObject* Clone() const;
+
+ const ScRangeListRef& GetRangeList() const { return aPositioner.GetRangeList(); }
+ void SetRangeList( const ScRangeListRef& rNew ) { aPositioner.SetRangeList(rNew); }
+ void SetRangeList( const ScRange& rNew ) { aPositioner.SetRangeList(rNew); }
+ const ScChartPositionMap* GetPositionMap() { return aPositioner.GetPositionMap(); }
+
+ void SetHeaders(BOOL bCol, BOOL bRow) { aPositioner.SetHeaders(bCol, bRow); }
+ BOOL HasColHeaders() const { return aPositioner.HasColHeaders(); }
+ BOOL HasRowHeaders() const { return aPositioner.HasRowHeaders(); }
+ BOOL IsValid() const { return bValid; }
+ void SetName(const String& rNew) { aName = rNew; }
+ const String& GetName() const { return aName; }
+
+ BOOL operator==(const ScChartArray& rCmp) const;
+
+ ScMemChart* CreateMemChart();
+};
+
+class ScChartCollection : public ScCollection
+{
+public:
+ ScChartCollection() : ScCollection( 4,4 ) {}
+ ScChartCollection( const ScChartCollection& rColl ):
+ ScCollection( rColl ) {}
+
+ virtual ScDataObject* Clone() const;
+ ScChartArray* operator[](USHORT nIndex) const
+ { return (ScChartArray*)At(nIndex); }
+
+ BOOL operator==(const ScChartCollection& rCmp) const;
+};
+
+
+
+#endif
+