diff options
| author | Pietro Gagliardi <[email protected]> | 2015-04-13 12:53:05 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2015-04-13 12:53:05 -0400 |
| commit | 963feb6c0668b3c64242607fe71f458420a91f32 (patch) | |
| tree | 89876bc232359f6b166dc325a609bf27cac05ed7 /new/newcontrol_darwin.m | |
| parent | e4147f14afecc95db90430143d672512a9e92bdb (diff) | |
Converted and fixed the Mac OS X code for uiParent. I'm still not happy, but this is DEFINITELY a step in the right direction... Perhaps automatic deletion is a pipe dream :/ I should also really nail the parenting/unparenting logic, but for that I need to add one more method.
Diffstat (limited to 'new/newcontrol_darwin.m')
| -rw-r--r-- | new/newcontrol_darwin.m | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/new/newcontrol_darwin.m b/new/newcontrol_darwin.m index 56a9f7b..560a934 100644 --- a/new/newcontrol_darwin.m +++ b/new/newcontrol_darwin.m @@ -7,7 +7,7 @@ struct singleView { NSView *view; NSScrollView *scrollView; NSView *immediate; // the control that is added to the parent container; either view or scrollView - uintptr_t parent; + uiParent *parent; BOOL userHid; BOOL containerHid; BOOL userDisabled; @@ -28,15 +28,15 @@ static uintptr_t singleHandle(uiControl *c) return (uintptr_t) (s->view); } -static void singleSetParent(uiControl *c, uintptr_t parent) +static void singleSetParent(uiControl *c, uiParent *parent) { singleView *s = (singleView *) (c->internal); NSView *parentView; s->parent = parent; - parentView = (NSView *) (s->parent); + parentView = (NSView *) uiParentHandle(s->parent); [parentView addSubview:s->immediate]; - updateParent(s->parent); + uiParentUpdate(s->parent); } static void singleRemoveParent(uiControl *c) @@ -47,7 +47,7 @@ static void singleRemoveParent(uiControl *c) oldparent = s->parent; s->parent = NULL; [s->immediate removeFromSuperview]; - updateParent(oldparent); + uiParentUpdate(oldparent); } // also good for NSBox and NSProgressIndicator @@ -95,7 +95,8 @@ static void singleShow(uiControl *c) s->userHid = NO; if (!s->containerHid) { [s->immediate setHidden:NO]; - updateParent(s->parent); + if (s->parent != NULL) + uiParentUpdate(s->parent); } } @@ -105,7 +106,8 @@ static void singleHide(uiControl *c) s->userHid = YES; [s->immediate setHidden:YES]; - updateParent(s->parent); + if (s->parent != NULL) + uiParentUpdate(s->parent); } static void singleContainerShow(uiControl *c) @@ -115,7 +117,8 @@ static void singleContainerShow(uiControl *c) s->containerHid = NO; if (!s->userHid) { [s->immediate setHidden:NO]; - updateParent(s->parent); + if (s->parent != NULL) + uiParentUpdate(s->parent); } } @@ -125,7 +128,8 @@ static void singleContainerHide(uiControl *c) s->containerHid = YES; [s->immediate setHidden:YES]; - updateParent(s->parent); + if (s->parent != NULL) + uiParentUpdate(s->parent); } static void enable(singleView *s) |
