diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2014-12-16 20:08:17 +0900 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2014-12-16 20:11:15 +0900 |
commit | 8e2eccb177b271c93b4560266365158cd3700463 (patch) | |
tree | 2664877716836e22be5ce003c80955b09c234fda /svtools | |
parent | 39327e71b5098a430f07d4f32b31afdd926d11ef (diff) |
Tab bar: multiply the size of the plus icon if HiDPI is detected
Change-Id: I6efaac9bd21ab986af77fed1a949d3d2b380e922
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/control/tabbar.cxx | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/svtools/source/control/tabbar.cxx b/svtools/source/control/tabbar.cxx index 610646c0e3fa..90d3edcba9ce 100644 --- a/svtools/source/control/tabbar.cxx +++ b/svtools/source/control/tabbar.cxx @@ -1191,16 +1191,25 @@ public: void drawPlusImage() { - SvtResId id( BMP_LIST_ADD ); - Image aPlusImg( id ); + SvtResId aPlusImageId(BMP_LIST_ADD); + Image aPlusImage(aPlusImageId); + + sal_Int32 aScaleFactor = mrParent.GetDPIScaleFactor(); + if (aScaleFactor > 1) + { + BitmapEx aBitmap = aPlusImage.GetBitmapEx(); + aBitmap.Scale(aScaleFactor, aScaleFactor, BMP_SCALE_FAST); + aPlusImage = Image(aBitmap); + } + // Center the image within the bounding rectangle. - Size aSize = aPlusImg.GetSizePixel(); - Point pt = maRect.TopLeft(); + Size aSize = aPlusImage.GetSizePixel(); + Point aPosition = maRect.TopLeft(); long nXOffSet = (maRect.GetWidth() - aSize.Width()) / 2; long nYOffset = (maRect.GetHeight() - aSize.Height()) / 2; - pt += Point(nXOffSet, nYOffset); - pt.X() += 1; - mrParent.DrawImage(pt, aPlusImg); + aPosition += Point(nXOffSet, nYOffset); + aPosition.X() += 1; + mrParent.DrawImage(aPosition, aPlusImage); } void setRect(const Rectangle& rRect) |