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);