*** orig/chart2/source/controller/dialogs/tp_PolarOptions.hrc Wed Dec 5 11:25:00 2007 --- new/chart2/source/controller/dialogs/tp_PolarOptions.hrc Fri Dec 14 14:33:57 2007 *************** *** 1,3 **** --- 1,5 ---- #define FL_STARTING_ANGLE 1 #define FT_STARTING_ANGLE 2 #define MF_STARTING_ANGLE 3 + #define FL_CLOCKWISE 2 + #define CB_CLOCKWISE 1 *** orig/chart2/source/controller/dialogs/tp_PolarOptions.hxx Mon Dec 10 13:27:36 2007 --- new/chart2/source/controller/dialogs/tp_PolarOptions.hxx Fri Dec 14 14:33:51 2007 *************** *** 37,42 **** --- 37,44 ---- FixedLine aFl_StartingAngle; FixedText aFT_StartingAngle; MetricField aMF_StartingAngle; + FixedLine m_aFL_Clockwise; + CheckBox m_aCB_Clockwise; }; //............................................................................. *** orig/chart2/source/controller/dialogs/tp_PolarOptions.src Mon Dec 10 13:21:28 2007 --- new/chart2/source/controller/dialogs/tp_PolarOptions.src Fri Dec 14 14:33:46 2007 *************** *** 33,36 **** --- 33,51 ---- Maximum = 359 ; SpinSize = 5 ; }; + + FixedLine FL_CLOCKWISE + { + Pos = MAP_APPFONT ( 6 , 45 ) ; + Size = MAP_APPFONT ( 248, 8 ) ; + Text [ en-US ] = "Draw direction"; + }; + + CheckBox CB_CLOCKWISE + { + Pos = MAP_APPFONT ( 12 , 60 ); + Size = MAP_APPFONT ( 80 , 10 ); + TabStop = TRUE; + Text [ en-US ] = "~Clockwise"; + }; }; *** orig/chart2/source/controller/dialogs/tp_polaroptions.cxx Mon Dec 10 13:27:10 2007 --- new/chart2/source/controller/dialogs/tp_polaroptions.cxx Fri Dec 14 14:34:11 2007 *************** *** 23,29 **** SfxTabPage( pWindow, SchResId(TP_POLAROPTIONS), rInAttrs ), aFl_StartingAngle( this, SchResId( FL_STARTING_ANGLE ) ), aFT_StartingAngle( this, SchResId( FT_STARTING_ANGLE ) ), ! aMF_StartingAngle( this, SchResId( MF_STARTING_ANGLE ) ) { FreeResource(); } --- 23,31 ---- SfxTabPage( pWindow, SchResId(TP_POLAROPTIONS), rInAttrs ), aFl_StartingAngle( this, SchResId( FL_STARTING_ANGLE ) ), aFT_StartingAngle( this, SchResId( FT_STARTING_ANGLE ) ), ! aMF_StartingAngle( this, SchResId( MF_STARTING_ANGLE ) ), ! m_aFL_Clockwise( this, SchResId( FL_CLOCKWISE ) ), ! m_aCB_Clockwise( this, SchResId( CB_CLOCKWISE ) ) { FreeResource(); } *************** *** 42,47 **** --- 44,52 ---- if( aMF_StartingAngle.IsVisible() ) rOutAttrs.Put(SfxInt32Item(SCHATTR_STARTING_ANGLE,aMF_StartingAngle.GetValue())); + if( m_aCB_Clockwise.IsVisible() ) + rOutAttrs.Put(SfxInt32Item(SCHATTR_CLOCKWISE,m_aCB_Clockwise.IsChecked())); + return TRUE; } *************** *** 59,64 **** --- 64,78 ---- { aMF_StartingAngle.Show(FALSE); } + if (rInAttrs.GetItemState(SCHATTR_CLOCKWISE, TRUE, &pPoolItem) == SFX_ITEM_SET) + { + BOOL bCheck = static_cast< const SfxBoolItem * >( pPoolItem )->GetValue(); + m_aCB_Clockwise.Check(bCheck); + } + else + { + m_aCB_Clockwise.Show(FALSE); + } } //............................................................................. *** orig/chart2/source/controller/inc/SeriesOptionsItemConverter.hxx Mon Dec 10 14:10:46 2007 --- new/chart2/source/controller/inc/SeriesOptionsItemConverter.hxx Fri Dec 14 14:33:24 2007 *************** *** 44,49 **** --- 44,52 ---- #ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ #include #endif + #ifndef _COM_SUN_STAR_CHART2_XCOORDINATESYSTEM_HPP_ + #include + #endif namespace chart { *************** *** 94,99 **** --- 97,106 ---- bool m_bSupportingStartingAngle; sal_Int32 m_nStartingAngle; + + bool m_bClockwise; + ::com::sun::star::uno::Reference< + ::com::sun::star::chart2::XCoordinateSystem > m_xCooSys; }; } // namespace wrapper *** orig/chart2/source/controller/itemsetwrapper/SchWhichPairs.hxx Mon Dec 10 14:10:46 2007 --- new/chart2/source/controller/itemsetwrapper/SchWhichPairs.hxx Fri Dec 14 14:33:07 2007 *************** *** 163,170 **** SCHATTR_AXIS,SCHATTR_AXIS, /* 69 sch/schattr.hxx*/ \ SCHATTR_BAR_OVERLAP,SCHATTR_BAR_CONNECT, /* 98 - 100 (incl. SCHATTR_GAPWIDTH) */ \ SCHATTR_GROUP_BARS_PER_AXIS,SCHATTR_AXIS_FOR_ALL_SERIES, \ ! SCHATTR_STARTING_ANGLE,SCHATTR_STARTING_ANGLE \ ! const USHORT nSeriesOptionsWhichPairs[] = { --- 163,170 ---- SCHATTR_AXIS,SCHATTR_AXIS, /* 69 sch/schattr.hxx*/ \ SCHATTR_BAR_OVERLAP,SCHATTR_BAR_CONNECT, /* 98 - 100 (incl. SCHATTR_GAPWIDTH) */ \ SCHATTR_GROUP_BARS_PER_AXIS,SCHATTR_AXIS_FOR_ALL_SERIES, \ ! SCHATTR_STARTING_ANGLE,SCHATTR_STARTING_ANGLE, \ ! SCHATTR_CLOCKWISE,SCHATTR_CLOCKWISE \ const USHORT nSeriesOptionsWhichPairs[] = { *** orig/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx Mon Dec 10 14:10:46 2007 --- new/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx Fri Dec 14 14:32:46 2007 *************** *** 96,101 **** --- 96,102 ---- , m_nAllSeriesAxisIndex(-1) , m_bSupportingStartingAngle(false) , m_nStartingAngle(0) + , m_bClockwise(false) { try { *************** *** 107,112 **** --- 108,122 ---- uno::Reference< beans::XPropertySet > xDiagramProperties( xDiagram, uno::UNO_QUERY ); uno::Reference< XChartType > xChartType( DiagramHelper::getChartTypeOfSeries( xDiagram , xDataSeries ) ); + m_xCooSys = DataSeriesHelper::getCoordinateSystemOfSeries( xDataSeries, xDiagram ); + if( m_xCooSys.is() ) + { + uno::Reference< chart2::XAxis > xAxis( AxisHelper::getAxis( 1, 0, m_xCooSys ) ); + chart2::ScaleData aScale( xAxis->getScaleData() ); + if( aScale.Orientation == chart2::AxisOrientation_REVERSE ) + m_bClockwise = true; + } + sal_Int32 nDimensionCount = DiagramHelper::getDimension( xDiagram ); m_bSupportingOverlapAndGapWidthProperties = ChartTypeHelper::isSupportingOverlapAndGapWidthProperties( xChartType, nDimensionCount ); *************** *** 285,290 **** --- 295,317 ---- } } break; + + case SCHATTR_CLOCKWISE: + { + bool bClockwise = (static_cast< const SfxBoolItem & >( + rItemSet.Get( nWhichId )).GetValue() ); + if( m_xCooSys.is() ) + { + uno::Reference< chart2::XAxis > xAxis( AxisHelper::getAxis( 1, 0, m_xCooSys ) ); + if( xAxis.is() ) + { + chart2::ScaleData aScaleData( xAxis->getScaleData() ); + aScaleData.Orientation = bClockwise ? chart2::AxisOrientation_REVERSE : chart2::AxisOrientation_MATHEMATICAL; + xAxis->setScaleData( aScaleData ); + } + } + } + break; } return bChanged; } *************** *** 337,342 **** --- 364,374 ---- rOutItemSet.Put( SfxInt32Item(nWhichId,m_nStartingAngle)); break; } + case SCHATTR_CLOCKWISE: + { + rOutItemSet.Put( SfxBoolItem(nWhichId,m_bClockwise) ); + break; + } default: break; } *** orig/chart2/source/inc/chartview/ChartSfxItemIds.hxx Mon Dec 10 14:10:46 2007 --- new/chart2/source/inc/chartview/ChartSfxItemIds.hxx Fri Dec 14 14:32:21 2007 *************** *** 214,221 **** #define SCHATTR_TEXTBREAK (SCHATTR_CHARTTYPE_START + 7) #define SCHATTR_GROUP_BARS_PER_AXIS (SCHATTR_CHARTTYPE_START + 8) #define SCHATTR_STARTING_ANGLE (SCHATTR_CHARTTYPE_START + 9) ! #define SCHATTR_CHARTTYPE_END SCHATTR_STARTING_ANGLE // items for transporting information to dialogs #define SCHATTR_MISC_START (SCHATTR_CHARTTYPE_END + 1) --- 214,222 ---- #define SCHATTR_TEXTBREAK (SCHATTR_CHARTTYPE_START + 7) #define SCHATTR_GROUP_BARS_PER_AXIS (SCHATTR_CHARTTYPE_START + 8) #define SCHATTR_STARTING_ANGLE (SCHATTR_CHARTTYPE_START + 9) + #define SCHATTR_CLOCKWISE (SCHATTR_CHARTTYPE_START + 10) ! #define SCHATTR_CHARTTYPE_END SCHATTR_CLOCKWISE // items for transporting information to dialogs #define SCHATTR_MISC_START (SCHATTR_CHARTTYPE_END + 1) *** orig/chart2/source/model/template/PieChartTypeTemplate.cxx Mon Dec 10 14:10:46 2007 --- new/chart2/source/model/template/PieChartTypeTemplate.cxx Fri Dec 14 14:32:10 2007 *************** *** 591,596 **** --- 591,604 ---- aScaleData.Orientation = chart2::AxisOrientation_MATHEMATICAL; xAxis->setScaleData( aScaleData ); } + + xAxis = AxisHelper::getAxis( 1, 0, aCooSysSeq[nCooSysIdx] ); + if( xAxis.is() ) + { + chart2::ScaleData aScaleData( xAxis->getScaleData() ); + aScaleData.Orientation = chart2::AxisOrientation_MATHEMATICAL; + xAxis->setScaleData( aScaleData ); + } } catch( const uno::Exception & ex ) { *** orig/chart2/source/view/main/ChartItemPool.cxx Mon Dec 10 14:10:46 2007 --- new/chart2/source/view/main/ChartItemPool.cxx Fri Dec 14 14:31:54 2007 *************** *** 223,228 **** --- 223,229 ---- ppPoolDefaults[SCHATTR_DIAGRAM_STYLE - SCHATTR_START] = new SvxChartStyleItem( CHSTYLE_2D_COLUMN, SCHATTR_DIAGRAM_STYLE ); ppPoolDefaults[SCHATTR_TEXTBREAK - SCHATTR_START] = new SfxBoolItem( SCHATTR_TEXTBREAK, FALSE ); ppPoolDefaults[SCHATTR_STARTING_ANGLE - SCHATTR_START] = new SfxInt32Item( SCHATTR_STARTING_ANGLE, 0 ); + ppPoolDefaults[SCHATTR_CLOCKWISE - SCHATTR_START] = new SfxBoolItem( SCHATTR_CLOCKWISE, FALSE ); ppPoolDefaults[SCHATTR_AXIS_FOR_ALL_SERIES - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_FOR_ALL_SERIES, 0); ppPoolDefaults[SCHATTR_REGRESSION_SHOW_EQUATION -SCHATTR_START] = new SfxBoolItem(SCHATTR_REGRESSION_SHOW_EQUATION, 0); *************** *** 508,513 **** --- 509,517 ---- SetRefCount(*ppPoolDefaults[SCHATTR_STARTING_ANGLE - SCHATTR_START], 0); delete ppPoolDefaults[SCHATTR_STARTING_ANGLE - SCHATTR_START]; + SetRefCount(*ppPoolDefaults[SCHATTR_CLOCKWISE - SCHATTR_START], 0); + delete ppPoolDefaults[SCHATTR_CLOCKWISE - SCHATTR_START]; + delete[] ppPoolDefaults; }