Changeset 20
- Timestamp:
- 12/04/06 18:43:56 (2 years ago)
- Files:
-
- trunk/minwin/button.d (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/minwin/button.d
r11 r20 54 54 } 55 55 version (SimpleToggleGroup) { 56 private import minwin.dialog; 56 57 // manages selected state between several ToggleButtons 57 58 class ToggleGroup { 58 59 AbstractToggleButton[] buttons; 59 void addButton(AbstractToggleButton b) { 60 buttons ~= b; 61 b.actionDelegate ~= &select; 60 void addButton(AbstractToggleButton[] btns ...) { 61 buttons ~= btns; 62 foreach(b; btns) { 63 b.actionDelegate ~= &select; 64 } 62 65 } 63 66 void select(Component c) { … … 90 93 91 94 template PreferredSizeImpl() { 95 const int paddingX; 96 const int paddingY; 92 97 Point preferredSize() { 93 98 int width,height; … … 105 110 ReleaseDC(peer,dc); 106 111 } 107 width = s.cx > 63 ? s.cx+12 : 75;108 height = s.cy > 23 ? s.cy: 23;112 width = s.cx > 75-paddingX ? s.cx+paddingX*2 : 75; 113 height = s.cy > 23-paddingY ? s.cy+paddingY*2 : 23; 109 114 if (userPreferredWidth_data > 0) 110 115 width = userPreferredWidth_data; … … 150 155 class Button : AbstractButton { 151 156 this(Component parent, char[] intext, char[] name = "") { 157 paddingX = GetSystemMetrics(SM_CXFIXEDFRAME)*2; 158 paddingY = GetSystemMetrics(SM_CXFIXEDFRAME)*2; 152 159 PeerForAdd parentp = parent.getPeerForAdd(); 153 160 text_data = intext; … … 165 172 class CheckBox : AbstractToggleButton { 166 173 this(Component parent, char[] intext, char[] name = "") { 174 paddingX = GetSystemMetrics(SM_CXMENUCHECK); 175 paddingY = GetSystemMetrics(SM_CYFIXEDFRAME)*2; 167 176 PeerForAdd parentp = parent.getPeerForAdd(); 168 177 text_data = intext; … … 181 190 class RadioButton : AbstractToggleButton { 182 191 this(Component parent, char[] intext, char[] name = "") { 192 paddingX = GetSystemMetrics(SM_CXMENUCHECK); 193 paddingY = GetSystemMetrics(SM_CYFIXEDFRAME)*2; 183 194 PeerForAdd parentp = parent.getPeerForAdd(); 184 195 text_data = intext; … … 197 208 class ToggleButton : AbstractToggleButton { 198 209 this(Component parent, char[] intext, char[] name = "") { 210 paddingX = GetSystemMetrics(SM_CXFIXEDFRAME)*2; 211 paddingY = GetSystemMetrics(SM_CYFIXEDFRAME)*2; 199 212 PeerForAdd parentp = parent.getPeerForAdd(); 200 213 text_data = intext; … … 391 404 class ToggleGroup { 392 405 HeavyAbstractToggleButton[] buttons; 393 void addButton(HeavyAbstractToggleButton b) { 394 RadioButton rb = cast(RadioButton)b; 395 if (rb is null) { 396 buttons ~= b; 397 b.actionDelegate ~= &select; 398 } else { 399 // set the RadioButton group to its sibling, if any 400 if (buttons.length != 0) { 401 GtkRadioButton* rbpeer1 = cast(GtkRadioButton*)buttons[0].peer; 402 GtkRadioButton* rbpeer = cast(GtkRadioButton*)rb.peer; 403 GSList* group = gtk_radio_button_get_group(rbpeer1); 404 gtk_radio_button_set_group(rbpeer,group); 406 void addButton(HeavyAbstractToggleButton[] btns ...) { 407 buttons ~= btns; 408 foreach(b; btns) { 409 RadioButton rb = cast(RadioButton)b; 410 if (rb is null) { 411 b.actionDelegate ~= &select; 412 } else { 413 // set the RadioButton group to its sibling, if any 414 if (buttons.length != 0) { 415 GtkRadioButton* rbpeer1 = cast(GtkRadioButton*)buttons[0].peer; 416 GtkRadioButton* rbpeer = cast(GtkRadioButton*)rb.peer; 417 GSList* group = gtk_radio_button_get_group(rbpeer1); 418 gtk_radio_button_set_group(rbpeer,group); 419 } 405 420 } 406 buttons ~= b;407 421 } 408 422 }
