Fixed some of the errors in the new tab page code.
This commit is contained in:
parent
1a55d1fcb3
commit
fe2e647fc4
|
@ -80,7 +80,7 @@ static void tabResize(uiControl *c, intmax_t x, intmax_t y, intmax_t width, intm
|
||||||
{
|
{
|
||||||
struct tab *t = (struct tab *) c;
|
struct tab *t = (struct tab *) c;
|
||||||
LRESULT n;
|
LRESULT n;
|
||||||
struct tabPage *page;
|
uiControl *page;
|
||||||
RECT r;
|
RECT r;
|
||||||
uiSizing *dchild;
|
uiSizing *dchild;
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ static void tabResize(uiControl *c, intmax_t x, intmax_t y, intmax_t width, intm
|
||||||
n = curpage(t);
|
n = curpage(t);
|
||||||
if (n == (LRESULT) (-1))
|
if (n == (LRESULT) (-1))
|
||||||
return;
|
return;
|
||||||
page = ptrArrayIndex(t->pages, struct tabPage *, n);
|
page = ptrArrayIndex(t->pages, uiControl *, n);
|
||||||
|
|
||||||
dchild = uiControlSizing(uiControl(t));
|
dchild = uiControlSizing(uiControl(t));
|
||||||
|
|
||||||
|
@ -102,13 +102,15 @@ static void tabResize(uiControl *c, intmax_t x, intmax_t y, intmax_t width, intm
|
||||||
SendMessageW(t->hwnd, TCM_ADJUSTRECT, (WPARAM) FALSE, (LPARAM) (&r));
|
SendMessageW(t->hwnd, TCM_ADJUSTRECT, (WPARAM) FALSE, (LPARAM) (&r));
|
||||||
mapWindowRect(NULL, dchild->Sys->CoordFrom, &r);
|
mapWindowRect(NULL, dchild->Sys->CoordFrom, &r);
|
||||||
|
|
||||||
|
/*TODO
|
||||||
if (page->margined) {
|
if (page->margined) {
|
||||||
r.left += uiWindowsDlgUnitsToX(tabMargin, d->Sys->BaseX);
|
r.left += uiWindowsDlgUnitsToX(tabMargin, d->Sys->BaseX);
|
||||||
r.top += uiWindowsDlgUnitsToY(tabMargin, d->Sys->BaseY);
|
r.top += uiWindowsDlgUnitsToY(tabMargin, d->Sys->BaseY);
|
||||||
r.right -= uiWindowsDlgUnitsToX(tabMargin, d->Sys->BaseX);
|
r.right -= uiWindowsDlgUnitsToX(tabMargin, d->Sys->BaseX);
|
||||||
r.bottom -= uiWindowsDlgUnitsToY(tabMargin, d->Sys->BaseY);
|
r.bottom -= uiWindowsDlgUnitsToY(tabMargin, d->Sys->BaseY);
|
||||||
}
|
}
|
||||||
uiControlResize(page->control, r.left, r.top, r.right - r.left, r.bottom - r.top, dchild);
|
*/
|
||||||
|
uiControlResize(page, r.left, r.top, r.right - r.left, r.bottom - r.top, dchild);
|
||||||
|
|
||||||
uiFreeSizing(dchild);
|
uiFreeSizing(dchild);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// 30 may 2015
|
// 30 may 2015
|
||||||
#include "uicontrol_windows.h"
|
#include "uipriv_windows.h"
|
||||||
|
|
||||||
// This is a special internal control type that handles tab pages.
|
// This is a special internal control type that handles tab pages.
|
||||||
// This doesn't use the container class, but rather a subclassed WC_DIALOG, as that supports tab textures properly.
|
// This doesn't use the container class, but rather a subclassed WC_DIALOG, as that supports tab textures properly.
|
||||||
|
@ -33,7 +33,7 @@ uiControl *newTabPage(uiControl *child)
|
||||||
t = (struct tabPage *) uiWindowsNewSingleHWNDControl(tabPageType());
|
t = (struct tabPage *) uiWindowsNewSingleHWNDControl(tabPageType());
|
||||||
|
|
||||||
t->hwnd = uiWindowsUtilCreateControlHWND(WS_EX_CONTROLPARENT,
|
t->hwnd = uiWindowsUtilCreateControlHWND(WS_EX_CONTROLPARENT,
|
||||||
WC_DIALOGW, L"",
|
WC_DIALOG, L"",
|
||||||
0,
|
0,
|
||||||
hInstance, NULL,
|
hInstance, NULL,
|
||||||
FALSE);
|
FALSE);
|
||||||
|
@ -44,10 +44,12 @@ uiControl *newTabPage(uiControl *child)
|
||||||
|
|
||||||
// TODO subclass hwnd to handle events
|
// TODO subclass hwnd to handle events
|
||||||
|
|
||||||
|
// needs to be done here, otherwise the uiControlSetParent() below will crash
|
||||||
|
// TODO split into separate functions
|
||||||
|
uiControl(t)->Handle = tabPageHandle;
|
||||||
|
|
||||||
t->control = child;
|
t->control = child;
|
||||||
uiControlSetParent(t->control, uiControl(t));
|
uiControlSetParent(t->control, uiControl(t));
|
||||||
|
|
||||||
uiControl(t)->Handle = tabPageHandle;
|
|
||||||
|
|
||||||
return uiControl(t);
|
return uiControl(t);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue