chart2/Library_chartcore.mk | 1 chart2/inc/ChartModel.hxx | 2 chart2/source/inc/PopupRequest.hxx | 51 ++++++++++++++++++++++ chart2/source/model/main/ChartModel.cxx | 11 ++++ chart2/source/tools/PopupRequest.cxx | 42 ++++++++++++++++++ offapi/UnoApi_offapi.mk | 2 offapi/com/sun/star/chart2/data/PopupRequest.idl | 44 ++++++++++++++++++ offapi/com/sun/star/chart2/data/XDataReceiver.idl | 2 offapi/com/sun/star/chart2/data/XPopupRequest.idl | 39 ++++++++++++++++ 9 files changed, 194 insertions(+)
New commits: commit 8cc8ffdb04f9915c5b7dddd619ef89762c7a40c2 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Tue Feb 7 14:25:26 2017 +0100 [API CHANGE] Add PopupRequest - a callback to open a pop-up win. in calc Change-Id: Iea600e229deb69d1638a1a649008fc4738a5934a Reviewed-on: https://gerrit.libreoffice.org/34005 Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk index 2acc34f..6d1a721 100644 --- a/chart2/Library_chartcore.mk +++ b/chart2/Library_chartcore.mk @@ -223,6 +223,7 @@ $(eval $(call gb_Library_add_exception_objects,chartcore,\ chart2/source/tools/ObjectIdentifier \ chart2/source/tools/OPropertySet \ chart2/source/tools/PolynomialRegressionCurveCalculator \ + chart2/source/tools/PopupRequest \ chart2/source/tools/PotentialRegressionCurveCalculator \ chart2/source/tools/PropertyHelper \ chart2/source/tools/RangeHighlighter \ diff --git a/chart2/inc/ChartModel.hxx b/chart2/inc/ChartModel.hxx index da23683..5225b80 100644 --- a/chart2/inc/ChartModel.hxx +++ b/chart2/inc/ChartModel.hxx @@ -143,6 +143,7 @@ private: css::awt::Size m_aVisualAreaSize; css::uno::Reference< css::frame::XModel > m_xParent; css::uno::Reference< css::chart2::data::XRangeHighlighter > m_xRangeHighlighter; + css::uno::Reference<css::chart2::data::XPopupRequest> m_xPopupRequest; ::std::vector< GraphicObject > m_aGraphicObjectVector; css::uno::Reference< css::chart2::data::XDataProvider > m_xDataProvider; @@ -382,6 +383,7 @@ public: virtual void SAL_CALL attachNumberFormatsSupplier( const css::uno::Reference< css::util::XNumberFormatsSupplier >& xSupplier ) override; virtual css::uno::Reference< css::chart2::data::XRangeHighlighter > SAL_CALL getRangeHighlighter() override; + virtual css::uno::Reference< css::chart2::data::XPopupRequest > SAL_CALL getPopupRequest() override; // ____ XTitled ____ virtual css::uno::Reference< css::chart2::XTitle > SAL_CALL getTitleObject() override; diff --git a/chart2/source/inc/PopupRequest.hxx b/chart2/source/inc/PopupRequest.hxx new file mode 100644 index 0000000..e564003 --- /dev/null +++ b/chart2/source/inc/PopupRequest.hxx @@ -0,0 +1,51 @@ +/* -*- 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/. + */ + +#ifndef INCLUDED_CHART2_SOURCE_INC_POPUPREQUEST_HXX +#define INCLUDED_CHART2_SOURCE_INC_POPUPREQUEST_HXX + +#include "MutexContainer.hxx" +#include <cppuhelper/compbase.hxx> +#include <com/sun/star/chart2/data/XPopupRequest.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> + +namespace chart +{ + +namespace impl +{ + +typedef cppu::WeakComponentImplHelper<css::chart2::data::XPopupRequest> PopupRequest_Base; + +} + +class PopupRequest : public MutexContainer, public impl::PopupRequest_Base +{ +public: + explicit PopupRequest(); + virtual ~PopupRequest() override; + +protected: + // ____ XRequestCallback ____ + virtual void SAL_CALL addCallback(const css::uno::Reference< ::css::awt::XCallback >& xCallback, + const css::uno::Any& aData) override; + + // ____ WeakComponentImplHelperBase ____ + // is called when dispose() is called at this component + virtual void SAL_CALL disposing() override; + +private: + css::uno::Reference<css::awt::XCallback> m_xCallback; +}; + +} // namespace chart + +#endif // INCLUDED_CHART2_SOURCE_INC_POPUPREQUEST_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 924e5be..d502324 100644 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -32,6 +32,7 @@ #include "NameContainer.hxx" #include "UndoManager.hxx" #include "ChartView.hxx" +#include "PopupRequest.hxx" #include <svx/charthelper.hxx> #include <vcl/openglwin.hxx> @@ -412,6 +413,7 @@ void SAL_CALL ChartModel::disconnectController( const uno::Reference< frame::XCo m_xCurrentController.clear(); DisposeHelper::DisposeAndClear( m_xRangeHighlighter ); + DisposeHelper::DisposeAndClear(m_xPopupRequest); } void SAL_CALL ChartModel::lockControllers() @@ -496,6 +498,7 @@ void SAL_CALL ChartModel::setCurrentController( const uno::Reference< frame::XCo m_xCurrentController = xController; DisposeHelper::DisposeAndClear( m_xRangeHighlighter ); + DisposeHelper::DisposeAndClear(m_xPopupRequest); } uno::Reference< uno::XInterface > SAL_CALL ChartModel::getCurrentSelection() @@ -569,6 +572,7 @@ void SAL_CALL ChartModel::dispose() m_xCurrentController.clear(); DisposeHelper::DisposeAndClear( m_xRangeHighlighter ); + DisposeHelper::DisposeAndClear(m_xPopupRequest); if( m_xOldModelAgg.is()) m_xOldModelAgg->setDelegator( nullptr ); @@ -909,6 +913,13 @@ Reference< chart2::data::XRangeHighlighter > SAL_CALL ChartModel::getRangeHighli return m_xRangeHighlighter; } +Reference<chart2::data::XPopupRequest> SAL_CALL ChartModel::getPopupRequest() +{ + if (!m_xPopupRequest.is()) + m_xPopupRequest.set(new PopupRequest); + return m_xPopupRequest; +} + Reference< chart2::XChartTypeTemplate > ChartModel::impl_createDefaultChartTypeTemplate() { Reference< chart2::XChartTypeTemplate > xTemplate; diff --git a/chart2/source/tools/PopupRequest.cxx b/chart2/source/tools/PopupRequest.cxx new file mode 100644 index 0000000..5078c6c --- /dev/null +++ b/chart2/source/tools/PopupRequest.cxx @@ -0,0 +1,42 @@ +/* -*- 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/. + * + */ + +#include "PopupRequest.hxx" + +using namespace css; + +namespace chart +{ + +PopupRequest::PopupRequest() + : impl::PopupRequest_Base(m_aMutex) +{ +} + +PopupRequest::~PopupRequest() +{} + +// ____ XRequestCallback ____ + +void SAL_CALL PopupRequest::addCallback(const uno::Reference<awt::XCallback>& xCallback, + const uno::Any& /*aData*/) +{ + m_xCallback = xCallback; +} + +// ____ WeakComponentImplHelperBase ____ +// is called when dispose() is called at this component +void SAL_CALL PopupRequest::disposing() +{ +} + +} // namespace chart + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index a76f42a..064a847 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -658,6 +658,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,com/sun/star/chart2/data,\ DataSequence \ DataSink \ DataSource \ + PopupRequest \ RangeHighlighter \ RangeHighlightListener \ TabularDataProviderArguments \ @@ -2057,6 +2058,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/chart2/data,\ XLabeledDataSequence \ XLabeledDataSequence2 \ XNumericalDataSequence \ + XPopupRequest \ XRangeHighlighter \ XRangeXMLConversion \ XSheetDataProvider \ diff --git a/offapi/com/sun/star/chart2/data/PopupRequest.idl b/offapi/com/sun/star/chart2/data/PopupRequest.idl new file mode 100644 index 0000000..bd49c69 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/PopupRequest.idl @@ -0,0 +1,44 @@ +/* -*- 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/. + * + */ + +#ifndef com_sun_star_chart2_data_PopupRequest_idl +#define com_sun_star_chart2_data_PopupRequest_idl + +#include <com/sun/star/chart2/data/XPopupRequest.idl> + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** + */ +service PopupRequest +{ + /** + */ + interface XPopupRequest; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataReceiver.idl b/offapi/com/sun/star/chart2/data/XDataReceiver.idl index ae7cf13..2ff7427 100644 --- a/offapi/com/sun/star/chart2/data/XDataReceiver.idl +++ b/offapi/com/sun/star/chart2/data/XDataReceiver.idl @@ -87,6 +87,8 @@ interface XDataReceiver : ::com::sun::star::uno::XInterface return an empty object.</p> */ XRangeHighlighter getRangeHighlighter(); + + XPopupRequest getPopupRequest(); }; } ; // data diff --git a/offapi/com/sun/star/chart2/data/XPopupRequest.idl b/offapi/com/sun/star/chart2/data/XPopupRequest.idl new file mode 100644 index 0000000..e329465 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XPopupRequest.idl @@ -0,0 +1,39 @@ +/* -*- 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/. + * + */ + +#ifndef com_sun_star_chart2_data_XPopupRequest_idl +#define com_sun_star_chart2_data_XPopupRequest_idl + +#include <com/sun/star/uno/XInterface.idl> + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +interface XPopupRequest : com::sun::star::awt::XRequestCallback +{ +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits