/* -*- 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/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef INCLUDED_CHART2_SOURCE_CONTROLLER_INC_RES_ERRORBAR_HXX #define INCLUDED_CHART2_SOURCE_CONTROLLER_INC_RES_ERRORBAR_HXX #include #include #include #include #include #include #include #include #include "chartview/ChartSfxItemIds.hxx" #include "RangeSelectionListener.hxx" #include class Dialog; namespace chart { class RangeSelectionHelper; class ErrorBarResources : public RangeSelectionListenerParent { public: enum tErrorBarType { ERROR_BAR_X, ERROR_BAR_Y }; ErrorBarResources( VclBuilderContainer* pParent, Dialog* pParentDialog, const SfxItemSet& rInAttrs, bool bNoneAvailable, chart::ErrorBarResources::tErrorBarType eType = ERROR_BAR_Y ); virtual ~ErrorBarResources(); void SetAxisMinorStepWidthForErrorBarDecimals( double fMinorStepWidth ); void SetErrorBarType( tErrorBarType eNewType ); void SetChartDocumentForRangeChoosing( const css::uno::Reference< css::chart2::XChartDocument > & xChartDocument ); void Reset(const SfxItemSet& rInAttrs); bool FillItemSet(SfxItemSet& rOutAttrs) const; void FillValueSets(); // ____ RangeSelectionListenerParent ____ virtual void listeningFinished( const OUString & rNewRange ) override; virtual void disposingRangeSelection() override; private: // category VclPtr m_pRbNone; VclPtr m_pRbConst; VclPtr m_pRbPercent; VclPtr m_pRbFunction; VclPtr m_pRbRange; VclPtr m_pLbFunction; // parameters VclPtr m_pFlParameters; VclPtr m_pBxPositive; VclPtr m_pMfPositive; VclPtr m_pEdRangePositive; VclPtr m_pIbRangePositive; VclPtr m_pBxNegative; VclPtr m_pMfNegative; VclPtr m_pEdRangeNegative; VclPtr m_pIbRangeNegative; VclPtr m_pCbSyncPosNeg; // indicator VclPtr m_pRbBoth; VclPtr m_pRbPositive; VclPtr m_pRbNegative; VclPtr m_pFiBoth; VclPtr m_pFiPositive; VclPtr m_pFiNegative; VclPtr m_pUIStringPos; VclPtr m_pUIStringNeg; VclPtr m_pUIStringRbRange; SvxChartKindError m_eErrorKind; SvxChartIndicate m_eIndicate; bool m_bErrorKindUnique; bool m_bIndicatorUnique; bool m_bPlusUnique; bool m_bMinusUnique; bool m_bRangePosUnique; bool m_bRangeNegUnique; bool m_bNoneAvailable; tErrorBarType m_eErrorBarType; sal_uInt16 m_nConstDecimalDigits; sal_Int64 m_nConstSpinSize; double m_fPlusValue; double m_fMinusValue; VclPtr m_pParentDialog; std::unique_ptr< RangeSelectionHelper > m_apRangeSelectionHelper; VclPtr m_pCurrentRangeChoosingField; bool m_bHasInternalDataProvider; bool m_bEnableDataTableDialog; DECL_LINK( CategoryChosen, Button*, void ); DECL_LINK( CategoryChosen2, ListBox&, void ); DECL_LINK( SynchronizePosAndNeg, CheckBox&, void ); DECL_LINK( PosValueChanged, Edit&, void ); DECL_LINK( IndicatorChanged, Button *, void ); DECL_LINK( ChooseRange, Button *, void ); DECL_LINK( RangeChanged, Edit&, void ); void UpdateControlStates(); void isRangeFieldContentValid( Edit & rEdit ); }; } //namespace chart #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */