1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_OOX_DRAWINGML_CHART_AXISMODEL_HXX
21 #define INCLUDED_OOX_DRAWINGML_CHART_AXISMODEL_HXX
23 #include <oox/drawingml/shape.hxx>
24 #include <oox/token/tokens.hxx>
25 #include <drawingml/chart/titlemodel.hxx>
31 struct AxisDispUnitsModel
33 typedef ModelRef
< Shape
> ShapeRef
;
34 typedef ModelRef
< TextBody
> TextBodyRef
;
35 typedef ModelRef
< LayoutModel
> LayoutRef
;
36 typedef ModelRef
< TextModel
> TextRef
;
38 ShapeRef mxShapeProp
; /// Label frame formatting.
39 TextBodyRef mxTextProp
; /// Label text formatting.
40 LayoutRef mxLayout
; /// Layout/position of the axis units label.
41 TextRef mxText
; /// Text source of the axis units label.
42 double mfCustomUnit
; /// Custom unit size on value axis.
43 OUString mnBuiltInUnit
; /// Built-in unit on value axis.
45 explicit AxisDispUnitsModel();
46 ~AxisDispUnitsModel();
51 typedef ModelRef
< Shape
> ShapeRef
;
52 typedef ModelRef
< TextBody
> TextBodyRef
;
53 typedef ModelRef
< TitleModel
> TitleRef
;
54 typedef ModelRef
< AxisDispUnitsModel
> AxisDispUnitsRef
;
56 ShapeRef mxShapeProp
; /// Axis line formatting.
57 TextBodyRef mxTextProp
; /// Axis label text formatting.
58 TitleRef mxTitle
; /// Axis title.
59 AxisDispUnitsRef mxDispUnits
; /// Axis units label.
60 ShapeRef mxMajorGridLines
; /// Major grid lines formatting.
61 ShapeRef mxMinorGridLines
; /// Minor grid lines formatting.
62 NumberFormat maNumberFormat
; /// Number format for axis tick labels.
63 OptValue
< double > mofCrossesAt
; /// Position on this axis where another axis crosses.
64 OptValue
< double > mofMajorUnit
; /// Unit for major tick marks on date/value axis.
65 OptValue
< double > mofMinorUnit
; /// Unit for minor tick marks on date/value axis.
66 OptValue
< double > mofLogBase
; /// Logarithmic base for logarithmic axes.
67 OptValue
< double > mofMax
; /// Maximum axis value.
68 OptValue
< double > mofMin
; /// Minimum axis value.
69 OptValue
< sal_Int32
> monBaseTimeUnit
; /// Base time unit shown on a date axis.
70 sal_Int32 mnAxisId
; /// Unique axis identifier.
71 sal_Int32 mnAxisPos
; /// Position of the axis (top/bottom/left/right).
72 sal_Int32 mnCrossAxisId
; /// Identifier of a crossing axis.
73 sal_Int32 mnCrossBetween
; /// This value axis crosses between or inside category.
74 sal_Int32 mnCrossMode
; /// Mode this axis crosses another axis (min, max, auto).
75 sal_Int32 mnLabelAlign
; /// Tick mark label alignment.
76 sal_Int32 mnLabelOffset
; /// Tick mark label distance from axis.
77 sal_Int32 mnMajorTickMark
; /// Major tick mark style.
78 sal_Int32 mnMajorTimeUnit
; /// Time unit for major tick marks on date axis.
79 sal_Int32 mnMinorTickMark
; /// Mainor tick mark style.
80 sal_Int32 mnMinorTimeUnit
; /// Time unit for minor tick marks on date axis.
81 sal_Int32 mnOrientation
; /// Axis orientation (value order min to max, or max to min).
82 sal_Int32 mnTickLabelPos
; /// Position of tick mark labels relative to the axis.
83 sal_Int32 mnTickLabelSkip
; /// Number of tick mark labels to skip.
84 sal_Int32 mnTickMarkSkip
; /// Number of tick marks to skip.
85 sal_Int32 mnTypeId
; /// Type identifier of this axis.
86 bool mbAuto
; /// True = automatic selection of text/date axis type.
87 bool mbDeleted
; /// True = axis has been deleted manually.
88 bool mbNoMultiLevel
; /// True = no multi-level categories supported.
90 explicit AxisModel( sal_Int32 nTypeId
, bool bMSO2007Doc
);
95 } // namespace drawingml
100 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */