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 OOX_DRAWINGML_CHART_TYPEGROUPMODEL_HXX
25 #define OOX_DRAWINGML_CHART_TYPEGROUPMODEL_HXX
26 
27 #include "oox/drawingml/chart/seriesmodel.hxx"
28 
29 namespace oox {
30 namespace drawingml {
31 namespace chart {
32 
33 // ============================================================================
34 
35 struct UpDownBarsModel
36 {
37     typedef ModelRef< Shape > ShapeRef;
38 
39     ShapeRef            mxDownBars;         /// Formatting of down bars.
40     ShapeRef            mxUpBars;           /// Formatting of up bars.
41     sal_Int32           mnGapWidth;         /// Space between up/down bars.
42 
43     explicit            UpDownBarsModel();
44                         ~UpDownBarsModel();
45 };
46 
47 // ============================================================================
48 
49 struct TypeGroupModel
50 {
51     typedef ModelVector< SeriesModel >  SeriesVector;
52     typedef ::std::vector< sal_Int32 >  AxisIdVector;
53     typedef ModelRef< DataLabelsModel > DataLabelsRef;
54     typedef ModelRef< UpDownBarsModel > UpDownBarsRef;
55     typedef ModelRef< Shape >           ShapeRef;
56 
57     SeriesVector        maSeries;           /// Series attached to this chart type group.
58     AxisIdVector        maAxisIds;          /// List of axis identifiers used by this chart type.
59     DataLabelsRef       mxLabels;           /// Data point label settings for all series.
60     UpDownBarsRef       mxUpDownBars;       /// Up/down bars in stock charts.
61     ShapeRef            mxSerLines;         /// Connector lines in stacked bar charts.
62     ShapeRef            mxDropLines;        /// Drop lines connecting data points with X axis.
63     ShapeRef            mxHiLowLines;       /// High/low lines connecting lowest and highest data points.
64     double              mfSplitPos;         /// Threshold value in pie-to charts.
65     sal_Int32           mnBarDir;           /// Bar direction in bar charts (vertical/horizontal).
66     sal_Int32           mnBubbleScale;      /// Relative scaling of bubble size (percent).
67     sal_Int32           mnFirstAngle;       /// Rotation angle of first slice in pie charts.
68     sal_Int32           mnGapDepth;         /// Space between series in deep 3D charts.
69     sal_Int32           mnGapWidth;         /// Space between bars in bar charts, or space in pie-to charts.
70     sal_Int32           mnGrouping;         /// Series grouping mode.
71     sal_Int32           mnHoleSize;         /// Hole size in doughnut charts.
72     sal_Int32           mnOfPieType;        /// Pie-to-pie or pie-to-bar chart.
73     sal_Int32           mnOverlap;          /// Bar overlap per category (2D bar charts only).
74     sal_Int32           mnRadarStyle;       /// Type of radar chart (lines, markers, filled).
75     sal_Int32           mnScatterStyle;     /// Type of scatter chart (lines, markers, smooth).
76     sal_Int32           mnSecondPieSize;    /// relative size of second pie/bar in pie-to charts (percent).
77     sal_Int32           mnShape;            /// 3D bar shape type.
78     sal_Int32           mnSizeRepresents;   /// Bubble size represents area or width.
79     sal_Int32           mnSplitType;        /// Split type in pie-to charts.
80     sal_Int32           mnTypeId;           /// Chart type identifier.
81     bool                mbBubble3d;         /// True = show bubbles with 3D shade.
82     bool                mbShowMarker;       /// True = show point markers in line charts.
83     bool                mbShowNegBubbles;   /// True = show absolute value of negative bubbles.
84     bool                mbSmooth;           /// True = smooth lines in line charts.
85     bool                mbVaryColors;       /// True = different automatic colors for each point.
86     bool                mbWireframe;        /// True = wireframe surface chart, false = filled surface chart.
87 
88     explicit            TypeGroupModel( sal_Int32 nTypeId );
89                         ~TypeGroupModel();
90 };
91 
92 // ============================================================================
93 
94 } // namespace chart
95 } // namespace drawingml
96 } // namespace oox
97 
98 #endif
99