From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- sc/inc/SparklineAttributes.hxx | 145 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 sc/inc/SparklineAttributes.hxx (limited to 'sc/inc/SparklineAttributes.hxx') diff --git a/sc/inc/SparklineAttributes.hxx b/sc/inc/SparklineAttributes.hxx new file mode 100644 index 000000000..d1baf732c --- /dev/null +++ b/sc/inc/SparklineAttributes.hxx @@ -0,0 +1,145 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#pragma once + +#include "scdllapi.h" +#include +#include +#include +#include + +namespace sc +{ +/** Supported sparkline types */ +enum class SparklineType +{ + Line, + Column, + Stacked +}; + +/** The method of calculating the axis min or max value */ +enum class AxisType +{ + Individual, // calculate the min/max of a sparkline + Group, // calculate the min or max of the whole sparkline group + Custom // user defined +}; + +/** Determines how to display the empty cells */ +enum class DisplayEmptyCellsAs +{ + Span, + Gap, + Zero // empty cell equals zero +}; + +/** Common properties for a group of sparklines */ +class SC_DLLPUBLIC SparklineAttributes +{ +private: + class Implementation; + o3tl::cow_wrapper m_aImplementation; + +public: + SparklineAttributes(); + ~SparklineAttributes(); + SparklineAttributes(const SparklineAttributes& rOther); + SparklineAttributes(SparklineAttributes&& rOther); + SparklineAttributes& operator=(const SparklineAttributes& rOther); + SparklineAttributes& operator=(SparklineAttributes&& rOther); + + bool operator==(const SparklineAttributes& rOther) const; + bool operator!=(const SparklineAttributes& rOther) const + { + return !(SparklineAttributes::operator==(rOther)); + } + + Color getColorSeries() const; + void setColorSeries(Color aColorSeries); + + Color getColorNegative() const; + void setColorNegative(Color aColorSeries); + + Color getColorAxis() const; + void setColorAxis(Color aColorSeries); + + Color getColorMarkers() const; + void setColorMarkers(Color aColorSeries); + + Color getColorFirst() const; + void setColorFirst(Color aColorSeries); + + Color getColorLast() const; + void setColorLast(Color aColorSeries); + + Color getColorHigh() const; + void setColorHigh(Color aColorSeries); + + Color getColorLow() const; + void setColorLow(Color aColorSeries); + + AxisType getMinAxisType() const; + void setMinAxisType(AxisType eAxisType); + + AxisType getMaxAxisType() const; + void setMaxAxisType(AxisType eAxisType); + + /** Line weight or width in points */ + double getLineWeight() const; + void setLineWeight(double nWeight); + + SparklineType getType() const; + void setType(SparklineType eType); + + bool isDateAxis() const; + void setDateAxis(bool bValue); + + DisplayEmptyCellsAs getDisplayEmptyCellsAs() const; + void setDisplayEmptyCellsAs(DisplayEmptyCellsAs eValue); + + bool isMarkers() const; + void setMarkers(bool bValue); + + bool isHigh() const; + void setHigh(bool bValue); + + bool isLow() const; + void setLow(bool bValue); + + bool isFirst() const; + void setFirst(bool bValue); + + bool isLast() const; + void setLast(bool bValue); + + bool isNegative() const; + void setNegative(bool bValue); + + bool shouldDisplayXAxis() const; + void setDisplayXAxis(bool bValue); + + bool shouldDisplayHidden() const; + void setDisplayHidden(bool bValue); + + bool isRightToLeft() const; + void setRightToLeft(bool bValue); + + std::optional getManualMax() const; + void setManualMax(std::optional aValue); + + std::optional getManualMin() const; + void setManualMin(std::optional aValue); +}; + +} // end sc + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3