void SplitterFrame::FrameLayout(Rect& r) { .. .. .. size = minmax(size, minsize, maxsize); }
void SplitterFrame::FrameLayout(Rect& r) { Rect rr = r; maxsize = max(0, (type == LEFT || type == RIGHT?r.GetWidth():r.GetHeight()) - sizemin); size = minmax(size, minsize, maxsize); switch(type) { case LEFT: r.left += size; rr.right = r.left; break; case RIGHT: r.right -= size; rr.left = r.right; break; case TOP: r.top += size; rr.bottom = r.top; break; case BOTTOM: r.bottom -= size; rr.top = r.bottom; break; } SetFrameRect(rr); }