From: Niki Roo Date: Mon, 30 Dec 2019 16:32:32 +0000 (+0100) Subject: Merge branch 'upstream-sep2019-sfix' into subtree X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=commitdiff_plain;h=929409950e82914aa3cee323cfa7c5007585d2ea;hp=-c Merge branch 'upstream-sep2019-sfix' into subtree --- 929409950e82914aa3cee323cfa7c5007585d2ea diff --combined TWidget.java index eb06175,e11a947..f643f83 --- a/TWidget.java +++ b/TWidget.java @@@ -184,7 -184,14 +184,7 @@@ public abstract class TWidget implement * @param enabled if true assume enabled */ protected TWidget(final TWidget parent, final boolean enabled) { - this.enabled = enabled; - this.parent = parent; - children = new ArrayList(); - - if (parent != null) { - this.window = parent.window; - parent.addChild(this); - } + this(parent, enabled, 0, 0, 0, 0); } /** @@@ -1138,7 -1145,6 +1138,7 @@@ * @return difference between this.tabOrder and that.tabOrder, or * difference between this.z and that.z, or String.compareTo(text) */ + @Override public final int compareTo(final TWidget that) { if ((this instanceof TWindow) && (that instanceof TWindow) @@@ -1362,7 -1368,7 +1362,7 @@@ * * @param child TWidget to add */ - private void addChild(final TWidget child) { + public void addChild(final TWidget child) { children.add(child); if ((child.enabled) @@@ -1392,29 -1398,6 +1392,29 @@@ children.get(i).tabOrder = i; } } + + /** + * Remove and {@link TWidget#close()} the given child from this {@link TWidget}. + *

+ * Will also reorder the tab values of the remaining children. + * + * @param child the child to remove + * + * @return TRUE if the child was removed, FALSE if it was not found + */ + public boolean removeChild(final TWidget child) { + if (children.remove(child)) { + child.close(); + child.parent = null; + child.window = null; + + resetTabOrder(); + + return true; + } + + return false; + } /** * Switch the active child.