office-gobmx/sc/inc/SparklineAttributes.hxx
Noel Grandin dd77b743a7 loplugin:passstuffbyref in sc
Change-Id: Ic3ce1406aa2567ca676bb8f431c52f590fadaec6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176198
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-11-07 12:11:35 +01:00

146 lines
4 KiB
C++

/* -*- 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 <docmodel/color/ComplexColor.hxx>
#include <optional>
#include <o3tl/cow_wrapper.hxx>
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<Implementation> 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));
}
void resetColors();
const model::ComplexColor& getColorSeries() const;
void setColorSeries(model::ComplexColor const& rColorSeries);
const model::ComplexColor& getColorNegative() const;
void setColorNegative(model::ComplexColor const& rColorSeries);
const model::ComplexColor& getColorAxis() const;
void setColorAxis(model::ComplexColor const& rColorSeries);
const model::ComplexColor& getColorMarkers() const;
void setColorMarkers(model::ComplexColor const& rColorSeries);
const model::ComplexColor& getColorFirst() const;
void setColorFirst(model::ComplexColor const& rColorSeries);
const model::ComplexColor& getColorLast() const;
void setColorLast(model::ComplexColor const& rColorSeries);
const model::ComplexColor& getColorHigh() const;
void setColorHigh(model::ComplexColor const& rColorSeries);
const model::ComplexColor& getColorLow() const;
void setColorLow(model::ComplexColor const& rColorSeries);
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<double> getManualMax() const;
void setManualMax(std::optional<double> aValue);
std::optional<double> getManualMin() const;
void setManualMin(std::optional<double> aValue);
};
} // end sc
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */