summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2014-12-16 20:08:17 +0900
committerTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2014-12-16 20:11:15 +0900
commit8e2eccb177b271c93b4560266365158cd3700463 (patch)
tree2664877716836e22be5ce003c80955b09c234fda
parent39327e71b5098a430f07d4f32b31afdd926d11ef (diff)
Tab bar: multiply the size of the plus icon if HiDPI is detected
Change-Id: I6efaac9bd21ab986af77fed1a949d3d2b380e922
-rw-r--r--svtools/source/control/tabbar.cxx23
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)