blob: 5691b4fa41aff44fd25c4dbd10b14216f58ffa24 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef CGM_CHART_HXX_
#define CGM_CHART_HXX_
#include <tools/list.hxx>
/* FILE TYPE CONSTANTS: */
#define NOCHART 0 /* Undefined chart. */
#define XYCHART 1 /* Standard XY chart. */
#define PIECHART 21 /* Standard pie chart file. */
#define ORGCHART 26 /* Standard org chart file. */
#define TTLCHART 31 /* Title chart file. */
#define BULCHART 32 /* Bullet chart file. */
#define TABCHART 33 /* Table chart file. */
#define DRWCHART 41 /* Chart with drawings only.*/
#define MLTCHART 42 /* Multiple chart file. */
#define LASTCHART 45 /* The largest chart type. */
#define SHWFILE 46 /* Slide show file. */
#define SYMFILE 47 /* Symbol file. */
/* the following were added although SPC doesn't have a #define */
/* for them... */
#define AUTOTTLCHT 95 /* Autobuild TTL CHT */
#define AUTOBULCHT 96 /* Autobuild BUL CHT */
#define AUTOTABCHT 97 /* Autobuild TAB CHT */
/* FNC 10/11/93: for the chart stream, ALLCHART was added. */
/* It is used specifically by PPT in its Template to let */
/* us know that the template applies to all charts, not to */
/* one specific chart type. */
#define ALLCHART 127 /* Applies to all chart types */
#define ALLCHART_TPL 255 /* Applies to all chart types */
#define IOC_CHTTITLE 1 /* Title for any chart. */
#define IOC_CHTFOOTNOTE 2 /* ::com::sun::star::text::Footnote for any chart. */
#define IOC_XYAXIS 3 /* Axis title for XY charts. */
#define IOC_XYSERIESLEGEND 4 /* Series legend titles for XY charts. */
#define IOC_PIETITLE 5 /* Title for pie charts. */
#define IOC_TABLEBODY 6 /* Table chart text element. */
#define IOC_TITLEBODY 7 /* Title chart text element. */
#define IOC_BULLETBODY 8 /* Bullet chart text element. */
#define IOC_XYLEGENDTITLE 9 /* Legend title for XY charts. */
#define IOC_PIELEGENDTITLE 10 /* Legend title for pie charts. */
#define IOC_TABLEGENDTITLE 11 /* Legend title for table charts. */
typedef struct TextAttribute
{
sal_uInt16 nTextAttribCount;
sal_Int8 nTextColorIndex;
sal_Int8 nTextColorRed;
sal_Int8 nTextColorGreen;
sal_Int8 nTextColorBlue;
sal_Int8 nShadowColorIndex;
sal_Int8 nShadowColorRed;
sal_Int8 nShadowColorGreen;
sal_Int8 nShadowColorBlue;
float nTextAttribSize;
sal_uInt16 nTextAttribBits;
sal_Int8 nTextFontType; // font identifiers
sal_Int8 nTextCharPage;
sal_uInt16 nTextFontFamily;
sal_Int8 nTextFontMemberID;
sal_Int8 nTextFontVendorID;
TextAttribute* pNextAttribute; // zero or pointer to next TextAttribute
} TextAttribute;
typedef struct TextEntry
{
sal_uInt16 nTypeOfText;
sal_uInt16 nRowOrLineNum;
sal_uInt16 nColumnNum;
sal_uInt16 nZoneSize; // textzone attributes
sal_uInt16 nLineType;
sal_uInt16 nAttributes;
char* pText; // null terminated text
TextAttribute* pAttribute;
} TextEntry;
typedef struct ZoneOption
{
char nOverTitle;
char nOverBody;
char nOverFoot;
char nFStyle_Title;
char nFStyle_Body;
char nFStyle_Foot;
char nFOutc_Title;
char nFOutc_Body;
char nFOutc_Foot;
char nFFillc_Title;
char nFFillc_Body;
char nFFillc_Foot;
} ZoneOption;
typedef struct BulletOption
{
char nBType;
char nBSize;
char nBColor;
sal_Int16 nBStart;
double nTMargin;
double nBSpace;
char nCPlace;
} BulletOption;
typedef struct BulDef
{
char btype;
char bsize;
char bcolor;
char bnumber;
} BulDef;
typedef struct BulletLines
{
BulDef nBulDef[ 48 ];
} BulletLines;
typedef struct IntSettings
{
sal_uInt16 nCountry;
sal_uInt16 nDateFormat;
sal_uInt16 nDateSep;
sal_uInt16 nTimeFormat;
sal_uInt16 nTimeSep;
sal_uInt16 nNumSeps;
sal_uInt16 nCurrencyFormat;
char nCurrencySymbol[ 5 ];
} IntSettings;
typedef struct PageOrientDim
{
char nOrientation;
char nDimension;
float nPageX;
float nPageY;
} PageOrientDim;
typedef struct DataNode
{
sal_Int16 nBoxX1;
sal_Int16 nBoxY1;
sal_Int16 nBoxX2;
sal_Int16 nBoxY2;
sal_Int8 nZoneEnum;
} DataNode;
typedef struct ChartZone
{
sal_Int16 nMinX;
sal_Int16 nMinY;
sal_Int16 nMaxX;
sal_Int16 nMaxY;
char nUserDef;
char nPad1;
} ChartZone;
class CGM;
class CGMImpressOutAct;
class CGMChart
{
friend class CGM;
friend class CGMImpressOutAct;
protected:
CGM* mpCGM;
sal_Int8 mnCurrentFileType;
List maTextEntryList;
DataNode mDataNode[ 7 ];
ChartZone mChartZone;
PageOrientDim mPageOrientDim;
BulletOption mBulletOption;
BulletLines mBulletLines;
ZoneOption mZoneOption;
IntSettings mIntSettings;
public:
CGMChart( CGM& rCGM );
~CGMChart();
void DeleteTextEntry( TextEntry* );
void InsertTextEntry( TextEntry* );
void ResetAnnotation();
sal_Bool IsAnnotation();
};
#endif