From edc3bfd558f3065a5444ad3f5c456da9546d16c4 Mon Sep 17 00:00:00 2001 From: Eric Seynaeve Date: Wed, 10 Apr 2013 00:15:43 +0200 Subject: Adding the dialog for setting stepped lines. The UI changes still need some more tweaking: - adjusting the vertical alignment in the splineresourcegroup - put the images in the radio buttons instead of in front of them Change-Id: I4bc5ebe5167eca9a5b1341d9328a7d74b62cf819 --- chart2/UIConfig_chart2.mk | 1 + chart2/source/controller/dialogs/Bitmaps.hrc | 17 ++ chart2/source/controller/dialogs/Bitmaps.src | 57 ++++++ .../dialogs/ChartTypeDialogController.cxx | 125 +++++++----- chart2/source/controller/dialogs/Strings.src | 5 + .../dialogs/Strings_AdditionalControls.src | 15 ++ chart2/source/controller/dialogs/tp_ChartType.cxx | 211 ++++++++++++++++--- chart2/source/controller/dialogs/tp_ChartType.hrc | 2 + chart2/source/controller/dialogs/tp_ChartType.src | 19 +- chart2/source/inc/Strings.hrc | 5 + chart2/uiconfig/ui/steppedlinesdlg.ui | 227 +++++++++++++++++++++ 11 files changed, 609 insertions(+), 75 deletions(-) create mode 100644 chart2/uiconfig/ui/steppedlinesdlg.ui (limited to 'chart2') diff --git a/chart2/UIConfig_chart2.mk b/chart2/UIConfig_chart2.mk index da90c1946189..48d1561e7b9a 100644 --- a/chart2/UIConfig_chart2.mk +++ b/chart2/UIConfig_chart2.mk @@ -31,6 +31,7 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/schart,\ $(eval $(call gb_UIConfig_add_uifiles,modules/schart,\ chart2/uiconfig/ui/smoothlinesdlg \ + chart2/uiconfig/ui/steppedlinesdlg \ )) # vim: set noet sw=4 ts=4: diff --git a/chart2/source/controller/dialogs/Bitmaps.hrc b/chart2/source/controller/dialogs/Bitmaps.hrc index e1f5710a0e83..ced4537dd396 100644 --- a/chart2/source/controller/dialogs/Bitmaps.hrc +++ b/chart2/source/controller/dialogs/Bitmaps.hrc @@ -39,6 +39,10 @@ #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) //----------------------------------------------------------------------------- //Chart Subtypes @@ -115,6 +119,7 @@ #define BMP_POINTS_XVALUES (RID_APP_START + 47) #define BMP_POINTS_XCATEGORY (RID_APP_START + 48) #define BMP_POINTS_STACKED (RID_APP_START + 49) +#define BMP_POINTS_STACKED (RID_APP_START + 49) #define BMP_LINE_P_XVALUES (RID_APP_START + 50) @@ -141,6 +146,18 @@ #define BMP_LINE_O_STACKED_SMOOTH (RID_APP_START + 66) #define BMP_LINE3D_STACKED_SMOOTH (RID_APP_START + 67) +#define BMP_LINE_P_XVALUES_STEPPED (RID_APP_START + 97) +#define BMP_LINE_O_XVALUES_STEPPED (RID_APP_START + 98) +#define BMP_LINE3D_XVALUES_STEPPED (RID_APP_START + 99) + +#define BMP_LINE_P_XCATEGORY_STEPPED (RID_APP_START + 100) +#define BMP_LINE_O_XCATEGORY_STEPPED (RID_APP_START + 101) +#define BMP_LINE3D_XCATEGORY_STEPPED (RID_APP_START + 102) + +#define BMP_LINE_P_STACKED_STEPPED (RID_APP_START + 103) +#define BMP_LINE_O_STACKED_STEPPED (RID_APP_START + 104) +#define BMP_LINE3D_STACKED_STEPPED (RID_APP_START + 105) + //---------------------- // Area Chart Subtypes diff --git a/chart2/source/controller/dialogs/Bitmaps.src b/chart2/source/controller/dialogs/Bitmaps.src index b4b3360973c1..e566ec4f3540 100644 --- a/chart2/source/controller/dialogs/Bitmaps.src +++ b/chart2/source/controller/dialogs/Bitmaps.src @@ -68,6 +68,26 @@ Image IMG_TYPE_BUBBLE ImageBitmap = Bitmap { File = "typebubble_16.png" ; }; MaskColor = STD_MASKCOLOR; }; +Image IMG_STEP_START +{ + ImageBitmap = Bitmap { File = "step_start_30.png" ; }; + MaskColor = STD_MASKCOLOR; +}; +Image IMG_STEP_END +{ + ImageBitmap = Bitmap { File = "step_end_30.png" ; }; + MaskColor = STD_MASKCOLOR; +}; +Image IMG_STEP_CENTER_X +{ + ImageBitmap = Bitmap { File = "step_center_x_30.png" ; }; + MaskColor = STD_MASKCOLOR; +}; +Image IMG_STEP_CENTER_Y +{ + ImageBitmap = Bitmap { File = "step_center_y_30.png" ; }; + MaskColor = STD_MASKCOLOR; +}; Bitmap BMP_BUBBLE_1 { File = "bubble_52x60.png" ; @@ -324,6 +344,43 @@ Bitmap BMP_LINE3D_STACKED_SMOOTH File = "stacksmooth3d_52x60.png" ; }; //--------------------- +Bitmap BMP_LINE_P_XVALUES_STEPPED +{ + File = "valueaxissteppedboth_52x60.png" ; +}; +Bitmap BMP_LINE_O_XVALUES_STEPPED +{ + File = "valueaxissteppedlines_52x60.png" ; +}; +Bitmap BMP_LINE3D_XVALUES_STEPPED +{ + File = "valueaxisstepped3d_52x60.png" ; +}; +Bitmap BMP_LINE_P_XCATEGORY_STEPPED +{ + File = "nostacksteppedboth_52x60.png" ; +}; +Bitmap BMP_LINE_O_XCATEGORY_STEPPED +{ + File = "nostacksteppedlines_52x60.png" ; +}; +Bitmap BMP_LINE3D_XCATEGORY_STEPPED +{ + File = "nostackstepped3d_52x60.png" ; +}; +Bitmap BMP_LINE_P_STACKED_STEPPED +{ + File = "stacksteppedboth_52x60.png" ; +}; +Bitmap BMP_LINE_O_STACKED_STEPPED +{ + File = "stacksteppedlines_52x60.png" ; +}; +Bitmap BMP_LINE3D_STACKED_STEPPED +{ + File = "stackstepped3d_52x60.png" ; +}; +//--------------------- Bitmap BMP_NET { File = "net_52x60.png" ; diff --git a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx index 0b6092d1c8d4..12a01eb4cc18 100644 --- a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx +++ b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx @@ -678,40 +678,60 @@ void LineChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const C { rSubTypeList.Clear(); - if( CurveStyle_LINES==rParameter.eCurveStyle ) + switch( rParameter.eCurveStyle ) { - //direct lines - if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode ) - { - rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY ))); - rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY ))); - rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY ))); - rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY ))); - } - else - { - rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED ))); - rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED ))); - rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED ))); - rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED ))); - } - } - else //CurveStyle_LINES - { - if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode ) - { - rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY ))); - rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY_SMOOTH ))); - rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY_SMOOTH ))); - rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY_SMOOTH ))); - } - else - { - rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED ))); - rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED_SMOOTH ))); - rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED_SMOOTH ))); - rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED_SMOOTH ))); - } + case CurveStyle_CUBIC_SPLINES: + case CurveStyle_B_SPLINES: + if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode ) + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY_SMOOTH ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY_SMOOTH ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY_SMOOTH ))); + } + else + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED_SMOOTH ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED_SMOOTH ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED_SMOOTH ))); + } + break; + case CurveStyle_STEP_START: + case CurveStyle_STEP_END: + case CurveStyle_STEP_CENTER_X: + case CurveStyle_STEP_CENTER_Y: + if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode ) + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY_STEPPED ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY_STEPPED ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY_STEPPED ))); + } + else + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED_STEPPED ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED_STEPPED ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED_STEPPED ))); + } + break; + default: // includes CurveStyle_LINES + //direct lines + if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode ) + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY ))); + } + else + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED ))); + } } rSubTypeList.SetItemText( 1, String( SchResId( STR_POINTS_ONLY )) ); @@ -800,20 +820,33 @@ void XYChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const Cha { rSubTypeList.Clear(); - if( CurveStyle_LINES==rParameter.eCurveStyle ) - { - rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES ))); - rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES ))); - rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES ))); - rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES ))); - } - else //CurveStyle_LINES + switch (rParameter.eCurveStyle) { - //smooth lines - rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES ))); - rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES_SMOOTH ))); - rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES_SMOOTH ))); - rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES_SMOOTH ))); + case CurveStyle_CUBIC_SPLINES: + case CurveStyle_B_SPLINES: + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES_SMOOTH ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES_SMOOTH ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES_SMOOTH ))); + break; + } + case CurveStyle_STEP_START: + case CurveStyle_STEP_END: + case CurveStyle_STEP_CENTER_X: + case CurveStyle_STEP_CENTER_Y: + { + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES_STEPPED ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES_STEPPED ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES_STEPPED ))); + break; + } + default: // includes CurveStyle_LINES + rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES ))); + rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES ))); + rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES ))); + rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES ))); } rSubTypeList.SetItemText( 1, String( SchResId( STR_POINTS_ONLY )) ); diff --git a/chart2/source/controller/dialogs/Strings.src b/chart2/source/controller/dialogs/Strings.src index 4e6af82d940c..f971eae43eed 100644 --- a/chart2/source/controller/dialogs/Strings.src +++ b/chart2/source/controller/dialogs/Strings.src @@ -28,6 +28,11 @@ String STR_DLG_SMOOTH_LINE_PROPERTIES Text [ en-US ] = "Smooth Lines" ; }; +String STR_DLG_STEPPED_LINE_PROPERTIES +{ + Text [ en-US ] = "Stepped Lines" ; +}; + String STR_DLG_NUMBERFORMAT_FOR_PERCENTAGE_VALUE { Text [ en-US ] = "Number Format for Percentage Value" ; diff --git a/chart2/source/controller/dialogs/Strings_AdditionalControls.src b/chart2/source/controller/dialogs/Strings_AdditionalControls.src index 9d4758de1864..1f6f7a17a665 100644 --- a/chart2/source/controller/dialogs/Strings_AdditionalControls.src +++ b/chart2/source/controller/dialogs/Strings_AdditionalControls.src @@ -46,6 +46,21 @@ String STR_TEXT_SEPARATOR Text [ en-US ] = "Separator"; }; +String STR_LINETYPE_STRAIGHT +{ + Text [ en-US ] = "Straight"; +}; + +String STR_LINETYPE_SMOOTH +{ + Text [ en-US ] = "Smooth"; +}; + +String STR_LINETYPE_STEPPED +{ + Text [ en-US ] = "Stepped"; +}; + //----------------------------------- /* 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 5601789a82cd..420aa333cba1 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.cxx +++ b/chart2/source/controller/dialogs/tp_ChartType.cxx @@ -440,9 +440,6 @@ public: private: DECL_LINK( SplineTypeListBoxHdl, void* ); - void adjustControlPositions(); - void adjustSize(); - private: ListBox* m_pLB_Spline_Type; @@ -517,6 +514,83 @@ IMPL_LINK_NOARG(SplinePropertiesDialog, SplineTypeListBoxHdl) } //-------------------------------------------------------------------------- +class SteppedPropertiesDialog : public ModalDialog +{ +public: + SteppedPropertiesDialog( Window* pParent ); + virtual ~SteppedPropertiesDialog(); + + void fillControls( const ChartTypeParameter& rParameter ); + void fillParameter( ChartTypeParameter& rParameter, bool bSteppedLines ); + + virtual void StateChanged( StateChangedType nType ); + +private: + +private: + RadioButton* m_pRB_Start; + RadioButton* m_pRB_End; + RadioButton* m_pRB_CenterX; + RadioButton* m_pRB_CenterY; +}; + +SteppedPropertiesDialog::SteppedPropertiesDialog( Window* pParent ) + : ModalDialog( pParent, "SteppedLinesDialog", "modules/schart/ui/steppedlinesdlg.ui") +{ + get(m_pRB_Start, "step_start_rb"); + get(m_pRB_End, "step_end_rb"); + get(m_pRB_CenterX, "step_center_x_rb"); + get(m_pRB_CenterY, "step_center_y_rb"); + + this->SetText( String( SchResId( STR_DLG_STEPPED_LINE_PROPERTIES ) ) ); +} + +SteppedPropertiesDialog::~SteppedPropertiesDialog() +{ +} + +void SteppedPropertiesDialog::StateChanged( StateChangedType nType ) +{ + Dialog::StateChanged( nType ); +} + +void SteppedPropertiesDialog::fillControls( const ChartTypeParameter& rParameter ) +{ + switch(rParameter.eCurveStyle) + { + case CurveStyle_STEP_END: + m_pRB_End->Check(); + break; + case CurveStyle_STEP_CENTER_X: + m_pRB_CenterX->Check(); + break; + case CurveStyle_STEP_CENTER_Y: + m_pRB_CenterY->Check(); + break; + default: // includes CurveStyle_STEP_START + m_pRB_Start->Check(); + break; + } +} +void SteppedPropertiesDialog::fillParameter( ChartTypeParameter& rParameter, bool bSteppedLines ) +{ + if (!bSteppedLines) + rParameter.eCurveStyle=CurveStyle_LINES; + else if(m_pRB_CenterY->IsChecked()) + rParameter.eCurveStyle=CurveStyle_STEP_CENTER_Y; + else if(m_pRB_Start->IsChecked()) + rParameter.eCurveStyle=CurveStyle_STEP_START; + else if(m_pRB_End->IsChecked()) + rParameter.eCurveStyle=CurveStyle_STEP_END; + else if(m_pRB_CenterX->IsChecked()) + rParameter.eCurveStyle=CurveStyle_STEP_CENTER_X; +} + +//-------------------------------------------------------------------------- + +#define POS_LINETYPE_STRAIGHT 0 +#define POS_LINETYPE_SMOOTH 1 +#define POS_LINETYPE_STEPPED 2 class SplineResourceGroup : public ChangingResource { @@ -533,24 +607,33 @@ public: void fillParameter( ChartTypeParameter& rParameter ); private: - DECL_LINK( SplineChangeHdl, void* ); + DECL_LINK( LineTypeChangeHdl, void* ); DECL_LINK( SplineDetailsDialogHdl, void* ); + DECL_LINK( SteppedDetailsDialogHdl, void* ); SplinePropertiesDialog& getSplinePropertiesDialog(); + SteppedPropertiesDialog& getSteppedPropertiesDialog(); private: - CheckBox m_aCB_Splines; + FixedText m_aFT_LineType; + ListBox m_aLB_LineType; PushButton m_aPB_DetailsDialog; ::std::auto_ptr< SplinePropertiesDialog > m_pSplinePropertiesDialog; + ::std::auto_ptr< SteppedPropertiesDialog > m_pSteppedPropertiesDialog; }; SplineResourceGroup::SplineResourceGroup( Window* pWindow ) : ChangingResource() - , m_aCB_Splines( pWindow, SchResId( CB_SPLINES ) ) + , m_aFT_LineType( pWindow, SchResId( FT_LINETYPE ) ) + , m_aLB_LineType( pWindow, SchResId( LB_LINETYPE ) ) , m_aPB_DetailsDialog( pWindow, SchResId( PB_SPLINE_DIALOG ) ) , m_pSplinePropertiesDialog() { - m_aCB_Splines.SetToggleHdl( LINK( this, SplineResourceGroup, SplineChangeHdl ) ); - m_aPB_DetailsDialog.SetClickHdl( LINK( this, SplineResourceGroup, SplineDetailsDialogHdl ) ); - m_aPB_DetailsDialog.SetQuickHelpText( String( SchResId(STR_DLG_SMOOTH_LINE_PROPERTIES) ) ); + m_aLB_LineType.InsertEntry(String(SchResId(STR_LINETYPE_STRAIGHT))); + m_aLB_LineType.InsertEntry(String(SchResId(STR_LINETYPE_SMOOTH))); + m_aLB_LineType.InsertEntry(String(SchResId(STR_LINETYPE_STEPPED))); + m_aLB_LineType.SetDropDownLineCount(3); + m_aLB_LineType.SetSelectHdl( LINK( this, SplineResourceGroup, LineTypeChangeHdl ) ); + m_aLB_LineType.SetAccessibleName(m_aFT_LineType.GetText()); + m_aLB_LineType.SetAccessibleRelationLabeledBy(&m_aFT_LineType); Size aButtonSize( m_aPB_DetailsDialog.GetSizePixel() ); Size aMinSize( m_aPB_DetailsDialog.CalcMinimumSize() ); @@ -572,61 +655,114 @@ SplinePropertiesDialog& SplineResourceGroup::getSplinePropertiesDialog() m_pSplinePropertiesDialog = ::std::auto_ptr< SplinePropertiesDialog >( new SplinePropertiesDialog( m_aPB_DetailsDialog.GetParent() ) ); return *m_pSplinePropertiesDialog; } +SteppedPropertiesDialog& SplineResourceGroup::getSteppedPropertiesDialog() +{ + if( !m_pSteppedPropertiesDialog.get() ) + { + m_pSteppedPropertiesDialog = ::std::auto_ptr< SteppedPropertiesDialog >( new SteppedPropertiesDialog( m_aPB_DetailsDialog.GetParent() ) ); + } + return *m_pSteppedPropertiesDialog; +} void SplineResourceGroup::showControls( bool bShow ) { - m_aCB_Splines.Show(bShow); + m_aFT_LineType.Show(bShow); + m_aLB_LineType.Show(bShow); m_aPB_DetailsDialog.Show(bShow); } Point SplineResourceGroup::getPosition() { - return m_aCB_Splines.GetPosPixel(); + return m_aLB_LineType.GetPosPixel(); } long SplineResourceGroup::getHeight() { - return m_aCB_Splines.GetSizePixel().Height() + m_aPB_DetailsDialog.LogicToPixel( Size(0,2), MapMode(MAP_APPFONT) ).Height(); + return m_aLB_LineType.GetSizePixel().Height() + m_aPB_DetailsDialog.LogicToPixel( Size(0,2), MapMode(MAP_APPFONT) ).Height(); } void SplineResourceGroup::setPosition( const Point& rPoint ) { - Size aSize( m_aCB_Splines.CalcMinimumSize() ); - Size aDistanceSize( m_aCB_Splines.LogicToPixel( Size(RSC_SP_CTRL_GROUP_X,1), MapMode(MAP_APPFONT) ) ); - m_aCB_Splines.SetSizePixel( aSize ); + Size aSizeFT( m_aFT_LineType.CalcMinimumSize() ); + Size aDistanceSizeFT( m_aFT_LineType.LogicToPixel( Size(RSC_SP_CTRL_GROUP_X,1), MapMode(MAP_APPFONT) ) ); + m_aFT_LineType.SetSizePixel( aSizeFT ); + + Size aSizeLB( m_aLB_LineType.CalcMinimumSize() ); + Size aDistanceSizeLB( m_aLB_LineType.LogicToPixel( Size(RSC_SP_CTRL_GROUP_X,1), MapMode(MAP_APPFONT) ) ); + m_aLB_LineType.SetSizePixel( aSizeLB ); Point aOld = this->getPosition(); long nDiffY = rPoint.Y() - aOld.Y(); long nDiffX = rPoint.X() - aOld.X(); Point aNew( aOld.X()+nDiffX, aOld.Y()+nDiffY ); - m_aCB_Splines.SetPosPixel( aNew ); + m_aFT_LineType.SetPosPixel( aNew ); + + aNew.X() += ( aSizeFT.Width() + aDistanceSizeFT.Width() ); + aNew.Y() -= 3*aDistanceSizeFT.Height(); + m_aLB_LineType.SetPosPixel( aNew ); - aNew.X() += ( aSize.Width() + aDistanceSize.Width() ); - aNew.Y() -= 3*aDistanceSize.Height(); + aNew.X() += ( aSizeLB.Width() + aDistanceSizeLB.Width() ); + aNew.Y() -= 3*aDistanceSizeLB.Height(); m_aPB_DetailsDialog.SetPosPixel( aNew ); } void SplineResourceGroup::fillControls( const ChartTypeParameter& rParameter ) { - m_aCB_Splines.Check( rParameter.eCurveStyle!=CurveStyle_LINES ); - getSplinePropertiesDialog().fillControls( rParameter ); + switch (rParameter.eCurveStyle) + { + case CurveStyle_LINES: + m_aLB_LineType.SelectEntryPos(POS_LINETYPE_STRAIGHT); + m_aPB_DetailsDialog.Enable(false); + break; + case CurveStyle_CUBIC_SPLINES: + case CurveStyle_B_SPLINES: + m_aLB_LineType.SelectEntryPos(POS_LINETYPE_SMOOTH); + m_aPB_DetailsDialog.Enable(true); + m_aPB_DetailsDialog.SetClickHdl( LINK( this, SplineResourceGroup, SplineDetailsDialogHdl ) ); + m_aPB_DetailsDialog.SetQuickHelpText( String( SchResId(STR_DLG_SMOOTH_LINE_PROPERTIES) ) ); + getSplinePropertiesDialog().fillControls( rParameter ); + break; + case CurveStyle_STEP_START: + case CurveStyle_STEP_END: + case CurveStyle_STEP_CENTER_X: + case CurveStyle_STEP_CENTER_Y: + m_aLB_LineType.SelectEntryPos(POS_LINETYPE_STEPPED); + m_aPB_DetailsDialog.Enable(true); + m_aPB_DetailsDialog.SetClickHdl( LINK( this, SplineResourceGroup, SteppedDetailsDialogHdl ) ); + m_aPB_DetailsDialog.SetQuickHelpText( String( SchResId(STR_DLG_STEPPED_LINE_PROPERTIES) ) ); + getSteppedPropertiesDialog().fillControls( rParameter ); + break; + default: + m_aLB_LineType.SetNoSelection(); + m_aPB_DetailsDialog.Enable(false); + } } void SplineResourceGroup::fillParameter( ChartTypeParameter& rParameter ) { - getSplinePropertiesDialog().fillParameter( rParameter, m_aCB_Splines.IsChecked() ); + switch (m_aLB_LineType.GetSelectEntryPos()) + { + case POS_LINETYPE_SMOOTH: + getSplinePropertiesDialog().fillParameter( rParameter, true ); + break; + case POS_LINETYPE_STEPPED: + getSteppedPropertiesDialog().fillParameter( rParameter, true ); + break; + default: // includes POS_LINETYPE_STRAIGHT + rParameter.eCurveStyle = CurveStyle_LINES; + break; + } } -IMPL_LINK_NOARG(SplineResourceGroup, SplineChangeHdl) +IMPL_LINK_NOARG(SplineResourceGroup, LineTypeChangeHdl) { if( m_pChangeListener ) m_pChangeListener->stateChanged(this); return 0; } - IMPL_LINK_NOARG(SplineResourceGroup, SplineDetailsDialogHdl) { ChartTypeParameter aOldParameter; - getSplinePropertiesDialog().fillParameter( aOldParameter, m_aCB_Splines.IsChecked() ); + getSplinePropertiesDialog().fillParameter( aOldParameter, POS_LINETYPE_SMOOTH == m_aLB_LineType.GetSelectEntryPos() ); - sal_Bool bOldSmoothLines = m_aCB_Splines.IsChecked(); - m_aCB_Splines.Check(); + sal_uInt16 iOldLineTypePos = m_aLB_LineType.GetSelectEntryPos(); + m_aLB_LineType.SelectEntryPos(POS_LINETYPE_SMOOTH); if( RET_OK == getSplinePropertiesDialog().Execute() ) { if( m_pChangeListener ) @@ -635,11 +771,32 @@ IMPL_LINK_NOARG(SplineResourceGroup, SplineDetailsDialogHdl) else { //restore old state: - m_aCB_Splines.Check( bOldSmoothLines ); + m_aLB_LineType.SelectEntryPos( iOldLineTypePos ); getSplinePropertiesDialog().fillControls( aOldParameter ); } return 0; } +IMPL_LINK_NOARG(SplineResourceGroup, SteppedDetailsDialogHdl) +{ + + ChartTypeParameter aOldParameter; + getSteppedPropertiesDialog().fillParameter( aOldParameter, POS_LINETYPE_STEPPED == m_aLB_LineType.GetSelectEntryPos() ); + + sal_uInt16 iOldLineTypePos = m_aLB_LineType.GetSelectEntryPos(); + m_aLB_LineType.SelectEntryPos(POS_LINETYPE_STEPPED); + if( RET_OK == getSteppedPropertiesDialog().Execute() ) + { + if( m_pChangeListener ) + m_pChangeListener->stateChanged(this); + } + else + { + //restore old state: + m_aLB_LineType.SelectEntryPos( iOldLineTypePos ); + getSteppedPropertiesDialog().fillControls( aOldParameter ); + } + return 0; +} //-------------------------------------------------------------------------- diff --git a/chart2/source/controller/dialogs/tp_ChartType.hrc b/chart2/source/controller/dialogs/tp_ChartType.hrc index 2c1aacc5736d..3a356a8a49c6 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.hrc +++ b/chart2/source/controller/dialogs/tp_ChartType.hrc @@ -26,8 +26,10 @@ #define LB_3D_SCHEME 1 #define LB_CHARTTYPE 2 #define CT_CHARTVARIANT 3 +#define LB_LINETYPE 4 #define FT_CHARTTYPE 1 +#define FT_LINETYPE 2 #define CB_X_AXIS_CATEGORIES 1 #define CB_3D_LOOK 2 diff --git a/chart2/source/controller/dialogs/tp_ChartType.src b/chart2/source/controller/dialogs/tp_ChartType.src index 1782e6bb9375..1a70c45f4e70 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.src +++ b/chart2/source/controller/dialogs/tp_ChartType.src @@ -145,6 +145,22 @@ TabPage TP_CHARTTYPE Text [ en-US ] = "Deep"; }; + FixedText FT_LINETYPE + { + Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_SPLINES ) ; + Size = MAP_APPFONT ( 150 , 10 ) ; + TabStop = TRUE ; + Text [ en-US ] = "~Line type"; + }; + ListBox LB_LINETYPE + { + HelpID = "chart2:ListBox:TP_CHARTTYPE:LB_LINETYPE"; + Border = TRUE; + TabStop = TRUE; + DropDown = TRUE; + Pos = MAP_APPFONT ( POS_X_IMAGELIST, POS_Y_SPLINES ) ; + Size = MAP_APPFONT ( 150 , 10 ) ; + }; CheckBox CB_SPLINES { HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_SPLINES"; @@ -152,12 +168,11 @@ TabPage TP_CHARTTYPE Size = MAP_APPFONT ( 150 , 10 ) ; Text [ en-US ] = "S~mooth lines" ; }; - PushButton PB_SPLINE_DIALOG { HelpID = "chart2:PushButton:TP_CHARTTYPE:PB_SPLINE_DIALOG"; TabStop = TRUE ; - Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_SPLINES-6 ) ; + Pos = MAP_APPFONT ( POS_X_IMAGELIST , POS_Y_SPLINES ) ; Size = MAP_APPFONT ( 12 , 14 ) ; Text [ en-US ] = "Properties..." ; }; diff --git a/chart2/source/inc/Strings.hrc b/chart2/source/inc/Strings.hrc index 1d27f1bb66a7..aecf40112265 100644 --- a/chart2/source/inc/Strings.hrc +++ b/chart2/source/inc/Strings.hrc @@ -77,6 +77,10 @@ #define STR_3DSCHEME_REALISTIC (RID_APP_START + 232) #define STR_3DSCHEME_CUSTOM (RID_APP_START + 259) +#define STR_LINETYPE_STRAIGHT (RID_APP_START + 297) +#define STR_LINETYPE_SMOOTH (RID_APP_START + 298) +#define STR_LINETYPE_STEPPED (RID_APP_START + 299) + //additional strings #define STR_TEXT_SEPARATOR (RID_APP_START + 20) @@ -236,6 +240,7 @@ #define STR_PAGE_CHART_LOCATION (RID_APP_START + 230) #define STR_DLG_SMOOTH_LINE_PROPERTIES (RID_APP_START + 239) +#define STR_DLG_STEPPED_LINE_PROPERTIES (RID_APP_START + 270) #define STR_DLG_NUMBERFORMAT_FOR_PERCENTAGE_VALUE (RID_APP_START + 266) #define STR_PAGE_POSITIONING (RID_APP_START + 277) diff --git a/chart2/uiconfig/ui/steppedlinesdlg.ui b/chart2/uiconfig/ui/steppedlinesdlg.ui new file mode 100644 index 000000000000..4cc351f3669c --- /dev/null +++ b/chart2/uiconfig/ui/steppedlinesdlg.ui @@ -0,0 +1,227 @@ + + + + + + False + 5 + dialog + + + False + vertical + 2 + + + True + False + vertical + + + True + False + Choose the type of stepping: + + + False + True + 0 + + + + + True + False + 6 + + + True + False + chart2/res/step_center_x_30.png + + + 0 + 1 + 1 + 1 + + + + + True + False + chart2/res/step_end_30.png + + + 2 + 0 + 1 + 1 + + + + + True + False + chart2/res/step_center_y_30.png + + + 2 + 1 + 1 + 1 + + + + + _Start with horizontal line + True + True + False + True + 0 + True + True + step_center_x_rb + + + 1 + 0 + 1 + 1 + + + + + Step at the _horizontal mean + True + True + False + True + 0 + True + True + step_start_rb + + + 1 + 1 + 1 + 1 + + + + + _End with horizontal line + True + True + False + True + 0 + True + True + step_start_rb + + + 3 + 0 + 1 + 1 + + + + + Step to the _vertical mean + True + True + False + True + 0 + True + True + step_start_rb + + + 3 + 1 + 1 + 1 + + + + + True + False + chart2/res/step_start_30.png + + + 0 + 0 + 1 + 1 + + + + + False + True + 1 + + + + + False + True + 0 + + + + + False + end + + + gtk-ok + True + True + True + True + True + True + + + False + True + 0 + + + + + gtk-cancel + True + True + True + True + + + False + True + 1 + + + + + False + True + end + 0 + + + + + + ok + cancel + + + -- cgit