Fixed many (but not all) build errors and warnings.

This commit is contained in:
Pietro Gagliardi 2015-04-27 22:17:15 -04:00
parent 5e5415df00
commit a3d89b614c
4 changed files with 22 additions and 19 deletions

View File

@ -108,7 +108,7 @@ static void boxPreferredSize(uiControl *c, uiSizing *d, intmax_t *width, intmax_
*width += nStretchy * maxStretchyWidth; *width += nStretchy * maxStretchyWidth;
} }
static void boxResizeChildren(uiControl *c, intmax_t x, intmax_t y, intmax_t width, intmax_t height, uiSizing *d) static void boxResizeChildren(uiContainer *c, intmax_t x, intmax_t y, intmax_t width, intmax_t height, uiSizing *d)
{ {
box *b = (box *) c; box *b = (box *) c;
int xpadding, ypadding; int xpadding, ypadding;
@ -195,7 +195,6 @@ static void boxAppend(uiBox *ss, uiControl *c, int stretchy)
b->cap += boxCapGrow; b->cap += boxCapGrow;
b->controls = (boxControl *) uiRealloc(b->controls, b->cap * sizeof (boxControl), "boxControl[]"); b->controls = (boxControl *) uiRealloc(b->controls, b->cap * sizeof (boxControl), "boxControl[]");
} }
uiControlSetHasParent(c, 1);
b->controls[b->len].c = c; b->controls[b->len].c = c;
b->controls[b->len].stretchy = stretchy; b->controls[b->len].stretchy = stretchy;
b->len++; // must be here for OS container updates to work b->len++; // must be here for OS container updates to work
@ -265,5 +264,5 @@ uiBox *uiNewVerticalBox(void)
bb = uiNewHorizontalBox(); bb = uiNewHorizontalBox();
b = (box *) bb; b = (box *) bb;
b->vertical = 1; b->vertical = 1;
return ss; return bb;
} }

View File

@ -58,7 +58,7 @@ interface Control {
interface Container from Control { interface Container from Control {
func ResizeChildren(x intmax_t, y intmax_t, width intmax_t, height intmax_t, d *Sizing); func ResizeChildren(x intmax_t, y intmax_t, width intmax_t, height intmax_t, d *Sizing);
func Update(voiid); func Update(void);
}; };
func MakeContainer(c *Container); func MakeContainer(c *Container);

View File

@ -72,7 +72,7 @@ uiContainer *newBin(void)
uiControl(b)->Destroy = binDestroy; uiControl(b)->Destroy = binDestroy;
uiControl(b)->PreferredSize = binPreferredSize; uiControl(b)->PreferredSize = binPreferredSize;
uiContainer(b)->ControlResize = binControlResize; uiContainer(b)->ResizeChildren = binResizeChildren;
return uiContainer(b); return uiContainer(b);
} }
@ -103,8 +103,10 @@ void binSetMargins(uiContainer *c, intmax_t left, intmax_t top, intmax_t right,
void binSetParent(uiContainer *c, uintptr_t osParent) void binSetParent(uiContainer *c, uintptr_t osParent)
{ {
struct bin *b = (struct bin *) c; struct bin *b = (struct bin *) c;
HWND hwnd;
HWND newParent = (HWND) osParent; HWND newParent = (HWND) osParent;
if (SetParent(b->hwnd, newParent) == 0) hwnd = (HWND) uiControlHandle(uiControl(b));
if (SetParent(hwnd, newParent) == 0)
logLastError("error changing bin's parent in binSetParent()"); logLastError("error changing bin's parent in binSetParent()");
} }

View File

@ -18,7 +18,7 @@ struct container {
static void resize(uiContainer *cc, RECT *r) static void resize(uiContainer *cc, RECT *r)
{ {
struct container *c = (struct container *) (cc->Internal); struct container *c = (struct container *) (uiControl(cc)->Internal);
uiSizing d; uiSizing d;
uiSizingSys sys; uiSizingSys sys;
HDC dc; HDC dc;
@ -50,18 +50,19 @@ static void resize(uiContainer *cc, RECT *r)
d.xPadding = uiDlgUnitsToX(winXPadding, sys.baseX); d.xPadding = uiDlgUnitsToX(winXPadding, sys.baseX);
d.yPadding = uiDlgUnitsToY(winYPadding, sys.baseY); d.yPadding = uiDlgUnitsToY(winYPadding, sys.baseY);
d.sys = &sys; d.sys = &sys;
uiContainerResizeChildren(cc, r.left, r.top, r.right - r.left, r.bottom - r.top, &d); uiContainerResizeChildren(cc, r->left, r->top, r->right - r->left, r->bottom - r->top, &d);
} }
static LRESULT CALLBACK containerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) static LRESULT CALLBACK containerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
uiContainer *c; uiContainer *cc;
struct container *c;
CREATESTRUCTW *cs = (CREATESTRUCTW *) lParam; CREATESTRUCTW *cs = (CREATESTRUCTW *) lParam;
WINDOWPOSW *wp = (WINDOWPOSW *) lParam; WINDOWPOS *wp = (WINDOWPOS *) lParam;
RECT r; RECT r;
c = uiContainer(GetWindowLongPtrW(hwnd, GWLP_USERDATA)); cc = uiContainer(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
if (c == NULL) if (cc == NULL)
if (uMsg == WM_NCCREATE) if (uMsg == WM_NCCREATE)
SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR) (cs->lpCreateParams)); SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR) (cs->lpCreateParams));
// DO NOT RETURN DEFWINDOWPROC() HERE // DO NOT RETURN DEFWINDOWPROC() HERE
@ -78,18 +79,19 @@ static LRESULT CALLBACK containerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP
break; break;
// fall through // fall through
case msgUpdateChild: case msgUpdateChild:
if (c == NULL) if (cc == NULL)
break; break;
if (GetClientRect(pp->hwnd, &r) == 0) c = (struct container *) (uiControl(cc)->Internal);
if (GetClientRect(c->hwnd, &r) == 0)
logLastError("error getting client rect for resize in parentWndProc()"); logLastError("error getting client rect for resize in parentWndProc()");
resize(c, &r); resize(cc, &r);
return 0; return 0;
} }
return DefWindowProcW(hwnd, uMsg, wParam, lParam); return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} }
const char *initContainer(void) const char *initContainer(HICON hDefaultIcon, HCURSOR hDefaultCursor)
{ {
WNDCLASSW wc; WNDCLASSW wc;
@ -104,7 +106,7 @@ const char *initContainer(void)
return "registering uiContainer window class"; return "registering uiContainer window class";
initialParent = CreateWindowExW(0, initialParent = CreateWindowExW(0,
uiOSContainerClass, L"", containerClass, L"",
WS_OVERLAPPEDWINDOW, WS_OVERLAPPEDWINDOW,
0, 0, 0, 0,
100, 100, 100, 100,
@ -134,12 +136,12 @@ static uintptr_t containerHandle(uiControl *cc)
{ {
struct container *c = (struct container *) (cc->Internal); struct container *c = (struct container *) (cc->Internal);
return (uinptr_t) (c->hwnd); return (uintptr_t) (c->hwnd);
} }
static void containerSetParent(uiControl *cc, uiContainer *parent) static void containerSetParent(uiControl *cc, uiContainer *parent)
{ {
struct contianer *c = (struct container *) cc; struct container *c = (struct container *) cc;
uiContainer *oldparent; uiContainer *oldparent;
HWND newparent; HWND newparent;