1// =============================================================================
2// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3// Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
4//
5//  This file is distributed under the same license as the Scilab package.
6// =============================================================================
7
8// <-- TEST WITH GRAPHIC -->
9
10function check(rb)
11    rb.value = rb.max;
12endfunction
13
14function uncheck(rb)
15    rb.value = rb.min;
16endfunction
17
18function a = checked(rb)
19    a = rb.value == rb.max;
20endfunction
21
22function a = getStatus()
23    a = [checked(rb1), checked(rb2), checked(rb3), checked(rb4)];
24endfunction
25
26
27f1 = figure("toolbar_visible", "off", "menubar_visible", "off", "infobar_visible", "off");
28f1.figure_position = [100, 100];
29f1.figure_size = [200, 200];
30f2 = figure("toolbar_visible", "off", "menubar_visible", "off", "infobar_visible", "off");
31f2.figure_position = [300, 100];
32f2.figure_size = [200, 200];
33
34
35//all in same group
36rb1 = uicontrol(f1, "style", "radiobutton", "string", "radiobutton 1", "position", [30 35 100 25], "groupname", "group1");
37rb2 = uicontrol(f1, "style", "checkbox", "string", "checkbox 2", "position", [30 85 100 25], "groupname", "group1");
38rb3 = uicontrol(f2, "style", "radiobutton", "string", "radiobutton 3", "position", [30 35 100 25], "groupname", "group1");
39rb4 = uicontrol(f2, "style", "checkbox", "string", "checkbox 4", "position", [30 85 100 25], "groupname", "group1");
40
41check(rb1);
42assert_checkequal(getStatus(), [%t %f %f %f]);
43uncheck(rb1);
44assert_checkequal(getStatus(), [%t %f %f %f]);
45
46check(rb2);
47assert_checkequal(getStatus(), [%f %t %f %f]);
48uncheck(rb2);
49assert_checkequal(getStatus(), [%f %t %f %f]);
50
51check(rb3);
52assert_checkequal(getStatus(), [%f %f %t %f]);
53uncheck(rb3);
54assert_checkequal(getStatus(), [%f %f %t %f]);
55
56check(rb4);
57assert_checkequal(getStatus(), [%f %f %f %t]);
58uncheck(rb4);
59assert_checkequal(getStatus(), [%f %f %f %t]);
60
61
62//remove rb1 and rb3 from group 1
63rb1.groupname = "";
64rb3.groupname = "";
65
66check(rb1);
67assert_checkequal(getStatus(), [%t %f %f %t]);
68uncheck(rb1);
69assert_checkequal(getStatus(), [%f %f %f %t]);
70
71check(rb2);
72assert_checkequal(getStatus(), [%f %t %f %f]);
73uncheck(rb2);
74assert_checkequal(getStatus(), [%f %t %f %f]);
75
76check(rb3);
77assert_checkequal(getStatus(), [%f %t %t %f]);
78uncheck(rb3);
79assert_checkequal(getStatus(), [%f %t %f %f]);
80
81check(rb4);
82assert_checkequal(getStatus(), [%f %f %f %t]);
83uncheck(rb4);
84assert_checkequal(getStatus(), [%f %f %f %t]);
85
86//add rb1 and rb2 in a second group
87rb1.groupname = "group2";
88rb3.groupname = "group2";
89
90check(rb1);
91assert_checkequal(getStatus(), [%t %f %f %t]);
92uncheck(rb1);
93assert_checkequal(getStatus(), [%t %f %f %t]);
94
95check(rb2);
96assert_checkequal(getStatus(), [%t %t %f %f]);
97uncheck(rb2);
98assert_checkequal(getStatus(), [%t %t %f %f]);
99
100check(rb3);
101assert_checkequal(getStatus(), [%f %t %t %f]);
102uncheck(rb3);
103assert_checkequal(getStatus(), [%f %t %t %f]);
104
105check(rb4);
106assert_checkequal(getStatus(), [%f %f %t %t]);
107uncheck(rb4);
108assert_checkequal(getStatus(), [%f %f %t %t]);
109
110//move rb1 and rb3 from group2 to group1
111rb1.groupname = "group1";
112rb3.groupname = "group1";
113
114check(rb1);
115assert_checkequal(getStatus(), [%t %f %f %f]);
116uncheck(rb1);
117assert_checkequal(getStatus(), [%t %f %f %f]);
118
119check(rb2);
120assert_checkequal(getStatus(), [%f %t %f %f]);
121uncheck(rb2);
122assert_checkequal(getStatus(), [%f %t %f %f]);
123
124check(rb3);
125assert_checkequal(getStatus(), [%f %f %t %f]);
126uncheck(rb3);
127assert_checkequal(getStatus(), [%f %f %t %f]);
128
129check(rb4);
130assert_checkequal(getStatus(), [%f %f %f %t]);
131uncheck(rb4);
132assert_checkequal(getStatus(), [%f %f %f %t]);
133
134delete(f1);
135delete(f2);