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
This commit is contained in:
Eric Seynaeve
2013-04-10 00:15:43 +02:00
committed by Markus Mohrhard
parent 426ab2eb7e
commit edc3bfd558
26 changed files with 609 additions and 75 deletions

View File

@@ -31,6 +31,7 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/schart,\
$(eval $(call gb_UIConfig_add_uifiles,modules/schart,\ $(eval $(call gb_UIConfig_add_uifiles,modules/schart,\
chart2/uiconfig/ui/smoothlinesdlg \ chart2/uiconfig/ui/smoothlinesdlg \
chart2/uiconfig/ui/steppedlinesdlg \
)) ))
# vim: set noet sw=4 ts=4: # vim: set noet sw=4 ts=4:

View File

@@ -39,6 +39,10 @@
#define IMG_TYPE_NET (RID_APP_START + 8) #define IMG_TYPE_NET (RID_APP_START + 8)
#define IMG_TYPE_STOCK (RID_APP_START + 9) #define IMG_TYPE_STOCK (RID_APP_START + 9)
#define IMG_TYPE_COLUMN_LINE (RID_APP_START + 10) #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 //Chart Subtypes
@@ -115,6 +119,7 @@
#define BMP_POINTS_XVALUES (RID_APP_START + 47) #define BMP_POINTS_XVALUES (RID_APP_START + 47)
#define BMP_POINTS_XCATEGORY (RID_APP_START + 48) #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_POINTS_STACKED (RID_APP_START + 49)
#define BMP_LINE_P_XVALUES (RID_APP_START + 50) #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_LINE_O_STACKED_SMOOTH (RID_APP_START + 66)
#define BMP_LINE3D_STACKED_SMOOTH (RID_APP_START + 67) #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 // Area Chart Subtypes

View File

@@ -68,6 +68,26 @@ Image IMG_TYPE_BUBBLE
ImageBitmap = Bitmap { File = "typebubble_16.png" ; }; ImageBitmap = Bitmap { File = "typebubble_16.png" ; };
MaskColor = STD_MASKCOLOR; 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 Bitmap BMP_BUBBLE_1
{ {
File = "bubble_52x60.png" ; File = "bubble_52x60.png" ;
@@ -324,6 +344,43 @@ Bitmap BMP_LINE3D_STACKED_SMOOTH
File = "stacksmooth3d_52x60.png" ; 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 Bitmap BMP_NET
{ {
File = "net_52x60.png" ; File = "net_52x60.png" ;

View File

@@ -678,40 +678,60 @@ void LineChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const C
{ {
rSubTypeList.Clear(); rSubTypeList.Clear();
if( CurveStyle_LINES==rParameter.eCurveStyle ) switch( rParameter.eCurveStyle )
{ {
//direct lines case CurveStyle_CUBIC_SPLINES:
if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode ) 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 ))); rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY )));
rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY ))); rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY_SMOOTH )));
rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY ))); rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY_SMOOTH )));
} rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY_SMOOTH )));
else }
{ else
rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED ))); {
rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED ))); rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED )));
rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED ))); rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED_SMOOTH )));
rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED ))); rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED_SMOOTH )));
} rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED_SMOOTH )));
} }
else //CurveStyle_LINES break;
{ case CurveStyle_STEP_START:
if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode ) case CurveStyle_STEP_END:
{ case CurveStyle_STEP_CENTER_X:
rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY ))); case CurveStyle_STEP_CENTER_Y:
rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY_SMOOTH ))); if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode )
rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY_SMOOTH ))); {
rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY_SMOOTH ))); rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XCATEGORY )));
} rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XCATEGORY_STEPPED )));
else rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XCATEGORY_STEPPED )));
{ rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XCATEGORY_STEPPED )));
rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_STACKED ))); }
rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_STACKED_SMOOTH ))); else
rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_STACKED_SMOOTH ))); {
rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_STACKED_SMOOTH ))); 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 )) ); rSubTypeList.SetItemText( 1, String( SchResId( STR_POINTS_ONLY )) );
@@ -800,20 +820,33 @@ void XYChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const Cha
{ {
rSubTypeList.Clear(); rSubTypeList.Clear();
if( CurveStyle_LINES==rParameter.eCurveStyle ) switch (rParameter.eCurveStyle)
{ {
rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES ))); case CurveStyle_CUBIC_SPLINES:
rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES ))); case CurveStyle_B_SPLINES:
rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES ))); {
rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES ))); rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES )));
} rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES_SMOOTH )));
else //CurveStyle_LINES rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES_SMOOTH )));
{ rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES_SMOOTH )));
//smooth lines break;
rSubTypeList.InsertItem( 1, Bitmap( SchResId( BMP_POINTS_XVALUES ))); }
rSubTypeList.InsertItem( 2, Bitmap( SchResId( BMP_LINE_P_XVALUES_SMOOTH ))); case CurveStyle_STEP_START:
rSubTypeList.InsertItem( 3, Bitmap( SchResId( BMP_LINE_O_XVALUES_SMOOTH ))); case CurveStyle_STEP_END:
rSubTypeList.InsertItem( 4, Bitmap( SchResId( BMP_LINE3D_XVALUES_SMOOTH ))); 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 )) ); rSubTypeList.SetItemText( 1, String( SchResId( STR_POINTS_ONLY )) );

