1 module widgets.buttons;
2
3 import dlangui;
4
5 enum : int {
6 ACTION_FILE_OPEN = 5500,
7 ACTION_FILE_SAVE,
8 ACTION_FILE_CLOSE,
9 ACTION_FILE_EXIT,
10 }
11
12 class ButtonsExample : VerticalLayout
13 {
14 this(string ID)
15 {
16 super(ID);
17 // 3 types of buttons: Button, ImageButton, ImageTextButton
18 addChild(new TextWidget(null, "Buttons in HorizontalLayout"d));
19 WidgetGroup buttons1 = new HorizontalLayout();
20 buttons1.addChild(new TextWidget(null, "Button widgets: "d));
21 buttons1.addChild((new Button("btn1", "Button"d)).tooltipText("Tooltip text for button"d));
22 buttons1.addChild((new Button("btn2", "Disabled Button"d)).enabled(false));
23 buttons1.addChild(new TextWidget(null, "ImageButton widgets: "d));
24 buttons1.addChild(new ImageButton("btn3", "text-plain"));
25 buttons1.addChild(new TextWidget(null, "disabled: "d));
26 buttons1.addChild((new ImageButton("btn4", "folder")).enabled(false));
27 addChild(buttons1);
28
29 WidgetGroup buttons10 = new HorizontalLayout();
30 buttons10.addChild(new TextWidget(null, "ImageTextButton widgets: "d));
31 buttons10.addChild(new ImageTextButton("btn5", "text-plain", "Enabled"d));
32 buttons10.addChild((new ImageTextButton("btn6", "folder", "Disabled"d)).enabled(false));
33 buttons10.addChild(new TextWidget(null, "SwitchButton widgets: "d));
34 buttons10.addChild((new SwitchButton("SW1")).checked(true));
35 buttons10.addChild((new SwitchButton("SW2")).checked(false));
36 buttons10.addChild((new SwitchButton("SW3")).checked(true).enabled(false));
37 buttons10.addChild((new SwitchButton("SW4")).checked(false).enabled(false));
38 addChild(buttons10);
39
40 WidgetGroup buttons11 = new HorizontalLayout();
41 buttons11.addChild(new TextWidget(null, "Construct buttons by action (Button, ImageButton, ImageTextButton): "d));
42 Action FILE_OPEN_ACTION = new Action(ACTION_FILE_OPEN, "MENU_FILE_OPEN"c, "document-open", KeyCode.KEY_O, KeyFlag.Control);
43 buttons11.addChild(new Button(FILE_OPEN_ACTION));
44 buttons11.addChild(new ImageButton(FILE_OPEN_ACTION));
45 buttons11.addChild(new ImageTextButton(FILE_OPEN_ACTION));
46 addChild(buttons11);
47
48 WidgetGroup buttons12 = new HorizontalLayout();
49 buttons12.addChild(new TextWidget(null, "The same in disabled state: "d));
50 buttons12.addChild((new Button(FILE_OPEN_ACTION)).enabled(false));
51 buttons12.addChild((new ImageButton(FILE_OPEN_ACTION)).enabled(false));
52 buttons12.addChild((new ImageTextButton(FILE_OPEN_ACTION)).enabled(false));
53 addChild(buttons12);
54
55 addChild(new VSpacer());
56 addChild(new TextWidget(null, "CheckBoxes in HorizontalLayout"d));
57 WidgetGroup buttons2 = new HorizontalLayout();
58 buttons2.addChild(new CheckBox("btn1", "CheckBox 1"d));
59 buttons2.addChild(new CheckBox("btn2", "CheckBox 2"d));
60 //buttons2.addChild(new ResizerWidget());
61 buttons2.addChild(new CheckBox("btn3", "CheckBox 3"d));
62 buttons2.addChild(new CheckBox("btn4", "CheckBox 4"d));
63 addChild(buttons2);
64
65 addChild(new VSpacer());
66 addChild(new TextWidget(null, "RadioButtons in HorizontalLayout"d));
67 WidgetGroup buttons3 = new HorizontalLayout();
68 buttons3.addChild(new RadioButton("btn1", "RadioButton 1"d));
69 buttons3.addChild(new RadioButton("btn2", "RadioButton 2"d));
70 buttons3.addChild(new RadioButton("btn3", "RadioButton 3"d));
71 buttons3.addChild(new RadioButton("btn4", "RadioButton 4"d));
72 addChild(buttons3);
73
74 addChild(new VSpacer());
75 addChild(new TextWidget(null, "ImageButtons HorizontalLayout"d));
76 WidgetGroup buttons4 = new HorizontalLayout();
77 buttons4.addChild(new ImageButton("btn1", "fileclose"));
78 buttons4.addChild(new ImageButton("btn2", "fileopen"));
79 buttons4.addChild(new ImageButton("btn3", "exit"));
80 addChild(buttons4);
81
82 addChild(new VSpacer());
83 addChild(new TextWidget(null, "In vertical layouts:"d));
84 HorizontalLayout hlayout2 = new HorizontalLayout();
85 hlayout2.layoutHeight(FILL_PARENT); //layoutWidth(FILL_PARENT).
86
87 buttons1 = new VerticalLayout();
88 buttons1.addChild(new TextWidget(null, "Buttons"d));
89 buttons1.addChild(new Button("btn1", "Button 1"d));
90 buttons1.addChild(new Button("btn2", "Button 2"d));
91 buttons1.addChild((new Button("btn3", "Button 3 - disabled"d)).enabled(false));
92 buttons1.addChild(new Button("btn4", "Button 4"d));
93 hlayout2.addChild(buttons1);
94 hlayout2.addChild(new HSpacer());
95
96 buttons2 = new VerticalLayout();
97 buttons2.addChild(new TextWidget(null, "CheckBoxes"d));
98 buttons2.addChild(new CheckBox("btn1", "CheckBox 1"d));
99 buttons2.addChild(new CheckBox("btn2", "CheckBox 2"d));
100 buttons2.addChild(new CheckBox("btn3", "CheckBox 3"d));
101 buttons2.addChild(new CheckBox("btn4", "CheckBox 4"d));
102 hlayout2.addChild(buttons2);
103 hlayout2.addChild(new HSpacer());
104
105 buttons3 = new VerticalLayout();
106 buttons3.addChild(new TextWidget(null, "RadioButtons"d));
107 buttons3.addChild(new RadioButton("btn1", "RadioButton 1"d));
108 buttons3.addChild(new RadioButton("btn2", "RadioButton 2"d));
109 //buttons3.addChild(new ResizerWidget());
110 buttons3.addChild(new RadioButton("btn3", "RadioButton 3"d));
111 buttons3.addChild(new RadioButton("btn4", "RadioButton 4"d));
112 hlayout2.addChild(buttons3);
113 hlayout2.addChild(new HSpacer());
114
115 buttons4 = new VerticalLayout();
116 buttons4.addChild(new TextWidget(null, "ImageButtons"d));
117 buttons4.addChild(new ImageButton("btn1", "fileclose"));
118 buttons4.addChild(new ImageButton("btn2", "fileopen"));
119 buttons4.addChild(new ImageButton("btn3", "exit"));
120 hlayout2.addChild(buttons4);
121 hlayout2.addChild(new HSpacer());
122
123 WidgetGroup buttons5 = new VerticalLayout();
124 buttons5.addChild(new TextWidget(null, "ImageTextButtons"d));
125 buttons5.addChild(new ImageTextButton("btn1", "fileclose", "Close"d));
126 buttons5.addChild(new ImageTextButton("btn2", "fileopen", "Open"d));
127 buttons5.addChild(new ImageTextButton("btn3", "exit", "Exit"d));
128 hlayout2.addChild(buttons5);
129
130
131 addChild(hlayout2);
132
133 addChild(new VSpacer());
134 layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT);
135 }
136 }