LibreOffice Module filter (master) 1
elements.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19#pragma once
20
21#include "bundles.hxx"
22#include "cgmtypes.hxx"
23#include <vector>
24#include <map>
25
26#define nBackGroundColor aColorTable[ 0 ]
27
28typedef ::std::vector< std::unique_ptr<Bundle> > BundleList;
29
31{
32 void ImplInsertHatch( sal_Int32 Key, int Style, tools::Long Distance, tools::Long Angle );
33 public:
35
36 sal_uInt32 nIntegerPrecision; // maybe 1, 2, 4 Bytes
37 sal_uInt32 nIndexPrecision; // " " "
39 sal_uInt32 nRealSize; // maybe 4 or 8 bytes
40 sal_uInt32 nColorPrecision; // " " "
41 sal_uInt32 nColorIndexPrecision;// " " "
42
45
46 VDCType eVDCType; // Integer / Real
49 sal_uInt32 nVDCRealSize;
52
59
61
64
66 sal_uInt32 nColorMaximumIndex; // default 63
67 sal_uInt32 nLatestColorMaximumIndex; // default 63
69 sal_uInt32 aColorTable[ 256 ];
70 sal_uInt32 aLatestColorTable[ 256 ];
71 sal_uInt32 nColorValueExtent[ 8 ]; // RGB, CMYK
72
73 // ASPECT SOURCE FLAGS
74 sal_uInt32 nAspectSourceFlags; // bit = 0 -> INDIVIDUAL
75 // 1 -> BUNDLED
76
77 LineBundle* pLineBundle; // Pointer to the current LineBundleIndex
83
84 MarkerBundle* pMarkerBundle; // Pointer to the current MarkerBundleIndex
88
89 EdgeBundle* pEdgeBundle; // Pointer to the current EdgeBundleIndex
94
95 TextBundle* pTextBundle; // Pointer to the current TextBundleIndex
101 sal_uInt32 nUnderlineColor;
111
112 FillBundle* pFillBundle; // Pointer to the current EdgeBundleIndex
116 ::std::map<sal_uInt32, HatchEntry>
118
120
121 sal_uInt32 nAuxiliaryColor;
122
123 // Delimiter Counts -> which will be increased by each 'begin' operation
124 // and decreased by each 'end' operation
126 explicit CGMElements();
127 ~CGMElements();
129 void Init();
130 static Bundle* GetBundleIndex( tools::Long nIndex, BundleList&, Bundle& );
131 static Bundle* GetBundle( BundleList& rList, tools::Long nIndex );
132 static Bundle* InsertBundle( BundleList&, Bundle& );
133 static void CopyAllBundles( const BundleList& Source, BundleList& Dest );
134};
135
136/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
struct _ADOKey Key
SpecMode
Definition: cgmtypes.hxx:110
Transparency
Definition: cgmtypes.hxx:121
DeviceViewPortMode
Definition: cgmtypes.hxx:90
EdgeVisibility
Definition: cgmtypes.hxx:117
DeviceViewPortMap
Definition: cgmtypes.hxx:91
CharacterCodingA
Definition: cgmtypes.hxx:100
TextPath
Definition: cgmtypes.hxx:102
ScalingMode
Definition: cgmtypes.hxx:87
TextAlignmentH
Definition: cgmtypes.hxx:103
TextAlignmentV
Definition: cgmtypes.hxx:104
DeviceViewPortMapH
Definition: cgmtypes.hxx:92
UnderlineMode
Definition: cgmtypes.hxx:105
ColorSelectionMode
Definition: cgmtypes.hxx:97
DeviceViewPortMapV
Definition: cgmtypes.hxx:93
VDCType
Definition: cgmtypes.hxx:89
ClipIndicator
Definition: cgmtypes.hxx:95
RealPrecision
Definition: cgmtypes.hxx:85
BundleList aFillList
Definition: elements.hxx:114
TextAlignmentV eTextAlignmentV
Definition: elements.hxx:104
sal_uInt32 nIntegerPrecision
Definition: elements.hxx:36
sal_uInt32 nColorIndexPrecision
Definition: elements.hxx:41
static Bundle * GetBundleIndex(tools::Long nIndex, BundleList &, Bundle &)
Definition: elements.cxx:301
SpecMode eLineWidthSpecMode
Definition: elements.hxx:80
RealPrecision eVDCRealPrecision
Definition: elements.hxx:48
DeviceViewPortMapV eDeviceViewPortMapV
Definition: elements.hxx:57
sal_uInt32 nAspectSourceFlags
Definition: elements.hxx:74
double nCharacterOrientation[4]
Definition: elements.hxx:99
void Init()
Definition: elements.cxx:136
tools::Long nCharacterSetIndex
Definition: elements.hxx:107
LineBundle aLineBundle
Definition: elements.hxx:78
::std::map< sal_uInt32, HatchEntry > maHatchMap
Definition: elements.hxx:117
TextAlignmentH eTextAlignmentH
Definition: elements.hxx:103
FillBundle aFillBundle
Definition: elements.hxx:113
EdgeBundle aEdgeBundle
Definition: elements.hxx:90
CGMFList aFontList
Definition: elements.hxx:110
MarkerBundle aMarkerBundle
Definition: elements.hxx:85
static Bundle * GetBundle(BundleList &rList, tools::Long nIndex)
Definition: elements.cxx:311
MarkerBundle * pMarkerBundle
Definition: elements.hxx:84
sal_uInt32 nColorMaximumIndex
Definition: elements.hxx:66
sal_uInt32 nRealSize
Definition: elements.hxx:39
BundleList aTextList
Definition: elements.hxx:97
DeviceViewPortMapH eDeviceViewPortMapH
Definition: elements.hxx:56
sal_uInt32 nIndexPrecision
Definition: elements.hxx:37
UnderlineMode eUnderlineMode
Definition: elements.hxx:100
sal_uInt32 nUnderlineColor
Definition: elements.hxx:101
FloatPoint aFillRefPoint
Definition: elements.hxx:115
BundleList aEdgeList
Definition: elements.hxx:91
FloatRect aVDCExtent
Definition: elements.hxx:50
LineJoinType eLineJoinType
Definition: elements.hxx:82
sal_uInt32 nVDCRealSize
Definition: elements.hxx:49
CharacterCodingA eCharacterCodingA
Definition: elements.hxx:109
BundleList aLineList
Definition: elements.hxx:79
sal_uInt32 nColorPrecision
Definition: elements.hxx:40
void ImplInsertHatch(sal_Int32 Key, int Style, tools::Long Distance, tools::Long Angle)
Definition: elements.cxx:281
sal_uInt32 nLatestColorMaximumIndex
Definition: elements.hxx:67
sal_uInt32 nAuxiliaryColor
Definition: elements.hxx:121
FloatRect aDeviceViewPort
Definition: elements.hxx:58
CGMElements & operator=(const CGMElements &)
Definition: elements.cxx:36
static Bundle * InsertBundle(BundleList &, Bundle &)
Definition: elements.cxx:322
BundleList aMarkerList
Definition: elements.hxx:86
FloatRect aVDCExtentMaximum
Definition: elements.hxx:51
double nScalingFactor
Definition: elements.hxx:44
EdgeVisibility eEdgeVisibility
Definition: elements.hxx:92
double nTextAlignmentHCont
Definition: elements.hxx:105
sal_uInt32 nVDCIntegerPrecision
Definition: elements.hxx:47
tools::Long nAlternateCharacterSetIndex
Definition: elements.hxx:108
LineCapType eLineCapType
Definition: elements.hxx:81
LineBundle * pLineBundle
Definition: elements.hxx:77
sal_Int8 aColorTableEntryIs[256]
Definition: elements.hxx:68
sal_uInt32 nColorValueExtent[8]
Definition: elements.hxx:71
FloatRect aClipRect
Definition: elements.hxx:63
bool bSegmentCount
Definition: elements.hxx:125
double nTextAlignmentVCont
Definition: elements.hxx:106
sal_uInt32 aLatestColorTable[256]
Definition: elements.hxx:70
VDCType eVDCType
Definition: elements.hxx:46
double nDeviceViewPortScale
Definition: elements.hxx:54
DeviceViewPortMap eDeviceViewPortMap
Definition: elements.hxx:55
Transparency eTransparency
Definition: elements.hxx:119
TextBundle aTextBundle
Definition: elements.hxx:96
FillBundle * pFillBundle
Definition: elements.hxx:112
SpecMode eEdgeWidthSpecMode
Definition: elements.hxx:93
DeviceViewPortMode eDeviceViewPortMode
Definition: elements.hxx:53
SpecMode eMarkerSizeSpecMode
Definition: elements.hxx:87
sal_uInt32 aColorTable[256]
Definition: elements.hxx:69
RealPrecision eRealPrecision
Definition: elements.hxx:38
TextBundle * pTextBundle
Definition: elements.hxx:95
EdgeBundle * pEdgeBundle
Definition: elements.hxx:89
double nMitreLimit
Definition: elements.hxx:60
static void CopyAllBundles(const BundleList &Source, BundleList &Dest)
Definition: elements.cxx:290
double nCharacterHeight
Definition: elements.hxx:98
TextPath eTextPath
Definition: elements.hxx:102
ScalingMode eScalingMode
Definition: elements.hxx:43
ColorSelectionMode eColorSelectionMode
Definition: elements.hxx:65
ClipIndicator eClipIndicator
Definition: elements.hxx:62
tools::Long nMetaFileVersion
Definition: elements.hxx:34
::std::vector< std::unique_ptr< Bundle > > BundleList
Definition: elements.hxx:28
LineCapType
LineJoinType
long Long
signed char sal_Int8