View File

@@ -28,6 +28,11 @@ String STR_DLG_SMOOTH_LINE_PROPERTIES
Text [ en-US ] = "Smooth Lines" ; Text [ en-US ] = "Smooth Lines" ;
}; };
String STR_DLG_STEPPED_LINE_PROPERTIES
{
Text [ en-US ] = "Stepped Lines" ;
};
String STR_DLG_NUMBERFORMAT_FOR_PERCENTAGE_VALUE String STR_DLG_NUMBERFORMAT_FOR_PERCENTAGE_VALUE
{ {
Text [ en-US ] = "Number Format for Percentage Value" ; Text [ en-US ] = "Number Format for Percentage Value" ;

View File

@@ -46,6 +46,21 @@ String STR_TEXT_SEPARATOR
Text [ en-US ] = "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: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -440,9 +440,6 @@ public:
private: private:
DECL_LINK( SplineTypeListBoxHdl, void* ); DECL_LINK( SplineTypeListBoxHdl, void* );
void adjustControlPositions();
void adjustSize();
private: private:
ListBox* m_pLB_Spline_Type; 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 class SplineResourceGroup : public ChangingResource
{ {
@@ -533,24 +607,33 @@ public:
void fillParameter( ChartTypeParameter& rParameter ); void fillParameter( ChartTypeParameter& rParameter );
private: private:
DECL_LINK( SplineChangeHdl, void* ); DECL_LINK( LineTypeChangeHdl, void* );
DECL_LINK( SplineDetailsDialogHdl, void* ); DECL_LINK( SplineDetailsDialogHdl, void* );
DECL_LINK( SteppedDetailsDialogHdl, void* );
SplinePropertiesDialog& getSplinePropertiesDialog(); SplinePropertiesDialog& getSplinePropertiesDialog();
SteppedPropertiesDialog& getSteppedPropertiesDialog();
private: private:
CheckBox m_aCB_Splines; FixedText m_aFT_LineType;
ListBox m_aLB_LineType;
PushButton m_aPB_DetailsDialog; PushButton m_aPB_DetailsDialog;
::std::auto_ptr< SplinePropertiesDialog > m_pSplinePropertiesDialog; ::std::auto_ptr< SplinePropertiesDialog > m_pSplinePropertiesDialog;
::std::auto_ptr< SteppedPropertiesDialog > m_pSteppedPropertiesDialog;
}; };
SplineResourceGroup::SplineResourceGroup( Window* pWindow ) SplineResourceGroup::SplineResourceGroup( Window* pWindow )
: ChangingResource() : 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_aPB_DetailsDialog( pWindow, SchResId( PB_SPLINE_DIALOG ) )
, m_pSplinePropertiesDialog() , m_pSplinePropertiesDialog()
{ {
m_aCB_Splines.SetToggleHdl( LINK( this, SplineResourceGroup, SplineChangeHdl ) ); m_aLB_LineType.InsertEntry(String(SchResId(STR_LINETYPE_STRAIGHT)));
m_aPB_DetailsDialog.SetClickHdl( LINK( this, SplineResourceGroup, SplineDetailsDialogHdl ) ); m_aLB_LineType.InsertEntry(String(SchResId(STR_LINETYPE_SMOOTH)));
m_aPB_DetailsDialog.SetQuickHelpText( String( SchResId(STR_DLG_SMOOTH_LINE_PROPERTIES) ) ); 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 aButtonSize( m_aPB_DetailsDialog.GetSizePixel() );
Size aMinSize( m_aPB_DetailsDialog.CalcMinimumSize() ); 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() ) ); m_pSplinePropertiesDialog = ::std::auto_ptr< SplinePropertiesDialog >( new SplinePropertiesDialog( m_aPB_DetailsDialog.GetParent() ) );
return *m_pSplinePropertiesDialog; 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 ) 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); m_aPB_DetailsDialog.Show(bShow);
} }
Point SplineResourceGroup::getPosition() Point SplineResourceGroup::getPosition()
{ {
return m_aCB_Splines.GetPosPixel(); return m_aLB_LineType.GetPosPixel();
} }
long SplineResourceGroup::getHeight() 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 ) void SplineResourceGroup::setPosition( const Point& rPoint )
{ {
Size aSize( m_aCB_Splines.CalcMinimumSize() ); Size aSizeFT( m_aFT_LineType.CalcMinimumSize() );
Size aDistanceSize( m_aCB_Splines.LogicToPixel( Size(RSC_SP_CTRL_GROUP_X,1), MapMode(MAP_APPFONT) ) ); Size aDistanceSizeFT( m_aFT_LineType.LogicToPixel( Size(RSC_SP_CTRL_GROUP_X,1), MapMode(MAP_APPFONT) ) );
m_aCB_Splines.SetSizePixel( aSize ); 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(); Point aOld = this->getPosition();
long nDiffY = rPoint.Y() - aOld.Y(); long nDiffY = rPoint.Y() - aOld.Y();
long nDiffX = rPoint.X() - aOld.X(); long nDiffX = rPoint.X() - aOld.X();
Point aNew( aOld.X()+nDiffX, aOld.Y()+nDiffY ); Point aNew( aOld.X()+nDiffX, aOld.Y()+nDiffY );
m_aCB_Splines.SetPosPixel( aNew ); m_aFT_LineType.SetPosPixel( aNew );
aNew.X() += ( aSize.Width() + aDistanceSize.Width() ); aNew.X() += ( aSizeFT.Width() + aDistanceSizeFT.Width() );
aNew.Y() -= 3*aDistanceSize.Height(); aNew.Y() -= 3*aDistanceSizeFT.Height();
m_aLB_LineType.SetPosPixel( aNew );
aNew.X() += ( aSizeLB.Width() + aDistanceSizeLB.Width() );
aNew.Y() -= 3*aDistanceSizeLB.Height();
m_aPB_DetailsDialog.SetPosPixel( aNew ); m_aPB_DetailsDialog.SetPosPixel( aNew );
} }
void SplineResourceGroup::fillControls( const ChartTypeParameter& rParameter ) void SplineResourceGroup::fillControls( const ChartTypeParameter& rParameter )
{ {
m_aCB_Splines.Check( rParameter.eCurveStyle!=CurveStyle_LINES ); switch (rParameter.eCurveStyle)
getSplinePropertiesDialog().fillControls( rParameter ); {
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 ) 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 ) if( m_pChangeListener )
m_pChangeListener->stateChanged(this); m_pChangeListener->stateChanged(this);
return 0; return 0;
} }
IMPL_LINK_NOARG(SplineResourceGroup, SplineDetailsDialogHdl) IMPL_LINK_NOARG(SplineResourceGroup, SplineDetailsDialogHdl)
{ {
ChartTypeParameter aOldParameter; 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(); sal_uInt16 iOldLineTypePos = m_aLB_LineType.GetSelectEntryPos();
m_aCB_Splines.Check(); m_aLB_LineType.SelectEntryPos(POS_LINETYPE_SMOOTH);
if( RET_OK == getSplinePropertiesDialog().Execute() ) if( RET_OK == getSplinePropertiesDialog().Execute() )
{ {
if( m_pChangeListener ) if( m_pChangeListener )
@@ -635,11 +771,32 @@ IMPL_LINK_NOARG(SplineResourceGroup, SplineDetailsDialogHdl)
else else
{ {
//restore old state: //restore old state:
m_aCB_Splines.Check( bOldSmoothLines ); m_aLB_LineType.SelectEntryPos( iOldLineTypePos );
getSplinePropertiesDialog().fillControls( aOldParameter ); getSplinePropertiesDialog().fillControls( aOldParameter );
} }
return 0; 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;
}
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------

View File

@@ -26,8 +26,10 @@
#define LB_3D_SCHEME 1 #define LB_3D_SCHEME 1
#define LB_CHARTTYPE 2 #define LB_CHARTTYPE 2
#define CT_CHARTVARIANT 3 #define CT_CHARTVARIANT 3
#define LB_LINETYPE 4
#define FT_CHARTTYPE 1 #define FT_CHARTTYPE 1
#define FT_LINETYPE 2
#define CB_X_AXIS_CATEGORIES 1 #define CB_X_AXIS_CATEGORIES 1
#define CB_3D_LOOK 2 #define CB_3D_LOOK 2

View File

@@ -145,6 +145,22 @@ TabPage TP_CHARTTYPE
Text [ en-US ] = "Deep"; 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 CheckBox CB_SPLINES
{ {
HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_SPLINES"; HelpID = "chart2:CheckBox:TP_CHARTTYPE:CB_SPLINES";
@@ -152,12 +168,11 @@ TabPage TP_CHARTTYPE
Size = MAP_APPFONT ( 150 , 10 ) ; Size = MAP_APPFONT ( 150 , 10 ) ;
Text [ en-US ] = "S~mooth lines" ; Text [ en-US ] = "S~mooth lines" ;
}; };
PushButton PB_SPLINE_DIALOG PushButton PB_SPLINE_DIALOG
{ {
HelpID = "chart2:PushButton:TP_CHARTTYPE:PB_SPLINE_DIALOG"; HelpID = "chart2:PushButton:TP_CHARTTYPE:PB_SPLINE_DIALOG";
TabStop = TRUE ; 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 ) ; Size = MAP_APPFONT ( 12 , 14 ) ;
Text [ en-US ] = "Properties..." ; Text [ en-US ] = "Properties..." ;
}; };

View File

@@ -77,6 +77,10 @@
#define STR_3DSCHEME_REALISTIC (RID_APP_START + 232) #define STR_3DSCHEME_REALISTIC (RID_APP_START + 232)
#define STR_3DSCHEME_CUSTOM (RID_APP_START + 259) #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 //additional strings
#define STR_TEXT_SEPARATOR (RID_APP_START + 20) #define STR_TEXT_SEPARATOR (RID_APP_START + 20)
@@ -236,6 +240,7 @@
#define STR_PAGE_CHART_LOCATION (RID_APP_START + 230) #define STR_PAGE_CHART_LOCATION (RID_APP_START + 230)
#define STR_DLG_SMOOTH_LINE_PROPERTIES (RID_APP_START + 239) #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_DLG_NUMBERFORMAT_FOR_PERCENTAGE_VALUE (RID_APP_START + 266)
#define STR_PAGE_POSITIONING (RID_APP_START + 277) #define STR_PAGE_POSITIONING (RID_APP_START + 277)

View File

@@ -0,0 +1,227 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<!-- interface-local-resource-path /home/eric/Documents/computers/libreoffice/core/icon-themes/galaxy/chart2 -->
<object class="GtkDialog" id="SteppedLinesDialog">
<property name="can_focus">False</property>
<property name="border_width">5</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Choose the type of stepping:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">6</property>
<child>
<object class="GtkImage" id="step_center_x_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="pixbuf">chart2/res/step_center_x_30.png</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkImage" id="step_end_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="pixbuf">chart2/res/step_end_30.png</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkImage" id="step_center_y_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="pixbuf">chart2/res/step_center_y_30.png</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="step_start_rb">
<property name="label" translatable="yes">_Start with horizontal line</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">step_center_x_rb</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="step_center_x_rb">
<property name="label" translatable="yes">Step at the _horizontal mean</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">step_start_rb</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="step_end_rb">
<property name="label" translatable="yes">_End with horizontal line</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">step_start_rb</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="step_center_y_rb">
<property name="label" translatable="yes">Step to the _vertical mean</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">step_start_rb</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkImage" id="step_start_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="pixbuf">chart2/res/step_start_30.png</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cancel">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="0">ok</action-widget>
<action-widget response="0">cancel</action-widget>
</action-widgets>
</object>
</interface>

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B