From 792a4cc0f88e97ab210171dd6d0e166eab435f08 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 1 Feb 2012 10:17:39 +0000 Subject: implement a basic optimal size for the preview window --- svx/source/dialog/fntctrl.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'svx/source/dialog') diff --git a/svx/source/dialog/fntctrl.cxx b/svx/source/dialog/fntctrl.cxx index 004a88dde4a3..01e884805207 100644 --- a/svx/source/dialog/fntctrl.cxx +++ b/svx/source/dialog/fntctrl.cxx @@ -338,11 +338,14 @@ Size FontPrevWin_Impl::CalcTextSize( OutputDevice* pWin, OutputDevice* _pPrinter nAscent = 0; long nCJKAscent = 0; long nCTLAscent = 0; + do { const SvxFont& rFnt = (nScript==com::sun::star::i18n::ScriptType::ASIAN) ? aCJKFont : ((nScript==com::sun::star::i18n::ScriptType::COMPLEX) ? aCTLFont : rFont); sal_uIntPtr nWidth = rFnt.GetTxtSize( _pPrinter, aText, nStart, nEnd-nStart ). Width(); + if (nIdx >= aTextWidth.size()) + break; aTextWidth[ nIdx++ ] = nWidth; nTxtWidth += nWidth; switch(nScript) @@ -513,6 +516,7 @@ void SvxFontPrevWindow::Init() SvxFontPrevWindow::SvxFontPrevWindow( Window* pParent, const ResId& rId ) : Window( pParent, rId ) { + m_aInitialSize = GetSizePixel(); Init(); } @@ -1482,4 +1486,12 @@ void SvxFontPrevWindow::SetFontEscapement( sal_uInt8 nProp, sal_uInt8 nEscProp, Invalidate(); } +Size SvxFontPrevWindow::GetOptimalSize(WindowSizeType eType) const +{ + if (eType == WINDOWSIZE_MAXIMUM) + return Window::GetOptimalSize(eType); + + return m_aInitialSize; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit