diff options
author | Tomcsik Bence <tomcsikbence@gmail.com> | 2012-02-10 13:35:23 +0100 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2012-02-10 14:57:11 +0100 |
commit | 05720546215976d8d42fa7321f455c641147db9f (patch) | |
tree | f386b3470d30bfa40c1ed5314e97fcb3697cf8de /sfx2 | |
parent | 8de63bac75a73011b7de19d730413adf1fbfd50f (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.cxx | 58 |
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: */ |