summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-05-17 22:19:02 +0900
committerTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-05-18 20:18:21 +0900
commitb951771244d511c140a7c84181a1e160d9ef97c1 (patch)
tree181aba4b9ca587d55a40ecc99bb86948b889386f
parente4fab06d82299054ddd46c7d925d300cd3d0a17d (diff)
tdf#83527 change split window expande handle to be more visible
Change-Id: Ic881c7476fb7e64b7e13b64d3a5ba16403cc796e
-rw-r--r--vcl/source/window/splitwin.cxx149
1 files changed, 58 insertions, 91 deletions
diff --git a/vcl/source/window/splitwin.cxx b/vcl/source/window/splitwin.cxx
index df362cd1cbd0..4b35a84f3560 100644
--- a/vcl/source/window/splitwin.cxx
+++ b/vcl/source/window/splitwin.cxx
@@ -137,11 +137,11 @@ namespace {
}
}
-#define SPLITWIN_SPLITSIZE 3
+#define SPLITWIN_SPLITSIZE 4
#define SPLITWIN_SPLITSIZEEX 4
-#define SPLITWIN_SPLITSIZEEXLN 6
-#define SPLITWIN_SPLITSIZEAUTOHIDE 36
-#define SPLITWIN_SPLITSIZEFADE 36
+#define SPLITWIN_SPLITSIZEEXLN 7
+#define SPLITWIN_SPLITSIZEAUTOHIDE 72
+#define SPLITWIN_SPLITSIZEFADE 72
#define SPLIT_HORZ ((sal_uInt16)0x0001)
#define SPLIT_VERT ((sal_uInt16)0x0002)
@@ -1850,118 +1850,85 @@ void SplitWindow::ImplDrawAutoHide(vcl::RenderContext& rRenderContext, bool bInP
}
}
-void SplitWindow::ImplDrawFadeArrow(vcl::RenderContext& rRenderContext, const Point& rPt, bool bHorz, bool bLeft)
+void SplitWindow::ImplDrawGrip(vcl::RenderContext& rRenderContext, const Rectangle& rRect, bool bHorizontal, bool bLeft)
{
const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
- int x(rPt.X());
- int y(rPt.Y());
+ Color aColor;
- Color aCol;
- if (!bHorz)
+ if (rRect.IsInside(GetPointerPosPixel()))
{
- int dx = 1;
- if (bLeft)
- {
- x++;
- dx = -1;
- }
-
- x++;
- y++;
- aCol = Color( COL_WHITE );
- rRenderContext.DrawPixel( Point(x, y), aCol );
- rRenderContext.DrawPixel( Point(x, y+1), aCol );
- rRenderContext.DrawPixel( Point(x, y+2), aCol );
- rRenderContext.DrawPixel( Point(x+dx, y+1), aCol );
+ vcl::RenderTools::DrawSelectionBackground(rRenderContext, *this, rRect, 2, false, false, false);
- x--; y--;
- aCol = rStyleSettings.GetDarkShadowColor();
- rRenderContext.DrawPixel( Point(x, y), rStyleSettings.GetDarkShadowColor() );
- rRenderContext.DrawPixel( Point(x, y+1), rStyleSettings.GetDarkShadowColor() );
- rRenderContext.DrawPixel( Point(x, y+2), rStyleSettings.GetDarkShadowColor() );
- rRenderContext.DrawPixel( Point(x+dx, y+1), rStyleSettings.GetDarkShadowColor() );
+ aColor = rStyleSettings.GetDarkShadowColor();
}
else
{
- int dy = 1;
- if (bLeft)
- {
- y++;
- dy = -1;
- }
+ rRenderContext.SetLineColor(rStyleSettings.GetDarkShadowColor());
+ rRenderContext.SetFillColor(rStyleSettings.GetDarkShadowColor());
- x++; y++;
- aCol = Color( COL_WHITE );
- rRenderContext.DrawPixel( Point(x, y), aCol );
- rRenderContext.DrawPixel( Point(x+1, y), aCol );
- rRenderContext.DrawPixel( Point(x+2, y), aCol );
- rRenderContext.DrawPixel( Point(x+1, y+dy), aCol );
+ rRenderContext.DrawRect(rRect);
- x--; y--;
- aCol = rStyleSettings.GetDarkShadowColor();
- rRenderContext.DrawPixel( Point(x, y), aCol );
- rRenderContext.DrawPixel( Point(x+1, y), aCol );
- rRenderContext.DrawPixel( Point(x+2, y), aCol );
- rRenderContext.DrawPixel( Point(x+1, y+dy), aCol );
+ aColor = rStyleSettings.GetFaceColor();
}
-}
-void SplitWindow::ImplDrawGrip(vcl::RenderContext& rRenderContext, const Rectangle& rRect, bool bHorz, bool bLeft )
-{
- const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
+ sal_uInt16 nAA = rRenderContext.GetAntialiasing();
+ rRenderContext.SetAntialiasing(nAA | ANTIALIASING_PIXELSNAPHAIRLINE | ANTIALIASING_ENABLE_B2DDRAW);
- if (rRect.IsInside(GetPointerPosPixel()))
- {
- rRenderContext.DrawWallpaper(rRect, Wallpaper(Color(COL_WHITE)));
- vcl::RenderTools::DrawSelectionBackground(rRenderContext, *this, rRect, 2, false, false, false);
- }
+ long nWidth = rRect.getWidth();
+ long nWidthHalf = nWidth / 2;
+ long nHeight = rRect.getHeight();
+ long nHeightHalf = nHeight / 2;
- if (bHorz)
- {
- int width = (int) (0.5 * rRect.getWidth() + 0.5);
- int i = rRect.Left() + (rRect.getWidth() - width) / 2;
- width += i;
- const int y = rRect.Top() + 1;
- ImplDrawFadeArrow(rRenderContext, Point( i-8, y), bHorz, bLeft);
- while( i <= width )
- {
+ long nLeft = rRect.Left();
+ long nRight = rRect.Right();
+ long nTop = rRect.Top();
+ long nBottom = rRect.Bottom();
+ long nMargin = 1;
+
+ rRenderContext.SetLineColor(aColor);
+ rRenderContext.SetFillColor(aColor);
- rRenderContext.DrawPixel(Point(i, y), rStyleSettings.GetDarkShadowColor());
- rRenderContext.DrawPixel(Point(i+1, y), rStyleSettings.GetShadowColor());
+ Polygon aPoly(3);
- rRenderContext.DrawPixel(Point(i, y+1), rStyleSettings.GetShadowColor());
- rRenderContext.DrawPixel(Point(i+1, y+1), rStyleSettings.GetFaceColor());
- rRenderContext.DrawPixel(Point(i+2, y+1), Color(COL_WHITE));
+ if (bHorizontal)
+ {
+ long nCenter = nLeft + nWidthHalf;
- rRenderContext.DrawPixel(Point(i+1, y+2), Color(COL_WHITE));
- rRenderContext.DrawPixel(Point(i+2, y+2), Color(COL_WHITE));
- i+=4;
+ if (bLeft)
+ {
+ aPoly.SetPoint(Point(nCenter, nTop + nMargin), 0);
+ aPoly.SetPoint(Point(nCenter - nHeightHalf, nBottom - nMargin), 1);
+ aPoly.SetPoint(Point(nCenter - nHeightHalf, nBottom - nMargin), 2);
+ }
+ else
+ {
+ aPoly.SetPoint(Point(nCenter, nBottom - nMargin), 0);
+ aPoly.SetPoint(Point(nCenter - nHeightHalf, nTop + nMargin), 1);
+ aPoly.SetPoint(Point(nCenter + nHeightHalf, nTop + nMargin), 2);
}
- ImplDrawFadeArrow(rRenderContext, Point(i + 3, y), bHorz, bLeft);
+ rRenderContext.DrawPolygon(aPoly);
}
else
{
- int height = (int) (0.5 * rRect.getHeight() + 0.5);
- int i = rRect.Top() + (rRect.getHeight() - height) / 2;
- height += i;
- const int x = rRect.Left() + 2;
- ImplDrawFadeArrow(rRenderContext, Point(x, i - 8), bHorz, bLeft);
- while (i <= height)
- {
- DrawPixel(Point(x, i), rStyleSettings.GetDarkShadowColor());
- DrawPixel(Point(x+1, i), rStyleSettings.GetShadowColor());
-
- DrawPixel(Point(x, i+1), rStyleSettings.GetShadowColor());
- DrawPixel(Point(x+1, i+1), rStyleSettings.GetFaceColor());
- DrawPixel(Point(x+2, i+1), Color(COL_WHITE));
+ long nCenter = nTop + nHeightHalf;
- DrawPixel(Point(x+1, i+2), Color(COL_WHITE));
- DrawPixel(Point(x+2, i+2), Color(COL_WHITE));
- i+=4;
+ if (bLeft)
+ {
+ aPoly.SetPoint(Point(nLeft + nMargin, nCenter), 0);
+ aPoly.SetPoint(Point(nRight - nMargin, nCenter - nWidthHalf), 1);
+ aPoly.SetPoint(Point(nRight - nMargin, nCenter + nWidthHalf), 2);
}
- ImplDrawFadeArrow(rRenderContext, Point(x, i + 3), bHorz, bLeft);
+ else
+ {
+ aPoly.SetPoint(Point(nRight - nMargin, nCenter), 0);
+ aPoly.SetPoint(Point(nLeft + nMargin, nCenter - nWidthHalf), 1);
+ aPoly.SetPoint(Point(nLeft + nMargin, nCenter + nWidthHalf), 2);
+ }
+ rRenderContext.DrawPolygon(aPoly);
}
+
+ rRenderContext.SetAntialiasing(nAA);
}
void SplitWindow::ImplDrawFadeIn(vcl::RenderContext& rRenderContext, bool bInPaint)