summaryrefslogtreecommitdiff
path: root/wintable/new/resize.h
diff options
context:
space:
mode:
Diffstat (limited to 'wintable/new/resize.h')
-rw-r--r--wintable/new/resize.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/wintable/new/resize.h b/wintable/new/resize.h
index 365146c..00087de 100644
--- a/wintable/new/resize.h
+++ b/wintable/new/resize.h
@@ -7,15 +7,33 @@
HANDLER(resizeHandler)
{
WINDOWPOS *wp;
+ RECT client;
+ intptr_t height;
if (uMsg != WM_WINDOWPOSCHANGED)
return FALSE;
wp = (WINDOWPOS *) lParam;
if ((wp->flags & SWP_NOSIZE) != 0)
return FALSE;
+
+ // TODO does wp store the window rect or the client rect?
+ if (GetClientRect(t->hwnd, &client) == 0)
+ panic("error getting Table client rect in resizeHandler()");
+ // TODO do this before calling updateTableWidth() (which calls repositionHeader()?)?
+ client.top -= t->headerHeight;
+
+ // update the width...
// this will call repositionHeader(); there's a good reason... (see comments)
// TODO when I clean that mess up, remove this comment
updateTableWidth(t);
+
+ // ...and the height
+ // TODO find out if order matters
+ height = client.bottom - client.top;
+ t->vpagesize = height / rowht(t);
+ // do a dummy scroll to reflect those changes
+ vscrollby(t, 0);
+
*lResult = 0;
return TRUE;
}