module example.checkbox;
import std..string;

import dguihub;

class MainForm : Form {
   private CheckBox check;
   public this() {
      this.text = "DGui Form";
      this.size = Size(500, 400);
      this.startPosition = FormStartPosition.centerScreen;
      check = new CheckBox();
      // x, y, w, h
      check.bounds = Rect(10, 10, 80, 24);
      check.parent = this;
      check.click.attach(&this.onClick);
      check.checkChanged.attach(&this.onCheck);

      Button setOn = new Button();
      setOn.text = "ON";
      setOn.bounds = Rect(10, 40, 80, 30);
      setOn.parent = this;
      setOn.click.attach(&this.onClick1);

      Button setOff = new Button();
      setOff.text = "OFF";
      setOff.bounds = Rect(10, 80, 80, 30);
      setOff.parent = this;
      setOff.click.attach(&this.onClick0);

   }

   private void onClick0(Control sender, EventArgs e) {
      check.checked = false;
   }

   private void onClick1(Control sender, EventArgs e) {
      check.checked = true;
   }

   private void onClick(Control sender, EventArgs e) {
      bool v = (cast(CheckBox)sender).checked;
      MsgBox.show("OnClick", "click event: Now check is %s".format(v));
   }

   private void onCheck(Control sender, EventArgs e) {
      bool v = (cast(CheckBox)sender).checked;
      MsgBox.show("OnCheck", "checkChanged event. Now check is %s".format(v));
   }
}

int main(string[] args) {
   return Application.run(new MainForm());
}