# HG changeset patch # User Jordan Miner # Date 1249893486 18000 # Node ID 340c3777ea680dd92e393d3d72512e61ffea58e6 # Parent b5460ba7c93ea4055893af6ae7f935d922a639b4 Use Container.descendantsPlus in getFocusableDescendants for shorter code. diff -r b5460ba7c93e -r 340c3777ea68 dynamin/gui/container.d --- a/dynamin/gui/container.d Mon Aug 10 03:22:42 2009 -0500 +++ b/dynamin/gui/container.d Mon Aug 10 03:38:06 2009 -0500 @@ -50,24 +50,13 @@ // allocation will be done. Control[] getFocusableDescendants(Control[] des = null) { uint cur = 0; - - void addDescendants(Container c) { - if(c._focusable) { // TODO: && c.enabled) { + foreach(d; &descendantsPlus) { + if(d.focusable) { // TODO: && ch.enabled) { if(cur == des.length) des.length = des.length + 20; - des[cur++] = c; - } - foreach(ch; c._children) { - if(cast(Container)ch) - addDescendants(cast(Container)ch); - else if(ch.focusable) { // TODO: && ch.enabled) { - if(cur == des.length) - des.length = des.length + 20; - des[cur++] = ch; - } + des[cur++] = d; } } - addDescendants(this); return des[0..cur]; } unittest {