summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorTomcsik Bence <tomcsikbence@gmail.com>2012-02-10 13:35:23 +0100
committerAndras Timar <atimar@suse.com>2012-02-10 14:57:11 +0100
commit05720546215976d8d42fa7321f455c641147db9f (patch)
treef386b3470d30bfa40c1ed5314e97fcb3697cf8de /sfx2
parent8de63bac75a73011b7de19d730413adf1fbfd50f (diff)
fdo#45330 Improving layout of Confirm File Format dialog
Although fdo#45330 was a duplicate of fdo#45117 which was fixed earlier, this patch makes the layout look better when the button text is very long, because it resizes the boundary boxes of fixed text and ruler, too. I've changed the sequence of the functions in InitSize() and the size calculations.
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/dialog/alienwarn.cxx58
1 files changed, 33 insertions, 25 deletions
diff --git a/sfx2/source/dialog/alienwarn.cxx b/sfx2/source/dialog/alienwarn.cxx
index 3e99575412a2..8ed0b716f302 100644
--- a/sfx2/source/dialog/alienwarn.cxx
+++ b/sfx2/source/dialog/alienwarn.cxx
@@ -119,13 +119,32 @@ void SfxAlienWarningDialog::InitSize()
m_aMoreInfoBtn.SetPosSizePixel( aNewPoint, aNewSize );
}
- // text of checkbox to wide -> add new line
- nTxtW = m_aWarningOnBox.GetCtrlTextWidth( m_aWarningOnBox.GetText() ) + IMPL_EXTRA_BUTTON_WIDTH;
+ // recalculate the size and position of the buttons
+ m_aMoreInfoBtn.Hide();
+ nTxtW = m_aKeepCurrentBtn.GetCtrlTextWidth( m_aKeepCurrentBtn.GetText() );
+ nTxtW += IMPL_EXTRA_BUTTON_WIDTH;
+ Size aNewSize = m_aKeepCurrentBtn.GetSizePixel();
+ aNewSize.Width() = nTxtW;
+ m_aKeepCurrentBtn.SetSizePixel( aNewSize );
+ Point aPos = m_aSaveODFBtn.GetPosPixel();
+ aPos.X() = AW_COL_3 + nTxtW;
+ m_aSaveODFBtn.SetPosPixel( aPos );
+ nTxtW = m_aSaveODFBtn.GetCtrlTextWidth( m_aSaveODFBtn.GetText() );
+ nTxtW += IMPL_EXTRA_BUTTON_WIDTH;
+ aNewSize = m_aSaveODFBtn.GetSizePixel();
+ aNewSize.Width() = nTxtW;
+ m_aSaveODFBtn.SetSizePixel( aNewSize );
+ long nBtnsWidthSize = m_aKeepCurrentBtn.GetSizePixel().Width() + m_aSaveODFBtn.GetSizePixel().Width() + AW_COL_3 + IMPL_EXTRA_BUTTON_WIDTH;
+
+ // resize + text of checkbox too wide -> add new line
+ aNewSize = m_aWarningOnBox.GetSizePixel();
+ aNewSize.Width() = nBtnsWidthSize - 4*IMPL_EXTRA_BUTTON_WIDTH;
+ m_aWarningOnBox.SetSizePixel( aNewSize );
+ nTxtW = m_aWarningOnBox.GetCtrlTextWidth( m_aWarningOnBox.GetText() );
nCtrlW = m_aWarningOnBox.GetSizePixel().Width();
if ( nTxtW >= nCtrlW )
{
long nTextHeight = m_aWarningOnBox.GetTextHeight();
- Size aNewSize = m_aWarningOnBox.GetSizePixel();
aNewSize.Height() += nTextHeight;
m_aWarningOnBox.SetSizePixel( aNewSize );
aNewSize = GetSizePixel();
@@ -133,15 +152,18 @@ void SfxAlienWarningDialog::InitSize()
SetSizePixel( aNewSize );
}
- // align the size of the information text control (FixedText) to its content
+ // resize + align the size of the information text control (FixedText) to its content
+ aNewSize = m_aInfoText.GetSizePixel();
+ aNewSize.Width() = nBtnsWidthSize - 4*IMPL_EXTRA_BUTTON_WIDTH;
+ m_aInfoText.SetSizePixel( aNewSize );
Size aMinSize = m_aInfoText.CalcMinimumSize( m_aInfoText.GetSizePixel().Width() );
long nTxtH = aMinSize.Height();
long nCtrlH = m_aInfoText.GetSizePixel().Height();
long nDelta = ( nCtrlH - nTxtH );
- Size aNewSize = m_aInfoText.GetSizePixel();
aNewSize.Height() -= nDelta;
m_aInfoText.SetSizePixel( aNewSize );
+
// new position for the succeeding windows
Window* pWins[] =
{
@@ -155,31 +177,17 @@ void SfxAlienWarningDialog::InitSize()
(*pCurrent)->SetPosPixel( aNewPos );
}
- // recalculate the size and position of the buttons
- m_aMoreInfoBtn.Hide();
- nTxtW = m_aKeepCurrentBtn.GetCtrlTextWidth( m_aKeepCurrentBtn.GetText() );
- nTxtW += IMPL_EXTRA_BUTTON_WIDTH;
- aNewSize = m_aKeepCurrentBtn.GetSizePixel();
- aNewSize.Width() = nTxtW;
- m_aKeepCurrentBtn.SetSizePixel( aNewSize );
- Point aPos = m_aSaveODFBtn.GetPosPixel();
- aPos.X() = AW_COL_3 + nTxtW;
- m_aSaveODFBtn.SetPosPixel( aPos );
- nTxtW = m_aSaveODFBtn.GetCtrlTextWidth( m_aSaveODFBtn.GetText() );
- nTxtW += IMPL_EXTRA_BUTTON_WIDTH;
- aNewSize = m_aSaveODFBtn.GetSizePixel();
- aNewSize.Width() = nTxtW;
- m_aSaveODFBtn.SetSizePixel( aNewSize );
-
// new size of the dialog
aNewSize = GetSizePixel();
aNewSize.Height() -= nDelta;
- if (aPos.X() + nTxtW + IMPL_EXTRA_BUTTON_WIDTH > aNewSize.Width())
- {
- aNewSize.Width() = aPos.X() + nTxtW + IMPL_EXTRA_BUTTON_WIDTH;
- }
+ aNewSize.Width() = nBtnsWidthSize;
SetSizePixel( aNewSize );
+ // resize the FixedLine
+ aNewSize = m_aOptionLine.GetSizePixel();
+ aNewSize.Width() = GetSizePixel().Width();
+ m_aOptionLine.SetSizePixel( aNewSize );
+
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */