1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef CGM_CHART_HXX_ 25 #define CGM_CHART_HXX_ 26 27 #include <tools/list.hxx> 28 29 /* FILE TYPE CONSTANTS: */ 30 #define NOCHART 0 /* Undefined chart. */ 31 #define XYCHART 1 /* Standard XY chart. */ 32 #define PIECHART 21 /* Standard pie chart file. */ 33 #define ORGCHART 26 /* Standard org chart file. */ 34 #define TTLCHART 31 /* Title chart file. */ 35 #define BULCHART 32 /* Bullet chart file. */ 36 #define TABCHART 33 /* Table chart file. */ 37 #define DRWCHART 41 /* Chart with drawings only.*/ 38 #define MLTCHART 42 /* Multiple chart file. */ 39 #define LASTCHART 45 /* The largest chart type. */ 40 #define SHWFILE 46 /* Slide show file. */ 41 #define SYMFILE 47 /* Symbol file. */ 42 /* the following were added although SPC doesn't have a #define */ 43 /* for them... */ 44 #define AUTOTTLCHT 95 /* Autobuild TTL CHT */ 45 #define AUTOBULCHT 96 /* Autobuild BUL CHT */ 46 #define AUTOTABCHT 97 /* Autobuild TAB CHT */ 47 48 /* FNC 10/11/93: for the chart stream, ALLCHART was added. */ 49 /* It is used specifically by PPT in its Template to let */ 50 /* us know that the template applies to all charts, not to */ 51 /* one specific chart type. */ 52 #define ALLCHART 127 /* Applies to all chart types */ 53 #define ALLCHART_TPL 255 /* Applies to all chart types */ 54 55 #define IOC_CHTTITLE 1 /* Title for any chart. */ 56 #define IOC_CHTFOOTNOTE 2 /* ::com::sun::star::text::Footnote for any chart. */ 57 #define IOC_XYAXIS 3 /* Axis title for XY charts. */ 58 #define IOC_XYSERIESLEGEND 4 /* Series legend titles for XY charts. */ 59 #define IOC_PIETITLE 5 /* Title for pie charts. */ 60 #define IOC_TABLEBODY 6 /* Table chart text element. */ 61 #define IOC_TITLEBODY 7 /* Title chart text element. */ 62 #define IOC_BULLETBODY 8 /* Bullet chart text element. */ 63 #define IOC_XYLEGENDTITLE 9 /* Legend title for XY charts. */ 64 #define IOC_PIELEGENDTITLE 10 /* Legend title for pie charts. */ 65 #define IOC_TABLEGENDTITLE 11 /* Legend title for table charts. */ 66 67 typedef struct TextAttribute 68 { 69 sal_uInt16 nTextAttribCount; 70 sal_Int8 nTextColorIndex; 71 sal_Int8 nTextColorRed; 72 sal_Int8 nTextColorGreen; 73 sal_Int8 nTextColorBlue; 74 sal_Int8 nShadowColorIndex; 75 sal_Int8 nShadowColorRed; 76 sal_Int8 nShadowColorGreen; 77 sal_Int8 nShadowColorBlue; 78 float nTextAttribSize; 79 sal_uInt16 nTextAttribBits; 80 sal_Int8 nTextFontType; // font identifiers 81 sal_Int8 nTextCharPage; 82 sal_uInt16 nTextFontFamily; 83 sal_Int8 nTextFontMemberID; 84 sal_Int8 nTextFontVendorID; 85 TextAttribute* pNextAttribute; // zero or pointer to next TextAttribute 86 } TextAttribute; 87 88 typedef struct TextEntry 89 { 90 sal_uInt16 nTypeOfText; 91 sal_uInt16 nRowOrLineNum; 92 sal_uInt16 nColumnNum; 93 sal_uInt16 nZoneSize; // textzone attributes 94 sal_uInt16 nLineType; 95 sal_uInt16 nAttributes; 96 char* pText; // null terminated text 97 TextAttribute* pAttribute; 98 } TextEntry; 99 100 typedef struct ZoneOption 101 { 102 char nOverTitle; 103 char nOverBody; 104 char nOverFoot; 105 char nFStyle_Title; 106 char nFStyle_Body; 107 char nFStyle_Foot; 108 char nFOutc_Title; 109 char nFOutc_Body; 110 char nFOutc_Foot; 111 char nFFillc_Title; 112 char nFFillc_Body; 113 char nFFillc_Foot; 114 } ZoneOption; 115 116 typedef struct BulletOption 117 { 118 char nBType; 119 char nBSize; 120 char nBColor; 121 sal_Int16 nBStart; 122 double nTMargin; 123 double nBSpace; 124 char nCPlace; 125 } BulletOption; 126 127 typedef struct BulDef 128 { 129 char btype; 130 char bsize; 131 char bcolor; 132 char bnumber; 133 } BulDef; 134 135 typedef struct BulletLines 136 { 137 BulDef nBulDef[ 48 ]; 138 } BulletLines; 139 140 typedef struct IntSettings 141 { 142 sal_uInt16 nCountry; 143 sal_uInt16 nDateFormat; 144 sal_uInt16 nDateSep; 145 sal_uInt16 nTimeFormat; 146 sal_uInt16 nTimeSep; 147 sal_uInt16 nNumSeps; 148 sal_uInt16 nCurrencyFormat; 149 char nCurrencySymbol[ 5 ]; 150 } IntSettings; 151 152 typedef struct PageOrientDim 153 { 154 char nOrientation; 155 char nDimension; 156 float nPageX; 157 float nPageY; 158 } PageOrientDim; 159 160 typedef struct DataNode 161 { 162 sal_Int16 nBoxX1; 163 sal_Int16 nBoxY1; 164 sal_Int16 nBoxX2; 165 sal_Int16 nBoxY2; 166 sal_Int8 nZoneEnum; 167 } DataNode; 168 169 typedef struct ChartZone 170 { 171 sal_Int16 nMinX; 172 sal_Int16 nMinY; 173 sal_Int16 nMaxX; 174 sal_Int16 nMaxY; 175 char nUserDef; 176 char nPad1; 177 } ChartZone; 178 179 class CGM; 180 class CGMImpressOutAct; 181 class CGMChart 182 { 183 friend class CGM; 184 friend class CGMImpressOutAct; 185 186 protected: 187 CGM* mpCGM; 188 sal_Int8 mnCurrentFileType; 189 List maTextEntryList; 190 DataNode mDataNode[ 7 ]; 191 ChartZone mChartZone; 192 PageOrientDim mPageOrientDim; 193 BulletOption mBulletOption; 194 BulletLines mBulletLines; 195 ZoneOption mZoneOption; 196 IntSettings mIntSettings; 197 198 public: 199 CGMChart( CGM& rCGM ); 200 ~CGMChart(); 201 202 void DeleteTextEntry( TextEntry* ); 203 void InsertTextEntry( TextEntry* ); 204 205 void ResetAnnotation(); 206 sal_Bool IsAnnotation(); 207 }; 208 209 #endif 210 211