mirror of
https://github.com/Rayerd/dfl.git
synced 2025-04-26 13:09:57 +03:00
157 lines
3.9 KiB
D
157 lines
3.9 KiB
D
import dfl;
|
|
|
|
version(Have_dfl) // For DUB.
|
|
{
|
|
}
|
|
else
|
|
{
|
|
pragma(lib, "dfl.lib");
|
|
}
|
|
|
|
class MainForm : Form
|
|
{
|
|
private Button _okButton;
|
|
private Button _cancelButton;
|
|
|
|
private RadioButton _radioButton1;
|
|
private RadioButton _radioButton2;
|
|
private RadioButton _radioButton3;
|
|
private GroupBox _groupbox1;
|
|
|
|
private RadioButton _radioButton4;
|
|
private RadioButton _radioButton5;
|
|
private RadioButton _radioButton6;
|
|
private GroupBox _groupbox2;
|
|
|
|
private CheckBox _checkbox1;
|
|
private CheckBox _checkbox2;
|
|
private CheckBox _checkbox3;
|
|
|
|
private RadioButton getSelectedRadioButton(RadioButton[] arr)
|
|
{
|
|
foreach (elem; arr)
|
|
{
|
|
if (elem.checked)
|
|
{
|
|
return elem;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public this()
|
|
{
|
|
// Form setting
|
|
this.text = "Buttons example";
|
|
this.size = Size(400,300);
|
|
this.formBorderStyle = FormBorderStyle.FIXED_DIALOG;
|
|
this.maximizeBox = false;
|
|
|
|
// Default button
|
|
_okButton = new Button();
|
|
_okButton.location = Point(10,10);
|
|
_okButton.text = "Done";
|
|
_okButton.click ~= (Control c, EventArgs e)
|
|
{
|
|
string s;
|
|
|
|
RadioButton r1 = getSelectedRadioButton([_radioButton1, _radioButton2, _radioButton3]);
|
|
if (r1)
|
|
s ~= _groupbox1.text ~ " = " ~ r1.text ~ "\n";
|
|
|
|
RadioButton r2 = getSelectedRadioButton([_radioButton4, _radioButton5, _radioButton6]);
|
|
if (r2)
|
|
s ~= _groupbox2.text ~ " = " ~ r2.text ~ "\n";
|
|
|
|
s ~= _checkbox1.text ~ " = " ~ (_checkbox1.checked ? "CHECKED" : "") ~ "\n";
|
|
s ~= _checkbox2.text ~ " = " ~ (_checkbox2.checked ? "CHECKED" : "") ~ "\n";
|
|
s ~= _checkbox3.text ~ " = " ~ (_checkbox3.checked ? "CHECKED" : "") ~ "\n";
|
|
|
|
msgBox(s);
|
|
};
|
|
_okButton.parent = this;
|
|
|
|
// Cancel button
|
|
_cancelButton = new Button();
|
|
_cancelButton.location = Point(100,10);
|
|
_cancelButton.text = "Cancel";
|
|
_cancelButton.click ~= (Control c, EventArgs e)
|
|
{
|
|
msgBox("Close this application.");
|
|
Application.exit();
|
|
};
|
|
_cancelButton.parent = this;
|
|
|
|
this.acceptButton = _okButton; // pushed by ENTER
|
|
this.cancelButton = _cancelButton; // pushed by ESC
|
|
|
|
// First group
|
|
_groupbox1 = new GroupBox();
|
|
_groupbox1.location = Point(10, 60);
|
|
_groupbox1.size = Size(90, 150);
|
|
_groupbox1.text = "Color";
|
|
_groupbox1.parent = this;
|
|
|
|
// Default radio button in first group
|
|
_radioButton1 = new RadioButton();
|
|
_radioButton1.location = Point(10, 40+30*0);
|
|
_radioButton1.text = "Red";
|
|
_radioButton1.checked = true; // Default
|
|
_radioButton1.parent = _groupbox1;
|
|
|
|
_radioButton2 = new RadioButton();
|
|
_radioButton2.location = Point(10, 40+30*1);
|
|
_radioButton2.text = "Yellow";
|
|
_radioButton2.parent = _groupbox1;
|
|
|
|
_radioButton3 = new RadioButton();
|
|
_radioButton3.location = Point(10, 40+30*2);
|
|
_radioButton3.text = "Green";
|
|
_radioButton3.parent = _groupbox1;
|
|
|
|
// Second group
|
|
_groupbox2 = new GroupBox();
|
|
_groupbox2.location = Point(110, 60);
|
|
_groupbox2.size = Size(90, 150);
|
|
_groupbox2.text = "Fruits";
|
|
_groupbox2.parent = this;
|
|
|
|
// Default radio button in second group
|
|
_radioButton4 = new RadioButton();
|
|
_radioButton4.location = Point(10, 40+30*0);
|
|
_radioButton4.text = "Apple";
|
|
_radioButton4.checked = true; // Default
|
|
_radioButton4.parent = _groupbox2;
|
|
|
|
_radioButton5 = new RadioButton();
|
|
_radioButton5.location = Point(10, 40+30*1);
|
|
_radioButton5.text = "Banana";
|
|
_radioButton5.parent = _groupbox2;
|
|
|
|
_radioButton6 = new RadioButton();
|
|
_radioButton6.location = Point(10, 40+30*2);
|
|
_radioButton6.text = "Melon";
|
|
_radioButton6.parent = _groupbox2;
|
|
|
|
// CheckBox
|
|
_checkbox1 = new CheckBox();
|
|
_checkbox1.location = Point(250, 100);
|
|
_checkbox1.text = "Kyoto";
|
|
_checkbox1.parent = this;
|
|
|
|
_checkbox2 = new CheckBox();
|
|
_checkbox2.location = Point(250, 100+30*1);
|
|
_checkbox2.text = "Tokyo";
|
|
_checkbox2.parent = this;
|
|
|
|
_checkbox3 = new CheckBox();
|
|
_checkbox3.location = Point(250, 100+30*2);
|
|
_checkbox3.text = "Osaka";
|
|
_checkbox3.parent = this;
|
|
}
|
|
}
|
|
|
|
void main()
|
|
{
|
|
Application.run(new MainForm());
|
|
}
|