From a390aac089b7c99c32a4799d9b35f2f7b400de1d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 25 Aug 2015 20:31:43 -0400 Subject: [PATCH] Settled uiWindow show/hide differences. --- redo/reredo/control.c | 4 ++-- redo/reredo/darwin/control.m | 11 ++++------- redo/reredo/darwin/window.m | 4 ++-- redo/reredo/ui.h | 2 ++ redo/reredo/uipriv.h | 2 -- 5 files changed, 10 insertions(+), 13 deletions(-) diff --git a/redo/reredo/control.c b/redo/reredo/control.c index 88a7fcca..eb57ea21 100644 --- a/redo/reredo/control.c +++ b/redo/reredo/control.c @@ -134,9 +134,9 @@ void uiControlDisable(uiControl *c) void controlUpdateState(uiControl *c) { if (controlContainerVisible(c)) - osCommitShow(c); + (*(c->CommitShow))(c); else - osCommitHide(c); + (*(c->CommitHide))(c); if (controlContainerEnabled(c)) osCommitEnable(c); else diff --git a/redo/reredo/darwin/control.m b/redo/reredo/darwin/control.m index 2e638930..d9e9a60b 100644 --- a/redo/reredo/darwin/control.m +++ b/redo/reredo/darwin/control.m @@ -21,20 +21,15 @@ void uiDarwinControlTriggerRelayout(uiDarwinControl *c) (*(c->Relayout))(uiDarwinControl(c)); } -void osCommitShow(uiControl *c) +static void defaultCommitShow(uiControl *c) { NSView *view; view = (NSView *) uiControlHandle(c); - // TODO - if ([view isKindOfClass:[NSWindow class]]) { - [view makeKeyAndOrderFront:view]; - return; - } [view setHidden:NO]; } -void osCommitHide(uiControl *c) +static void defaultCommitHide(uiControl *c) { NSView *view; @@ -69,6 +64,8 @@ void uiDarwinFinishControl(uiControl *c) // TODO omit this for uiWindow properly if ([view respondsToSelector:@selector(setTranslatesAutoresizingMaskIntoConstraints:)]) [view setTranslatesAutoresizingMaskIntoConstraints:NO]; + c->CommitShow = defaultCommitShow; + c->CommitHide = defaultCommitHide; } void uiDarwinSetControlFont(NSControl *c, NSControlSize size) diff --git a/redo/reredo/darwin/window.m b/redo/reredo/darwin/window.m index 686bf148..5ea3cb99 100644 --- a/redo/reredo/darwin/window.m +++ b/redo/reredo/darwin/window.m @@ -216,8 +216,8 @@ uiWindow *uiNewWindow(const char *title, int width, int height, int hasMenubar) uiWindowOnClosing(w, defaultOnClosing, NULL); uiDarwinFinishNewControl(w, uiWindow); -//TODO uiControl(w)->CommitShow = windowCommitShow; -//TODO uiControl(w)->CommitHide = windowCommitHide; + uiControl(w)->CommitShow = windowCommitShow; + uiControl(w)->CommitHide = windowCommitHide; uiControl(w)->ContainerUpdateState = windowContainerUpdateState; uiDarwinControl(w)->Relayout = windowRelayout; diff --git a/redo/reredo/ui.h b/redo/reredo/ui.h index f7b96635..cb7453a0 100644 --- a/redo/reredo/ui.h +++ b/redo/reredo/ui.h @@ -55,6 +55,8 @@ struct uiControl { void *Internal; // for use by libui only void (*CommitDestroy)(uiControl *); uintptr_t (*Handle)(uiControl *); + void (*CommitShow)(uiControl *); + void (*CommitHide)(uiControl *); void (*ContainerUpdateState)(uiControl *); }; _UI_EXTERN uintmax_t uiControlType(void); diff --git a/redo/reredo/uipriv.h b/redo/reredo/uipriv.h index 7ae515f7..3210bfb1 100644 --- a/redo/reredo/uipriv.h +++ b/redo/reredo/uipriv.h @@ -19,8 +19,6 @@ extern int isToplevel(uiControl *); extern uiControl *toplevelOwning(uiControl *); extern void controlUpdateState(uiControl *); -extern void osCommitShow(uiControl *); -extern void osCommitHide(uiControl *); extern void osCommitEnable(uiControl *); extern void osCommitDisable(uiControl *);