From 36789edde5230026235de60b32db1c1729e3d159 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 27 Apr 2015 10:41:19 -0400 Subject: [PATCH] More uiContainer work on Windows. This might actually do it for that file for now! --- new/windows/container.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/new/windows/container.c b/new/windows/container.c index 0c2ffcef..9d80170d 100644 --- a/new/windows/container.c +++ b/new/windows/container.c @@ -8,6 +8,7 @@ HWND initialParent; struct container { HWND hwnd; uiContainer *parent; + int hidden; }; // from https://msdn.microsoft.com/en-us/library/windows/desktop/dn742486.aspx#sizingandspacing and https://msdn.microsoft.com/en-us/library/windows/desktop/bb226818%28v=vs.85%29.aspx @@ -163,11 +164,19 @@ static void containerResize(uiControl *cc, intmax_t x, intmax_t y, intmax_t widt logLastError("error resizing uiContainer in containerResize()"); } +static int containerVisible(uiControl *cc) +{ + struct container *c = (struct container *) (cc->Internal); + + return !c->hidden; +} + static void containerShow(uiControl *cc) { struct container *c = (struct container *) (cc->Internal); ShowWindow(c->hwnd, SW_SHOW); + c->hidden = 0; } static void containerHide(uiControl *cc) @@ -175,6 +184,7 @@ static void containerHide(uiControl *cc) struct container *c = (struct container *) (cc->Internal); ShowWindow(c->hwnd, SW_HIDE); + c->hidden = 1; } static void containerEnable(uiControl *cc) @@ -219,6 +229,7 @@ void uiMakeContainer(uiContainer *cc) uiControl(cc)->SetParent = containerSetParent; // PreferredSize() is provided by subclasses uiControl(cc)->Resize = containerResize; + uiControl(cc)->Visible = containerVisible; uiControl(cc)->Show = containerShow; uiControl(cc)->Hide = containerHide; uiControl(cc)->Enable = containerEnable;