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 <drawingml/chart/titlemodel.hxx>
26 namespace oox::drawingml::chart
{
28 struct AxisDispUnitsModel
30 typedef ModelRef
< Shape
> ShapeRef
;
31 typedef ModelRef
< TextBody
> TextBodyRef
;
32 typedef ModelRef
< LayoutModel
> LayoutRef
;
33 typedef ModelRef
< TextModel
> TextRef
;
35 ShapeRef mxShapeProp
; /// Label frame formatting.
36 TextBodyRef mxTextProp
; /// Label text formatting.
37 LayoutRef mxLayout
; /// Layout/position of the axis units label.
38 TextRef mxText
; /// Text source of the axis units label.
39 double mfCustomUnit
; /// Custom unit size on value axis.
40 OUString mnBuiltInUnit
; /// Built-in unit on value axis.
42 explicit AxisDispUnitsModel();
43 ~AxisDispUnitsModel();
48 typedef ModelRef
< Shape
> ShapeRef
;
49 typedef ModelRef
< TextBody
> TextBodyRef
;
50 typedef ModelRef
< TitleModel
> TitleRef
;
51 typedef ModelRef
< AxisDispUnitsModel
> AxisDispUnitsRef
;
53 ShapeRef mxShapeProp
; /// Axis line formatting.
54 TextBodyRef mxTextProp
; /// Axis label text formatting.
55 TitleRef mxTitle
; /// Axis title.
56 AxisDispUnitsRef mxDispUnits
; /// Axis units label.
57 ShapeRef mxMajorGridLines
; /// Major grid lines formatting.
58 ShapeRef mxMinorGridLines
; /// Minor grid lines formatting.
59 NumberFormat maNumberFormat
; /// Number format for axis tick labels.
60 std::optional
< double > mofCrossesAt
; /// Position on this axis where another axis crosses.
61 std::optional
< double > mofMajorUnit
; /// Unit for major tick marks on date/value axis.
62 std::optional
< double > mofMinorUnit
; /// Unit for minor tick marks on date/value axis.
63 std::optional
< double > mofLogBase
; /// Logarithmic base for logarithmic axes.
64 std::optional
< double > mofMax
; /// Maximum axis value.
65 std::optional
< double > mofMin
; /// Minimum axis value.
66 std::optional
< sal_Int32
> monBaseTimeUnit
; /// Base time unit shown on a date axis.
67 sal_Int32 mnAxisId
; /// Unique axis identifier.
68 sal_Int32 mnAxisPos
; /// Position of the axis (top/bottom/left/right).
69 sal_Int32 mnCrossAxisId
; /// Identifier of a crossing axis.
70 sal_Int32 mnCrossBetween
; /// This value axis crosses between or inside category.
71 sal_Int32 mnCrossMode
; /// Mode this axis crosses another axis (min, max, auto).
72 sal_Int32 mnLabelAlign
; /// Tick mark label alignment.
73 sal_Int32 mnLabelOffset
; /// Tick mark label distance from axis.
74 sal_Int32 mnMajorTickMark
; /// Major tick mark style.
75 sal_Int32 mnMajorTimeUnit
; /// Time unit for major tick marks on date axis.
76 sal_Int32 mnMinorTickMark
; /// Minor tick mark style.
77 sal_Int32 mnMinorTimeUnit
; /// Time unit for minor tick marks on date axis.
78 sal_Int32 mnOrientation
; /// Axis orientation (value order min to max, or max to min).
79 sal_Int32 mnTickLabelPos
; /// Position of tick mark labels relative to the axis.
80 sal_Int32 mnTickLabelSkip
; /// Number of tick mark labels to skip.
81 sal_Int32 mnTickMarkSkip
; /// Number of tick marks to skip.
82 sal_Int32 mnTypeId
; /// Type identifier of this axis.
83 bool mbAuto
; /// True = automatic selection of text/date axis type.
84 bool mbDeleted
; /// True = axis has been deleted manually.
85 bool mbNoMultiLevel
; /// True = no multi-level categories supported.
87 explicit AxisModel( sal_Int32 nTypeId
, bool bMSO2007Doc
);
91 } // namespace oox::drawingml::chart
95 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */