summaryrefslogtreecommitdiff
path: root/sdext/source/presenter/PresenterHelpView.cxx
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2009-01-21 14:22:27 +0000
committerVladimir Glazounov <vg@openoffice.org>2009-01-21 14:22:27 +0000
commit2540371688363897d184e248f6f84396b1ca6ff9 (patch)
tree2eb38d993bc3d810ba2a56e95024aa832b94bef0 /sdext/source/presenter/PresenterHelpView.cxx
parent53ef57d5f9fe1f0d1cb1efbb372c10ce484b3f5d (diff)
CWS-TOOLING: integrate CWS sjfixes10
2009-01-15 14:02:24 +0100 af r266369 : #i88851# Finding the right font size is now an iterative process. 2009-01-15 11:01:59 +0100 wg r266354 : i97985 2009-01-15 10:57:33 +0100 wg r266353 : i97985 2009-01-15 10:48:53 +0100 wg r266347 : i97985 2009-01-15 10:48:23 +0100 wg r266346 : i97985 2009-01-15 10:46:47 +0100 wg r266345 : i97985 2009-01-15 10:45:43 +0100 wg r266344 : i97985 2009-01-15 10:45:14 +0100 wg r266343 : i97985 2009-01-15 10:44:38 +0100 wg r266342 : i97985 2009-01-15 10:43:56 +0100 wg r266341 : i97985 2009-01-15 10:42:50 +0100 wg r266340 : i97985 2009-01-15 10:41:40 +0100 wg r266339 : i97985 2009-01-15 10:39:46 +0100 wg r266337 : i97985 2009-01-15 10:00:09 +0100 hde r266336 : i98065 2009-01-13 15:48:20 +0100 wg r266232 : i97985 2009-01-13 13:22:05 +0100 wg r266217 : i97985 2009-01-13 12:34:05 +0100 wg r266210 : i97985 2009-01-13 12:30:56 +0100 wg r266209 : i97985 2009-01-13 12:26:56 +0100 wg r266208 : i97985 2009-01-12 15:58:06 +0100 wg r266165 : i97985 2009-01-12 15:43:24 +0100 wg r266163 : i97985 2009-01-08 16:21:47 +0100 sj r266023 : fixed warning 2009-01-08 15:33:34 +0100 sj r266017 : fixed warning 2009-01-06 18:13:42 +0100 sj r265935 : CWS-TOOLING: rebase CWS sjfixes10 to trunk@265758 (milestone: DEV300:m38) 2008-12-10 16:54:02 +0100 af r265206 : #i43354# Do not delete all unused master pages automatically. 2008-12-04 13:12:50 +0100 af r264836 : #i92795# Use BitmapEx for icons to allow transparency. 2008-12-02 17:01:49 +0100 af r264723 : #i93082# Fixed SID_INSERTPAGE_LAYOUT_MENU. 2008-11-28 14:37:28 +0100 af r264555 : #i88851# Changed association of Ctrl-'?' to views. 2008-11-28 11:38:52 +0100 af r264535 : #i96681# Set version to 1.0.2 2008-11-28 11:30:04 +0100 af r264533 : #i88851# Ctrl-1,2,3 switch to slide overview, notes, normal view. 2008-11-27 16:41:25 +0100 af r264505 : #i92144# Removed unused code. 2008-11-26 15:29:56 +0100 af r264401 : #i92574# Do not lock configuration controller when main pane is not available. 2008-11-21 10:13:40 +0100 sj r264112 : #i96146# applied patch (ambiguous && ||) 2008-11-20 20:12:06 +0100 sj r264097 : #i96083# applied patch (ambigous && ||) 2008-11-20 19:13:53 +0100 sj r264096 : #i96163# applied patch (ambigous && ||) 2008-11-20 18:39:10 +0100 sj r264093 : #i96165# applied patch (ambigous && ||) 2008-11-03 18:12:29 +0100 sj r263303 : #i93996# fixed word wrapping problem 2008-11-03 18:11:02 +0100 sj r263302 : #i93996# fixed word wrapping problem 2008-11-03 18:08:41 +0100 sj r263301 : #i93996# fixed word wrapping problem 2008-11-03 18:06:45 +0100 sj r263300 : #i93996# fixed word wrapping problem 2008-11-03 18:05:00 +0100 sj r263299 : #i94831,i93616# fixed crash when importing diagonal cell border lines, fixed table import 2008-11-03 18:00:43 +0100 sj r263298 : #i93718# spellchecking is no longer triggering the autolayout of connector objects
Diffstat (limited to 'sdext/source/presenter/PresenterHelpView.cxx')
-rw-r--r--sdext/source/presenter/PresenterHelpView.cxx37
1 files changed, 20 insertions, 17 deletions
diff --git a/sdext/source/presenter/PresenterHelpView.cxx b/sdext/source/presenter/PresenterHelpView.cxx
index 16f746cbdc1d..9b1137c09954 100644
--- a/sdext/source/presenter/PresenterHelpView.cxx
+++ b/sdext/source/presenter/PresenterHelpView.cxx
@@ -430,30 +430,33 @@ void PresenterHelpView::ProcessString (
void PresenterHelpView::CheckFontSize (void)
{
- const awt::Rectangle aWindowBox (mxWindow->getPosSize());
+ if (mpFont.get() == NULL)
+ return;
- double nY (gnVerticalBorder);
- TextContainer::iterator iBlock (mpTextContainer->begin());
- TextContainer::const_iterator iBlockEnd (mpTextContainer->end());
- for ( ; iBlock!=iBlockEnd; ++iBlock)
- nY += ::std::max(
- (*iBlock)->maLeft.GetHeight(),
- (*iBlock)->maRight.GetHeight());
+ const awt::Rectangle aWindowBox (mxWindow->getPosSize());
- if (nY > aWindowBox.Height-gnVerticalBorder)
+ // Scaling down and then reformatting can cause the text to be too large
+ // still. So do this again and again until the text size is
+ // small enough. Restrict the number of loops.
+ for (int nLoopCount=0; nLoopCount<5; ++nLoopCount)
{
- // Font is too large. Make it smaller.
+ double nY (gnVerticalBorder);
+ TextContainer::iterator iBlock (mpTextContainer->begin());
+ TextContainer::const_iterator iBlockEnd (mpTextContainer->end());
+ for ( ; iBlock!=iBlockEnd; ++iBlock)
+ nY += ::std::max(
+ (*iBlock)->maLeft.GetHeight(),
+ (*iBlock)->maRight.GetHeight());
+
+ if (nY <= aWindowBox.Height-gnVerticalBorder)
+ break;
- if (mpFont.get() == NULL)
- {
- // No font to work with.
- return;
- }
+ // Font is too large. Make it smaller.
// Use a simple linear transformation to calculate initial guess of
// a size that lets all help text be shown inside the window.
- sal_Int32 nFontSizeGuess (
- sal_Int32(mpFont->mnSize * (aWindowBox.Height-gnVerticalBorder) / nY));
+ const double nScale (::std::min(0.95,double(aWindowBox.Height-gnVerticalBorder) / nY));
+ sal_Int32 nFontSizeGuess (::std::max(sal_Int32(1),sal_Int32(mpFont->mnSize * nScale)));
mpFont->mnSize = nFontSizeGuess;
mpFont->mxFont = NULL;
mpFont->PrepareFont(mxCanvas);