andlabs-ui/wintable/new/resize.h

40 lines
1.1 KiB
C

// 7 december 2014
// TODO why doesn't this trigger on first show?
// TODO last few bits of the scrollbar series, that talk about WM_WINDOWPOSCHANGING and the metaphor
// TODO rename this to boot
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 after 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;
}