summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
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: */