Pixel-Composer/scripts/panel_collection_manager/panel_collection_manager.gml
2025-01-16 10:39:54 +07:00

99 lines
No EOL
2.6 KiB
Text

function Panel_Collection_Manager() : PanelContent() constructor {
w = ui(540);
h = ui(480);
title = "Collection Manager";
auto_pin = true;
padding = ui(4);
content_w = w - ui(200);
stack = ds_stack_create();
sc_content = new scrollPane(content_w, h, function(_y, _m) {
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
var _h = 0;
var hg = ui(20);
var yy = _y;
ds_stack_clear(stack);
ds_stack_push(stack, COLLECTIONS);
while(!ds_stack_empty(stack)) {
var st = ds_stack_pop(stack);
var _list = st.subDir;
for( var i = 0, n = ds_list_size(_list); i < n; i++ )
ds_stack_push(stack, _list[| i]);
draw_set_text(f_p3, fa_left, fa_center, COLORS._main_text_sub);
draw_text_add(ui(16), yy + hg / 2, st.name);
_h += hg;
yy += hg;
var _list = st.content;
for( var i = 0, n = ds_list_size(_list); i < n; i++ ) {
var _con = _list[| i];
draw_set_text(f_p3, fa_left, fa_center, COLORS._main_text);
draw_text_add(ui(8), yy + hg / 2, _con.name);
_h += hg;
yy += hg;
}
}
return _h;
});
function drawContent(panel) {
draw_clear_alpha(COLORS.panel_bg_clear, 1);
content_w = w - ui(200);
// Lists
var _pd = padding;
var ndx = _pd;
var ndy = _pd;
var ndw = content_w + ui(16);
var ndh = h - _pd * 2;
draw_sprite_stretched(THEME.ui_panel_bg, 1, ndx, ndy, ndw, ndh);
sc_content.verify(content_w, ndh - ui(16));
sc_content.setFocusHover(pFOCUS, pHOVER);
sc_content.drawOffset(ndx + ui(8), ndy + ui(8), mx, my);
// Button
var lx = ndx + ndw + ui(8);
var bw = w - _pd - lx;
var bh = TEXTBOX_HEIGHT;
var bx = lx;
var by = _pd;
if(buttonInstant(THEME.button_def, bx, by, bw, bh, [ mx, my ], pHOVER, pFOCUS) == 2)
__test_load_current_collections(COLLECTIONS);
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
draw_text_add(bx + bw / 2, by + bh / 2, "Load All");
by += bh + ui(4);
if(buttonInstant(THEME.button_def, bx, by, bw, bh, [ mx, my ], pHOVER, pFOCUS) == 2)
__test_update_current_collections(COLLECTIONS);
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
draw_text_add(bx + bw / 2, by + bh / 2, "Update All");
by += bh + ui(4);
if(buttonInstant(THEME.button_def, bx, by, bw, bh, [ mx, my ], pHOVER, pFOCUS) == 2)
__test_metadata_current_collections(COLLECTIONS);
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
draw_text_add(bx + bw / 2, by + bh / 2, "Update Metadata");
}
}