diff options
Diffstat (limited to 'new/stack.c')
| -rw-r--r-- | new/stack.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/new/stack.c b/new/stack.c index 1a08ee0..41a67d6 100644 --- a/new/stack.c +++ b/new/stack.c @@ -367,6 +367,22 @@ void uiStackAdd(uiControl *st, uiControl *c, int stretchy) uiParentUpdate(s->parent); } +void uiStackRemove(uiControl *st, uintptr_t index) +{ + stack *s = (stack *) (st->data); + uiControl *removed; + uintmax_t nAfter; + + removed = s->controls[index].c; + nAfter = s->len - index - 1; + memmove(&(s->controls[index + 1]), &(s->controls[index]), nAfter * sizeof (stackControl)); + s->len--; + if (s->parent != NULL) { + uiControlRemoveParent(removed); + uiParentUpdate(s->parent); + } +} + int uiStackPadded(uiControl *c) { stack *s = (stack *) (c->data); |
