From d080b7efc1bc741a5dd390cf64a61bfc477df52b Mon Sep 17 00:00:00 2001 From: unodgs Date: Thu, 6 Jan 2011 23:55:13 +0000 Subject: [PATCH] CtrlLib: Splitter can now have any width git-svn-id: svn://ultimatepp.org/upp/trunk@2965 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/Splitter.cpp | 11 +++++++---- uppsrc/CtrlLib/Splitter.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/uppsrc/CtrlLib/Splitter.cpp b/uppsrc/CtrlLib/Splitter.cpp index c9cab200b..339f70b6f 100644 --- a/uppsrc/CtrlLib/Splitter.cpp +++ b/uppsrc/CtrlLib/Splitter.cpp @@ -51,11 +51,14 @@ void Splitter::Layout() { } return; } - int wd = width >> 1; + + int lw = width >> 1; + int rw = width - lw; + int i = 0; for(Ctrl *q = GetFirstChild(); q; q = q->GetNext()) { - int lo = i > 0 ? PosToClient(pos[i - 1]) + wd : 0; - int hi = i < count ? PosToClient(pos[i]) - wd : vert ? sz.cy : sz.cx; + int lo = i > 0 ? PosToClient(pos[i - 1]) + rw : 0; + int hi = i < count ? PosToClient(pos[i]) - lw : vert ? sz.cy : sz.cx; q->Show(); if(vert) q->SetRect(0, lo, sz.cx, hi - lo); @@ -100,7 +103,7 @@ int Splitter::FindIndex(Point client) const { int maxdist = width; for(int i = 0; i < pos.GetCount(); i++) { int dist = abs((vert ? client.y : client.x) - PosToClient(pos[i])); - if(dist < maxdist) { + if(dist <= maxdist) { best = i; maxdist = abs(dist); } diff --git a/uppsrc/CtrlLib/Splitter.h b/uppsrc/CtrlLib/Splitter.h index b4ba3501b..8ab11ecb8 100644 --- a/uppsrc/CtrlLib/Splitter.h +++ b/uppsrc/CtrlLib/Splitter.h @@ -11,6 +11,7 @@ public: public: struct Style : ChStyle