chart2/Library_chartcontroller.mk | 1 chart2/Library_chartcore.mk | 3 chart2/source/chartcore.component | 4 chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx | 11 + chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx | 4 chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx | 4 chart2/source/controller/dialogs/Bitmaps.hrc | 11 - chart2/source/controller/dialogs/Bitmaps.src | 11 + chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx | 54 +++++ chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx | 34 +++ chart2/source/controller/dialogs/Strings_ChartTypes.src | 8 chart2/source/controller/dialogs/tp_ChartType.cxx | 11 + chart2/source/controller/dialogs/tp_ChartType.hxx | 1 chart2/source/inc/Strings.hrc | 8 chart2/source/inc/macros.hxx | 2 chart2/source/inc/servicenames_charttypes.hxx | 5 chart2/source/model/template/ChartTypeManager.cxx | 12 + chart2/source/model/template/ChartTypeTemplate.cxx | 1 chart2/source/model/template/ChartTypeTemplate.hxx | 4 chart2/source/model/template/GL3DBarChartType.cxx | 55 +++++ chart2/source/model/template/GL3DBarChartType.hxx | 47 ++++ chart2/source/model/template/GL3DBarChartTypeTemplate.cxx | 96 ++++++++++ chart2/source/model/template/GL3DBarChartTypeTemplate.hxx | 47 ++++ chart2/source/tools/DiagramHelper.cxx | 2 chart2/source/view/charttypes/AreaChart.cxx | 2 chart2/source/view/charttypes/GL3DBarChart.cxx | 29 +++ chart2/source/view/charttypes/GL3DBarChart.hxx | 30 +++ chart2/source/view/charttypes/VSeriesPlotter.cxx | 18 + chart2/source/view/main/PlotterBase.cxx | 6 icon-themes/galaxy/chart2/res/gl3dbar_roundrect.png |binary icon-themes/galaxy/chart2/res/typegl3dbar_16.png |binary include/xmloff/xmltoken.hxx | 1 xmloff/source/chart/SchXMLTools.cxx | 8 xmloff/source/chart/SchXMLTools.hxx | 1 xmloff/source/core/xmltoken.cxx | 1 35 files changed, 514 insertions(+), 18 deletions(-)
New commits: commit 86090ef2fb4ea06f687d9e4474b8bdfda6eb6871 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Tue Mar 25 22:50:02 2014 -0400 Make the new OpenGL chart type a compile time option. And it's disabled for now. Change-Id: I9a513d757960b61e7b2d6009eabf97a75b6c453e diff --git a/chart2/source/controller/dialogs/tp_ChartType.cxx b/chart2/source/controller/dialogs/tp_ChartType.cxx index 0a10bae..3a880ec 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.cxx +++ b/chart2/source/controller/dialogs/tp_ChartType.cxx @@ -727,7 +727,9 @@ ChartTypeTabPage::ChartTypeTabPage(Window* pParent m_aChartTypeDialogControllerList.push_back(new StockChartDialogController() ); } m_aChartTypeDialogControllerList.push_back(new CombiColumnLineChartDialogController() ); +#if ENABLE_GL3D_BARCHART m_aChartTypeDialogControllerList.push_back(new GL3DBarChartDialogController()); +#endif ::std::vector< ChartTypeDialogController* >::const_iterator aIter = m_aChartTypeDialogControllerList.begin(); const ::std::vector< ChartTypeDialogController* >::const_iterator aEnd = m_aChartTypeDialogControllerList.end(); diff --git a/chart2/source/inc/macros.hxx b/chart2/source/inc/macros.hxx index daf66c4..21e5911 100644 --- a/chart2/source/inc/macros.hxx +++ b/chart2/source/inc/macros.hxx @@ -30,6 +30,8 @@ typeid( ex ).name() << ", Message: " << \ ex.Message ) +#define ENABLE_GL3D_BARCHART 0 + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 44fc32edcddc7f290e3e5162be9a80917c499ade Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon Mar 24 22:20:02 2014 -0400 Properly import and export the new chart type to and from ODF. Change-Id: I38e9813c6eb853dfb92b1537cea0b9ad97473b57 diff --git a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx index dea17aa..c7eb4ef 100644 --- a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx @@ -91,6 +91,7 @@ enum eServiceType SERVICE_NAME_STOCK_DIAGRAM, SERVICE_NAME_XY_DIAGRAM, SERVICE_NAME_BUBBLE_DIAGRAM, + SERVICE_NAME_GL3DBAR_DIAGRAM, SERVICE_NAME_DASH_TABLE, SERVICE_NAME_GARDIENT_TABLE, @@ -121,6 +122,7 @@ tServiceNameMap & lcl_getStaticServiceNameMap() ( "com.sun.star.chart.StockDiagram", SERVICE_NAME_STOCK_DIAGRAM ) ( "com.sun.star.chart.XYDiagram", SERVICE_NAME_XY_DIAGRAM ) ( "com.sun.star.chart.BubbleDiagram", SERVICE_NAME_BUBBLE_DIAGRAM ) + ( "com.sun.star.chart.GL3DBarDiagram", SERVICE_NAME_GL3DBAR_DIAGRAM ) ( "com.sun.star.drawing.DashTable", SERVICE_NAME_DASH_TABLE ) ( "com.sun.star.drawing.GradientTable", SERVICE_NAME_GARDIENT_TABLE ) @@ -1263,6 +1265,15 @@ uno::Reference< uno::XInterface > SAL_CALL ChartDocumentWrapper::createInstance( bCreateDiagram = true; } break; + case SERVICE_NAME_GL3DBAR_DIAGRAM: + if( xManagerFact.is()) + { + xTemplate.set( + xManagerFact->createInstance("com.sun.star.chart2.template.GL3DBar"), + uno::UNO_QUERY ); + bCreateDiagram = true; + } + break; case SERVICE_NAME_DASH_TABLE: case SERVICE_NAME_GARDIENT_TABLE: diff --git a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx index 1dc2dd1..04670ad 100644 --- a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx @@ -522,6 +522,9 @@ OUString lcl_getDiagramType( const OUString & rTemplateServiceName ) { const OUString aName( rTemplateServiceName.copy( aPrefix.getLength())); + if (aName.indexOf("GL3DBar") != -1) + return OUString("com.sun.star.chart.GL3DBarDiagram"); + // "Area" "StackedArea" "PercentStackedArea" "ThreeDArea" // "StackedThreeDArea" "PercentStackedThreeDArea" if( aName.indexOf( "Area" ) != -1 ) @@ -597,6 +600,7 @@ const tMakeStringStringMap& lcl_getChartTypeNameMap() ( "com.sun.star.chart2.NetChartType", "com.sun.star.chart.NetDiagram" ) ( "com.sun.star.chart2.CandleStickChartType", "com.sun.star.chart.StockDiagram" ) ( "com.sun.star.chart2.BubbleChartType", "com.sun.star.chart.BubbleDiagram" ) + ( "com.sun.star.chart2.GL3DBarChartType", "com.sun.star.chart.GL3DBarDiagram" ) ; return g_aChartTypeNameMap; } diff --git a/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx b/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx index 053cbe7..1b3bfdc 100644 --- a/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx +++ b/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx @@ -33,8 +33,10 @@ Image GL3DBarChartDialogController::getImage() const tTemplateServiceChartTypeParameterMap& GL3DBarChartDialogController::getTemplateMap() const { - static tTemplateServiceChartTypeParameterMap aMap( - "com.sun.star.chart2.template.GL3DBarRoundedRectangle", ChartTypeParameter(1)); + static tTemplateServiceChartTypeParameterMap aMap = + tTemplateServiceChartTypeParameterMap + ("com.sun.star.chart2.template.GL3DBar", ChartTypeParameter(1)) + ("com.sun.star.chart2.template.GL3DBarRoundedRectangle", ChartTypeParameter(2)); return aMap; } diff --git a/chart2/source/model/template/ChartTypeManager.cxx b/chart2/source/model/template/ChartTypeManager.cxx index 49775f9..f6ebbee 100644 --- a/chart2/source/model/template/ChartTypeManager.cxx +++ b/chart2/source/model/template/ChartTypeManager.cxx @@ -122,6 +122,7 @@ enum TemplateId TEMPLATE_STOCKVOLUMELOWHIGHCLOSE, TEMPLATE_STOCKVOLUMEOPENLOWHIGHCLOSE, TEMPLATE_BUBBLE, + TEMPLATE_GL3DBAR, TEMPLATE_GL3DBAR_ROUNDED_RECTANGLE, // TEMPLATE_SURFACE, // TEMPLATE_ADDIN, @@ -198,6 +199,7 @@ const tTemplateMapType & lcl_DefaultChartTypeMap() ( "com.sun.star.chart2.template.StockVolumeLowHighClose", TEMPLATE_STOCKVOLUMELOWHIGHCLOSE ) ( "com.sun.star.chart2.template.StockVolumeOpenLowHighClose", TEMPLATE_STOCKVOLUMEOPENLOWHIGHCLOSE ) ( "com.sun.star.chart2.template.Bubble", TEMPLATE_BUBBLE ) + ( "com.sun.star.chart2.template.GL3DBar", TEMPLATE_GL3DBAR ) ( "com.sun.star.chart2.template.GL3DBarRoundedRectangle", TEMPLATE_GL3DBAR_ROUNDED_RECTANGLE ) // ( "com.sun.star.chart2.template.Surface", TEMPLATE_SURFACE ) // ( "com.sun.star.chart2.template.Addin", TEMPLATE_ADDIN ) @@ -532,6 +534,9 @@ uno::Reference< uno::XInterface > SAL_CALL ChartTypeManager::createInstance( xTemplate.set( new BubbleChartTypeTemplate( m_xContext, aServiceSpecifier )); break; + case TEMPLATE_GL3DBAR: + xTemplate.set(new GL3DBarChartTypeTemplate(m_xContext, aServiceSpecifier)); + break; case TEMPLATE_GL3DBAR_ROUNDED_RECTANGLE: xTemplate.set(new GL3DBarChartTypeTemplate(m_xContext, aServiceSpecifier)); break; diff --git a/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx index e65c8f5..c551111 100644 --- a/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx +++ b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx @@ -19,7 +19,7 @@ namespace chart { namespace { -const OUString aServiceName("com.sun.star.chart2.BubbleChartTypeTemplate"); +const OUString aServiceName("com.sun.star.chart2.GL3DBarChartTypeTemplate"); } diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx index 8935eb4..3a5996a 100644 --- a/include/xmloff/xmltoken.hxx +++ b/include/xmloff/xmltoken.hxx @@ -900,6 +900,7 @@ namespace xmloff { namespace token { XML_GCD, XML_GENERATOR, XML_GEQ, + XML_GL3DBAR, XML_GOURAUD, XML_GRADIENT, XML_GRADIENT_ANGLE, diff --git a/xmloff/source/chart/SchXMLTools.cxx b/xmloff/source/chart/SchXMLTools.cxx index b6fe296..06efa57 100644 --- a/xmloff/source/chart/SchXMLTools.cxx +++ b/xmloff/source/chart/SchXMLTools.cxx @@ -140,6 +140,7 @@ static const SvXMLEnumMapEntry aXMLChartClassMap[] = { XML_BAR, XML_CHART_CLASS_BAR }, { XML_STOCK, XML_CHART_CLASS_STOCK }, { XML_BUBBLE, XML_CHART_CLASS_BUBBLE }, + { XML_GL3DBAR, XML_CHART_CLASS_GL3DBAR }, { XML_SURFACE, XML_CHART_CLASS_BAR }, //@todo change this if a surface chart is available { XML_ADD_IN, XML_CHART_CLASS_ADDIN }, { XML_TOKEN_INVALID, XML_CHART_CLASS_UNKNOWN } @@ -191,6 +192,9 @@ const tMakeStringStringMap& lcl_getChartTypeNameMap() ( OUString( "com.sun.star.chart.BubbleDiagram" ) , OUString( "com.sun.star.chart2.BubbleChartType" ) ) + ( OUString( "com.sun.star.chart.GL3DBarDiagram" ) + , OUString( "com.sun.star.chart2.GL3DBarChartType" ) ) + ; return g_aChartTypeNameMap; } @@ -268,6 +272,8 @@ OUString GetChartTypeByClassName( else aResultBuffer.append("Column"); } + else if (IsXMLToken(rClassName, XML_GL3DBAR)) + aResultBuffer.append("GL3DBar"); else bInternalType = false; @@ -333,6 +339,8 @@ XMLTokenEnum getTokenByChartType( else if( (bUseOldNames && aServiceName == "Stock") || (!bUseOldNames && aServiceName == "CandleStick")) eResult = XML_STOCK; + else if (aServiceName == "GL3DBar") + eResult = XML_GL3DBAR; } } diff --git a/xmloff/source/chart/SchXMLTools.hxx b/xmloff/source/chart/SchXMLTools.hxx index 9c18303..0b6f49a 100644 --- a/xmloff/source/chart/SchXMLTools.hxx +++ b/xmloff/source/chart/SchXMLTools.hxx @@ -63,6 +63,7 @@ namespace SchXMLTools XML_CHART_CLASS_BAR, XML_CHART_CLASS_STOCK, XML_CHART_CLASS_BUBBLE, + XML_CHART_CLASS_GL3DBAR, XML_CHART_CLASS_ADDIN, XML_CHART_CLASS_UNKNOWN }; diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx index cedae88..e013431 100644 --- a/xmloff/source/core/xmltoken.cxx +++ b/xmloff/source/core/xmltoken.cxx @@ -904,6 +904,7 @@ namespace xmloff { namespace token { TOKEN( "gcd", XML_GCD ), TOKEN( "generator", XML_GENERATOR ), TOKEN( "geq", XML_GEQ ), + TOKEN( "gl3d-bar", XML_GL3DBAR ), TOKEN( "gouraud", XML_GOURAUD ), TOKEN( "gradient", XML_GRADIENT ), TOKEN( "angle", XML_GRADIENT_ANGLE ), commit 05efb605b36ea340762ef1583b3aea6a6b5cdddb Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon Mar 24 17:47:01 2014 -0400 Add a new skeleton plotter for the GL3D bar chart. It plots absolutely nothing. It's just a place holder for now. Change-Id: I6eb9cc23481391b83f6946a8b49a6176c5b29cd7 diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk index 63171f4..6dafd71 100644 --- a/chart2/Library_chartcore.mk +++ b/chart2/Library_chartcore.mk @@ -87,6 +87,7 @@ $(eval $(call gb_Library_add_exception_objects,chartcore,\ chart2/source/view/charttypes/BubbleChart \ chart2/source/view/charttypes/CandleStickChart \ chart2/source/view/charttypes/CategoryPositionHelper \ + chart2/source/view/charttypes/GL3DBarChart \ chart2/source/view/charttypes/NetChart \ chart2/source/view/charttypes/PieChart \ chart2/source/view/charttypes/Splines \ diff --git a/chart2/source/chartcore.component b/chart2/source/chartcore.component index 5df1a18..4029670 100644 --- a/chart2/source/chartcore.component +++ b/chart2/source/chartcore.component @@ -101,6 +101,10 @@ <service name="com.sun.star.chart2.BubbleChartType"/> <service name="com.sun.star.chart2.ChartType"/> </implementation> + <implementation name="com.sun.star.comp.chart.GL3DBarChartType"> + <service name="com.sun.star.chart2.GL3DBarChartType"/> + <service name="com.sun.star.chart2.ChartType"/> + </implementation> <implementation name="com.sun.star.comp.chart.CandleStickChartType"> <service name="com.sun.star.beans.PropertySet"/> <service name="com.sun.star.chart2.CandleStickChartType"/> diff --git a/chart2/source/model/template/GL3DBarChartType.cxx b/chart2/source/model/template/GL3DBarChartType.cxx index 1dd889d..033c38c 100644 --- a/chart2/source/model/template/GL3DBarChartType.cxx +++ b/chart2/source/model/template/GL3DBarChartType.cxx @@ -15,7 +15,14 @@ using namespace com::sun::star; namespace chart { GL3DBarChartType::GL3DBarChartType( const uno::Reference<uno::XComponentContext>& xContext ) : - ChartType(xContext) {} + ChartType(xContext) +{ +} + +GL3DBarChartType::GL3DBarChartType( const GL3DBarChartType& rOther ) : + ChartType(rOther) +{ +} GL3DBarChartType::~GL3DBarChartType() {} @@ -30,9 +37,6 @@ uno::Sequence<OUString> GL3DBarChartType::getSupportedServiceNames_Static() return aServices; } -GL3DBarChartType::GL3DBarChartType( const GL3DBarChartType& rOther ) : - ChartType(rOther) {} - OUString SAL_CALL GL3DBarChartType::getChartType() throw (::com::sun::star::uno::RuntimeException, std::exception) { diff --git a/chart2/source/model/template/GL3DBarChartType.hxx b/chart2/source/model/template/GL3DBarChartType.hxx index 4951050..ee9d0ab 100644 --- a/chart2/source/model/template/GL3DBarChartType.hxx +++ b/chart2/source/model/template/GL3DBarChartType.hxx @@ -22,7 +22,7 @@ namespace chart { class GL3DBarChartType : public ChartType { public: - GL3DBarChartType( const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>& xContext ); + GL3DBarChartType( const css::uno::Reference<css::uno::XComponentContext>& xContext ); virtual ~GL3DBarChartType(); APPHELPER_XSERVICEINFO_DECL() diff --git a/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx index 262828c..e65c8f5 100644 --- a/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx +++ b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx @@ -8,6 +8,8 @@ */ #include "GL3DBarChartTypeTemplate.hxx" +#include "GL3DBarChartType.hxx" + #include <servicenames_charttypes.hxx> #include <macros.hxx> @@ -15,6 +17,12 @@ using namespace com::sun::star; namespace chart { +namespace { + +const OUString aServiceName("com.sun.star.chart2.BubbleChartTypeTemplate"); + +} + GL3DBarChartTypeTemplate::GL3DBarChartTypeTemplate( const uno::Reference<uno::XComponentContext>& xContext, const OUString& rServiceName ) : ChartTypeTemplate(xContext, rServiceName) {} @@ -51,8 +59,13 @@ GL3DBarChartTypeTemplate::getChartTypeForNewSeries( uno::Reference<lang::XMultiServiceFactory> xFact( GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW); +#if 1 + // I gave up trying to use UNO just to instantiate this little thing... + xResult.set(new GL3DBarChartType(GetComponentContext())); +#else + // This never works for me. xResult.set(xFact->createInstance(CHART2_SERVICE_NAME_CHARTTYPE_GL3DBAR), uno::UNO_QUERY_THROW); - +#endif ChartTypeTemplate::copyPropertiesFromOldToNewCoordianteSystem(xOldChartTypes, xResult); } catch (const uno::Exception & ex) @@ -68,6 +81,16 @@ sal_Bool GL3DBarChartTypeTemplate::supportsCategories() return false; } +uno::Sequence<OUString> GL3DBarChartTypeTemplate::getSupportedServiceNames_Static() +{ + uno::Sequence<OUString> aServices(2); + aServices[0] = aServiceName; + aServices[1] = "com.sun.star.chart2.ChartTypeTemplate"; + return aServices; +} + +APPHELPER_XSERVICEINFO_IMPL(GL3DBarChartTypeTemplate, aServiceName); + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx b/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx index 47a7b06..56aa220 100644 --- a/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx +++ b/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx @@ -20,6 +20,8 @@ namespace chart { class GL3DBarChartTypeTemplate : public ChartTypeTemplate { public: + APPHELPER_XSERVICEINFO_DECL() + GL3DBarChartTypeTemplate( const css::uno::Reference< css::uno::XComponentContext>& xContext, diff --git a/chart2/source/view/charttypes/AreaChart.cxx b/chart2/source/view/charttypes/AreaChart.cxx index 2443e20..2cc53b6 100644 --- a/chart2/source/view/charttypes/AreaChart.cxx +++ b/chart2/source/view/charttypes/AreaChart.cxx @@ -136,7 +136,7 @@ drawing::Direction3D AreaChart::getPreferredDiagramAspectRatio() const drawing::Direction3D aRet(1,-1,1); if( m_nDimension == 2 ) aRet = drawing::Direction3D(-1,-1,-1); - else + else if (m_pPosHelper) { drawing::Direction3D aScale( m_pPosHelper->getScaledLogicWidth() ); aRet.DirectionZ = aScale.DirectionZ*0.2; diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx new file mode 100644 index 0000000..bd0250b --- /dev/null +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -0,0 +1,29 @@ +/* -*- 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 "GL3DBarChart.hxx" + +namespace chart { + +GL3DBarChart::GL3DBarChart( const css::uno::Reference<css::chart2::XChartType>& xChartTypeModel ) : + VSeriesPlotter(xChartTypeModel, 3, false) +{ +} + +GL3DBarChart::~GL3DBarChart() +{ +} + +void GL3DBarChart::createShapes() +{ +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/view/charttypes/GL3DBarChart.hxx b/chart2/source/view/charttypes/GL3DBarChart.hxx new file mode 100644 index 0000000..d5ecf77 --- /dev/null +++ b/chart2/source/view/charttypes/GL3DBarChart.hxx @@ -0,0 +1,30 @@ +/* -*- 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 CHART2_GL3DBARCHART_HXX +#define CHART2_GL3DBARCHART_HXX + +#include <VSeriesPlotter.hxx> + +namespace chart { + +class GL3DBarChart : public VSeriesPlotter +{ +public: + GL3DBarChart( const css::uno::Reference<css::chart2::XChartType>& xChartTypeModel ); + virtual ~GL3DBarChart(); + + virtual void createShapes(); +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 5202cc1..79e1e28 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -51,7 +51,7 @@ #include "CandleStickChart.hxx" #include "BubbleChart.hxx" #include "NetChart.hxx" - +#include "GL3DBarChart.hxx" #include <com/sun/star/chart/ErrorBarStyle.hpp> #include <com/sun/star/chart/TimeUnit.hpp> @@ -250,6 +250,9 @@ void VSeriesPlotter::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 drawing::Direction3D VSeriesPlotter::getPreferredDiagramAspectRatio() const { drawing::Direction3D aRet(1.0,1.0,1.0); + if (!m_pPosHelper) + return aRet; + drawing::Direction3D aScale( m_pPosHelper->getScaledLogicWidth() ); aRet.DirectionZ = aScale.DirectionZ*0.2; if(aRet.DirectionZ>1.0) @@ -803,6 +806,9 @@ void VSeriesPlotter::createErrorBar( if(nErrorBarStyle==::com::sun::star::chart::ErrorBarStyle::NONE) return; + if (!m_pPosHelper) + return; + drawing::Position3D aUnscaledLogicPosition(rUnscaledLogicPosition); if(nErrorBarStyle==::com::sun::star::chart::ErrorBarStyle::STANDARD_DEVIATION) { @@ -967,6 +973,9 @@ void VSeriesPlotter::createRegressionCurvesShapes( VDataSeries& rVDataSeries, if(!xContainer.is()) return; + if (!m_pPosHelper) + return; + uno::Sequence< uno::Reference< XRegressionCurve > > aCurveList = xContainer->getRegressionCurves(); for(sal_Int32 nN=0; nN<aCurveList.getLength(); nN++) @@ -1882,7 +1891,7 @@ PlottingPositionHelper& VSeriesPlotter::getPlottingPositionHelper( sal_Int32 nAx { pRet = aPosIt->second; } - else + else if (m_pPosHelper) { tSecondaryValueScales::const_iterator aScaleIt = m_aSecondaryValueScales.find( nAxisIndex ); if( aScaleIt != m_aSecondaryValueScales.end() ) @@ -2434,6 +2443,8 @@ VSeriesPlotter* VSeriesPlotter::createSeriesPlotter( pRet = new AreaChart(xChartTypeModel,nDimensionCount,false,true); else if( aChartType.equalsIgnoreAsciiCase(CHART2_SERVICE_NAME_CHARTTYPE_BUBBLE) ) pRet = new BubbleChart(xChartTypeModel,nDimensionCount); + else if (aChartType.equalsIgnoreAsciiCase(CHART2_SERVICE_NAME_CHARTTYPE_GL3DBAR)) + pRet = new GL3DBarChart(xChartTypeModel); else if( aChartType.equalsIgnoreAsciiCase(CHART2_SERVICE_NAME_CHARTTYPE_PIE) ) pRet = new PieChart(xChartTypeModel,nDimensionCount, bExcludingPositioning ); else if( aChartType.equalsIgnoreAsciiCase(CHART2_SERVICE_NAME_CHARTTYPE_NET) ) diff --git a/chart2/source/view/main/PlotterBase.cxx b/chart2/source/view/main/PlotterBase.cxx index f38b570..c273899 100644 --- a/chart2/source/view/main/PlotterBase.cxx +++ b/chart2/source/view/main/PlotterBase.cxx @@ -60,12 +60,18 @@ PlotterBase::~PlotterBase() void PlotterBase::setScales( const std::vector< ExplicitScaleData >& rScales, bool bSwapXAndYAxis ) { + if (!m_pPosHelper) + return; + OSL_PRECOND(m_nDimension<=static_cast<sal_Int32>(rScales.size()),"Dimension of Plotter does not fit two dimension of given scale sequence"); m_pPosHelper->setScales( rScales, bSwapXAndYAxis ); } void PlotterBase::setTransformationSceneToScreen( const drawing::HomogenMatrix& rMatrix) { + if (!m_pPosHelper) + return; + OSL_PRECOND(m_nDimension==2,"Set this transformation only in case of 2D"); if(m_nDimension!=2) return; commit b7c3e851465638d4416ca8837937946353561088 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon Mar 24 11:54:58 2014 -0400 Turn this into a regular method. Change-Id: Idb4dc17971cd37a4cdf99b2c02e61fca14cb3ce2 diff --git a/chart2/source/controller/dialogs/tp_ChartType.cxx b/chart2/source/controller/dialogs/tp_ChartType.cxx index e4141a8..0a10bae 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.cxx +++ b/chart2/source/controller/dialogs/tp_ChartType.cxx @@ -829,6 +829,12 @@ IMPL_LINK_NOARG(ChartTypeTabPage, SelectSubTypeHdl) IMPL_LINK_NOARG(ChartTypeTabPage, SelectMainTypeHdl) { + selectMainType(); + return 0; +} + +void ChartTypeTabPage::selectMainType() +{ ChartTypeParameter aParameter( this->getCurrentParamter() ); if( m_pCurrentMainType ) @@ -855,7 +861,6 @@ IMPL_LINK_NOARG(ChartTypeTabPage, SelectMainTypeHdl) uno::Reference< beans::XPropertySet > xTemplateProps( this->getCurrentTemplate(), uno::UNO_QUERY ); m_pCurrentMainType->fillExtraControls(aParameter,m_xChartModel,xTemplateProps); } - return 0; } void ChartTypeTabPage::showAllControls( ChartTypeDialogController& rTypeController ) diff --git a/chart2/source/controller/dialogs/tp_ChartType.hxx b/chart2/source/controller/dialogs/tp_ChartType.hxx index 21ea308..ea46e2bb 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.hxx +++ b/chart2/source/controller/dialogs/tp_ChartType.hxx @@ -72,6 +72,7 @@ protected: virtual void stateChanged( ChangingResource* pResource ); void commitToModel( const ChartTypeParameter& rParameter ); + void selectMainType(); DECL_LINK( SelectMainTypeHdl, void* ); DECL_LINK( SelectSubTypeHdl, void* ); commit 45c98588d0f67ee306b89e8666e53d05a9834e09 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon Mar 24 11:37:37 2014 -0400 Crash prevention by checking for NULL. Change-Id: I10a0c2dcee123b884c563c3e6f83e218747e792a diff --git a/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx b/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx index 498bd26..13a7560 100644 --- a/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx +++ b/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx @@ -63,7 +63,9 @@ public: { try { - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xChartTypePropertySet( aChartTypes[nN], ::com::sun::star::uno::UNO_QUERY ); + uno::Reference<beans::XPropertySet> xChartTypePropertySet(aChartTypes[nN], uno::UNO_QUERY); + if (!xChartTypePropertySet.is()) + continue; Any aSingleValue = this->convertInnerToOuterValue( xChartTypePropertySet->getPropertyValue(m_aOwnInnerName) ); PROPERTYTYPE aCurValue = PROPERTYTYPE(); commit be1152e0cc8286eaff05274c71843c3457948393 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri Mar 21 16:21:58 2014 -0400 List child type for GL3D bar chart type. For now there is only one child type. Change-Id: If39a3e75fdae62f0b20769c21e6a4e235ede941e diff --git a/chart2/source/controller/dialogs/Bitmaps.hrc b/chart2/source/controller/dialogs/Bitmaps.hrc index b5fc1e7..643ed3d 100644 --- a/chart2/source/controller/dialogs/Bitmaps.hrc +++ b/chart2/source/controller/dialogs/Bitmaps.hrc @@ -199,6 +199,8 @@ // Bubble Chart Subtypes #define BMP_BUBBLE_1 (RID_APP_START + 88) +// GL3D Bar Chart subtypes. +#define BMP_GL3D_BAR_ROUNDRECT (RID_APP_START + 106) //further Images: diff --git a/chart2/source/controller/dialogs/Bitmaps.src b/chart2/source/controller/dialogs/Bitmaps.src index c088844..49bd2f8 100644 --- a/chart2/source/controller/dialogs/Bitmaps.src +++ b/chart2/source/controller/dialogs/Bitmaps.src @@ -97,6 +97,12 @@ Bitmap BMP_BUBBLE_1 { File = "bubble_52x60.png" ; }; + +Bitmap BMP_GL3D_BAR_ROUNDRECT +{ + File = "gl3dbar_roundrect.png"; +}; + Bitmap BMP_AREAS_2D { File = "areas_52x60.png" ; diff --git a/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx b/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx index 907c8f4..053cbe7 100644 --- a/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx +++ b/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx @@ -12,6 +12,8 @@ #include <Bitmaps.hrc> #include <ResId.hxx> +#include <svtools/valueset.hxx> + namespace chart { GL3DBarChartDialogController::GL3DBarChartDialogController() {} @@ -36,6 +38,15 @@ GL3DBarChartDialogController::getTemplateMap() const return aMap; } +void GL3DBarChartDialogController::fillSubTypeList( + ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ ) +{ + rSubTypeList.Clear(); + rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_GL3D_BAR_ROUNDRECT)))); + + rSubTypeList.SetItemText(1, SchResId(STR_GL3D_BAR).toString()); +} + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx b/chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx index 72aac01..e2f31e2 100644 --- a/chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx +++ b/chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx @@ -23,6 +23,8 @@ public: virtual OUString getName(); virtual Image getImage(); virtual const tTemplateServiceChartTypeParameterMap& getTemplateMap() const; + + virtual void fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter ); }; } diff --git a/chart2/source/controller/dialogs/Strings_ChartTypes.src b/chart2/source/controller/dialogs/Strings_ChartTypes.src index 3ece3a3..8871780 100644 --- a/chart2/source/controller/dialogs/Strings_ChartTypes.src +++ b/chart2/source/controller/dialogs/Strings_ChartTypes.src @@ -144,7 +144,12 @@ String STR_BUBBLE_1 String STR_TYPE_GL3D_BAR { - Text [ en-US ] = "GL 3D Bar"; + Text [ en-US ] = "GL3D Bar"; +}; + +String STR_GL3D_BAR +{ + Text [ en-US ] = "GL3D Bar Chart"; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/inc/Strings.hrc b/chart2/source/inc/Strings.hrc index f102f40..59de25d 100644 --- a/chart2/source/inc/Strings.hrc +++ b/chart2/source/inc/Strings.hrc @@ -65,6 +65,7 @@ #define STR_BUBBLE_1 (RID_APP_START + 283) #define STR_TYPE_GL3D_BAR (RID_APP_START + 127) +#define STR_GL3D_BAR (RID_APP_START + 128) //additional strings #define STR_TEXT_SEPARATOR (RID_APP_START + 20) diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx b/chart2/source/model/template/ChartTypeTemplate.cxx index 748d40d..6cc13bc 100644 --- a/chart2/source/model/template/ChartTypeTemplate.cxx +++ b/chart2/source/model/template/ChartTypeTemplate.cxx @@ -179,7 +179,6 @@ uno::Reference< XDiagram > SAL_CALL ChartTypeTemplate::createDiagramByDataSource } sal_Bool SAL_CALL ChartTypeTemplate::supportsCategories() - throw (uno::RuntimeException, std::exception) { return sal_True; } diff --git a/chart2/source/model/template/ChartTypeTemplate.hxx b/chart2/source/model/template/ChartTypeTemplate.hxx index 19278a2..5f551b0 100644 --- a/chart2/source/model/template/ChartTypeTemplate.hxx +++ b/chart2/source/model/template/ChartTypeTemplate.hxx @@ -92,8 +92,8 @@ protected: const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArguments ) throw (::com::sun::star::uno::RuntimeException, std::exception); /// denotes if the chart needs categories at the first scale - virtual sal_Bool SAL_CALL supportsCategories() - throw (::com::sun::star::uno::RuntimeException, std::exception); + virtual sal_Bool SAL_CALL supportsCategories(); + virtual void SAL_CALL changeDiagram( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDiagram >& xDiagram ) throw (::com::sun::star::uno::RuntimeException, std::exception); diff --git a/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx index 306481e..262828c 100644 --- a/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx +++ b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx @@ -8,6 +8,8 @@ */ #include "GL3DBarChartTypeTemplate.hxx" +#include <servicenames_charttypes.hxx> +#include <macros.hxx> using namespace com::sun::star; @@ -21,14 +23,49 @@ GL3DBarChartTypeTemplate::~GL3DBarChartTypeTemplate() {} uno::Reference<chart2::XChartType> GL3DBarChartTypeTemplate::getChartTypeForIndex( sal_Int32 /*nChartTypeIndex*/ ) { - return uno::Reference<chart2::XChartType>(); + uno::Reference<chart2::XChartType> xResult; + + try + { + uno::Reference<lang::XMultiServiceFactory> xFact( + GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW); + + xResult.set(xFact->createInstance(CHART2_SERVICE_NAME_CHARTTYPE_GL3DBAR), uno::UNO_QUERY_THROW); + } + catch (const uno::Exception & ex) + { + ASSERT_EXCEPTION( ex ); + } + + return xResult; } uno::Reference<chart2::XChartType> GL3DBarChartTypeTemplate::getChartTypeForNewSeries( - const uno::Sequence<uno::Reference<chart2::XChartType> >& /*xOldChartTypes*/ ) + const uno::Sequence<uno::Reference<chart2::XChartType> >& xOldChartTypes ) +{ + uno::Reference<chart2::XChartType> xResult; + + try + { + uno::Reference<lang::XMultiServiceFactory> xFact( + GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW); + + xResult.set(xFact->createInstance(CHART2_SERVICE_NAME_CHARTTYPE_GL3DBAR), uno::UNO_QUERY_THROW); + + ChartTypeTemplate::copyPropertiesFromOldToNewCoordianteSystem(xOldChartTypes, xResult); + } + catch (const uno::Exception & ex) + { + ASSERT_EXCEPTION( ex ); + } + + return xResult; +} + +sal_Bool GL3DBarChartTypeTemplate::supportsCategories() { - return uno::Reference<chart2::XChartType>(); + return false; } } diff --git a/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx b/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx index 2574329..47a7b06 100644 --- a/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx +++ b/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx @@ -34,6 +34,8 @@ public: virtual css::uno::Reference<css::chart2::XChartType> SAL_CALL getChartTypeForNewSeries( const css::uno::Sequence<css::uno::Reference<css::chart2::XChartType> >& xOldChartTypes ); + + virtual sal_Bool SAL_CALL supportsCategories(); }; } diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 944b31a..5202cc1 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -2416,6 +2416,9 @@ VSeriesPlotter* VSeriesPlotter::createSeriesPlotter( , sal_Int32 nDimensionCount , bool bExcludingPositioning ) { + if (!xChartTypeModel.is()) + return NULL; + OUString aChartType = xChartTypeModel->getChartType(); VSeriesPlotter* pRet=NULL; diff --git a/icon-themes/galaxy/chart2/res/gl3dbar_roundrect.png b/icon-themes/galaxy/chart2/res/gl3dbar_roundrect.png new file mode 100644 index 0000000..729bd3e Binary files /dev/null and b/icon-themes/galaxy/chart2/res/gl3dbar_roundrect.png differ commit 56aaa39ff83962286fb7b627d847914f8144b750 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri Mar 21 10:55:06 2014 -0400 Skeleton template class for GL3D bar chart type. Still very much empty. It needs to be filled with sub-categories. Change-Id: Iad7ad34efb264025541b585a92ee2ea7b8fff56f diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk index 2e09fe3..63171f4 100644 --- a/chart2/Library_chartcore.mk +++ b/chart2/Library_chartcore.mk @@ -154,6 +154,7 @@ $(eval $(call gb_Library_add_exception_objects,chartcore,\ chart2/source/model/template/DataInterpreter \ chart2/source/model/template/FilledNetChartType \ chart2/source/model/template/GL3DBarChartType \ + chart2/source/model/template/GL3DBarChartTypeTemplate \ chart2/source/model/template/LineChartType \ chart2/source/model/template/LineChartTypeTemplate \ chart2/source/model/template/NetChartType \ diff --git a/chart2/source/model/template/ChartTypeManager.cxx b/chart2/source/model/template/ChartTypeManager.cxx index e68744c..49775f9 100644 --- a/chart2/source/model/template/ChartTypeManager.cxx +++ b/chart2/source/model/template/ChartTypeManager.cxx @@ -33,6 +33,7 @@ #include "StockChartTypeTemplate.hxx" #include "NetChartTypeTemplate.hxx" #include "BubbleChartTypeTemplate.hxx" +#include "GL3DBarChartTypeTemplate.hxx" #include <cppuhelper/component_context.hxx> #include <comphelper/InlineContainer.hxx> #include <com/sun/star/container/XContentEnumerationAccess.hpp> @@ -121,6 +122,7 @@ enum TemplateId TEMPLATE_STOCKVOLUMELOWHIGHCLOSE, TEMPLATE_STOCKVOLUMEOPENLOWHIGHCLOSE, TEMPLATE_BUBBLE, + TEMPLATE_GL3DBAR_ROUNDED_RECTANGLE, // TEMPLATE_SURFACE, // TEMPLATE_ADDIN, TEMPLATE_NOT_FOUND = 0xffff @@ -196,6 +198,7 @@ const tTemplateMapType & lcl_DefaultChartTypeMap() ( "com.sun.star.chart2.template.StockVolumeLowHighClose", TEMPLATE_STOCKVOLUMELOWHIGHCLOSE ) ( "com.sun.star.chart2.template.StockVolumeOpenLowHighClose", TEMPLATE_STOCKVOLUMEOPENLOWHIGHCLOSE ) ( "com.sun.star.chart2.template.Bubble", TEMPLATE_BUBBLE ) + ( "com.sun.star.chart2.template.GL3DBarRoundedRectangle", TEMPLATE_GL3DBAR_ROUNDED_RECTANGLE ) // ( "com.sun.star.chart2.template.Surface", TEMPLATE_SURFACE ) // ( "com.sun.star.chart2.template.Addin", TEMPLATE_ADDIN ) ); @@ -529,6 +532,10 @@ uno::Reference< uno::XInterface > SAL_CALL ChartTypeManager::createInstance( xTemplate.set( new BubbleChartTypeTemplate( m_xContext, aServiceSpecifier )); break; + case TEMPLATE_GL3DBAR_ROUNDED_RECTANGLE: + xTemplate.set(new GL3DBarChartTypeTemplate(m_xContext, aServiceSpecifier)); + break; + // case TEMPLATE_SURFACE: // case TEMPLATE_ADDIN: // break; diff --git a/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx new file mode 100644 index 0000000..306481e --- /dev/null +++ b/chart2/source/model/template/GL3DBarChartTypeTemplate.cxx @@ -0,0 +1,36 @@ +/* -*- 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 "GL3DBarChartTypeTemplate.hxx" + +using namespace com::sun::star; + +namespace chart { + +GL3DBarChartTypeTemplate::GL3DBarChartTypeTemplate( + const uno::Reference<uno::XComponentContext>& xContext, const OUString& rServiceName ) : + ChartTypeTemplate(xContext, rServiceName) {} + +GL3DBarChartTypeTemplate::~GL3DBarChartTypeTemplate() {} + +uno::Reference<chart2::XChartType> GL3DBarChartTypeTemplate::getChartTypeForIndex( sal_Int32 /*nChartTypeIndex*/ ) +{ + return uno::Reference<chart2::XChartType>(); +} + +uno::Reference<chart2::XChartType> +GL3DBarChartTypeTemplate::getChartTypeForNewSeries( + const uno::Sequence<uno::Reference<chart2::XChartType> >& /*xOldChartTypes*/ ) +{ + return uno::Reference<chart2::XChartType>(); +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx b/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx new file mode 100644 index 0000000..2574329 --- /dev/null +++ b/chart2/source/model/template/GL3DBarChartTypeTemplate.hxx @@ -0,0 +1,43 @@ +/* -*- 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 CHART2_GL3DBARCHARTTYPETEMPLATE_HXX +#define CHART2_GL3DBARCHARTTYPETEMPLATE_HXX + +#include <MutexContainer.hxx> +#include <ChartTypeTemplate.hxx> +#include <OPropertySet.hxx> +#include <ServiceMacros.hxx> + +namespace chart { + +class GL3DBarChartTypeTemplate : public ChartTypeTemplate +{ +public: + GL3DBarChartTypeTemplate( + const css::uno::Reference< + css::uno::XComponentContext>& xContext, + const OUString& rServiceName ); + + virtual ~GL3DBarChartTypeTemplate(); + + virtual css::uno::Reference<css::chart2::XChartType> getChartTypeForIndex( sal_Int32 nChartTypeIndex ); + + // XChartTypeTemplate + + virtual css::uno::Reference<css::chart2::XChartType> SAL_CALL + getChartTypeForNewSeries( + const css::uno::Sequence<css::uno::Reference<css::chart2::XChartType> >& xOldChartTypes ); +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/tools/DiagramHelper.cxx b/chart2/source/tools/DiagramHelper.cxx index a683903..d21b6df 100644 --- a/chart2/source/tools/DiagramHelper.cxx +++ b/chart2/source/tools/DiagramHelper.cxx @@ -112,7 +112,7 @@ DiagramHelper::tTemplateWithServiceName Reference< XChartTypeTemplate > xTempl( xChartTypeManager->createInstance( aServiceNames[ i ] ), uno::UNO_QUERY_THROW ); - if( xTempl->matchesTemplate( xDiagram, sal_True )) + if (xTempl.is() && xTempl->matchesTemplate(xDiagram, true)) { aResult.first = xTempl; aResult.second = aServiceNames[ i ]; commit e3ec81a1d3f66b1a76aa865c1be988051db3e25d Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Thu Mar 20 20:53:42 2014 -0400 Image for the new chart type. Change-Id: Idba626c947cc7875bdcdf13677f2161c4d5b68c5 diff --git a/icon-themes/galaxy/chart2/res/typegl3dbar_16.png b/icon-themes/galaxy/chart2/res/typegl3dbar_16.png new file mode 100644 index 0000000..ada848c Binary files /dev/null and b/icon-themes/galaxy/chart2/res/typegl3dbar_16.png differ commit be89276e63a29f4e066c7991cdecc97c20794e7c Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Thu Mar 20 20:52:11 2014 -0400 Add a new chart type "GL 3D Bar" (working name). Change-Id: I0b0a65bf4f9365a8d522e3c439afe19797b2fdd5 diff --git a/chart2/Library_chartcontroller.mk b/chart2/Library_chartcontroller.mk index 6a4907f..86c2a04 100644 --- a/chart2/Library_chartcontroller.mk +++ b/chart2/Library_chartcontroller.mk @@ -87,6 +87,7 @@ $(eval $(call gb_Library_add_exception_objects,chartcontroller,\ chart2/source/controller/chartapiwrapper/WrappedTextRotationProperty \ chart2/source/controller/dialogs/ChangingResource \ chart2/source/controller/dialogs/ChartTypeDialogController \ + chart2/source/controller/dialogs/GL3DBarChartDialogController \ chart2/source/controller/dialogs/DataBrowser \ chart2/source/controller/dialogs/DataBrowserModel \ chart2/source/controller/dialogs/DialogModel \ diff --git a/chart2/source/controller/dialogs/Bitmaps.hrc b/chart2/source/controller/dialogs/Bitmaps.hrc index 6f99eff..b5fc1e7 100644 --- a/chart2/source/controller/dialogs/Bitmaps.hrc +++ b/chart2/source/controller/dialogs/Bitmaps.hrc @@ -39,10 +39,11 @@ #define IMG_TYPE_NET (RID_APP_START + 8) #define IMG_TYPE_STOCK (RID_APP_START + 9) #define IMG_TYPE_COLUMN_LINE (RID_APP_START + 10) -#define IMG_STEP_START (RID_APP_START + 11) -#define IMG_STEP_END (RID_APP_START + 12) -#define IMG_STEP_CENTER_X (RID_APP_START + 13) -#define IMG_STEP_CENTER_Y (RID_APP_START + 14) +#define IMG_TYPE_GL3D_BAR (RID_APP_START + 11) +#define IMG_STEP_START (RID_APP_START + 12) +#define IMG_STEP_END (RID_APP_START + 13) +#define IMG_STEP_CENTER_X (RID_APP_START + 14) +#define IMG_STEP_CENTER_Y (RID_APP_START + 15) //Chart Subtypes diff --git a/chart2/source/controller/dialogs/Bitmaps.src b/chart2/source/controller/dialogs/Bitmaps.src index 802de33..c088844 100644 --- a/chart2/source/controller/dialogs/Bitmaps.src +++ b/chart2/source/controller/dialogs/Bitmaps.src @@ -68,6 +68,11 @@ Image IMG_TYPE_BUBBLE ImageBitmap = Bitmap { File = "typebubble_16.png" ; }; MaskColor = STD_MASKCOLOR; }; +Image IMG_TYPE_GL3D_BAR +{ + ImageBitmap = Bitmap { File = "typegl3dbar_16.png" ; }; + MaskColor = STD_MASKCOLOR; +}; Image IMG_STEP_START { ImageBitmap = Bitmap { File = "step_start_30.png" ; }; diff --git a/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx b/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx new file mode 100644 index 0000000..907c8f4 --- /dev/null +++ b/chart2/source/controller/dialogs/GL3DBarChartDialogController.cxx @@ -0,0 +1,41 @@ +/* -*- 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 "GL3DBarChartDialogController.hxx" +#include <Strings.hrc> +#include <Bitmaps.hrc> +#include <ResId.hxx> + +namespace chart { + +GL3DBarChartDialogController::GL3DBarChartDialogController() {} + +GL3DBarChartDialogController::~GL3DBarChartDialogController() {} + +OUString GL3DBarChartDialogController::getName() +{ + return SchResId(STR_TYPE_GL3D_BAR).toString(); +} + +Image GL3DBarChartDialogController::getImage() +{ + return Image(SchResId(IMG_TYPE_GL3D_BAR)); +} + +const tTemplateServiceChartTypeParameterMap& +GL3DBarChartDialogController::getTemplateMap() const +{ + static tTemplateServiceChartTypeParameterMap aMap( + "com.sun.star.chart2.template.GL3DBarRoundedRectangle", ChartTypeParameter(1)); + return aMap; +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx b/chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx new file mode 100644 index 0000000..72aac01 --- /dev/null +++ b/chart2/source/controller/dialogs/GL3DBarChartDialogController.hxx @@ -0,0 +1,32 @@ +/* -*- 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_GL3DBARCHARTDIALOGCONTROLLER_HXX +#define INCLUDED_CHART2_GL3DBARCHARTDIALOGCONTROLLER_HXX + +#include "ChartTypeDialogController.hxx" + +namespace chart { + +class GL3DBarChartDialogController : public ChartTypeDialogController +{ +public: + GL3DBarChartDialogController(); + virtual ~GL3DBarChartDialogController(); + + virtual OUString getName(); + virtual Image getImage(); + virtual const tTemplateServiceChartTypeParameterMap& getTemplateMap() const; +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/controller/dialogs/Strings_ChartTypes.src b/chart2/source/controller/dialogs/Strings_ChartTypes.src index 86ed516..3ece3a3 100644 --- a/chart2/source/controller/dialogs/Strings_ChartTypes.src +++ b/chart2/source/controller/dialogs/Strings_ChartTypes.src @@ -142,6 +142,9 @@ String STR_BUBBLE_1 Text [ en-US ] = "Bubble Chart" ; }; - +String STR_TYPE_GL3D_BAR +{ + Text [ en-US ] = "GL 3D Bar"; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/controller/dialogs/tp_ChartType.cxx b/chart2/source/controller/dialogs/tp_ChartType.cxx index d010648..e4141a8 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.cxx +++ b/chart2/source/controller/dialogs/tp_ChartType.cxx @@ -25,6 +25,7 @@ #include "res_BarGeometry.hxx" #include "ControllerLockGuard.hxx" #include "macros.hxx" +#include "GL3DBarChartDialogController.hxx" #include <svtools/controldims.hrc> @@ -726,6 +727,7 @@ ChartTypeTabPage::ChartTypeTabPage(Window* pParent m_aChartTypeDialogControllerList.push_back(new StockChartDialogController() ); } m_aChartTypeDialogControllerList.push_back(new CombiColumnLineChartDialogController() ); + m_aChartTypeDialogControllerList.push_back(new GL3DBarChartDialogController()); ::std::vector< ChartTypeDialogController* >::const_iterator aIter = m_aChartTypeDialogControllerList.begin(); const ::std::vector< ChartTypeDialogController* >::const_iterator aEnd = m_aChartTypeDialogControllerList.end(); diff --git a/chart2/source/inc/Strings.hrc b/chart2/source/inc/Strings.hrc index 15c1ca8..f102f40 100644 --- a/chart2/source/inc/Strings.hrc +++ b/chart2/source/inc/Strings.hrc @@ -64,8 +64,10 @@ #define STR_TYPE_BUBBLE (RID_APP_START + 282) #define STR_BUBBLE_1 (RID_APP_START + 283) +#define STR_TYPE_GL3D_BAR (RID_APP_START + 127) + //additional strings -#define STR_TEXT_SEPARATOR (RID_APP_START + 20) +#define STR_TEXT_SEPARATOR (RID_APP_START + 20) //SchStatisticTabPage and SchDataStatisticsDlg //see Strings_Statistic.src @@ -94,7 +96,7 @@ #define STR_INVALID_TIME_UNIT (RID_APP_START + 292) -//for range didalog +//for range dialog #define STR_DATA_ROLE_LABEL (RID_APP_START + 241) #define STR_DATA_ROLE_X (RID_APP_START + 242) #define STR_DATA_ROLE_Y (RID_APP_START + 243) @@ -272,7 +274,6 @@ #define STR_BUTTON_UP (RID_APP_START + 500) #define STR_BUTTON_DOWN (RID_APP_START + 501) - // ids must not exceed RID_APP_START + 499 // ids >= RID_APP_START + 500 are defined in glob.hrc commit 349a5b72bf2bc627a79967d61ff7dc07a4ac90b2 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Thu Mar 20 16:30:25 2014 -0400 Initial skeleton class for the new chart type. Still very much empty. Change-Id: I5e9eaeb9337d51f59f800f8e676b8bc83b80df70 diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk index de4c888..2e09fe3 100644 --- a/chart2/Library_chartcore.mk +++ b/chart2/Library_chartcore.mk @@ -153,6 +153,7 @@ $(eval $(call gb_Library_add_exception_objects,chartcore,\ chart2/source/model/template/ColumnLineDataInterpreter \ chart2/source/model/template/DataInterpreter \ chart2/source/model/template/FilledNetChartType \ + chart2/source/model/template/GL3DBarChartType \ chart2/source/model/template/LineChartType \ chart2/source/model/template/LineChartTypeTemplate \ chart2/source/model/template/NetChartType \ diff --git a/chart2/source/inc/servicenames_charttypes.hxx b/chart2/source/inc/servicenames_charttypes.hxx index 321ba73..20f078c 100644 --- a/chart2/source/inc/servicenames_charttypes.hxx +++ b/chart2/source/inc/servicenames_charttypes.hxx @@ -19,8 +19,7 @@ #ifndef INCLUDED_CHART2_SOURCE_INC_SERVICENAMES_CHARTTYPES_HXX #define INCLUDED_CHART2_SOURCE_INC_SERVICENAMES_CHARTTYPES_HXX -namespace chart -{ +namespace chart { #define CHART2_SERVICE_NAME_CHARTTYPE_AREA OUString( "com.sun.star.chart2.AreaChartType" ) #define CHART2_SERVICE_NAME_CHARTTYPE_BAR OUString( "com.sun.star.chart2.BarChartType" ) @@ -32,8 +31,10 @@ namespace chart #define CHART2_SERVICE_NAME_CHARTTYPE_FILLED_NET OUString( "com.sun.star.chart2.FilledNetChartType" ) #define CHART2_SERVICE_NAME_CHARTTYPE_CANDLESTICK OUString( "com.sun.star.chart2.CandleStickChartType" ) #define CHART2_SERVICE_NAME_CHARTTYPE_BUBBLE OUString( "com.sun.star.chart2.BubbleChartType" ) +#define CHART2_SERVICE_NAME_CHARTTYPE_GL3DBAR OUString( "com.sun.star.chart2.GL3DBarChartType" ) } //namespace chart + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/template/GL3DBarChartType.cxx b/chart2/source/model/template/GL3DBarChartType.cxx new file mode 100644 index 0000000..1dd889d --- /dev/null +++ b/chart2/source/model/template/GL3DBarChartType.cxx @@ -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/. + */ + +#include "GL3DBarChartType.hxx" +#include <servicenames_charttypes.hxx> + +using namespace com::sun::star; + +namespace chart { + +GL3DBarChartType::GL3DBarChartType( const uno::Reference<uno::XComponentContext>& xContext ) : + ChartType(xContext) {} + +GL3DBarChartType::~GL3DBarChartType() {} + +APPHELPER_XSERVICEINFO_IMPL( + GL3DBarChartType, OUString("com.sun.star.comp.chart.GL3DBarChartType") ); + +uno::Sequence<OUString> GL3DBarChartType::getSupportedServiceNames_Static() +{ + uno::Sequence<OUString> aServices(2); + aServices[0] = CHART2_SERVICE_NAME_CHARTTYPE_GL3DBAR; + aServices[1] = "com.sun.star.chart2.ChartType"; + return aServices; +} + +GL3DBarChartType::GL3DBarChartType( const GL3DBarChartType& rOther ) : + ChartType(rOther) {} + +OUString SAL_CALL GL3DBarChartType::getChartType() + throw (::com::sun::star::uno::RuntimeException, std::exception) +{ + return CHART2_SERVICE_NAME_CHARTTYPE_GL3DBAR; +} + +com::sun::star::uno::Reference<com::sun::star::util::XCloneable> +GL3DBarChartType::createClone() + throw (com::sun::star::uno::RuntimeException, std::exception) +{ + return uno::Reference<util::XCloneable>(new GL3DBarChartType(*this)); +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/template/GL3DBarChartType.hxx b/chart2/source/model/template/GL3DBarChartType.hxx new file mode 100644 index 0000000..4951050 --- /dev/null +++ b/chart2/source/model/template/GL3DBarChartType.hxx @@ -0,0 +1,47 @@ +/* -*- 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_GL3DBARCHARTTYPE_HXX +#define INCLUDED_CHART2_GL3DBARCHARTTYPE_HXX + +#include "ChartType.hxx" +#include "ServiceMacros.hxx" + +namespace chart { + +/** + * Chart type that represents 3 dimensional data content in 3D space using + * OpenGL. + */ +class GL3DBarChartType : public ChartType +{ +public: + GL3DBarChartType( const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>& xContext ); + virtual ~GL3DBarChartType(); + + APPHELPER_XSERVICEINFO_DECL() + + APPHELPER_SERVICE_FACTORY_HELPER( GL3DBarChartType ) + +protected: + GL3DBarChartType( const GL3DBarChartType& rOther ); + + virtual OUString SAL_CALL getChartType() + throw (com::sun::star::uno::RuntimeException, std::exception); + + virtual com::sun::star::uno::Reference<com::sun::star::util::XCloneable> + SAL_CALL createClone() + throw (com::sun::star::uno::RuntimeException, std::exception); +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits