добавлены радио группы
гибкая система кастомизации
/// @description RadioBox CreateEvent
if _caption_font !=0 then draw_set_font(_caption_font);
radiobox_add_global(_radio_groupe, id);
/// @description
function radiobox_add_global(argument0, argument1)
{
//argument0 = radiobox_name
//argument1 = id
var radioname = argument0;
var radio_id = argument1;
//чекаем список общий всех боксов
if !variable_global_exists("radio_box_lists")
{
trace("radio_box_lists несуществует, создаём");
global.radio_box_lists = ds_map_create();
};
//--------------------------------------------------------
var val = ds_map_find_value(global.radio_box_lists, radioname);
if is_undefined(val)
{
//show_debug_message("Map entry does not exist!");
trace(radioname, "no exists");
lista = ds_list_create();
ds_map_add_list(global.radio_box_lists, radioname, lista)
}
//--------------------------------------------------------
lista = ds_map_find_value(global.radio_box_lists, radioname);
if ds_list_find_index(lista, radio_id)==-1 then ds_list_add(lista, radio_id);
//--------------------------------------------------------
//trace(ds_list_size(lista));
}
/// @description DrawEvent
draw_set_halign(fa_left);
draw_set_valign(fa_middle);
draw_shapes_checkbox(_type_shape, _fill, _color, _check_color, _uncheck_color, _border, _checked, _caption);
/// @description Отображает кнопку фигурой и рисует рядом нуный текст
function draw_shapes_checkbox(argument0, argument1, argument2, argument3, argument4, argument5, argument6, argument7)
{
//argument0 = тип фигуры
//argument1 = параметр fill
//argument2 = checkbox_color
//argument3 = check_checkbox_color
//argument4 = uncheckbox_color
//argument5 = border
//argument6 = checked
//argument7 = caption
var _x = 0;
var _y = 0;
var _type = argument0;
var _fill = argument1;
var _color = argument2;
var _color_check = argument3;
var _color_uncheck = argument4;
var b = argument5;
var ch = argument6;
var _txt = argument7;
draw_set_color(_color);
//draw_set_color(checkbox_color);
draw_text(bbox_right + b, y, _txt);
switch(_type)
{
case "none": break;
case "rectangle":
draw_rectangle(bbox_left, bbox_top, bbox_right, bbox_bottom, !_fill);
draw_set_color(_color_uncheck);
draw_rectangle(bbox_left+b, bbox_top+b, bbox_right-b, bbox_bottom-b, false);
draw_set_color(_color_check);
if ch then draw_rectangle(bbox_left+b*2, bbox_top+b*2, bbox_right-b*2, bbox_bottom-b*2, false);
break;
case "roundrect":
draw_roundrect(bbox_left, bbox_top, bbox_right, bbox_bottom, !_fill);
draw_set_color(_color_uncheck);
draw_roundrect(bbox_left+b, bbox_top+b, bbox_right-b, bbox_bottom-b, false);
draw_set_color(_color_check);
if ch then draw_roundrect(bbox_left+b*2, bbox_top+b*2, bbox_right-b*2, bbox_bottom-b*2, false);
break;
case "circle":
draw_circle(x,y,(bbox_right - bbox_left) / 2, !_fill);
draw_set_color(_color_uncheck);
draw_circle(x,y,(bbox_right - bbox_left) / 2-b, !_fill);
draw_set_color(_color_check);
if ch then draw_circle(x,y,(bbox_right - bbox_left) / 2-b*2, !_fill);
break;
case "triangle_up":
draw_triangle(bbox_left, bbox_bottom, mean(bbox_left,bbox_right), bbox_top, bbox_right, bbox_bottom, !_fill);
draw_set_color(_color_uncheck);
draw_triangle(bbox_left+b, bbox_bottom-b, mean(bbox_left,bbox_right), bbox_top+b, bbox_right-b, bbox_bottom-b, !_fill);
draw_set_color(_color_check);
if ch then draw_triangle(bbox_left+b*2, bbox_bottom-b*2, mean(bbox_left,bbox_right), bbox_top+b*2, bbox_right-b*2, bbox_bottom-b*2, !_fill);
break;
case "triangle_down":
draw_triangle(bbox_left, bbox_top, mean(bbox_left,bbox_right), bbox_bottom, bbox_right, bbox_top, !_fill);
draw_set_color(_color_uncheck);
draw_triangle(bbox_left+b, bbox_top+b, mean(bbox_left,bbox_right), bbox_bottom-b, bbox_right-b, bbox_top+b, !_fill);
draw_set_color(_color_check);
if ch then draw_triangle(bbox_left+b*2, bbox_top+b*2, mean(bbox_left,bbox_right), bbox_bottom-b*2, bbox_right-b*2, bbox_top+b*2, !_fill);
break;
};
}
/// @description LeftReleased
_checked = true;
radiobox_checked(_radio_groupe, id);
if script_exists(_checked_action) then script_execute(_checked_action);
if(_sound_onclick) then audio_play_sound(_sound_onclick,0,false);
Gui элемент легко кастомизировать прямо в редакторе комнат: