*** orig/chart2/source/controller/dialogs/tp_Scale.cxx Fri Apr 11 04:24:18 2008 --- new/chart2/source/controller/dialogs/tp_Scale.cxx Fri Oct 31 14:11:02 2008 *************** *** 129,211 **** FreeResource(); SetExchangeSupport(); //optimize position of the controls ! { ! long nLabelWidth = ::std::max( aTxtMin.CalcMinimumSize().Width(), aTxtMax.CalcMinimumSize().Width() ); ! nLabelWidth = ::std::max( aTxtMain.CalcMinimumSize().Width(), nLabelWidth ); ! nLabelWidth = ::std::max( aTxtHelp.CalcMinimumSize().Width(), nLabelWidth ); ! nLabelWidth = ::std::max( aTxtOrigin.CalcMinimumSize().Width(), nLabelWidth ); ! nLabelWidth+=1; ! ! long nLabelDistance = aTxtMin.LogicToPixel( Size(RSC_SP_CTRL_DESC_X, 0), MapMode(MAP_APPFONT) ).Width(); ! long nNewXPos = aTxtMin.GetPosPixel().X() + nLabelWidth + nLabelDistance; ! ! //ensure that the auto checkboxes are wide enough and have correct size for calculation ! aCbxAutoMin.SetSizePixel( aCbxAutoMin.CalcMinimumSize() ); ! aCbxAutoMax.SetSizePixel( aCbxAutoMax.CalcMinimumSize() ); ! aCbxAutoStepMain.SetSizePixel( aCbxAutoStepMain.CalcMinimumSize() ); ! aCbxAutoStepHelp.SetSizePixel( aCbxAutoStepHelp.CalcMinimumSize() ); ! aCbxAutoOrigin.SetSizePixel( aCbxAutoOrigin.CalcMinimumSize() ); ! //ensure new pos is ok ! long nWidthOfOtherControls = aCbxAutoMin.GetPosPixel().X() + aCbxAutoMin.GetSizePixel().Width() - aFmtFldMin.GetPosPixel().X(); ! long nDialogWidth = GetSizePixel().Width(); ! long nLeftSpace = nDialogWidth - nNewXPos - nWidthOfOtherControls; ! if(nLeftSpace>=0) ! { ! Size aSize( aTxtMin.GetSizePixel() ); ! aSize.Width() = nLabelWidth; ! aTxtMin.SetSizePixel(aSize); ! aTxtMax.SetSizePixel(aSize); ! aTxtMain.SetSizePixel(aSize); ! aTxtHelp.SetSizePixel(aSize); ! aTxtOrigin.SetSizePixel(aSize); ! lcl_shiftControls( aFmtFldMin, aCbxAutoMin, nNewXPos ); ! lcl_shiftControls( aFmtFldMax, aCbxAutoMax, nNewXPos ); ! lcl_shiftControls( aFmtFldStepMain, aCbxAutoStepMain, nNewXPos ); ! lcl_shiftControls( aMtStepHelp, aCbxAutoStepHelp, nNewXPos ); ! lcl_shiftControls( aFmtFldOrigin, aCbxAutoOrigin, nNewXPos ); ! ! //tickmark controls ! long nCheckWidth = 1 + ::std::max( aCbxTicksInner.CalcMinimumSize().Width(), aCbxHelpTicksInner.CalcMinimumSize().Width() ); ! aSize = aCbxTicksInner.GetSizePixel(); ! aSize.Width() = nCheckWidth; ! long nCheckDistance = aCbxTicksInner.LogicToPixel( Size(RSC_SP_CTRL_X, 0), MapMode(MAP_APPFONT) ).Width(); ! long nNewCheckXPos = aCbxTicksInner.GetPosPixel().X() + nCheckWidth + nCheckDistance; ! aCbxTicksOuter.SetSizePixel( aCbxTicksOuter.CalcMinimumSize() ); ! aCbxHelpTicksOuter.SetSizePixel( aCbxHelpTicksOuter.CalcMinimumSize() ); ! nWidthOfOtherControls = aCbxTicksOuter.GetSizePixel().Width(); ! nLeftSpace = nDialogWidth - nNewCheckXPos - nWidthOfOtherControls; ! if(nLeftSpace>=0) ! { ! aCbxTicksInner.SetSizePixel(aSize); ! aCbxHelpTicksInner.SetSizePixel(aSize); ! ! if( nNewCheckXPos < nNewXPos && (nDialogWidth - nNewXPos - nWidthOfOtherControls)>=0 ) ! nNewCheckXPos = nNewXPos;//alignement looks nicer ! ! Point aPos( aCbxTicksOuter.GetPosPixel() ); ! aPos.X() = nNewCheckXPos; ! aCbxTicksOuter.SetPosPixel(aPos); ! ! aPos = aCbxHelpTicksOuter.GetPosPixel(); ! aPos.X() = nNewCheckXPos; ! aCbxHelpTicksOuter.SetPosPixel(aPos); ! } } } - - aCbxAutoMin.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); - aCbxAutoMax.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); - aCbxAutoStepMain.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); - aCbxAutoStepHelp.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); - aCbxAutoOrigin.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); } void ScaleTabPage::EnableControls() --- 129,219 ---- FreeResource(); SetExchangeSupport(); + aCbxAutoMin.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); + aCbxAutoMax.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); + aCbxAutoStepMain.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); + aCbxAutoStepHelp.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); + aCbxAutoOrigin.SetClickHdl(LINK(this, ScaleTabPage, EnableValueHdl)); + } + + void ScaleTabPage::StateChanged( StateChangedType nType ) + { + TabPage::StateChanged( nType ); + + if( nType == STATE_CHANGE_INITSHOW ) + AdaptControlsPosition(); + } + + void ScaleTabPage::AdaptControlsPosition() + { //optimize position of the controls ! long nLabelWidth = ::std::max( aTxtMin.CalcMinimumSize().Width(), aTxtMax.CalcMinimumSize().Width() ); ! nLabelWidth = ::std::max( aTxtMain.CalcMinimumSize().Width(), nLabelWidth ); ! nLabelWidth = ::std::max( aTxtHelp.CalcMinimumSize().Width(), nLabelWidth ); ! nLabelWidth = ::std::max( aTxtOrigin.CalcMinimumSize().Width(), nLabelWidth ); ! nLabelWidth+=1; ! ! long nLabelDistance = aTxtMin.LogicToPixel( Size(RSC_SP_CTRL_DESC_X, 0), MapMode(MAP_APPFONT) ).Width(); ! long nNewXPos = aTxtMin.GetPosPixel().X() + nLabelWidth + nLabelDistance; ! ! //ensure that the auto checkboxes are wide enough and have correct size for calculation ! aCbxAutoMin.SetSizePixel( aCbxAutoMin.CalcMinimumSize() ); ! aCbxAutoMax.SetSizePixel( aCbxAutoMax.CalcMinimumSize() ); ! aCbxAutoStepMain.SetSizePixel( aCbxAutoStepMain.CalcMinimumSize() ); ! aCbxAutoStepHelp.SetSizePixel( aCbxAutoStepHelp.CalcMinimumSize() ); ! aCbxAutoOrigin.SetSizePixel( aCbxAutoOrigin.CalcMinimumSize() ); ! //ensure new pos is ok ! long nWidthOfOtherControls = aCbxAutoMin.GetPosPixel().X() + aCbxAutoMin.GetSizePixel().Width() - aFmtFldMin.GetPosPixel().X(); ! long nDialogWidth = GetSizePixel().Width(); ! long nLeftSpace = nDialogWidth - nNewXPos - nWidthOfOtherControls; ! if(nLeftSpace>=0) ! { ! Size aSize( aTxtMin.GetSizePixel() ); ! aSize.Width() = nLabelWidth; ! aTxtMin.SetSizePixel(aSize); ! aTxtMax.SetSizePixel(aSize); ! aTxtMain.SetSizePixel(aSize); ! aTxtHelp.SetSizePixel(aSize); ! aTxtOrigin.SetSizePixel(aSize); ! lcl_shiftControls( aFmtFldMin, aCbxAutoMin, nNewXPos ); ! lcl_shiftControls( aFmtFldMax, aCbxAutoMax, nNewXPos ); ! lcl_shiftControls( aFmtFldStepMain, aCbxAutoStepMain, nNewXPos ); ! lcl_shiftControls( aMtStepHelp, aCbxAutoStepHelp, nNewXPos ); ! lcl_shiftControls( aFmtFldOrigin, aCbxAutoOrigin, nNewXPos ); ! ! //tickmark controls ! long nCheckWidth = 1 + ::std::max( aCbxTicksInner.CalcMinimumSize().Width(), aCbxHelpTicksInner.CalcMinimumSize().Width() ); ! aSize = aCbxTicksInner.GetSizePixel(); ! aSize.Width() = nCheckWidth; ! long nCheckDistance = aCbxTicksInner.LogicToPixel( Size(RSC_SP_CTRL_X, 0), MapMode(MAP_APPFONT) ).Width(); ! long nNewCheckXPos = aCbxTicksInner.GetPosPixel().X() + nCheckWidth + nCheckDistance; ! aCbxTicksOuter.SetSizePixel( aCbxTicksOuter.CalcMinimumSize() ); ! aCbxHelpTicksOuter.SetSizePixel( aCbxHelpTicksOuter.CalcMinimumSize() ); ! nWidthOfOtherControls = aCbxTicksOuter.GetSizePixel().Width(); ! nLeftSpace = nDialogWidth - nNewCheckXPos - nWidthOfOtherControls; ! if(nLeftSpace>=0) ! { ! aCbxTicksInner.SetSizePixel(aSize); ! aCbxHelpTicksInner.SetSizePixel(aSize); ! if( nNewCheckXPos < nNewXPos && (nDialogWidth - nNewXPos - nWidthOfOtherControls)>=0 ) ! nNewCheckXPos = nNewXPos;//alignement looks nicer ! ! Point aPos( aCbxTicksOuter.GetPosPixel() ); ! aPos.X() = nNewCheckXPos; ! aCbxTicksOuter.SetPosPixel(aPos); ! ! aPos = aCbxHelpTicksOuter.GetPosPixel(); ! aPos.X() = nNewCheckXPos; ! aCbxHelpTicksOuter.SetPosPixel(aPos); } } } void ScaleTabPage::EnableControls() diff -Ncr D:\compare_patch_08\issue95051\chart2\orig/chart2/source/controller/dialogs/tp_Scale.hxx D:\compare_patch_08\issue95051\chart2\new/chart2/source/controller/dialogs/tp_Scale.hxx *** D:\compare_patch_08\issue95051\chart2\orig/chart2/source/controller/dialogs/tp_Scale.hxx Fri Apr 11 04:24:34 2008 --- D:\compare_patch_08\issue95051\chart2\new/chart2/source/controller/dialogs/tp_Scale.hxx Fri Oct 31 13:55:36 2008 *************** *** 122,127 **** --- 122,130 ---- void SetNumFormatter( SvNumberFormatter* pFormatter ); void SetNumFormat(); + + virtual void StateChanged( StateChangedType nType ); + void AdaptControlsPosition(); }; //.............................................................................