comparison dynamin/gui/radio_button.d @ 35:ee9a564d2814

Allow more use of Containers versus Panels.
author Jordan Miner <jminer7@gmail.com>
date Mon, 27 Jul 2009 01:35:35 -0500
parents aa4efef0f0b1
children 6b264c92da34
comparison
equal deleted inserted replaced
34:e4d290aaa7ed 35:ee9a564d2814
43 RadioButton[] collectGroup(ref int checkedIndex) { 43 RadioButton[] collectGroup(ref int checkedIndex) {
44 Window topLevel = cast(Window)getTopLevel(); 44 Window topLevel = cast(Window)getTopLevel();
45 if(!topLevel) 45 if(!topLevel)
46 return null; 46 return null;
47 RadioButton[] radios; 47 RadioButton[] radios;
48 void collectFromPanel(Panel container) { 48 void collectFromPanel(Container container) {
49 foreach(control; container) { 49 foreach(control; container) {
50 if(auto r = cast(RadioButton)control) { 50 if(auto r = cast(RadioButton)control) {
51 if(r.group != group) 51 if(r.group != group)
52 continue; 52 continue;
53 radios.length = radios.length + 1; 53 radios.length = radios.length + 1;
54 radios[$-1] = r; 54 radios[$-1] = r;
55 if(r.checked) 55 if(r.checked)
56 checkedIndex = radios.length-1; 56 checkedIndex = radios.length-1;
57 } else if(auto c = cast(Panel)control) 57 } else if(auto c = cast(Container)control)
58 collectFromPanel(c); 58 collectFromPanel(c);
59 } 59 }
60 } 60 }
61 checkedIndex = -1; 61 checkedIndex = -1;
62 collectFromPanel(topLevel.content); 62 collectFromPanel(topLevel.content);