summaryrefslogtreecommitdiff
path: root/canvas/source/vcl/canvasfont.cxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2010-01-29 15:36:08 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2010-01-29 15:36:08 +0000
commit0ea5581ebf8cf414717af74d22d647ed446d63d2 (patch)
treefa6698372a7ba38d0ef315b0bf5df69c0b6f3cf1 /canvas/source/vcl/canvasfont.cxx
parent04a59adcc7fd221ee6b7644aa1fa53fed8dd3c0e (diff)
parentc0f197f920974f3fdaf8278dad16dc5ecb994d52 (diff)
ab71: merge with DEV300_m63
Diffstat (limited to 'canvas/source/vcl/canvasfont.cxx')
-rw-r--r--canvas/source/vcl/canvasfont.cxx19
1 files changed, 16 insertions, 3 deletions
diff --git a/canvas/source/vcl/canvasfont.cxx b/canvas/source/vcl/canvasfont.cxx
index 9fb69875ecde..d5b276901594 100644
--- a/canvas/source/vcl/canvasfont.cxx
+++ b/canvas/source/vcl/canvasfont.cxx
@@ -35,7 +35,7 @@
#include <rtl/math.hxx>
#include <basegfx/numeric/ftools.hxx>
-
+#include <i18npool/mslangid.hxx>
#include <vcl/metric.hxx>
#include "canvasfont.hxx"
@@ -67,6 +67,8 @@ namespace vclcanvas
maFont->SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
maFont->SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
+ maFont->SetLanguage(MsLangId::convertLocaleToLanguage(rFontRequest.Locale));
+
// adjust to stretched/shrinked font
if( !::rtl::math::approxEqual( rFontMatrix.m00, rFontMatrix.m11) )
{
@@ -125,8 +127,19 @@ namespace vclcanvas
{
tools::LocalGuard aGuard;
- // TODO(F1)
- return rendering::FontMetrics();
+ OutputDevice& rOutDev = mpOutDevProvider->getOutDev();
+ VirtualDevice aVDev( rOutDev );
+ aVDev.SetFont(getVCLFont());
+ const ::FontMetric& aMetric( aVDev.GetFontMetric() );
+
+ return rendering::FontMetrics(
+ aMetric.GetAscent(),
+ aMetric.GetDescent(),
+ aMetric.GetIntLeading(),
+ aMetric.GetExtLeading(),
+ 0,
+ aMetric.GetDescent() / 2.0,
+ aMetric.GetAscent() / 2.0);
}
uno::Sequence< double > SAL_CALL CanvasFont::getAvailableSizes( ) throw (uno::RuntimeException)