blob: 9c52047475068c3277e44d34bdbb83961c0776ed [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_ELEMENTS_HXX_
#define CGM_ELEMENTS_HXX_
#include "main.hxx"
#include <tools/table.hxx>
#define nBackGroundColor aColorTable[ 0 ]
class CGMElements
{
void ImplInsertHatch( sal_Int32 Key, int Style, long Distance, long Angle );
public:
CGM* mpCGM;
long nMetaFileVersion;
sal_uInt32 nIntegerPrecision; // maybe 1, 2, 4 Bytes
sal_uInt32 nIndexPrecision; // " " "
RealPrecision eRealPrecision;
sal_uInt32 nRealSize; // maybe 4 or 8 bytes
sal_uInt32 nColorPrecision; // " " "
sal_uInt32 nColorIndexPrecision;// " " "
ScalingMode eScalingMode;
double nScalingFactor;
VDCType eVDCType; // Integer / Real
sal_uInt32 nVDCIntegerPrecision;
RealPrecision eVDCRealPrecision;
sal_uInt32 nVDCRealSize;
FloatRect aVDCExtent;
FloatRect aVDCExtentMaximum;
DeviceViewPortMode eDeviceViewPortMode;
double nDeviceViewPortScale;
DeviceViewPortMap eDeviceViewPortMap;
DeviceViewPortMapH eDeviceViewPortMapH;
DeviceViewPortMapV eDeviceViewPortMapV;
FloatRect aDeviceViewPort;
double nMitreLimit;
ClipIndicator eClipIndicator;
FloatRect aClipRect;
ColorSelectionMode eColorSelectionMode;
ColorModel eColorModel;
sal_uInt32 nColorMaximumIndex; // default 63
sal_uInt32 nLatestColorMaximumIndex; // default 63
sal_Int8 aColorTableEntryIs[ 256 ];
sal_uInt32 aColorTable[ 256 ];
sal_uInt32 aLatestColorTable[ 256 ];
sal_uInt32 nColorValueExtent[ 8 ]; // RGB, CMYK
// ASPECT SOURCE FLAGS
sal_uInt32 nAspectSourceFlags; // bit = 0 -> INDIVIDUAL
// 1 -> BUNDLED
LineBundle* pLineBundle; // Pointer to the current LineBundleIndex
LineBundle aLineBundle;
List aLineList;
SpecMode eLineWidthSpecMode;
LineCapType eLineCapType;
LineJoinType eLineJoinType;
MarkerBundle* pMarkerBundle; // Pointer to the current MarkerBundleIndex
MarkerBundle aMarkerBundle;
List aMarkerList;
SpecMode eMarkerSizeSpecMode;
EdgeBundle* pEdgeBundle; // Pointer to the current EdgeBundleIndex
EdgeBundle aEdgeBundle;
List aEdgeList;
EdgeVisibility eEdgeVisibility;
SpecMode eEdgeWidthSpecMode;
TextBundle* pTextBundle; // Pointer to the current TextBundleIndex
TextBundle aTextBundle;
List aTextList;
double nCharacterHeight;
double nCharacterOrientation[ 4 ];
UnderlineMode eUnderlineMode;
sal_uInt32 nUnderlineColor;
TextPath eTextPath;
TextAlignmentH eTextAlignmentH;
TextAlignmentV eTextAlignmentV;
double nTextAlignmentHCont;
double nTextAlignmentVCont;
long nCharacterSetIndex;
long nAlternateCharacterSetIndex;
CharacterCodingA eCharacterCodingA;
CGMFList aFontList;
FillBundle* pFillBundle; // Pointer to the current EdgeBundleIndex
FillBundle aFillBundle;
List aFillList;
FloatPoint aFillRefPoint;
Table aHatchTable;
Transparency eTransparency;
sal_uInt32 nAuxiliaryColor;
// Delimiter Counts -> which will be increased by each 'begin' operation
// and decreased by each 'end' operation
sal_Bool bSegmentCount;
CGMElements( CGM& rCGM );
~CGMElements();
CGMElements& operator=( CGMElements& );
void Init();
void DeleteTable( Table& );
Bundle* GetBundleIndex( sal_uInt32 nIndex, List&, Bundle& );
Bundle* GetBundle( List& rList, long nIndex );
Bundle* InsertBundle( List&, Bundle& );
void DeleteAllBundles( List& );
void CopyAllBundles( List& Source, List& Dest );
};
#endif