menuitem actions

This commit is contained in:
Tanasart 2024-08-10 12:30:41 +07:00
parent 5644cffee8
commit f4065ae249
34 changed files with 10378 additions and 10334 deletions

View file

@ -7,5 +7,4 @@ ds_list_remove(DIALOGS, self);
if(parent) array_remove(parent.children, id);
if(!passthrough)
MOUSE_BLOCK = true;
if(!passthrough) MOUSE_BLOCK = true;

View file

@ -12,8 +12,8 @@ event_inherited();
show_graph = false;
menu = [
menuItemAction("Toggle double click bar", function() /*=>*/ { show_doubleclick = !show_doubleclick; }),
menuItemAction("Toggle graph", function() /*=>*/ { show_graph = !show_graph; }),
menuItem("Toggle double click bar", function() /*=>*/ { show_doubleclick = !show_doubleclick; }),
menuItem("Toggle graph", function() /*=>*/ { show_graph = !show_graph; }),
];
extra_keys = [

View file

@ -78,7 +78,7 @@ event_inherited();
node_menu_selecting = node;
var fav = array_exists(global.FAV_NODES, node.node);
var menu = [
menuItemAction(fav? __txtx("add_node_remove_favourite", "Remove from favourite") : __txtx("add_node_add_favourite", "Add to favourite"), trigger_favourite, THEME.star)
menuItem(fav? __txtx("add_node_remove_favourite", "Remove from favourite") : __txtx("add_node_add_favourite", "Add to favourite"), trigger_favourite, THEME.star)
];
menuCall("add_node_window_manu",,, menu,, node_menu_selecting);

View file

@ -101,10 +101,10 @@ event_inherited();
hovering = pal;
menuCall("palette_window_preset_menu",,, [
menuItemAction(__txtx("palette_editor_set_default", "Set as default"), function() {
menuItem(__txtx("palette_editor_set_default", "Set as default"), function() {
PROJECT.setPalette(array_clone(hovering.palette));
}),
menuItemAction(__txtx("palette_editor_delete", "Delete palette"), function() {
menuItem(__txtx("palette_editor_delete", "Delete palette"), function() {
file_delete(hovering.path);
__initPalette();
}),

View file

@ -138,7 +138,7 @@ event_inherited();
if(mouse_press(mb_right, interactable && sFOCUS)) {
hovering_name = _gradient.path;
menuCall("gradient_window_preset_menu",,, [
menuItemAction(__txtx("gradient_editor_delete", "Delete gradient"), function() {
menuItem(__txtx("gradient_editor_delete", "Delete gradient"), function() {
file_delete(hovering_name);
__initGradient();
})
@ -227,7 +227,7 @@ event_inherited();
hovering = pal;
menuCall("palette_window_preset_menu",,, [
menuItemAction(__txtx("gradient_set_palette", "Convert to Gradient"), function() {
menuItem(__txtx("gradient_set_palette", "Convert to Gradient"), function() {
var _p = hovering.palette;
if(array_length(_p) < 2) return;

View file

@ -100,11 +100,11 @@ if !ready exit;
if(buttonInstant(THEME.button_hide, bx, by, ui(28), ui(28), mouse_ui, interactable && sFOCUS, sHOVER, __txtx("gradient_editor_key_blend", "Key blending"), THEME.grad_blend) == 2) {
menuCall("gradient_window_blend_menu", bx + ui(32), by, [
menuItemAction(__txtx("gradient_editor_blend_hard", "Solid"), function() { gradient.type = 1; onApply(gradient); }),
menuItemAction(__txtx("gradient_editor_blend_RGB", "RGB"), function() { gradient.type = 0; onApply(gradient); }),
menuItemAction(__txtx("gradient_editor_blend_sRGB", "sRGB"), function() { gradient.type = 4; onApply(gradient); }),
menuItemAction(__txtx("gradient_editor_blend_HSV", "HSV"), function() { gradient.type = 2; onApply(gradient); }),
menuItemAction(__txtx("gradient_editor_blend_OKLAB", "OKLAB"), function() { gradient.type = 3; onApply(gradient); }),
menuItem(__txtx("gradient_editor_blend_hard", "Solid"), function() { gradient.type = 1; onApply(gradient); }),
menuItem(__txtx("gradient_editor_blend_RGB", "RGB"), function() { gradient.type = 0; onApply(gradient); }),
menuItem(__txtx("gradient_editor_blend_sRGB", "sRGB"), function() { gradient.type = 4; onApply(gradient); }),
menuItem(__txtx("gradient_editor_blend_HSV", "HSV"), function() { gradient.type = 2; onApply(gradient); }),
menuItem(__txtx("gradient_editor_blend_OKLAB", "OKLAB"), function() { gradient.type = 3; onApply(gradient); }),
],, gradient);
}
bx -= ui(32);

View file

@ -112,7 +112,7 @@ event_inherited();
if(menu > -1) {
menuCall("image_array_edit_menu",,, [
menuItemAction(__txt("Remove"), function() {
menuItem(__txt("Remove"), function() {
var arr = target.getValue();
array_delete(arr, menuOn, 1);

View file

@ -10,7 +10,8 @@ event_inherited();
menu_id = "";
alarm[0] = -1;
menu = 1;
hght = ui(36);
font = f_p1;
hght = line_get_height(font, 12);
tooltips = [];
show_icon = false;
context = noone;
@ -20,6 +21,7 @@ event_inherited();
setFocus(self.id);
item_selecting = noone;
remove_parents = true;
selecting_menu = noone;
hk_editing = noone;
@ -39,7 +41,7 @@ event_inherited();
instance_destroy(children[i]);
children = [];
draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text);
draw_set_text(font, fa_center, fa_center, COLORS._main_text);
for(var i = 0; i < array_length(menu); i++) {
var _menuItem = menu[i];
if(_menuItem == -1) {
@ -54,7 +56,7 @@ event_inherited();
continue;
}
draw_set_font(f_p0);
draw_set_font(font);
var ww = string_width(_menuItem.name) + ui(64);
if(instanceof(_menuItem) == "MenuItemGroup") {
@ -67,7 +69,7 @@ event_inherited();
if(_menuItem.hotkey != noone) {
var _key = find_hotkey(_menuItem.hotkey[0], _menuItem.hotkey[1]);
if(_key) {
draw_set_font(f_p1);
draw_set_font(font);
var ss = key_get_name(_key.key, _key.modi);
ww += string_width(ss) + ui(16);
}

View file

@ -0,0 +1,4 @@
event_inherited();
for( var i = 0, n = array_length(children); i < n; i++ )
instance_destroy(children[i]);

View file

@ -5,6 +5,10 @@ if(!ready) exit;
var yy = dialog_y;
var _lclick = sFOCUS && (!mouse_init_inside && mouse_release(mb_left)) || (keyboard_check_pressed(vk_enter) && hk_editing == noone);
var _rclick = sFOCUS && (!mouse_init_inside && mouse_release(mb_right));
if(!mouse_init_inside && mouse_press(mb_right) && item_selecting) {
instance_destroy(item_selecting);
item_selecting = noone;
}
draw_sprite_stretched(THEME.s_box_r2_clr, 0, dialog_x, dialog_y, dialog_w, dialog_h);
@ -23,8 +27,8 @@ if(!ready) exit;
_menuItem = _menuItem.shiftMenu;
if(_menuItem == -1) {
var bx = dialog_x + ui(8);
var bw = dialog_w - ui(16);
var bx = dialog_x + ui(16);
var bw = dialog_w - ui(32);
draw_set_color(CDEF.main_mdblack);
draw_line_width(bx, yy + ui(3), bx + bw, yy + ui(3), 2);
yy += ui(8);
@ -50,9 +54,9 @@ if(!ready) exit;
draw_sprite_stretched_ext(THEME.textbox, 3, dialog_x, yy, dialog_w, _h, _hc, _ha);
if(is_instanceof(_menuItem, MenuItem) && _menuItem.active && _hovering_ch) {
if(is_instanceof(_menuItem, MenuItem) && _hovering_ch) {
if(_lclick) {
if(_menuItem.active && _lclick) {
var _dat = {
_x: dialog_x,
x: dialog_x + dialog_w,
@ -72,7 +76,7 @@ if(!ready) exit;
if(_key && _rclick) {
var _dat = {
_x: dialog_x,
_x: mouse_mx + ui(4),
x: mouse_mx + ui(4),
y: mouse_my + ui(4),
depth: depth,
@ -83,19 +87,21 @@ if(!ready) exit;
};
selecting_menu = _menuItem;
var _loadKey = $"{_key.context}.{_key.name}";
var _loadKey = string_to_var($"{_key.context}.{_key.name}");
var context_menu_settings = [
_loadKey,
menuItemAction("Edit hotkey", function() /*=>*/ {
menuItem("Edit hotkey", function() /*=>*/ {
hk_editing = selecting_menu;
keyboard_lastchar = hk_editing.hoykeyObject.key;
}),
];
with(o_dialog_menubox) { if(!remove_parents) instance_destroy(); }
var _menu = submenuCall(_dat, context_menu_settings);
_menu.remove_parents = false;
item_selecting = submenuCall(_dat, context_menu_settings);
item_selecting.remove_parents = false;
array_push(children, item_selecting.id);
}
}
} else if(cc != c_white)
@ -103,7 +109,7 @@ if(!ready) exit;
if(is_instanceof(_menuItem, MenuItemGroup)) {
var _submenus = _menuItem.group;
draw_set_text(f_p1, fa_center, fa_center, COLORS._main_text_sub);
draw_set_text(font, fa_center, fa_center, COLORS._main_text_sub);
draw_set_alpha(_menuItem.active * 0.75 + 0.25);
draw_text(dialog_x + dialog_w / 2, yy + hght / 2, label);
draw_set_alpha(1);
@ -166,7 +172,7 @@ if(!ready) exit;
if(_menuItem.spr != noone) {
var spr = is_array(_menuItem.spr)? _menuItem.spr[0] : _menuItem.spr;
var ind = is_array(_menuItem.spr)? _menuItem.spr[1] : 0;
draw_sprite_ui(spr, ind, dialog_x + ui(24), yy + hght / 2,,,, COLORS._main_icon, _menuItem.active * 0.5 + 0.25);
draw_sprite_ui(spr, ind, dialog_x + ui(24), yy + hght / 2, .8, .8, 0, COLORS._main_icon, _menuItem.active * 0.5 + 0.25);
}
if(_menuItem.toggle != noone) {
@ -175,19 +181,21 @@ if(!ready) exit;
}
var tx = dialog_x + show_icon * ui(32) + ui(16);
draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text);
draw_set_text(font, fa_left, fa_center, COLORS._main_text);
draw_set_alpha(_menuItem.active * 0.75 + 0.25);
draw_text(tx, yy + hght / 2, label);
draw_set_alpha(1);
if(_menuItem.isShelf) {
draw_sprite_ui_uniform(THEME.arrow, 0, dialog_x + dialog_w - ui(20), yy + hght / 2, 1, COLORS._main_icon);
} else if(_key) {
var _hx = dialog_x + dialog_w - ui(16);
var _hy = yy + hght / 2 + ui(2);
draw_set_font(f_p1);
if(_menuItem.isShelf) {
draw_sprite_ui_uniform(THEME.arrow, 0, dialog_x + dialog_w - ui(20), yy + hght / 2, 1, COLORS._main_icon);
_hx -= ui(24);
}
if(_key) {
draw_set_font(font);
var _ktxt = key_get_name(_key.key, _key.modi);
var _tw = string_width(_ktxt);
@ -199,11 +207,11 @@ if(!ready) exit;
var _bh = _th + ui(3);
if(hk_editing == _menuItem) {
draw_set_text(f_p1, fa_right, fa_center, COLORS._main_accent);
draw_set_text(font, fa_right, fa_center, COLORS._main_accent);
draw_sprite_stretched_ext(THEME.ui_panel, 1, _bx, _by, _bw, _bh, COLORS._main_text_accent);
} else if(_ktxt != "") {
draw_set_text(f_p1, fa_right, fa_center, COLORS._main_text_sub);
draw_set_text(font, fa_right, fa_center, COLORS._main_text_sub);
draw_sprite_stretched_ext(THEME.ui_panel, 1, _bx, _by, _bw, _bh, CDEF.main_dkgrey);
}
@ -217,11 +225,12 @@ if(!ready) exit;
if(hk_editing != noone) {
if(keyboard_check_pressed(vk_enter))
hk_editing = noone;
else if(keyboard_check_pressed(vk_escape))
hk_editing = noone;
else
hotkey_editing(hk_editing.hoykeyObject);
if(keyboard_check_pressed(vk_escape))
hk_editing = noone;
} else if(sFOCUS) {
if(keyboard_check_pressed(vk_up)) {
selecting--;

View file

@ -9,5 +9,4 @@ for( var i = 0, n = array_length(children); i < n; i++ ) {
}
_hovering_ch = hov;
if((mouse_check_button_pressed(mb_left)) && !hov)
instance_destroy();
if(!hov && mouse_press(mb_left)) instance_destroy();

View file

@ -3,6 +3,7 @@
"%Name":"o_dialog_menubox",
"eventList":[
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":1,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":1,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":64,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],

View file

@ -122,10 +122,10 @@ event_inherited();
hovering = pal;
menuCall("palette_window_preset_menu",,, [
menuItemAction(__txtx("palette_editor_set_default", "Set as default"), function() {
menuItem(__txtx("palette_editor_set_default", "Set as default"), function() {
PROJECT.setPalette(array_clone(hovering.palette));
}),
menuItemAction(__txtx("palette_editor_delete", "Delete palette"), function() {
menuItem(__txtx("palette_editor_delete", "Delete palette"), function() {
file_delete(hovering.path);
__initPalette();
}),

View file

@ -87,12 +87,12 @@ if palette == 0 exit;
if(b) mouse_draggable = false;
if(b == 2) {
menuCall("palette_window_sort_menu", bx + ui(32), by, [
menuItemAction(__txtx("palette_editor_sort_brighter", "Brighter"), function() { sortPalette(__sortBright); }),
menuItemAction(__txtx("palette_editor_sort_darker", "Darker"), function() { sortPalette(__sortDark); }),
menuItem(__txtx("palette_editor_sort_brighter", "Brighter"), function() { sortPalette(__sortBright); }),
menuItem(__txtx("palette_editor_sort_darker", "Darker"), function() { sortPalette(__sortDark); }),
-1,
menuItemAction(__txtx("palette_editor_sort_hue", "Hue"), function() { sortPalette(__sortHue); }),
menuItemAction(__txtx("palette_editor_sort_sat", "Saturation"), function() { sortPalette(__sortSat); }),
menuItemAction(__txtx("palette_editor_sort_val", "Value"), function() { sortPalette(__sortVal); }),
menuItem(__txtx("palette_editor_sort_hue", "Hue"), function() { sortPalette(__sortHue); }),
menuItem(__txtx("palette_editor_sort_sat", "Saturation"), function() { sortPalette(__sortSat); }),
menuItem(__txtx("palette_editor_sort_val", "Value"), function() { sortPalette(__sortVal); }),
],, palette);
}
bx -= ui(32);

View file

@ -13,6 +13,8 @@ event_inherited();
adding = false;
add_txt = "";
tb_add = new textBox(TEXTBOX_INPUT.text, function(txt) /*=>*/ { add_txt = txt; newPresetFromNode(txt); adding = false; });
selecting_path = "";
#endregion
#region content
@ -52,13 +54,8 @@ event_inherited();
}
if(mouse_click(mb_right, sFOCUS)) {
var dia = menuCall("preset_window_menu",,, [
menuItemAction(__txt("Delete"), function() {
file_delete(o_dialog_menubox.path);
__initPresets();
}),
],, preset);
dia.path = preset.path;
selecting_path = preset.path;
var dia = menuCall("preset_window_menu",,, [ menuItem(__txt("Delete"), function() { file_delete(selecting_path); __initPresets(); }), ]);
}
}

View file

@ -41,7 +41,7 @@ function addonContextItem(_addon, _name, _function) constructor {
self._name = _name;
self._function = _function;
menu_item = menuItemAction(_name, function(_data) {
menu_item = menuItem(_name, function(_data) {
lua_call(_addon.thread, self._function, lua_byref(_data.context, true));
})//.setColor(COLORS._main_accent);
}
@ -50,7 +50,7 @@ function addonContextSubMenu(_name, _content) constructor {
self.name = _name;
self.content = _content;
menu_item = menuItemAction(name, function(_dat) {
menu_item = menuItem(name, function(_dat) {
return submenuCall(_dat, content);
})//.setColor(COLORS._main_accent)
.setIsShelf();

View file

@ -33,7 +33,9 @@ function pieMenuCall(menu_id = "", _x = mouse_mx, _y = mouse_my, menu = [], cont
return dia;
}
function submenuCall(_data, menu = []) {
function submenuCall(_data = undefined, menu = []) {
if(is_undefined(_data)) return menuCall("",,, menu);
var dia = instance_create_depth(_data.x - ui(4), _data.y, _data.depth - 1, o_dialog_menubox);
dia.context = _data.context;
dia.setMenu(menu);
@ -41,7 +43,6 @@ function submenuCall(_data, menu = []) {
if(_data.x - ui(4) + dia.dialog_w > WIN_W - ui(2))
dia.dialog_x = _data._x - dia.dialog_w + ui(4);
return dia;
}

View file

@ -11,27 +11,63 @@
}
function __fnInit() {
globalvar CMD_FUNCTIONS, ACTION_MAP;
globalvar CMD_FUNCTIONS, ACTION_MAP, MENU_ITEMS, FUNCTIONS;
FUNCTIONS = {};
CMD_FUNCTIONS = {};
ACTION_MAP = {};
MENU_ITEMS = {};
__fnInit_Global();
__fnInit_Panels();
__fnInit_Preview();
__fnInit_Inspector();
__fnInit_Animation();
__fnInit_Graph();
__fnInit_Collection();
__fnInit_Presets();
__fnInit_Notification();
__fnInit_Preview_Window();
}
#endregion
function registerFunction(_context, _name, _key, _mod, _action, _args = []) {
function registerFunction(_context, _name, _key, _mod, _action) { return new functionOnject(_context, _name, _key, _mod, _action); }
function functionOnject(_context, _name, _key, _mod, _action) constructor {
addHotkey(_context, _name, _key, _mod, _action);
var _fnName = _context == ""? _name : $"{_context} {_name}";
_fnName = string_to_var(_fnName);
context = _context;
name = _name;
dkey = _key;
dmod = _mod;
action = _action;
hide = false;
CMD_FUNCTIONS[$ _fnName] = { _action, _args };
fnName = _context == ""? _name : $"{_context} {_name}";
fnName = string_to_var(fnName);
FUNCTIONS[$ fnName] = self;
CMD_FUNCTIONS[$ fnName] = { action: _action, args: [] };
ACTION_MAP[$ _action] = [ _context, _name ];
static setArg = function(_args = []) {
CMD_FUNCTIONS[$ fnName] = { action, args: _args };
return self;
}
static setMenu = function(_id, _spr = noone, shelf = false) {
var men = menuItemAction(__txt(name), action, _spr);
if(shelf) men.setIsShelf();
MENU_ITEMS[$ _id] = men;
return self;
}
static hidePalette = function() {
hide = true;
return self;
}
}
function callStatusFunction(name) {

View file

@ -178,62 +178,6 @@
DEF_SURFACE_RESET();
#endregion
#region functions
function global_fullscreen() { CALL("fullscreen"); winMan_setFullscreen(!window_is_fullscreen); }
function global_project_close() { CALL("close_project"); PANEL_GRAPH.close(); }
function global_project_close_all() { CALL("close_project_all"); for( var i = array_length(PROJECTS) - 1; i >= 0; i-- ) closeProject(PROJECTS[i]); }
function global_theme_reload() { CALL("reload_theme"); loadGraphic(PREFERENCES.theme); resetPanel(); }
function global_render_all() { CALL("render_all"); RENDER_ALL_REORDER }
function global_export_all() {
for (var i = 0, n = array_length(PROJECT.allNodes); i < n; i++) {
var node = PROJECT.allNodes[i];
if(!node.active) continue;
if(instanceof(node) != "Node_Export") continue;
node.doInspectorAction();
}
}
function __fnInit_Global() {
registerFunction("", "New file", "N", MOD_KEY.ctrl, NEW);
if(!DEMO) {
registerFunction("", "Save", "S", MOD_KEY.ctrl, SAVE);
registerFunction("", "Save as", "S", MOD_KEY.ctrl | MOD_KEY.shift, SAVE_AS);
registerFunction("", "Save at", "", MOD_KEY.none, SAVE_AT, [ ARG("project", function() { return PROJECT; }, true), ARG("path", ""), ARG("log", "save at ") ]);
registerFunction("", "Save all", "S", MOD_KEY.ctrl | MOD_KEY.alt, SAVE_ALL);
registerFunction("", "Open", "O", MOD_KEY.ctrl, LOAD);
registerFunction("", "Open Safe", "", MOD_KEY.none, LOAD_SAFE);
registerFunction("", "Open at", "", MOD_KEY.none, LOAD_AT, [ ARG("path", ""), ARG("readonly", false), ARG("override", false) ]);
registerFunction("", "Append", "", MOD_KEY.none, APPEND, [ ARG("path", ""), ARG("context", function() { return PANEL_GRAPH.getCurrentContext(); }, true) ]);
registerFunction("", "Import .zip", "", MOD_KEY.none, __IMPORT_ZIP);
registerFunction("", "Export .zip", "", MOD_KEY.none, __EXPORT_ZIP);
}
registerFunction("", "Undo", "Z", MOD_KEY.ctrl, UNDO);
registerFunction("", "Redo", "Z", MOD_KEY.ctrl | MOD_KEY.shift, REDO);
registerFunction("", "Full panel", "`", MOD_KEY.none, set_focus_fullscreen);
registerFunction("", "Reset layout", vk_f10, MOD_KEY.ctrl, resetPanel);
registerFunction("", "Open notification", vk_f12, MOD_KEY.none, function() /*=>*/ { dialogPanelCall(new Panel_Notification()); });
registerFunction("", "Fullscreen", vk_f11, MOD_KEY.none, global_fullscreen);
registerFunction("", "Render all", vk_f5, MOD_KEY.none, global_render_all);
registerFunction("", "Export all", "", MOD_KEY.none, global_export_all);
registerFunction("", "Close file", "Q", MOD_KEY.ctrl, global_project_close);
registerFunction("", "Close all files", "", MOD_KEY.none, global_project_close_all);
registerFunction("", "Close program", vk_f4, MOD_KEY.alt, window_close);
registerFunction("", "Close project", "", MOD_KEY.none, closeProject, [ ARG("project", function() { return PROJECT; }, true) ]);
registerFunction("", "Reload theme", vk_f10, MOD_KEY.ctrl | MOD_KEY.shift, global_theme_reload);
}
#endregion
#region debug
global.FLAG = {
render : 0,

View file

@ -1,40 +1,40 @@
#region funtion calls
function __fnInit_Animation() {
registerFunction("", "Play/Pause", vk_space, MOD_KEY.none, panel_animation_play_pause);
registerFunction("", "Resume/Pause", vk_space, MOD_KEY.shift, panel_animation_resume);
registerFunction("", "Play/Pause", vk_space, MOD_KEY.none, panel_animation_play_pause ).setMenu("play_pause", )
registerFunction("", "Resume/Pause", vk_space, MOD_KEY.shift, panel_animation_resume ).setMenu("resume_pause", )
registerFunction("", "First frame", vk_home, MOD_KEY.none, panel_animation_first_frame);
registerFunction("", "Last frame", vk_end, MOD_KEY.none, panel_animation_last_frame);
registerFunction("", "Next frame", vk_right, MOD_KEY.none, panel_animation_next_frame);
registerFunction("", "Previous frame", vk_left, MOD_KEY.none, panel_animation_prev_frame);
registerFunction("", "First frame", vk_home, MOD_KEY.none, panel_animation_first_frame ).setMenu("first_frame", )
registerFunction("", "Last frame", vk_end, MOD_KEY.none, panel_animation_last_frame ).setMenu("last_frame", )
registerFunction("", "Next frame", vk_right, MOD_KEY.none, panel_animation_next_frame ).setMenu("next_frame", )
registerFunction("", "Previous frame", vk_left, MOD_KEY.none, panel_animation_prev_frame ).setMenu("previous_frame", )
registerFunction("Animation", "Delete keys", vk_delete, MOD_KEY.none, panel_animation_delete_key);
registerFunction("Animation", "Duplicate", "D", MOD_KEY.ctrl, panel_animation_duplicate);
registerFunction("Animation", "Copy", "C", MOD_KEY.ctrl, panel_animation_copy);
registerFunction("Animation", "Paste", "V", MOD_KEY.ctrl, panel_animation_paste);
registerFunction("Animation", "Collapse Toggle", "C", MOD_KEY.none, panel_animation_collapseToggle);
registerFunction("Animation", "Toggle Nodes", "H", MOD_KEY.none, panel_animation_show_nodes);
registerFunction("Animation", "Delete keys", vk_delete, MOD_KEY.none, panel_animation_delete_key ).setMenu("animation_delete_keys", )
registerFunction("Animation", "Duplicate", "D", MOD_KEY.ctrl, panel_animation_duplicate ).setMenu("animation_duplicate", THEME.duplicate)
registerFunction("Animation", "Copy", "C", MOD_KEY.ctrl, panel_animation_copy ).setMenu("animation_copy", THEME.copy)
registerFunction("Animation", "Paste", "V", MOD_KEY.ctrl, panel_animation_paste ).setMenu("animation_paste", THEME.paste)
registerFunction("Animation", "Collapse Toggle", "C", MOD_KEY.none, panel_animation_collapseToggle ).setMenu("animation_collapse_toggle", )
registerFunction("Animation", "Toggle Nodes", "H", MOD_KEY.none, panel_animation_show_nodes ).setMenu("animation_toggle_nodes", )
registerFunction("Animation", "Settings", "S", MOD_KEY.ctrl | MOD_KEY.shift, panel_animation_settings);
registerFunction("Animation", "Scaler", "", MOD_KEY.none, panel_animation_scale);
registerFunction("Animation", "Settings", "S", MOD_KEY.ctrl | MOD_KEY.shift, panel_animation_settings ).setMenu("animation_settings", THEME.animation_setting )
registerFunction("Animation", "Scaler", "", MOD_KEY.none, panel_animation_scale ).setMenu("animation_scaler", THEME.animation_timing )
registerFunction("Animation", "Edit Keyframe Value","", MOD_KEY.none, panel_animation_edit_keyframe_value);
registerFunction("Animation", "Lock Keyframe Y", "", MOD_KEY.none, panel_animation_edit_keyframe_lock_y);
registerFunction("Animation", "Stagger", "", MOD_KEY.none, panel_animation_edit_keyframe_stagger);
registerFunction("Animation", "Driver", "", MOD_KEY.none, panel_animation_keyframe_driver);
registerFunction("Animation", "Edit Keyframe Value","", MOD_KEY.none, panel_animation_edit_keyframe_value ).setMenu("animation_edit_keyframe_value", )
registerFunction("Animation", "Lock Keyframe Y", "", MOD_KEY.none, panel_animation_edit_keyframe_lock_y ).setMenu("animation_lock_keyframe_y", )
registerFunction("Animation", "Stagger", "", MOD_KEY.none, panel_animation_edit_keyframe_stagger ).setMenu("animation_stagger", )
registerFunction("Animation", "Driver", "", MOD_KEY.none, panel_animation_keyframe_driver ).setMenu("animation_driver", )
registerFunction("Animation", "New Folder", "", MOD_KEY.none, panel_animation_dopesheet_new_folder);
registerFunction("Animation", "Dopesheet Expand", "", MOD_KEY.none, panel_animation_dopesheet_expand);
registerFunction("Animation", "Dopesheet Collapse", "", MOD_KEY.none, panel_animation_dopesheet_collapse);
registerFunction("Animation", "New Folder", "", MOD_KEY.none, panel_animation_dopesheet_new_folder ).setMenu("animation_new_folder", THEME.folder_content)
registerFunction("Animation", "Dopesheet Expand", "", MOD_KEY.none, panel_animation_dopesheet_expand ).setMenu("animation_dopesheet_expand", )
registerFunction("Animation", "Dopesheet Collapse", "", MOD_KEY.none, panel_animation_dopesheet_collapse ).setMenu("animation_dopesheet_collapse", )
registerFunction("Animation", "Rename Group", "", MOD_KEY.none, panel_animation_group_rename);
registerFunction("Animation", "Remove Group", "", MOD_KEY.none, panel_animation_group_remove);
registerFunction("Animation", "Separate Axis", "", MOD_KEY.none, panel_animation_separate_axis);
registerFunction("Animation", "Combine Axis", "", MOD_KEY.none, panel_animation_combine_axis);
registerFunction("Animation", "Rename Group", "", MOD_KEY.none, panel_animation_group_rename ).setMenu("animation_rename_group", THEME.cross)
registerFunction("Animation", "Remove Group", "", MOD_KEY.none, panel_animation_group_remove ).setMenu("animation_remove_group", )
registerFunction("Animation", "Separate Axis", "", MOD_KEY.none, panel_animation_separate_axis ).setMenu("animation_separate_axis", )
registerFunction("Animation", "Combine Axis", "", MOD_KEY.none, panel_animation_combine_axis ).setMenu("animation_combine_axis", )
registerFunction("Animation", "Set Range Start", "", MOD_KEY.none, panel_animation_range_set_start);
registerFunction("Animation", "Set Range End", "", MOD_KEY.none, panel_animation_range_set_end);
registerFunction("Animation", "Reset Range", "", MOD_KEY.none, panel_animation_range_reset);
registerFunction("Animation", "Set Range Start", "", MOD_KEY.none, panel_animation_range_set_start ).setMenu("animation_set_range_start", [ THEME.frame_range, 0 ])
registerFunction("Animation", "Set Range End", "", MOD_KEY.none, panel_animation_range_set_end ).setMenu("animation_set_range_end", [ THEME.frame_range, 1 ])
registerFunction("Animation", "Reset Range", "", MOD_KEY.none, panel_animation_range_reset ).setMenu("animation_reset_range", )
}
function panel_animation_settings() { var dia = dialogPanelCall(new Panel_Animation_Setting()); dia.anchor = ANCHOR.none; }
@ -48,7 +48,7 @@
function panel_animation_next_frame() { CALL("next_frame"); if(IS_RENDERING) return; PROJECT.animator.setFrame(min(PROJECT.animator.real_frame + 1, TOTAL_FRAMES - 1)); }
function panel_animation_prev_frame() { CALL("previous_frame"); if(IS_RENDERING) return; PROJECT.animator.setFrame(max(PROJECT.animator.real_frame - 1, 0)); }
function panel_animation_collapseToggle(){ CALL("animation_collapse_toggle"); PANEL_ANIMATION.collapseToggle(); }
function panel_animation_collapseToggle() { CALL("animation_collapse_toggle"); PANEL_ANIMATION.collapseToggle(); }
function panel_animation_delete_key() { CALL("animation_delete_key"); PANEL_ANIMATION.deleteKeys(); }
function panel_animation_duplicate() { CALL("animation_duplicate"); PANEL_ANIMATION.doDuplicate(); }
function panel_animation_copy() { CALL("animation_copy"); PANEL_ANIMATION.doCopy(); }
@ -316,8 +316,8 @@ function Panel_Animation() : PanelContent() constructor {
keyframe_menu = [
menuItemAction(__txtx("panel_animation_keyframe_edit", "Edit Value..."), panel_animation_edit_keyframe_value),
menuItemAction(__txtx("panel_animation_lock_y", "Lock/Unlock Y easing"), panel_animation_edit_keyframe_lock_y),
MENU_ITEMS.animation_edit_keyframe_value,
MENU_ITEMS.animation_lock_keyframe_y,
menuItemGroup(__txtx("panel_animation_ease_in", "Ease in"), [
[ [THEME.timeline_ease, 0], function() {
@ -356,6 +356,7 @@ function Panel_Animation() : PanelContent() constructor {
}
}, __txtx("panel_animation_ease_hold", "Hold") ],
]),
menuItemGroup(__txtx("panel_animation_ease_out", "Ease out"), [
[ [THEME.timeline_ease, 0], function() {
for( var i = 0, n = array_length(keyframe_selecting); i < n; i++ ) {
@ -392,27 +393,27 @@ function Panel_Animation() : PanelContent() constructor {
[ [THEME.object_halign, 1], function() { alignKeys(fa_center); } ],
[ [THEME.object_halign, 2], function() { alignKeys(fa_right); } ],
]),
menuItemAction(__txtx("panel_animation_stagger", "Stagger"), panel_animation_edit_keyframe_stagger),
menuItemAction(__txtx("panel_driver", "Driver..."), panel_animation_keyframe_driver),
MENU_ITEMS.animation_stagger,
MENU_ITEMS.animation_driver,
-1,
menuItemAction(__txt("Delete"), panel_animation_delete_key),
menuItemAction(__txt("Duplicate"), panel_animation_duplicate, THEME.duplicate),
menuItemAction(__txt("Copy"), panel_animation_copy, THEME.copy),
menuItemAction(__txt("Paste"), panel_animation_paste, THEME.paste),
MENU_ITEMS.animation_delete_keys,
MENU_ITEMS.animation_duplicate,
MENU_ITEMS.animation_copy,
MENU_ITEMS.animation_paste,
];
keyframe_menu_empty = [
menuItemAction(__txt("Paste"), panel_animation_paste, THEME.paste),
MENU_ITEMS.animation_paste,
];
context_selecting_item = noone;
context_selecting_prop = noone;
name_menu_empty = [
menuItemAction(__txt("New folder"), panel_animation_dopesheet_new_folder, THEME.folder_content),
MENU_ITEMS.animation_new_folder,
-1,
menuItemAction(__txt("Expand all"), panel_animation_dopesheet_expand),
menuItemAction(__txt("Collapse all"), panel_animation_dopesheet_collapse),
MENU_ITEMS.animation_dopesheet_expand,
MENU_ITEMS.animation_dopesheet_collapse,
];
var _clrs = COLORS.labels;
@ -445,21 +446,21 @@ function Panel_Animation() : PanelContent() constructor {
name_menu_group = [
clr,
menuItemAction(__txt("Rename"), panel_animation_group_rename),
menuItemAction(__txt("Delete"), panel_animation_group_remove, THEME.cross),
MENU_ITEMS.animation_rename_group,
MENU_ITEMS.animation_remove_group,
-1,
name_menu_empty[0]
];
name_menu_prop_sep = [
menuItemAction(__txtx("panel_inspector_axis_separate", "Separate axis"), panel_animation_separate_axis),
MENU_ITEMS.animation_separate_axis,
-1,
name_menu_empty[2],
name_menu_empty[3],
];
name_menu_prop_join = [
menuItemAction(__txtx("panel_inspector_axis_combine", "Combine axis"), panel_animation_combine_axis),
MENU_ITEMS.animation_combine_axis,
-1,
name_menu_empty[2],
name_menu_empty[3],
@ -825,14 +826,13 @@ function Panel_Animation() : PanelContent() constructor {
timeline_scub_st = CURRENT_FRAME;
_scrub_frame = timeline_scub_st;
}
if(mouse_press(mb_right, pFOCUS)) {
__selecting_frame = clamp(round((mx - bar_x - timeline_shift) / timeline_scale), 0, TOTAL_FRAMES - 1);
menuCall("animation_summary_menu",,, [
menuItemAction(__txtx("panel_animation_range_start", "Set start"), panel_animation_range_set_start, [ THEME.frame_range, 0 ]),
menuItemAction(__txtx("panel_animation_range_end", "Set end"), panel_animation_range_set_end, [ THEME.frame_range, 1 ]),
menuItemAction(__txtx("panel_animation_range_reset", "Reset range"), panel_animation_range_reset),
MENU_ITEMS.animation_set_range_start,
MENU_ITEMS.animation_set_range_end,
MENU_ITEMS.animation_reset_range,
]);
}
}

View file

@ -1,13 +1,13 @@
#region funtion calls
function __fnInit_Collection() {
registerFunction("Collection", "Replace", "", MOD_KEY.none, panel_collection_replace);
registerFunction("Collection", "Edit Meta", "", MOD_KEY.none, panel_collection_edit_meta);
registerFunction("Collection", "Update Thumbnail", "", MOD_KEY.none, panel_collection_update_thumbnail);
registerFunction("Collection", "Delete Collection", "", MOD_KEY.none, panel_collection_delete_collection);
registerFunction("Collection", "Replace", "", MOD_KEY.none, panel_collection_replace ).setMenu("collection_replace")
registerFunction("Collection", "Edit Meta", "", MOD_KEY.none, panel_collection_edit_meta ).setMenu("collection_edit_meta")
registerFunction("Collection", "Update Thumbnail", "", MOD_KEY.none, panel_collection_update_thumbnail ).setMenu("collection_update_thumbnail")
registerFunction("Collection", "Delete Collection", "", MOD_KEY.none, panel_collection_delete_collection ).setMenu("collection_delete_collection")
registerFunction("Collection", "Upload To Steam", "", MOD_KEY.none, panel_collection_steam_file_upload);
registerFunction("Collection", "Update Steam", "", MOD_KEY.none, panel_collection_steam_file_update);
registerFunction("Collection", "Unsubscribe", "", MOD_KEY.none, panel_collection_steam_unsubscribe);
registerFunction("Collection", "Upload To Steam", "", MOD_KEY.none, panel_collection_steam_file_upload ).setMenu("collection_upload_to_steam")
registerFunction("Collection", "Update Steam", "", MOD_KEY.none, panel_collection_steam_file_update ).setMenu("collection_update_steam")
registerFunction("Collection", "Unsubscribe", "", MOD_KEY.none, panel_collection_steam_unsubscribe ).setMenu("collection_unsubscribe")
}
function panel_collection_replace() { CALL("collection_replace"); PANEL_COLLECTION.replace(); }
@ -163,11 +163,11 @@ function Panel_Collection() : PanelContent() constructor {
if(meta == noone || !meta.steam) {
contentMenu = [
menuItemAction(__txtx("panel_collection_replace", "Replace with selected"), panel_collection_replace),
menuItemAction(__txtx("panel_collection_edit_meta", "Edit metadata") + "...", panel_collection_edit_meta),
menuItemAction(__txtx("panel_collection_update_thumbnail", "Update thumbnail"), panel_collection_update_thumbnail),
MENU_ITEMS.collection_replace,
MENU_ITEMS.collection_edit_meta,
MENU_ITEMS.collection_update_thumbnail,
-1,
menuItemAction(__txt("Delete"), panel_collection_delete_collection)
MENU_ITEMS.collection_delete_collection,
];
if(STEAM_ENABLED)
@ -176,11 +176,11 @@ function Panel_Collection() : PanelContent() constructor {
if(STEAM_ENABLED) {
if(meta.steam == FILE_STEAM_TYPE.local) {
array_push(contentMenu, menuItemAction(__txtx("panel_collection_workshop_upload", "Upload to Steam Workshop") + "...", panel_collection_steam_file_upload));
array_push(contentMenu, MENU_ITEMS.collection_upload_to_steam);
} else {
if(meta.author_steam_id == STEAM_USER_ID && meta.file_id != 0)
array_push(contentMenu, menuItemAction(__txtx("panel_collection_workshop_update", "Update Steam Workshop content") + "...", panel_collection_steam_file_update));
array_push(contentMenu, menuItemAction(__txt("Unsubscribe"), panel_collection_steam_unsubscribe));
array_push(contentMenu, MENU_ITEMS.collection_update_steam);
array_push(contentMenu, MENU_ITEMS.collection_unsubscribe);
}
}
}

View file

@ -327,15 +327,15 @@ function Panel_Color() : PanelContent() constructor {
if(mouse_press(mb_right, pFOCUS)) {
menuCall("color_window_menu",,, [
menuItemAction(__txt("Hue"), function() { mode = 0; } ),
menuItemAction(__txt("Value"), function() { mode = 1; } ),
menuItemAction(__txt("Saturation"), function() { mode = 2; } ),
menuItem(__txt("Hue"), function() { mode = 0; } ),
menuItem(__txt("Value"), function() { mode = 1; } ),
menuItem(__txt("Saturation"), function() { mode = 2; } ),
-1,
menuItemAction(__txt("Toggle Alpha"), function() { show_alpha = !show_alpha; }, noone, noone, function() /*=>*/ {return show_alpha} ),
menuItemAction(__txt("Toggle Palette"), function() { show_palette = !show_palette; }, noone, noone, function() /*=>*/ {return show_palette} ),
menuItemAction(__txt("Toggle Hex"), function() { show_hex = !show_hex; }, noone, noone, function() /*=>*/ {return show_hex} ),
menuItem(__txt("Toggle Alpha"), function() { show_alpha = !show_alpha; }, noone, noone, function() /*=>*/ {return show_alpha} ),
menuItem(__txt("Toggle Palette"), function() { show_palette = !show_palette; }, noone, noone, function() /*=>*/ {return show_palette} ),
menuItem(__txt("Toggle Hex"), function() { show_hex = !show_hex; }, noone, noone, function() /*=>*/ {return show_hex} ),
-1,
menuItemAction(__txt("Discretize"), function() { discretize_pal = !discretize_pal; }, noone, noone, function() /*=>*/ {return discretize_pal} ),
menuItem(__txt("Discretize"), function() { discretize_pal = !discretize_pal; }, noone, noone, function() /*=>*/ {return discretize_pal} ),
]);
}

View file

@ -207,29 +207,29 @@ function Panel_File_Explorer() : PanelContent() constructor {
__menu_cnxt_selecting = noone;
menu_file_image = [
menuItemAction("Add as node", function() {
menuItem("Add as node", function() {
var node = Node_create_Image_path(PANEL_GRAPH.graph_cx, PANEL_GRAPH.graph_cy, __menu_file_selecting.path);
PANEL_PREVIEW.setNodePreview(node);
PANEL_INSPECTOR.inspecting = node;
}),
menuItemAction("Add as canvas", function() {
menuItem("Add as canvas", function() {
var node = nodeBuild("Node_Canvas", PANEL_GRAPH.graph_cx, PANEL_GRAPH.graph_cy).loadImagePath(__menu_file_selecting.path);
PANEL_PREVIEW.setNodePreview(node);
PANEL_INSPECTOR.inspecting = node;
}),
menuItemAction("Copy path", function() { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy),
menuItem("Copy path", function() { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy),
];
menu_file_project = [
menuItemAction("Open", function() { LOAD_AT(__menu_file_selecting.path); }),
menuItem("Open", function() { LOAD_AT(__menu_file_selecting.path); }),
menuItemAction("Copy path", function() { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy),
menuItem("Copy path", function() { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy),
];
menu_general = [
menuItemAction("New Canvas", function() {
menuItem("New Canvas", function() {
var dia = dialogCall(o_dialog_file_name, mouse_mx + 8, mouse_my + 8);
dia.onModify = function (txt) {
var _s = surface_create(DEF_SURF_W, DEF_SURF_H);
@ -246,7 +246,7 @@ function Panel_File_Explorer() : PanelContent() constructor {
dia.path = __menu_cnxt_selecting.path + "/";
}, THEME.new_file),
menuItemAction("New Folder", function() {
menuItem("New Folder", function() {
var dia = dialogCall(o_dialog_file_name, mouse_mx + 8, mouse_my + 8);
dia.name = "New Folder";
dia.onModify = function (txt) {
@ -257,7 +257,7 @@ function Panel_File_Explorer() : PanelContent() constructor {
}, THEME.folder),
-1,
menuItemAction("Refresh", function() { if(rootFile) rootFile.getContent() }),
menuItem("Refresh", function() { if(rootFile) rootFile.getContent() }),
];
#endregion

View file

@ -174,7 +174,6 @@
panelDisplayInit();
checkPanelValid();
__initPanelHotkeys();
} #endregion
function setPanel() { #region
@ -477,42 +476,44 @@
function call_panel_Globalvar() { panelAdd("Panel_Globalvar", true); }
function call_panel_File_Explorer() { panelAdd("Panel_File_Explorer", true); }
function __initPanelHotkeys() {
registerFunction("", "Preference", "", MOD_KEY.none, call_dialog_preference);
registerFunction("", "Splash screen", "", MOD_KEY.none, call_dialog_splash);
registerFunction("", "Release note", "", MOD_KEY.none, call_dialog_release_note);
registerFunction("", "Autosave folder", "", MOD_KEY.none, open_autosave_folder);
function __fnInit_Panels() {
registerFunction("", "Preference", "", MOD_KEY.none, call_dialog_preference ).setMenu("preference", THEME.gear)
registerFunction("", "Splash screen", "", MOD_KEY.none, call_dialog_splash ).setMenu("splash_screen")
registerFunction("", "Release note", "", MOD_KEY.none, call_dialog_release_note ).setMenu("release_note")
registerFunction("", "Autosave folder", "", MOD_KEY.none, open_autosave_folder ).setMenu("autosave_folder", THEME.save_auto)
registerFunction("", "Addons", "", MOD_KEY.none, call_panel_addon ).setMenu("addons")
registerFunction("", "History", "", MOD_KEY.none, call_panel_history ).setMenu("history")
registerFunction("", "Notification Panel", vk_f12, MOD_KEY.none, call_panel_Notification ).setMenu("notification_panel")
registerFunction("", "Collections Panel", "", MOD_KEY.none, call_panel_Collection ).setMenu("collections_panel")
registerFunction("", "Graph Panel", "", MOD_KEY.none, call_panel_Graph ).setMenu("graph_panel")
registerFunction("", "Preview Panel", "", MOD_KEY.none, call_panel_Preview ).setMenu("preview_panel")
registerFunction("", "Preview Histogram", "", MOD_KEY.none, call_panel_Preview_Histogram ).setMenu("preview_histogram")
registerFunction("", "Inspector Panel", "", MOD_KEY.none, call_panel_Inspector ).setMenu("inspector_panel")
registerFunction("", "Workspace Panel", "", MOD_KEY.none, call_panel_Workspace ).setMenu("workspace_panel")
registerFunction("", "Animation Panel", "", MOD_KEY.none, call_panel_Animation ).setMenu("animation_panel")
registerFunction("", "Align Panel", "", MOD_KEY.none, call_panel_Node_Align ).setMenu("align_panel")
registerFunction("", "Nodes Panel", "", MOD_KEY.none, call_panel_Nodes ).setMenu("nodes_panel")
registerFunction("", "Tunnels Panel", "", MOD_KEY.none, call_panel_Tunnels ).setMenu("tunnels_panel")
registerFunction("", "Color Panel", "", MOD_KEY.none, call_panel_Color ).setMenu("color_panel")
registerFunction("", "Palettes Panel", "", MOD_KEY.none, call_panel_Palette ).setMenu("palettes_panel")
registerFunction("", "Palettes Mixer Panel", "", MOD_KEY.none, call_panel_Palette_Mixer ).setMenu("palettes_mixer_panel")
registerFunction("", "Gradients Panel", "", MOD_KEY.none, call_panel_Gradient ).setMenu("gradients_panel")
registerFunction("", "Console Panel", "", MOD_KEY.none, call_panel_Console ).setMenu("console_panel")
registerFunction("", "Globalvar Panel", "", MOD_KEY.none, call_panel_Globalvar ).setMenu("globalvar_panel")
registerFunction("", "File Explorer Panel", "", MOD_KEY.none, call_panel_File_Explorer ).setMenu("file_explorer_panel")
registerFunction("", "Recent files", "R", MOD_KEY.ctrl | MOD_KEY.shift, function() /*=>*/ {
var arr = [];
for(var i = 0; i < min(10, ds_list_size(RECENT_FILES)); i++)
array_push(arr, menuItemAction(RECENT_FILES[| i], function(_dat) { LOAD_PATH(_dat.name); }));
return menuCall("Recent files",,, arr);
});
}).setMenu("recent_files");
registerFunction("", "Addons", "", MOD_KEY.none, call_panel_addon);
registerFunction("", "History", "", MOD_KEY.none, call_panel_history);
registerFunction("", "Notification Panel", "", MOD_KEY.none, call_panel_Notification );
registerFunction("", "Collections Panel", "", MOD_KEY.none, call_panel_Collection );
registerFunction("", "Graph Panel", "", MOD_KEY.none, call_panel_Graph );
registerFunction("", "Preview Panel", "", MOD_KEY.none, call_panel_Preview );
registerFunction("", "Preview Histogram", "", MOD_KEY.none, call_panel_Preview_Histogram );
registerFunction("", "Inspector Panel", "", MOD_KEY.none, call_panel_Inspector );
registerFunction("", "Workspace Panel", "", MOD_KEY.none, call_panel_Workspace );
registerFunction("", "Animation Panel", "", MOD_KEY.none, call_panel_Animation );
registerFunction("", "Align Panel", "", MOD_KEY.none, call_panel_Node_Align );
registerFunction("", "Nodes Panel", "", MOD_KEY.none, call_panel_Nodes );
registerFunction("", "Tunnels Panel", "", MOD_KEY.none, call_panel_Tunnels );
registerFunction("", "Color Panel", "", MOD_KEY.none, call_panel_Color );
registerFunction("", "Palettes Panel", "", MOD_KEY.none, call_panel_Palette );
registerFunction("", "Palettes Mixer Panel","", MOD_KEY.none, call_panel_Palette_Mixer );
registerFunction("", "Gradients Panel", "", MOD_KEY.none, call_panel_Gradient );
registerFunction("", "Console Panel", "", MOD_KEY.none, call_panel_Console );
registerFunction("", "Globalvar Panel", "", MOD_KEY.none, call_panel_Globalvar );
registerFunction("", "File Explorer Panel", "", MOD_KEY.none, call_panel_File_Explorer );
}
#endregion

View file

@ -25,7 +25,7 @@
function panel_graph_group() { CALL("graph_group"); PANEL_GRAPH.doGroup(); }
function panel_graph_ungroup() { CALL("graph_ungroup"); PANEL_GRAPH.doUngroup(); }
function panel_graph_canvas() { CALL("graph_canvas"); PANEL_GRAPH.setCurrentCanvas(); }
function panel_graph_canvas_copy() { CALL("graph_canvas_copy"); PANEL_GRAPH.setCurrentCanvas(); }
function panel_graph_canvas_blend() { CALL("graph_canvas_blend"); PANEL_GRAPH.setCurrentCanvasBlend(); }
function panel_graph_frame() { CALL("graph_frame"); PANEL_GRAPH.doFrame(); }
@ -39,13 +39,13 @@
function panel_graph_search() { CALL("graph_search"); PANEL_GRAPH.toggleSearch(); }
function panel_graph_toggle_minimap() { CALL("graph_toggle_minimap"); PANEL_GRAPH.minimap_show = !PANEL_GRAPH.minimap_show; }
function panel_graph_pan() { CALL("graph_pan"); if(PANEL_GRAPH.node_hovering || PANEL_GRAPH.value_focus) return; PANEL_GRAPH.graph_dragging_key = true; }
function panel_graph_zoom() { CALL("graph_zoom"); if(PANEL_GRAPH.node_hovering || PANEL_GRAPH.value_focus) return; PANEL_GRAPH.graph_zooming_key = true; }
function panel_graph_pan() { CALL("graph_pan"); if(PANEL_GRAPH.node_hovering || PANEL_GRAPH.value_focus) return; PANEL_GRAPH.graph_dragging_key = true;}
function panel_graph_zoom() { CALL("graph_zoom"); if(PANEL_GRAPH.node_hovering || PANEL_GRAPH.value_focus) return; PANEL_GRAPH.graph_zooming_key = true;}
function panel_graph_send_to_preview() { CALL("graph_send_to_preview"); PANEL_GRAPH.send_to_preview(); }
function panel_graph_preview_window() { CALL("graph_preview_window"); create_preview_window(PANEL_GRAPH.getFocusingNode()); }
function panel_graph_inspector_panel() { CALL("graph_inspector_panel"); PANEL_GRAPH.inspector_panel(); }
function panel_graph_send_to_export() { CALL("graph_send_to_export"); PANEL_GRAPH.send_to_export(); }
function panel_graph_send_to_export() { CALL("graph_send_to_export"); PANEL_GRAPH.send_hover_to_export(); }
function panel_graph_toggle_preview() { CALL("graph_toggle_preview"); PANEL_GRAPH.setTriggerPreview(); }
function panel_graph_toggle_render() { CALL("graph_toggle_render"); PANEL_GRAPH.setTriggerRender(); }
function panel_graph_toggle_parameter() { CALL("graph_toggle_parameter"); PANEL_GRAPH.setTriggerParameter(); }
@ -60,65 +60,69 @@
function panel_graph_createTunnel() { CALL("graph_createTunnel"); PANEL_GRAPH.createTunnel(); }
function __fnInit_Graph() {
registerFunction("Graph", "Add Node", "A", MOD_KEY.none, panel_graph_add_node);
registerFunction("Graph", "Focus Content", "F", MOD_KEY.none, panel_graph_focus_content);
registerFunction("Graph", "Preview Focusing Node", "P", MOD_KEY.none, panel_graph_preview_focus);
registerFunction("Graph", "Add Node", "A", MOD_KEY.none, panel_graph_add_node ).setMenu("graph_add_node")
registerFunction("Graph", "Focus Content", "F", MOD_KEY.none, panel_graph_focus_content ).setMenu("graph_focus_content")
registerFunction("Graph", "Preview Focusing Node", "P", MOD_KEY.none, panel_graph_preview_focus ).setMenu("graph_preview_focusing_node")
registerFunction("Graph", "Import Image", "I", MOD_KEY.none, panel_graph_import_image);
registerFunction("Graph", "Import Image Array", "I", MOD_KEY.shift, panel_graph_import_image_array);
registerFunction("Graph", "Add Number", "1", MOD_KEY.none, panel_graph_add_number);
registerFunction("Graph", "Add Vector2", "2", MOD_KEY.none, panel_graph_add_vec2);
registerFunction("Graph", "Add Vector3", "3", MOD_KEY.none, panel_graph_add_vec3);
registerFunction("Graph", "Add Vector4", "4", MOD_KEY.none, panel_graph_add_vec4);
registerFunction("Graph", "Add Display", "D", MOD_KEY.none, panel_graph_add_display);
registerFunction("Graph", "Transform Node", "T", MOD_KEY.ctrl, panel_graph_add_transform);
registerFunction("Graph", "Import Image", "I", MOD_KEY.none, panel_graph_import_image ).setMenu("graph_import_image")
registerFunction("Graph", "Import Image Array", "I", MOD_KEY.shift, panel_graph_import_image_array ).setMenu("graph_import_image_array")
registerFunction("Graph", "Add Number", "1", MOD_KEY.none, panel_graph_add_number ).setMenu("graph_add_number")
registerFunction("Graph", "Add Vector2", "2", MOD_KEY.none, panel_graph_add_vec2 ).setMenu("graph_add_vector2")
registerFunction("Graph", "Add Vector3", "3", MOD_KEY.none, panel_graph_add_vec3 ).setMenu("graph_add_vector3")
registerFunction("Graph", "Add Vector4", "4", MOD_KEY.none, panel_graph_add_vec4 ).setMenu("graph_add_vector4")
registerFunction("Graph", "Add Display", "D", MOD_KEY.none, panel_graph_add_display ).setMenu("graph_add_display")
registerFunction("Graph", "Transform Node", "T", MOD_KEY.ctrl, panel_graph_add_transform ).setMenu("graph_transform_node")
registerFunction("Graph", "Select All", "A", MOD_KEY.ctrl, panel_graph_select_all);
registerFunction("Graph", "Toggle Grid", "G", MOD_KEY.none, panel_graph_toggle_grid);
registerFunction("Graph", "Select All", "A", MOD_KEY.ctrl, panel_graph_select_all ).setMenu("graph_select_all")
registerFunction("Graph", "Toggle Grid", "G", MOD_KEY.none, panel_graph_toggle_grid ).setMenu("graph_toggle_grid")
if(!DEMO) registerFunction("Graph", "Export", "E", MOD_KEY.ctrl, panel_graph_export);
registerFunction("Graph", "Blend", "B", MOD_KEY.ctrl, panel_graph_blend ).setMenu("graph_blend")
registerFunction("Graph", "Compose", "B", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_compose ).setMenu("graph_compose")
registerFunction("Graph", "Array", "A", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_array ).setMenu("graph_array")
registerFunction("Graph", "Frame", "F", MOD_KEY.shift, panel_graph_frame ).setMenu("graph_frame")
registerFunction("Graph", "Blend", "B", MOD_KEY.ctrl, panel_graph_blend);
registerFunction("Graph", "Compose", "B", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_compose);
registerFunction("Graph", "Array", "A", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_array);
registerFunction("Graph", "Group", "G", MOD_KEY.ctrl, panel_graph_group);
registerFunction("Graph", "Ungroup", "G", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_ungroup);
registerFunction("Graph", "Frame", "F", MOD_KEY.shift, panel_graph_frame);
registerFunction("Graph", "Canvas", "C", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_canvas);
registerFunction("Graph", "Canvas Blend", "C", MOD_KEY.ctrl | MOD_KEY.alt, panel_graph_canvas_blend);
registerFunction("Graph", "Canvas", "", MOD_KEY.none,
function(_dat) { return submenuCall(_dat, [ MENU_ITEMS.graph_canvas_copy, MENU_ITEMS.graph_canvas_blend ]); } ).setMenu("graph_canvas",, true)
registerFunction("Graph", "Copy to Canvas", "C", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_canvas_copy ).setMenu("graph_canvas_copy")
registerFunction("Graph", "Blend Canvas", "C", MOD_KEY.ctrl | MOD_KEY.alt, panel_graph_canvas_blend ).setMenu("graph_canvas_blend")
registerFunction("Graph", "Delete (break)", vk_delete, MOD_KEY.shift, panel_graph_delete_break);
registerFunction("Graph", "Delete (merge)", vk_delete, MOD_KEY.none, panel_graph_delete_merge);
registerFunction("Graph", "Delete (break)", vk_delete, MOD_KEY.shift, panel_graph_delete_break ).setMenu("graph_delete_break", THEME.cross)
registerFunction("Graph", "Delete (merge)", vk_delete, MOD_KEY.none, panel_graph_delete_merge ).setMenu("graph_delete_merge", THEME.cross)
registerFunction("Graph", "Duplicate", "D", MOD_KEY.ctrl, panel_graph_duplicate);
registerFunction("Graph", "Copy", "C", MOD_KEY.ctrl, panel_graph_copy);
registerFunction("Graph", "Paste", "V", MOD_KEY.ctrl, panel_graph_paste);
registerFunction("Graph", "Duplicate", "D", MOD_KEY.ctrl, panel_graph_duplicate ).setMenu("graph_duplicate", THEME.duplicate)
registerFunction("Graph", "Copy", "C", MOD_KEY.ctrl, panel_graph_copy ).setMenu("graph_copy", THEME.copy)
registerFunction("Graph", "Paste", "V", MOD_KEY.ctrl, panel_graph_paste ).setMenu("graph_paste", THEME.paste)
registerFunction("Graph", "Pan", "", MOD_KEY.ctrl, panel_graph_pan);
registerFunction("Graph", "Zoom", "", MOD_KEY.alt | MOD_KEY.ctrl, panel_graph_zoom);
registerFunction("Graph", "Pan", "", MOD_KEY.ctrl, panel_graph_pan ).setMenu("graph_pan")
registerFunction("Graph", "Zoom", "", MOD_KEY.alt | MOD_KEY.ctrl, panel_graph_zoom ).setMenu("graph_zoom")
registerFunction("Graph", "Auto Align", "L", MOD_KEY.none, panel_graph_auto_align);
registerFunction("Graph", "Search", "F", MOD_KEY.ctrl, panel_graph_search);
registerFunction("Graph", "Toggle Minimap", "M", MOD_KEY.ctrl, panel_graph_toggle_minimap);
registerFunction("Graph", "Auto Align", "L", MOD_KEY.none, panel_graph_auto_align ).setMenu("graph_auto_align")
registerFunction("Graph", "Search", "F", MOD_KEY.ctrl, panel_graph_search ).setMenu("graph_search")
registerFunction("Graph", "Toggle Minimap", "M", MOD_KEY.ctrl, panel_graph_toggle_minimap ).setMenu("graph_toggle_minimap")
registerFunction("Graph", "Preview Hovering Node", "", MOD_KEY.none, panel_graph_send_to_preview);
registerFunction("Graph", "Preview Window", "P", MOD_KEY.ctrl, panel_graph_preview_window);
registerFunction("Graph", "Inspect", "", MOD_KEY.none, panel_graph_inspector_panel);
if(!DEMO) registerFunction("Graph", "Export", "", MOD_KEY.none, panel_graph_send_to_export);
registerFunction("Graph", "Toggle Preview", "H", MOD_KEY.none, panel_graph_toggle_preview);
registerFunction("Graph", "Toggle Render", "R", MOD_KEY.none, panel_graph_toggle_render);
registerFunction("Graph", "Toggle Parameters", "M", MOD_KEY.none, panel_graph_toggle_parameter);
registerFunction("Graph", "Enter Group", "", MOD_KEY.none, panel_graph_enter_group);
registerFunction("Graph", "Hide Disconnected", "", MOD_KEY.none, panel_graph_hide_disconnected);
registerFunction("Graph", "Send To Preview", "", MOD_KEY.none, panel_graph_send_to_preview ).setMenu("graph_preview_hovering_node")
registerFunction("Graph", "Send To Preview Window","P", MOD_KEY.ctrl, panel_graph_preview_window ).setMenu("graph_preview_window")
registerFunction("Graph", "Send To Inspector", "", MOD_KEY.none, panel_graph_inspector_panel ).setMenu("graph_inspect")
registerFunction("Graph", "Toggle Preview", "H", MOD_KEY.none, panel_graph_toggle_preview ).setMenu("graph_toggle_preview")
registerFunction("Graph", "Toggle Render", "R", MOD_KEY.none, panel_graph_toggle_render ).setMenu("graph_toggle_render")
registerFunction("Graph", "Toggle Parameters", "M", MOD_KEY.none, panel_graph_toggle_parameter ).setMenu("graph_toggle_parameters")
registerFunction("Graph", "Hide Disconnected", "", MOD_KEY.none, panel_graph_hide_disconnected ).setMenu("graph_hide_disconnected")
registerFunction("Graph", "Open In New Tab", "", MOD_KEY.none, panel_graph_open_group_tab);
registerFunction("Graph", "Set As Tool", "", MOD_KEY.none, panel_graph_set_as_tool);
registerFunction("Graph", "Enter Group", "", MOD_KEY.none, panel_graph_enter_group ).setMenu("graph_enter_group", THEME.group)
registerFunction("Graph", "Open Group In New Tab", "", MOD_KEY.none, panel_graph_open_group_tab ).setMenu("graph_open_in_new_tab", THEME.group)
registerFunction("Graph", "Group", "G", MOD_KEY.ctrl, panel_graph_group ).setMenu("graph_group", THEME.group)
registerFunction("Graph", "Ungroup", "G", MOD_KEY.ctrl | MOD_KEY.shift, panel_graph_ungroup ).setMenu("graph_ungroup", THEME.group)
registerFunction("Graph", "Set As Group Tool", "", MOD_KEY.none, panel_graph_set_as_tool ).setMenu("graph_set_as_tool")
registerFunction("Graph", "Copy Value", "", MOD_KEY.none, panel_graph_doCopyProp);
registerFunction("Graph", "Paste Value", "", MOD_KEY.none, panel_graph_doPasteProp);
registerFunction("Graph", "Create Tunnel", "", MOD_KEY.none, panel_graph_createTunnel);
registerFunction("Graph", "Copy Value", "", MOD_KEY.none, panel_graph_doCopyProp ).setMenu("graph_copy_value")
registerFunction("Graph", "Paste Value", "", MOD_KEY.none, panel_graph_doPasteProp ).setMenu("graph_paste_value")
registerFunction("Graph", "Create Tunnel", "", MOD_KEY.none, panel_graph_createTunnel ).setMenu("graph_create_tunnel")
if(!DEMO) {
registerFunction("Graph", "Export Selected", "E", MOD_KEY.ctrl, panel_graph_export ).setMenu("graph_export_selected")
registerFunction("Graph", "Export Hover", "", MOD_KEY.none, panel_graph_send_to_export ).setMenu("graph_export_hover")
}
}
#endregion
@ -593,7 +597,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
pan.content.locked = true;
}
function send_to_export() { setCurrentExport(node_hover); }
function send_hover_to_export() { setCurrentExport(node_hover); }
function enter_group() { PANEL_GRAPH.addContext(node_hover); }
function hide_disconnected() { hideDisconnected(); }
@ -617,34 +621,25 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
}
#endregion
menu_sent_to_preview = menuItemAction(__txtx("panel_graph_send_to_preview", "Send to preview"), panel_graph_send_to_preview);
menu_send_to_window = menuItemAction(__txtx("panel_graph_preview_window", "Send to preview window"), panel_graph_preview_window);
menu_sent_to_inspector = menuItemAction(__txtx("panel_graph_inspector_panel", "Send to new inspector"), panel_graph_inspector_panel);
menu_send_export = menuItemAction(__txtx("panel_graph_send_to_export", "Send to export"), panel_graph_send_to_export);
menu_toggle_preview = menuItemAction(__txtx("panel_graph_toggle_preview", "Toggle node preview"), panel_graph_toggle_preview);
menu_toggle_render = menuItemAction(__txtx("panel_graph_toggle_render", "Toggle node render"), panel_graph_toggle_render);
menu_toggle_param = menuItemAction(__txtx("panel_graph_toggle_parameter", "Toggle node parameters"), panel_graph_toggle_parameter);
menu_open_group = menuItemAction(__txtx("panel_graph_enter_group", "Open group"), panel_graph_enter_group, THEME.group);
menu_hide_disconnect = menuItemAction(__txtx("panel_graph_hide_disconnected", "Hide stray junctions"), panel_graph_hide_disconnected);
menu_sent_to_preview = MENU_ITEMS.graph_preview_hovering_node;
menu_send_to_window = MENU_ITEMS.graph_preview_window;
menu_sent_to_inspector = MENU_ITEMS.graph_inspect;
menu_send_export = MENU_ITEMS.graph_export_hover;
menu_toggle_preview = MENU_ITEMS.graph_toggle_preview;
menu_toggle_render = MENU_ITEMS.graph_toggle_render;
menu_toggle_param = MENU_ITEMS.graph_toggle_parameters;
menu_hide_disconnect = MENU_ITEMS.graph_hide_disconnected;
menu_open_group_tab = menuItemAction(__txtx("panel_graph_enter_group_new_tab", "Open group in new tab"), panel_graph_open_group_tab, THEME.group);
menu_group_group = menuItemAction(__txt("Group"), panel_graph_group, THEME.group);
menu_group_ungroup = menuItemAction(__txt("Ungroup"), panel_graph_ungroup, THEME.group);
menu_group_tool = menuItemAction(__txt("Set as group tool"), panel_graph_set_as_tool);
menu_open_group = MENU_ITEMS.graph_enter_group;
menu_open_group_tab = MENU_ITEMS.graph_open_in_new_tab;
menu_group_group = MENU_ITEMS.graph_group;
menu_group_ungroup = MENU_ITEMS.graph_ungroup;
menu_group_tool = MENU_ITEMS.graph_set_as_tool;
menu_node_delete_cut = menuItemAction(__txtx("panel_graph_delete_and_cut_connection", "Delete and cut connection"), panel_graph_delete_break, THEME.cross);
menu_node_delete_merge = menuItemAction(__txtx("panel_graph_delete_and_merge_connection", "Delete and merge connection"), panel_graph_delete_merge, THEME.cross);
menu_node_duplicate = menuItemAction(__txt("Duplicate"), panel_graph_duplicate, THEME.duplicate);
menu_node_copy = menuItemAction(__txt("Copy"), panel_graph_copy, THEME.copy);
menu_node_transform = menuItemAction(__txtx("panel_graph_add_transform", "Add transform"), panel_graph_add_transform);
menu_node_canvas = menuItemAction(__txtx("panel_graph_canvas", "Canvas"),
function(_dat) {
return submenuCall(_dat, [
menuItemAction(__txtx("panel_graph_copy_to_canvas", "Copy to canvas"), panel_graph_canvas),
menuItemAction(__txtx("panel_graph_overlay_canvas", "Overlay canvas"), panel_graph_canvas_blend)
]);
}).setIsShelf();
menu_node_delete_cut = MENU_ITEMS.graph_delete_break;
menu_node_delete_merge = MENU_ITEMS.graph_delete_merge;
menu_node_duplicate = MENU_ITEMS.graph_duplicate;
menu_node_copy = MENU_ITEMS.graph_copy;
menu_nodes_align = menuItemGroup(__txtx("panel_graph_align_nodes", "Align"), [
[ [THEME.inspector_surface_halign, 0], function() { node_halign(nodes_selecting, fa_left); } ],
@ -658,16 +653,19 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
[ [THEME.obj_distribute_h, 0], function() { node_hdistribute(nodes_selecting); } ],
[ [THEME.obj_distribute_v, 0], function() { node_vdistribute(nodes_selecting); } ],
]);
menu_nodes_blend = menuItemAction(__txtx("panel_graph_blend_nodes", "Blend nodes"), panel_graph_blend);
menu_nodes_compose = menuItemAction(__txtx("panel_graph_compose_nodes", "Compose nodes"), panel_graph_compose);
menu_nodes_array = menuItemAction(__txtx("panel_graph_array_from_nodes", "Array from nodes"), panel_graph_array);
menu_nodes_group = menuItemAction(__txtx("panel_graph_group_nodes", "Group nodes"), panel_graph_group);
menu_nodes_frame = menuItemAction(__txtx("panel_graph_frame_nodes", "Frame nodes"), panel_graph_frame);
menu_node_copy_prop = menuItemAction(__txtx("panel_graph_copy_prop", "Copy all properties"), panel_graph_doCopyProp);
menu_node_paste_prop = menuItemAction(__txtx("panel_graph_paste_prop", "Paste all properties"), panel_graph_doPasteProp);
menu_node_transform = MENU_ITEMS.graph_transform_node;
menu_nodes_blend = MENU_ITEMS.graph_blend;
menu_nodes_compose = MENU_ITEMS.graph_compose;
menu_nodes_array = MENU_ITEMS.graph_array;
menu_nodes_group = MENU_ITEMS.graph_group;
menu_nodes_frame = MENU_ITEMS.graph_frame;
menu_node_canvas = MENU_ITEMS.graph_canvas;
menu_connection_tunnel = menuItemAction(__txtx("panel_graph_tunnel", "Create tunnels"), panel_graph_createTunnel);
menu_node_copy_prop = MENU_ITEMS.graph_copy_value;
menu_node_paste_prop = MENU_ITEMS.graph_paste_value;
menu_connection_tunnel = MENU_ITEMS.graph_create_tunnel;
// node color
function setSelectingNodeColor(color) {
@ -1325,7 +1323,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
var _to = value_focus.value_to[i];
var _lb = $"[{_to.node.display_name}] {_to.getName()}";
array_push(menu, menuItemAction(_lb, function(data) /*=>*/ { data.params.juncTo.removeFrom(); }, THEME.cross, noone, noone, { juncTo: _to }));
array_push(menu, menuItem(_lb, function(data) /*=>*/ { data.params.juncTo.removeFrom(); }, THEME.cross, noone, noone, { juncTo: _to }));
}
for( var i = 0, n = array_length(value_focus.value_to_loop); i < n; i++ ) {
@ -1333,7 +1331,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
var _to = value_focus.value_to_loop[i];
var _lb = $"[{_to.junc_in.node.display_name}] {_to.junc_in.getName()}";
array_push(menu, menuItemAction(_lb, function(data) /*=>*/ { data.params.juncTo.destroy(); }, _to.icon_24, noone, noone, { juncTo: _to }));
array_push(menu, menuItem(_lb, function(data) /*=>*/ { data.params.juncTo.destroy(); }, _to.icon_24, noone, noone, { juncTo: _to }));
}
} else {
var sep = false;
@ -1343,7 +1341,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
var _jun = value_focus.value_from;
var _lb = $"[{_jun.node.display_name}] {_jun.getName()}";
array_push(menu, menuItemAction(_lb, function(data) /*=>*/ { __junction_hovering.removeFrom(); }, THEME.cross));
array_push(menu, menuItem(_lb, function(data) /*=>*/ { __junction_hovering.removeFrom(); }, THEME.cross));
}
if(value_focus.value_from_loop) {
@ -1351,7 +1349,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
var _jun = value_focus.value_from_loop.junc_out;
var _lb = $"[{_jun.node.display_name}] {_jun.getName()}";
array_push(menu, menuItemAction(_lb, function(data) /*=>*/ { __junction_hovering.removeFromLoop(); }, value_focus.value_from_loop.icon_24));
array_push(menu, menuItem(_lb, function(data) /*=>*/ { __junction_hovering.removeFromLoop(); }, value_focus.value_from_loop.icon_24));
}
}
@ -1393,19 +1391,19 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
if(junction_hovering != noone)
array_push(menu, menu_junc_color, menu_connection_tunnel, -1);
array_push(menu, menuItemAction(__txt("Copy"), panel_graph_copy, THEME.copy).setActive(array_length(nodes_selecting)));
array_push(menu, menuItemAction(__txt("Paste"), panel_graph_paste, THEME.paste).setActive(clipboard_get_text() != ""));
array_push(menu, MENU_ITEMS.graph_copy.setActive(array_length(nodes_selecting)));
array_push(menu, MENU_ITEMS.graph_paste.setActive(clipboard_get_text() != ""));
if(junction_hovering != noone) {
array_push(menu, -1);
if(is_instanceof(junction_hovering, Node_Feedback_Inline)) {
var _jun = junction_hovering.junc_out;
array_push(menu, menuItemAction($"[{_jun.node.display_name}] {_jun.getName()}", function(data) /*=>*/ { __junction_hovering.destroy(); }, THEME.feedback));
array_push(menu, menuItem($"[{_jun.node.display_name}] {_jun.getName()}", function(data) /*=>*/ { __junction_hovering.destroy(); }, THEME.feedback));
} else {
var _jun = junction_hovering.value_from;
array_push(menu, menuItemAction($"[{_jun.node.display_name}] {_jun.getName()}", function(data) /*=>*/ { __junction_hovering.removeFrom(); }, THEME.cross));
array_push(menu, menuItem($"[{_jun.node.display_name}] {_jun.getName()}", function(data) /*=>*/ { __junction_hovering.removeFrom(); }, THEME.cross));
}
}
@ -1794,7 +1792,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
_connect[1].value_from_loop.destroy();
var menu = [
menuItemAction("Feedback", function(data) {
menuItem("Feedback", function(data) {
var junc_in = data.params.junc_in;
var junc_out = data.params.junc_out;
@ -1806,7 +1804,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
}, THEME.feedback_24,,, { junc_in : _connect[1], junc_out : _connect[2] }),
menuItemAction("Loop", function(data) {
menuItem("Loop", function(data) {
var junc_in = data.params.junc_in;
var junc_out = data.params.junc_out;

View file

@ -1,22 +1,22 @@
#region funtion calls
function __fnInit_Inspector() {
registerFunction("Inspector", "Copy property", "C", MOD_KEY.ctrl, panel_inspector_copy_prop);
registerFunction("Inspector", "Paste property", "V", MOD_KEY.ctrl, panel_inspector_paste_prop);
registerFunction("Inspector", "Toggle animation", "I", MOD_KEY.none, panel_inspector_toggle_animation);
registerFunction("", "Color picker", "", MOD_KEY.alt, panel_inspector_color_pick ).setMenu("color_picker")
registerFunction("", "Color picker", "", MOD_KEY.alt, panel_inspector_color_pick);
registerFunction("Inspector", "Copy property", "C", MOD_KEY.ctrl, panel_inspector_copy_prop ).setMenu("inspector_copy_property", THEME.copy)
registerFunction("Inspector", "Paste property", "V", MOD_KEY.ctrl, panel_inspector_paste_prop ).setMenu("inspector_paste_property", THEME.paste)
registerFunction("Inspector", "Toggle animation", "I", MOD_KEY.none, panel_inspector_toggle_animation ).setMenu("inspector_toggle_animation")
registerFunction("Inspector", "Expand All Sections", "", MOD_KEY.none, panel_inspector_section_expand_all);
registerFunction("Inspector", "Collapse All Sections", "", MOD_KEY.none, panel_inspector_section_collapse_all);
registerFunction("Inspector", "Expand All Sections", "", MOD_KEY.none, panel_inspector_section_expand_all ).setMenu("inspector_expand_all_sections")
registerFunction("Inspector", "Collapse All Sections", "", MOD_KEY.none, panel_inspector_section_collapse_all ).setMenu("inspector_collapse_all_sections")
registerFunction("Inspector", "Reset", "", MOD_KEY.none, panel_inspector_reset);
registerFunction("Inspector", "Add", "", MOD_KEY.none, panel_inspector_add);
registerFunction("Inspector", "Remove", "", MOD_KEY.none, panel_inspector_remove);
registerFunction("Inspector", "Combine Axis", "", MOD_KEY.none, panel_inspector_axis_combine);
registerFunction("Inspector", "Separate Axis", "", MOD_KEY.none, panel_inspector_axis_separate);
registerFunction("Inspector", "Use Expression", "", MOD_KEY.none, panel_inspector_use_expression);
registerFunction("Inspector", "Disable Expression", "", MOD_KEY.none, panel_inspector_disable_expression);
registerFunction("Inspector", "Extract Value", "", MOD_KEY.none, panel_inspector_extract_single);
registerFunction("Inspector", "Reset", "", MOD_KEY.none, panel_inspector_reset ).setMenu("inspector_reset")
registerFunction("Inspector", "Add", "", MOD_KEY.none, panel_inspector_add ).setMenu("inspector_add")
registerFunction("Inspector", "Remove", "", MOD_KEY.none, panel_inspector_remove ).setMenu("inspector_remove")
registerFunction("Inspector", "Combine Axis", "", MOD_KEY.none, panel_inspector_axis_combine ).setMenu("inspector_combine_axis")
registerFunction("Inspector", "Separate Axis", "", MOD_KEY.none, panel_inspector_axis_separate ).setMenu("inspector_separate_axis")
registerFunction("Inspector", "Use Expression", "", MOD_KEY.none, panel_inspector_use_expression ).setMenu("inspector_use_expression")
registerFunction("Inspector", "Disable Expression", "", MOD_KEY.none, panel_inspector_disable_expression ).setMenu("inspector_disable_expression")
registerFunction("Inspector", "Extract Value", "", MOD_KEY.none, panel_inspector_extract_single ).setMenu("inspector_extract_value")
}
function panel_inspector_copy_prop() { CALL("inspector_copy_property"); PANEL_INSPECTOR.propSelectCopy(); }
@ -196,22 +196,22 @@ function Panel_Inspector() : PanelContent() constructor {
function junction_extract_single() { if(__dialog_junction == noone) return; __dialog_junction.extractNode(); }
group_menu = [
menuItemAction(__txt("Expand all"), panel_inspector_section_expand_all),
menuItemAction(__txt("Collapse all"), panel_inspector_section_collapse_all),
MENU_ITEMS.inspector_expand_all_sections,
MENU_ITEMS.inspector_collapse_all_sections,
]
__dialog_junction = noone;
menu_junc_reset_value = menuItemAction(__txtx("panel_inspector_reset", "Reset value"), panel_inspector_reset);
menu_junc_add_anim = menuItemAction(__txtx("panel_inspector_add", "Add animation"), panel_inspector_add);
menu_junc_rem_anim = menuItemAction(__txtx("panel_inspector_remove", "Remove animation"), panel_inspector_remove);
menu_junc_combine_axis = menuItemAction(__txtx("panel_inspector_axis_combine", "Combine axis"), panel_inspector_axis_combine);
menu_junc_separate_axis = menuItemAction(__txtx("panel_inspector_axis_separate", "Separate axis"), panel_inspector_axis_separate);
menu_junc_expression_ena = menuItemAction(__txtx("panel_inspector_use_expression", "Use expression"), panel_inspector_use_expression);
menu_junc_expression_dis = menuItemAction(__txtx("panel_inspector_disable_expression", "Disable expression"), panel_inspector_disable_expression);
menu_junc_extract = menuItemAction(__txtx("panel_inspector_extract_single", "Extract to node"), panel_inspector_extract_single);
menu_junc_reset_value = MENU_ITEMS.inspector_reset;
menu_junc_add_anim = MENU_ITEMS.inspector_add;
menu_junc_rem_anim = MENU_ITEMS.inspector_remove;
menu_junc_combine_axis = MENU_ITEMS.inspector_combine_axis;
menu_junc_separate_axis = MENU_ITEMS.inspector_separate_axis;
menu_junc_expression_ena = MENU_ITEMS.inspector_use_expression;
menu_junc_expression_dis = MENU_ITEMS.inspector_disable_expression;
menu_junc_extract = MENU_ITEMS.inspector_extract_value;
menu_junc_copy = menuItemAction(__txt("Copy"), panel_inspector_copy_prop, THEME.copy);
menu_junc_paste = menuItemAction(__txt("Paste"), panel_inspector_paste_prop, THEME.paste);
menu_junc_copy = MENU_ITEMS.inspector_copy_property;
menu_junc_paste = MENU_ITEMS.inspector_paste_property;
function setSelectingItemColor(color) {
if(__dialog_junction == noone) return;
@ -900,11 +900,11 @@ function Panel_Inspector() : PanelContent() constructor {
if(jun.connect_type == JUNCTION_CONNECT.input && jun.extract_node != "") {
if(is_array(jun.extract_node)) {
var ext = menuItemAction(__txtx("panel_inspector_extract_multiple", "Extract to..."), function(_dat) {
var ext = menuItem(__txtx("panel_inspector_extract_multiple", "Extract to..."), function(_dat) {
var arr = [];
for(var i = 0; i < array_length(__dialog_junction.extract_node); i++) {
var _rec = __dialog_junction.extract_node[i];
array_push(arr, menuItemAction(_rec, function(_dat) { __dialog_junction.extractNode(_dat.name); }));
array_push(arr, menuItem(_rec, function(_dat) { __dialog_junction.extractNode(_dat.name); }));
}
return submenuCall(_dat, arr);

View file

@ -1,3 +1,74 @@
#region
function global_fullscreen() { CALL("fullscreen"); winMan_setFullscreen(!window_is_fullscreen); }
function global_project_close() { CALL("close_project"); PANEL_GRAPH.close(); }
function global_project_close_all() { CALL("close_project_all"); for( var i = array_length(PROJECTS) - 1; i >= 0; i-- ) closeProject(PROJECTS[i]); }
function global_theme_reload() { CALL("reload_theme"); loadGraphic(PREFERENCES.theme); resetPanel(); }
function global_render_all() { CALL("render_all"); RENDER_ALL_REORDER }
function global_export_all() {
for (var i = 0, n = array_length(PROJECT.allNodes); i < n; i++) {
var node = PROJECT.allNodes[i];
if(!node.active) continue;
if(instanceof(node) != "Node_Export") continue;
node.doInspectorAction();
}
}
function __fnInit_Global() {
registerFunction("", "New file", "N", MOD_KEY.ctrl, NEW ).setMenu("new_file", THEME.new_file)
if(!DEMO) {
registerFunction("", "Save", "S", MOD_KEY.ctrl, SAVE ).setMenu("save", THEME.save)
registerFunction("", "Save as", "S", MOD_KEY.ctrl | MOD_KEY.shift, SAVE_AS ).setMenu("save_as", THEME.save)
registerFunction("", "Save at", "", MOD_KEY.none, SAVE_AT ).setMenu("save_at", THEME.save)
.setArg([ ARG("project", function() { return PROJECT; }, true), ARG("path", ""), ARG("log", "save at ") ])
registerFunction("", "Save all", "S", MOD_KEY.ctrl | MOD_KEY.alt, SAVE_ALL ).setMenu("save_all", THEME.icon_save_all)
registerFunction("", "Open", "O", MOD_KEY.ctrl, LOAD ).setMenu("open", THEME.noti_icon_file_load)
registerFunction("", "Open Safe", "", MOD_KEY.none, LOAD_SAFE ).setMenu("open_safe", THEME.noti_icon_file_load)
registerFunction("", "Open at", "", MOD_KEY.none, LOAD_AT ).setMenu("open_at", THEME.noti_icon_file_load)
.setArg([ ARG("path", ""), ARG("readonly", false), ARG("override", false) ])
registerFunction("", "Append", "", MOD_KEY.none, APPEND ).setMenu("append", )
.setArg([ ARG("path", ""), ARG("context", function() { return PANEL_GRAPH.getCurrentContext() }, true) ])
registerFunction("", "Import .zip", "", MOD_KEY.none, __IMPORT_ZIP ).setMenu("import_zip", )
registerFunction("", "Export .zip", "", MOD_KEY.none, __EXPORT_ZIP ).setMenu("export_zip", )
registerFunction("", "Recent Files", "", MOD_KEY.none,
function(_dat) {
var arr = [];
for(var i = 0; i < min(10, ds_list_size(RECENT_FILES)); i++) {
var _rec = RECENT_FILES[| i];
array_push(arr, menuItem(_rec, function(_dat) { LOAD_PATH(_dat.name); }));
}
return submenuCall(_dat, arr)
}).setMenu("recent_files",, true)
}
registerFunction("", "Undo", "Z", MOD_KEY.ctrl, UNDO ).setMenu("undo", )
registerFunction("", "Redo", "Z", MOD_KEY.ctrl | MOD_KEY.shift, REDO ).setMenu("redo", )
registerFunction("", "Full panel", "`", MOD_KEY.none, set_focus_fullscreen ).setMenu("full_panel", )
registerFunction("", "Reset layout", vk_f10, MOD_KEY.ctrl, resetPanel ).setMenu("reset_layout", )
registerFunction("", "Fullscreen", vk_f11, MOD_KEY.none, global_fullscreen ).setMenu("fullscreen", )
registerFunction("", "Render all", vk_f5, MOD_KEY.none, global_render_all ).setMenu("render_all", [ THEME.sequence_control, 1 ])
registerFunction("", "Export all", "", MOD_KEY.none, global_export_all ).setMenu("export_all", )
registerFunction("", "Close file", "Q", MOD_KEY.ctrl, global_project_close ).setMenu("close_file", )
registerFunction("", "Close all files", "", MOD_KEY.none, global_project_close_all ).setMenu("close_all_files",)
registerFunction("", "Close program", vk_f4, MOD_KEY.alt, window_close ).setMenu("close_software", )
registerFunction("", "Close project", "", MOD_KEY.none, closeProject ).setMenu("close_project", )
.setArg([ ARG("project", function() { return PROJECT; }, true) ])
registerFunction("", "Reload theme", vk_f10, MOD_KEY.ctrl | MOD_KEY.shift, global_theme_reload ).setMenu("reload_theme", )
}
#endregion
function Panel_Menu() : PanelContent() constructor {
title = __txt("Menu");
auto_pin = true;
@ -15,44 +86,29 @@ function Panel_Menu() : PanelContent() constructor {
if(_right) action_buttons = ["exit", "maximize", "minimize", "fullscreen"];
else action_buttons = ["exit", "minimize", "maximize", "fullscreen"];
#region file
menu_file_nondemo = [
menuItemAction(__txt("New"), NEW, THEME.new_file),
menuItemAction(__txt("Open") + "...", LOAD, THEME.noti_icon_file_load)
.setShiftMenu(menuItemAction(__txt("Open in safe mode") + "...", LOAD_SAFE, THEME.noti_icon_file_load)),
MENU_ITEMS.new_file,
MENU_ITEMS.open,
// .setShiftMenu(menuItemAction(__txt("Open in safe mode") + "...", LOAD_SAFE, THEME.noti_icon_file_load)),
menuItemAction(__txt("Save"), SAVE, THEME.save),
menuItemAction(__txt("Save as") + "...", SAVE_AS, THEME.save),
menuItemAction(__txt("Save all"), SAVE_ALL, THEME.icon_save_all),
menuItemAction(__txt("Recent files"), function(_dat) {
var arr = [];
for(var i = 0; i < min(10, ds_list_size(RECENT_FILES)); i++) {
var _rec = RECENT_FILES[| i];
array_push(arr, menuItemAction(_rec, function(_dat) { LOAD_PATH(_dat.name); }));
}
MENU_ITEMS.save,
MENU_ITEMS.save_as,
MENU_ITEMS.save_all,
MENU_ITEMS.recent_files,
return submenuCall(_dat, arr);
}).setIsShelf(),
menuItemAction(__txtx("panel_menu_auto_save_folder", "Open autosave folder"), open_autosave_folder, THEME.save_auto),
menuItemAction(__txt("Import"), function(_dat) {
var arr = [ menuItemAction(__txt("Portable project (.zip)") + "...", __IMPORT_ZIP), ];
return submenuCall(_dat, arr);
}).setIsShelf(),
menuItemAction(__txt("Export"), function(_dat) {
var arr = [ menuItemAction(__txt("Portable project (.zip)") + "...", __EXPORT_ZIP), ];
return submenuCall(_dat, arr);
}).setIsShelf(),
MENU_ITEMS.autosave_folder,
menuItemAction(__txt("Import"), function(_dat) { var arr = [ MENU_ITEMS.import_zip, ]; return submenuCall(_dat, arr); }).setIsShelf(),
menuItemAction(__txt("Export"), function(_dat) { var arr = [ MENU_ITEMS.export_zip, ]; return submenuCall(_dat, arr); }).setIsShelf(),
-1,
];
menu_file = [
menuItemAction(__txt("Preferences") + "...", call_dialog_preference, THEME.gear),
menuItemAction(__txt("Splash screen"), call_dialog_splash),
MENU_ITEMS.preference,
MENU_ITEMS.splash_screen,
-1,
menuItemAction(__txt("Addons"), function(_dat) {
var arr = [
menuItemAction(__txt("Addons") + "...", call_panel_addon),
MENU_ITEMS.addons,
menuItemAction(__txtx("panel_menu_addons_key", "Key displayer"), function() {
if(instance_exists(addon_key_displayer)) {
instance_destroy(addon_key_displayer);
@ -72,34 +128,30 @@ function Panel_Menu() : PanelContent() constructor {
return submenuCall(_dat, arr);
}, THEME.addon_icon ).setIsShelf(),
-1,
menuItemAction(__txt("Fullscreen"), global_fullscreen),
menuItemAction(__txt("Close current project"), global_project_close),
menuItemAction(__txt("Close all projects"), global_project_close_all),
menuItemAction(__txt("Close program"), window_close),
MENU_ITEMS.fullscreen,
MENU_ITEMS.close_file,
MENU_ITEMS.close_all_files,
MENU_ITEMS.close_software,
];
if(!DEMO) menu_file = array_append(menu_file_nondemo, menu_file);
#endregion
#region help
menu_help = [
menuItemAction(__txtx("panel_menu_help_video", "Tutorial videos"), function() { url_open("https://www.youtube.com/@makhamdev"); }, THEME.youtube),
menuItemAction(__txtx("panel_menu_help_wiki", "Community Wiki"), function() { url_open("https://pixel-composer.fandom.com/wiki/Pixel_Composer_Wiki"); }, THEME.wiki),
menuItem(__txtx("panel_menu_help_video", "Tutorial videos"), function() { url_open("https://www.youtube.com/@makhamdev"); }, THEME.youtube),
menuItem(__txtx("panel_menu_help_wiki", "Community Wiki"), function() { url_open("https://pixel-composer.fandom.com/wiki/Pixel_Composer_Wiki"); }, THEME.wiki),
-1,
menuItemAction(__txtx("panel_menu_local_directory", "Open local directory"), function() { shellOpenExplorer(DIRECTORY); }, THEME.folder),
menuItemAction(__txtx("panel_menu_autosave_directory", "Open autosave directory"), function() { shellOpenExplorer(DIRECTORY + "autosave/"); }, THEME.folder),
menuItemAction(__txtx("panel_menu_reset_default", "Reset default collection, assets"), function() {
menuItem(__txtx("panel_menu_local_directory", "Open local directory"), function() { shellOpenExplorer(DIRECTORY); }, THEME.folder),
menuItem(__txtx("panel_menu_autosave_directory", "Open autosave directory"), function() { shellOpenExplorer(DIRECTORY + "autosave/"); }, THEME.folder),
menuItem(__txtx("panel_menu_reset_default", "Reset default collection, assets"), function() {
zip_unzip("data/Collections.zip", DIRECTORY + "Collections");
zip_unzip("data/Assets.zip", DIRECTORY + "Assets");
}),
-1,
menuItemAction(__txtx("panel_menu_connect_patreon", "Connect to Patreon"), function() { dialogPanelCall(new Panel_Patreon()); }, THEME.patreon),
menuItem(__txtx("panel_menu_connect_patreon", "Connect to Patreon"), function() { dialogPanelCall(new Panel_Patreon()); }, THEME.patreon),
];
#endregion
#region //////// MENU ////////
menuItem_undo = menuItemAction(__txt("Undo"), UNDO, THEME.undo);
menuItem_redo = menuItemAction(__txt("Redo"), REDO, THEME.redo);
menuItem_undo = MENU_ITEMS.undo;
menuItem_redo = MENU_ITEMS.redo;
menus = [
[ __txt("File"), menu_file ],
@ -107,12 +159,12 @@ function Panel_Menu() : PanelContent() constructor {
[ __txt("Edit"), [
menuItem_undo,
menuItem_redo,
menuItemAction(__txt("History"), call_panel_history),
MENU_ITEMS.history,
]],
[ __txt("Preview"), [
menuItemAction(__txtx("panel_menu_center_preview", "Center preview"), panel_preview_focus_content, THEME.icon_center_canvas),
menuItemAction(__txtx("panel_menu_save_current_preview_as", "Save current preview as..."), panel_preview_save_current_frame),
MENU_ITEMS.preview_focus_content,
MENU_ITEMS.preview_save_current_frame,
menuItemGroup(__txtx("panel_menu_preview_background", "Preview background"), [
[ s_preview_transparent, function() { PANEL_PREVIEW.canvas_bg = -1; } ],
[ s_preview_white, function() { PANEL_PREVIEW.canvas_bg = c_white; } ],
@ -121,21 +173,20 @@ function Panel_Menu() : PanelContent() constructor {
]],
[ __txt("Animation"), [
menuItemAction(__txtx("panel_menu_animation_setting", "Animation Settings..."), panel_animation_settings, THEME.animation_setting),
-1,
menuItemAction(__txtx("panel_menu_animation_scaler", "Animation Scaler..."), panel_animation_scale, THEME.animation_timing),
MENU_ITEMS.animation_settings,
MENU_ITEMS.animation_scaler,
]],
[ __txt("Rendering"), [
menuItemAction(__txtx("panel_menu_render_all_nodes", "Render all nodes"), global_render_all, [ THEME.sequence_control, 1 ]),
menuItemAction(__txtx("panel_menu_execute_exports", "Execute all export nodes"), global_export_all),
menuItemAction(__txtx("panel_menu_export_render_all", "Render disabled node when export"),
MENU_ITEMS.render_all,
MENU_ITEMS.export_all,
menuItem(__txtx("panel_menu_export_render_all", "Render disabled node when export"),
function() { PREFERENCES.render_all_export = !PREFERENCES.render_all_export; },,,
function() { return PREFERENCES.render_all_export; }),
]],
[ __txt("Panels"), [
menuItemAction(__txt("Workspace"), function(_dat) {
menuItem(__txt("Workspace"), function(_dat) {
var arr = [], lays = [];
var f = file_find_first(DIRECTORY + "layouts/*", 0);
while(f != "") {
@ -143,7 +194,7 @@ function Panel_Menu() : PanelContent() constructor {
f = file_find_next();
}
array_push(arr, menuItemAction(__txtx("panel_menu_save_layout", "Save layout"), function() {
array_push(arr, menuItem(__txtx("panel_menu_save_layout", "Save layout"), function() {
var dia = dialogCall(o_dialog_file_name, mouse_mx + ui(8), mouse_my + ui(8));
dia.name = PREFERENCES.panel_layout_file;
dia.onModify = function(name) {
@ -152,11 +203,11 @@ function Panel_Menu() : PanelContent() constructor {
};
}));
array_push(arr, menuItemAction(__txtx("panel_menu_reset_layout", "Reset layout"), resetPanel));
array_push(arr, MENU_ITEMS.reset_layout);
array_push(arr, -1);
for(var i = 0; i < array_length(lays); i++) {
array_push(arr, menuItemAction(lays[i],
array_push(arr, menuItem(lays[i],
function(_dat) {
PREFERENCES.panel_layout_file = _dat.name;
PREF_SAVE();
@ -167,70 +218,69 @@ function Panel_Menu() : PanelContent() constructor {
return submenuCall(_dat, arr);
}).setIsShelf(),
-1,
menuItemAction(__txt("Collections"), call_panel_Collection, noone, function() /*=>*/ { return findPanel("Panel_Collection") != noone; } ),
menuItemAction(__txt("Graph"), call_panel_Graph, noone, function() /*=>*/ { return findPanel("Panel_Graph") != noone; } ),
menuItemAction(__txt("Preview"), call_panel_Preview, noone, function() /*=>*/ { return findPanel("Panel_Preview") != noone; } ),
menuItemAction(__txt("Inspector"), call_panel_Inspector, noone, function() /*=>*/ { return findPanel("Panel_Inspector") != noone; } ),
menuItemAction(__txt("Workspace"), call_panel_Workspace, noone, function() /*=>*/ { return findPanel("Panel_Workspace") != noone; } ),
menuItemAction(__txt("Animation"), call_panel_Animation, noone, function() /*=>*/ { return findPanel("Panel_Animation") != noone; } ),
menuItemAction(__txt("Notifications"), call_panel_Notification, noone, function() /*=>*/ { return findPanel("Panel_Notification") != noone; } ),
menuItemAction(__txt("Global Variables"), call_panel_Globalvar, noone, function() /*=>*/ { return findPanel("Panel_Globalvar") != noone; } ),
menuItemAction(__txt("File Explorer"), call_panel_File_Explorer, noone, function() /*=>*/ { return findPanel("Panel_File_Explorer") != noone; } ),
menuItemAction(__txt("Nodes"), function(_dat) {
MENU_ITEMS.collections_panel,
MENU_ITEMS.graph_panel,
MENU_ITEMS.preview_panel,
MENU_ITEMS.inspector_panel,
MENU_ITEMS.workspace_panel,
MENU_ITEMS.animation_panel,
MENU_ITEMS.notification_panel,
MENU_ITEMS.globalvar_panel,
MENU_ITEMS.file_explorer_panel,
menuItem(__txt("Nodes"), function(_dat) {
return submenuCall(_dat, [
menuItemAction(__txt("Align"), call_panel_Node_Align, noone, function() /*=>*/ { return findPanel("Panel_Node_Align") != noone; } ),
menuItemAction(__txt("Nodes"), call_panel_Nodes, noone, function() /*=>*/ { return findPanel("Panel_Nodes") != noone; } ),
menuItemAction(__txt("Tunnels"), call_panel_Tunnels, noone, function() /*=>*/ { return findPanel("Panel_Tunnels") != noone; } ),
MENU_ITEMS.align_panel,
MENU_ITEMS.nodes_panel,
MENU_ITEMS.tunnels_panel,
]);
} ).setIsShelf(),
menuItemAction(__txt("Color"), function(_dat) {
menuItem(__txt("Color"), function(_dat) {
return submenuCall(_dat, [
menuItemAction(__txt("Color"), call_panel_Color, noone, function() /*=>*/ { return findPanel("Panel_Color") != noone; } ),
menuItemAction(__txt("Palettes"), call_panel_Palette, noone, function() /*=>*/ { return findPanel("Panel_Palette") != noone; } ),
menuItemAction(__txt("Gradients"), call_panel_Gradient, noone, function() /*=>*/ { return findPanel("Panel_Gradient") != noone; } ),
-1,
menuItemAction(__txt("Palette Mixer"), call_panel_Palette_Mixer, noone, function() /*=>*/ { return findPanel("Panel_Palette_Mixer") != noone; } ),
MENU_ITEMS.color_panel,
MENU_ITEMS.palettes_panel,
MENU_ITEMS.palettes_mixer_panel,
MENU_ITEMS.gradients_panel,
]);
} ).setIsShelf(),
menuItemAction(__txt("Histogram"), call_panel_Preview_Histogram, noone, function() /*=>*/ { return findPanel("Panel_Preview_Histogram") != noone; } ),
MENU_ITEMS.preview_histogram,
]],
[ __txt("Help"), menu_help ],
];
#endregion
if(TESTING) {
array_push(menus, [ __txt("Dev"), [
menuItemAction(__txtx("panel_debug_console", "Console"), call_panel_Console),
menuItemAction(__txtx("panel_debug_overlay", "Debug overlay"), function() /*=>*/ { show_debug_overlay(true); }),
menuItemAction(__txtx("panel_menu_tester", "Tester"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Test()); dia.destroy_on_click_out = false; }),
MENU_ITEMS.console_panel,
menuItem(__txtx("panel_debug_overlay", "Debug overlay"), function() /*=>*/ { show_debug_overlay(true); }),
menuItem(__txtx("panel_menu_tester", "Tester"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Test()); dia.destroy_on_click_out = false; }),
-1,
menuItemAction(__txtx("panel_menu_test_load_all", "Load all current collections"), function() /*=>*/ { __test_load_current_collections(); }),
menuItemAction(__txtx("panel_menu_test_update_all", "Update all current collections"), function() /*=>*/ { __test_update_current_collections(); }),
menuItemAction(__txtx("panel_menu_test_add_meta", "Add metadata to current collections"), function() /*=>*/ { __test_metadata_current_collections(); }),
menuItemAction(__txtx("panel_menu_test_update_sam", "Update sample projects"), function() /*=>*/ { __test_update_sample_projects(); }),
menuItem(__txtx("panel_menu_test_load_all", "Load all current collections"), function() /*=>*/ { __test_load_current_collections(); }),
menuItem(__txtx("panel_menu_test_update_all", "Update all current collections"), function() /*=>*/ { __test_update_current_collections(); }),
menuItem(__txtx("panel_menu_test_add_meta", "Add metadata to current collections"), function() /*=>*/ { __test_metadata_current_collections(); }),
menuItem(__txtx("panel_menu_test_update_sam", "Update sample projects"), function() /*=>*/ { __test_update_sample_projects(); }),
-1,
menuItemAction(__txtx("panel_menu_test_load_nodes", "Load all nodes"), function() /*=>*/ { __test_load_all_nodes(); }),
menuItemAction(__txtx("panel_menu_test_gen_guide", "Generate node guide"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Node_Data_Gen()); dia.destroy_on_click_out = false; }),
menuItemAction(__txtx("panel_menu_test_gen_theme", "Generate theme object"), function() /*=>*/ { __test_generate_theme(); }),
menuItem(__txtx("panel_menu_test_load_nodes", "Load all nodes"), function() /*=>*/ { __test_load_all_nodes(); }),
menuItem(__txtx("panel_menu_test_gen_guide", "Generate node guide"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Node_Data_Gen()); dia.destroy_on_click_out = false; }),
menuItem(__txtx("panel_menu_test_gen_theme", "Generate theme object"), function() /*=>*/ { __test_generate_theme(); }),
-1,
menuItemAction(__txtx("panel_menu_test_warning", "Display Warning"), function() /*=>*/ { noti_warning("Error message") }),
menuItemAction(__txtx("panel_menu_test_error", "Display Error"), function() /*=>*/ { noti_error("Error message") }),
menuItemAction(__txtx("panel_menu_test_crash", "Force crash"), function() /*=>*/ { print(1 + "a"); }),
menuItem(__txtx("panel_menu_test_warning", "Display Warning"), function() /*=>*/ { noti_warning("Error message") }),
menuItem(__txtx("panel_menu_test_error", "Display Error"), function() /*=>*/ { noti_error("Error message") }),
menuItem(__txtx("panel_menu_test_crash", "Force crash"), function() /*=>*/ { print(1 + "a"); }),
-1,
menuItemAction(__txt("Misc."), function(_dat) {
return submenuCall(_dat, [ menuItemAction(__txtx("panel_menu_node_credit", "Node credit dialog"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Node_Cost()); }), ]);
menuItem(__txt("Misc."), function(_dat) {
return submenuCall(_dat, [ menuItem(__txtx("panel_menu_node_credit", "Node credit dialog"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Node_Cost()); }), ]);
} ).setIsShelf(),
]]);
}
menu_help_steam = array_clone(menu_help);
array_push(menu_help_steam, -1,
menuItemAction(__txtx("panel_menu_steam_workshop", "Steam Workshop"), function() /*=>*/ { steam_activate_overlay_browser("https://steamcommunity.com/app/2299510/workshop/"); }, THEME.steam) );
menuItem(__txtx("panel_menu_steam_workshop", "Steam Workshop"), function() /*=>*/ { steam_activate_overlay_browser("https://steamcommunity.com/app/2299510/workshop/"); }, THEME.steam) );
function onFocusBegin() { PANEL_MENU = self; }
@ -672,7 +722,7 @@ function Panel_Menu() : PanelContent() constructor {
for(var i = 0; i < min(10, ds_list_size(RECENT_FILES)); i++) {
var _rec = RECENT_FILES[| i];
var _dat = RECENT_FILE_DATA[| i];
array_push(arr, menuItemAction(_rec, function(_dat) { LOAD_PATH(_dat.name); }));
array_push(arr, menuItem(_rec, function(_dat) { LOAD_PATH(_dat.name); }));
array_push(tip, [ method(_dat, _dat.getThumbnail), VALUE_TYPE.surface ]);
}

View file

@ -1,3 +1,21 @@
#region funtion calls
function __fnInit_Notification() {
registerFunction("Notifications", "Clear log messages", "", MOD_KEY.none, notification_clear_all ).setMenu("noti_clear_all");
registerFunction("Notifications", "Clear warning messages", "", MOD_KEY.none, notification_clear_log ).setMenu("noti_clear_log");
registerFunction("Notifications", "Clear all notifications", "", MOD_KEY.none, notification_clear_warning ).setMenu("noti_clear_warning");
registerFunction("Notifications", "Open log file", "", MOD_KEY.none, notification_open_log ).setMenu("noti_open_log");
}
function notification_clear_all() { CALL("notification_clear_all"); ds_list_clear(STATUSES); }
function notification_clear_log() { CALL("notification_clear_log"); for( var i = ds_list_size(STATUSES) - 1; i >= 0; i-- ) if(STATUSES[| i].type == NOTI_TYPE.log) ds_list_delete(STATUSES, i); }
function notification_clear_warning() { CALL("notification_clear_warning"); for( var i = ds_list_size(STATUSES) - 1; i >= 0; i-- ) if(STATUSES[| i].type == NOTI_TYPE.warning) ds_list_delete(STATUSES, i); }
function notification_open_log() { CALL("notification_open_log"); shellOpenExplorer(DIRECTORY + "log/log.txt"); }
#endregion
function Panel_Notification() : PanelContent() constructor {
title = __txt("Notifications");
w = ui(720);
@ -9,28 +27,14 @@ function Panel_Notification() : PanelContent() constructor {
current_page = 0;
filter = NOTI_TYPE.log | NOTI_TYPE.warning | NOTI_TYPE.error;
showHeader = false;
noti_selecting = noone;
rightClickMenu = [
menuItemAction(__txtx("noti_clear_log", "Clear log messages"), function() {
for( var i = ds_list_size(STATUSES) - 1; i >= 0; i-- ) {
if(STATUSES[| i].type == NOTI_TYPE.log)
ds_list_delete(STATUSES, i);
}
}),
menuItemAction(__txtx("noti_clear_warn", "Clear warning messages"), function() {
for( var i = ds_list_size(STATUSES) - 1; i >= 0; i-- ) {
if(STATUSES[| i].type == NOTI_TYPE.warning)
ds_list_delete(STATUSES, i);
}
}),
MENU_ITEMS.noti_clear_all,
MENU_ITEMS.noti_clear_log,
MENU_ITEMS.noti_clear_warning,
-1,
menuItemAction(__txtx("noti_clear_all", "Clear all notifications"), function() {
ds_list_clear(STATUSES);
}),
-1,
menuItemAction(__txtx("noti_open_log", "Open log file"), function() {
shellOpenExplorer(DIRECTORY + "log/log.txt");
}),
MENU_ITEMS.noti_open_log,
];
function onResize() {
@ -76,16 +80,13 @@ function Panel_Notification() : PanelContent() constructor {
noti.onClick();
if(mouse_press(mb_right, pFOCUS)) {
var dia = menuCall("notification_menu",,, [
menuItemAction(__txtx("noti_copy_message", "Copy notification message"), function() {
clipboard_set_text(o_dialog_menubox.noti.txt);
}),
menuItemAction(__txtx("noti_delete_message", "Delete notification"), function() {
ds_list_remove(STATUSES, o_dialog_menubox.noti);
}),
],, noti);
noti_selecting = noti;
var dia = menuCall("notification_menu",,, [
menuItem(__txtx("noti_copy_message", "Copy notification message"), function() { clipboard_set_text(noti_selecting.txt); }),
menuItem(__txtx("noti_delete_message", "Delete notification"), function() { ds_list_remove(STATUSES, noti_selecting); }),
]);
dia.noti = noti;
}
}

View file

@ -14,17 +14,17 @@ function Panel_Palette() : PanelContent() constructor {
__save_palette_data = [];
view_label = true;
menu_refresh = menuItemAction(__txt("Refresh"), function() { __initPalette(); });
menu_add = menuItemAction(__txt("Add"), function(_dat) {
menu_refresh = menuItem(__txt("Refresh"), function() { __initPalette(); });
menu_add = menuItem(__txt("Add"), function(_dat) {
return submenuCall(_dat, [
menuItemAction(__txt("File..."), function() {
menuItem(__txt("File..."), function() {
var _p = get_open_filename("hex|*.hex|gpl|*.gpl|Image|.png", "palette");
if(!file_exists_empty(_p)) return;
file_copy(_p, $"{DIRECTORY}Palettes/{filename_name(_p)}");
__initPalette();
}),
menuItemAction(__txt("Lospec..."), function() {
menuItem(__txt("Lospec..."), function() {
fileNameCall("", function(txt) {
if(txt == "") return;
txt = string_lower(txt);
@ -37,8 +37,8 @@ function Panel_Palette() : PanelContent() constructor {
]);
}).setIsShelf();
menu_stretch = menuItemAction(__txt("Stretch"), function() { PREFERENCES.palette_stretch = !PREFERENCES.palette_stretch; }, noone, noone, function() /*=>*/ {return PREFERENCES.palette_stretch});
menu_mini = menuItemAction(__txt("Label"), function() { view_label = !view_label; }, noone, noone, function() /*=>*/ {return view_label});
menu_stretch = menuItem(__txt("Stretch"), function() { PREFERENCES.palette_stretch = !PREFERENCES.palette_stretch; }, noone, noone, function() /*=>*/ {return PREFERENCES.palette_stretch});
menu_mini = menuItem(__txt("Label"), function() { view_label = !view_label; }, noone, noone, function() /*=>*/ {return view_label});
function onResize() {
sp_palettes.resize(w - ui(padding + padding), h - ui(padding + padding));
@ -164,10 +164,10 @@ function Panel_Palette() : PanelContent() constructor {
menu_add,
menu_refresh,
-1,
menuItemAction(__txtx("palette_editor_set_default", "Set as default"), function() {
menuItem(__txtx("palette_editor_set_default", "Set as default"), function() {
PROJECT.setPalette(array_clone(hovering.palette));
}),
menuItemAction(__txtx("palette_editor_delete", "Delete palette"), function() {
menuItem(__txtx("palette_editor_delete", "Delete palette"), function() {
file_delete(hovering.path);
__initPalette();
}),

View file

@ -188,7 +188,7 @@ function Panel_Palette_Mixer() : PanelContent() constructor {
var _b = buttonInstant(THEME.button_hide, _bx, _by, _bs, pal_h, [ mx, my ], pFOCUS, pHOVER, "", THEME.hamburger_s);
if(_b == 2) {
menuCall("",,, [
menuItemAction("Save palette as...", function() {
menuItem("Save palette as...", function() {
var _path = get_save_filename_pxc("Hex paleete|*.hex", "Palette");
if(_path != "") {
var _str = palette_string_hex(palette, false);
@ -392,7 +392,7 @@ function Panel_Palette_Mixer() : PanelContent() constructor {
conn_menu_ctx = [ blnd_hovering ];
menuCall(,,, [
menuItemAction("Delete Blend point", function() { array_delete(palette_data.blends, conn_menu_ctx[0], 1); } ),
menuItem("Delete Blend point", function() { array_delete(palette_data.blends, conn_menu_ctx[0], 1); } ),
]);
}
@ -443,7 +443,7 @@ function Panel_Palette_Mixer() : PanelContent() constructor {
conn_menu_ctx = [ conn[0], conn[1], _con_rat ];
menuCall(,,, [
menuItemAction("New Blend point", function() { array_push(palette_data.blends, { from : conn_menu_ctx[0], to : conn_menu_ctx[1], amount : conn_menu_ctx[2] }) } ),
menuItem("New Blend point", function() { array_push(palette_data.blends, { from : conn_menu_ctx[0], to : conn_menu_ctx[1], amount : conn_menu_ctx[2] }) } ),
]);
}
@ -467,18 +467,18 @@ function Panel_Palette_Mixer() : PanelContent() constructor {
if(mouse_press(mb_right)) {
menuCall(,,, [
menuItemAction("Center view", function() { centerView(); } ),
menuItem("Center view", function() { centerView(); } ),
-1,
menuItemAction("Save mixed...", function() {
menuItem("Save mixed...", function() {
var _path = get_save_filename_pxc("JSON|*.json", "New mixed");
if(_path != "") save_palette_mixer(palette_data, _path);
}, THEME.save),
menuItemAction("Load mixed...", function() {
menuItem("Load mixed...", function() {
var _path = get_open_filename_pxc("JSON|*.json", "");
if(_path != "") palette_data = load_palette_mixer(_path);
}, THEME.noti_icon_file_load),
-1,
menuItemAction("Clear palette", function() { palette_data = { nodes: [], connections: [], blends: [], } }, THEME.cross),
menuItem("Clear palette", function() { palette_data = { nodes: [], connections: [], blends: [], } }, THEME.cross),
]);
}
}

View file

@ -4,6 +4,12 @@ function panel_preset_replace() { CHECK_PANEL_PRESETS CALL("panel_preset_replace
function panel_preset_delete() { CHECK_PANEL_PRESETS CALL("panel_preset_delete"); file_delete(FOCUS_CONTENT.selecting_preset.path); FOCUS_CONTENT.__initPresets(); }
function panel_preset_reset() { CHECK_PANEL_PRESETS CALL("panel_preset_reset"); FOCUS_CONTENT.newPresetFromNode("_default"); }
function __fnInit_Presets() {
registerFunction("Presets", "Replace", "", MOD_KEY.none, panel_preset_replace).setMenu("preset_replace").hidePalette();
registerFunction("Presets", "Delete", "", MOD_KEY.none, panel_preset_delete ).setMenu("preset_delete", THEME.cross).hidePalette();
registerFunction("Presets", "Reset To Default", "", MOD_KEY.none, panel_preset_reset ).setMenu("preset_reset")
}
function Panel_Presets(_node) : PanelContent() constructor {
title = __txt("Presets");
padding = 8;
@ -29,17 +35,13 @@ function Panel_Presets(_node) : PanelContent() constructor {
directory_verify($"{DIRECTORY}Presets/{instanceof(node)}/");
__initPresets();
registerFunction("Presets", "Replace", "", MOD_KEY.none, panel_preset_replace);
registerFunction("Presets", "Delete", "", MOD_KEY.none, panel_preset_delete);
registerFunction("Presets", "Reset To Default", "", MOD_KEY.none, panel_preset_reset);
context_menu = [
menuItemAction(__txt("Replace preset"), panel_preset_replace),
menuItemAction(__txt("Delete"), panel_preset_delete, THEME.cross),
MENU_ITEMS.preset_replace,
MENU_ITEMS.preset_delete,
];
context_def = [
menuItemAction(__txt("Set to default"), panel_preset_reset),
MENU_ITEMS.preset_reset,
];
thumbnail_mask = surface_create(1, 1);

View file

@ -1,39 +1,39 @@
#region funtion calls
function __fnInit_Preview() {
registerFunction("Preview", "Focus content", "F", MOD_KEY.none, panel_preview_focus_content);
registerFunction("Preview", "Save current frame", "S", MOD_KEY.shift, panel_preview_save_current_frame);
registerFunction("Preview", "Save to focused file", "", MOD_KEY.none, panel_preview_saveCurrentFrameToFocus);
registerFunction("Preview", "Save all current frame", "", MOD_KEY.none, panel_preview_save_all_current_frame);
registerFunction("Preview", "Preview window", "P", MOD_KEY.ctrl, panel_preview_preview_window);
registerFunction("Preview", "Toggle grid", "G", MOD_KEY.ctrl, panel_preview_toggle_grid);
registerFunction("Preview", "Focus content", "F", MOD_KEY.none, panel_preview_focus_content ).setMenu("preview_focus_content", THEME.icon_center_canvas)
registerFunction("Preview", "Save current frame", "S", MOD_KEY.shift, panel_preview_save_current_frame ).setMenu("preview_save_current_frame")
registerFunction("Preview", "Save to focused file", "", MOD_KEY.none, panel_preview_saveCurrentFrameToFocus ).setMenu("preview_save_to_focused_file")
registerFunction("Preview", "Save all current frame", "", MOD_KEY.none, panel_preview_save_all_current_frame ).setMenu("preview_save_all_current_frame")
registerFunction("Preview", "Preview window", "P", MOD_KEY.ctrl, panel_preview_preview_window ).setMenu("preview_preview_window")
registerFunction("Preview", "Toggle grid", "G", MOD_KEY.ctrl, panel_preview_toggle_grid ).setMenu("preview_toggle_grid")
registerFunction("Preview", "Pan", "", MOD_KEY.ctrl, panel_preview_pan);
registerFunction("Preview", "Zoom", "", MOD_KEY.alt | MOD_KEY.ctrl, panel_preview_zoom);
registerFunction("Preview", "Pan", "", MOD_KEY.ctrl, panel_preview_pan ).setMenu("preview_pan")
registerFunction("Preview", "Zoom", "", MOD_KEY.alt | MOD_KEY.ctrl, panel_preview_zoom ).setMenu("preview_zoom")
registerFunction("Preview", "3D Front view", vk_numpad1, MOD_KEY.none, panel_preview_3d_view_front);
registerFunction("Preview", "3D Back view", vk_numpad1, MOD_KEY.alt, panel_preview_3d_view_back);
registerFunction("Preview", "3D Right view ", vk_numpad3, MOD_KEY.none, panel_preview_3d_view_right);
registerFunction("Preview", "3D Left view ", vk_numpad3, MOD_KEY.alt, panel_preview_3d_view_left);
registerFunction("Preview", "3D Top view", vk_numpad7, MOD_KEY.none, panel_preview_3d_view_top);
registerFunction("Preview", "3D Bottom view", vk_numpad7, MOD_KEY.alt, panel_preview_3d_view_bottom);
registerFunction("Preview", "3D Front view", vk_numpad1, MOD_KEY.none, panel_preview_3d_view_front ).setMenu("preview_3d_front_view")
registerFunction("Preview", "3D Back view", vk_numpad1, MOD_KEY.alt, panel_preview_3d_view_back ).setMenu("preview_3d_back_view")
registerFunction("Preview", "3D Right view ", vk_numpad3, MOD_KEY.none, panel_preview_3d_view_right ).setMenu("preview_3d_right_view")
registerFunction("Preview", "3D Left view ", vk_numpad3, MOD_KEY.alt, panel_preview_3d_view_left ).setMenu("preview_3d_left_view")
registerFunction("Preview", "3D Top view", vk_numpad7, MOD_KEY.none, panel_preview_3d_view_top ).setMenu("preview_3d_top_view")
registerFunction("Preview", "3D Bottom view", vk_numpad7, MOD_KEY.alt, panel_preview_3d_view_bottom ).setMenu("preview_3d_bottom_view")
registerFunction("Preview", "Scale x1", "1", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(1); });
registerFunction("Preview", "Scale x2", "2", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(2); });
registerFunction("Preview", "Scale x4", "3", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(4); });
registerFunction("Preview", "Scale x8", "4", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(8); });
registerFunction("Preview", "Scale x1", "1", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(1) } ).setMenu("preview_scale_x1")
registerFunction("Preview", "Scale x2", "2", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(2) } ).setMenu("preview_scale_x2")
registerFunction("Preview", "Scale x4", "3", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(4) } ).setMenu("preview_scale_x4")
registerFunction("Preview", "Scale x8", "4", MOD_KEY.none, function() /*=>*/ { panel_preview_set_zoom(8) } ).setMenu("preview_scale_x8")
registerFunction("Preview", "Set Tile Off", "", MOD_KEY.none, panel_preview_set_tile_off);
registerFunction("Preview", "Set Tile Horizontal", "", MOD_KEY.none, panel_preview_set_tile_horizontal);
registerFunction("Preview", "Set Tile Vertical", "", MOD_KEY.none, panel_preview_set_tile_vertical);
registerFunction("Preview", "Set Tile Both", "", MOD_KEY.none, panel_preview_set_tile_both);
registerFunction("Preview", "Toggle Tile", "", MOD_KEY.none, panel_preview_set_tile_toggle);
registerFunction("Preview", "Set Tile Off", "", MOD_KEY.none, panel_preview_set_tile_off ).setMenu("preview_set_tile_off")
registerFunction("Preview", "Set Tile Horizontal", "", MOD_KEY.none, panel_preview_set_tile_horizontal ).setMenu("preview_set_tile_horizontal")
registerFunction("Preview", "Set Tile Vertical", "", MOD_KEY.none, panel_preview_set_tile_vertical ).setMenu("preview_set_tile_vertical")
registerFunction("Preview", "Set Tile Both", "", MOD_KEY.none, panel_preview_set_tile_both ).setMenu("preview_set_tile_both")
registerFunction("Preview", "Toggle Tile", "", MOD_KEY.none, panel_preview_set_tile_toggle ).setMenu("preview_toggle_tile")
registerFunction("Preview", "New Preview Window", "", MOD_KEY.none, panel_preview_new_preview_window);
registerFunction("Preview", "Save Current Frame", "", MOD_KEY.none, panel_preview_saveCurrentFrame);
registerFunction("Preview", "Save All Current Frames", "", MOD_KEY.none, panel_preview_saveAllCurrentFrames);
registerFunction("Preview", "Copy Current Frame", "", MOD_KEY.none, panel_preview_copyCurrentFrame);
registerFunction("Preview", "Copy Color", "", MOD_KEY.none, panel_preview_copy_color);
registerFunction("Preview", "Copy Color Hex", "", MOD_KEY.none, panel_preview_copy_color_hex);
registerFunction("Preview", "New Preview Window", "", MOD_KEY.none, panel_preview_new_preview_window ).setMenu("preview_new_preview_window")
registerFunction("Preview", "Save Current Frame", "", MOD_KEY.none, panel_preview_saveCurrentFrame ).setMenu("preview_save_current_frame")
registerFunction("Preview", "Save All Current Frames", "", MOD_KEY.none, panel_preview_saveAllCurrentFrames ).setMenu("preview_save_all_current_frames")
registerFunction("Preview", "Copy Current Frame", "", MOD_KEY.none, panel_preview_copyCurrentFrame ).setMenu("preview_copy_current_frame", THEME.copy)
registerFunction("Preview", "Copy Color", "", MOD_KEY.none, panel_preview_copy_color ).setMenu("preview_copy_color")
registerFunction("Preview", "Copy Color Hex", "", MOD_KEY.none, panel_preview_copy_color_hex ).setMenu("preview_copy_color_hex")
}
function panel_preview_focus_content() { CALL("preview_focus_content"); PANEL_PREVIEW.fullView(); }
@ -308,10 +308,10 @@ function Panel_Preview() : PanelContent() constructor {
},
function(data) {
menuCall("preview_tile_menu", data.x + ui(28), data.y + ui(28), [
menuItemAction(__txtx("panel_preview_tile_off", "Tile off"), panel_preview_set_tile_off),
menuItemAction(__txtx("panel_preview_tile_horizontal", "Tile horizontal"), panel_preview_set_tile_horizontal),
menuItemAction(__txtx("panel_preview_tile_vertical", "Tile vertical"), panel_preview_set_tile_vertical),
menuItemAction(__txtx("panel_preview_tile_both", "Tile both"), panel_preview_set_tile_both),
MENU_ITEMS.preview_set_tile_off,
MENU_ITEMS.preview_set_tile_horizontal,
MENU_ITEMS.preview_set_tile_vertical,
MENU_ITEMS.preview_set_tile_both,
]);
}
],
@ -370,37 +370,35 @@ function Panel_Preview() : PanelContent() constructor {
[
THEME.lock,
__txtx("panel_preview_lock_preview", "Lock previewing node"),
function() { locked = !locked; },
function() { return !locked; },
function() /*=>*/ { locked = !locked; },
function() /*=>*/ {return !locked},
],
[
THEME.icon_preview_export,
tooltip_export,
function() { saveCurrentFrame(); },
function() { return 0; },
function() /*=>*/ { saveCurrentFrame(); },
function() /*=>*/ {return 0},
],
[
THEME.icon_center_canvas,
tooltip_center,
function() { fullView(); },
function() { return 0; },
function() /*=>*/ { fullView(); },
function() /*=>*/ {return 0},
],
[
THEME.icon_visibility,
__txtx("graph_visibility_title", "Visibility settings"),
function(param) {
dialogPanelCall(new Panel_Preview_View_Setting(self), param.x, param.y, { anchor: ANCHOR.bottom | ANCHOR.left });
},
function() { return 0; },
function(param) /*=>*/ { dialogPanelCall(new Panel_Preview_View_Setting(self), param.x, param.y, { anchor: ANCHOR.bottom | ANCHOR.left }); },
function() /*=>*/ {return 0},
],
];
static d3_view_action_front = function() { d3_camLerp = 1; d3_camLerp_x = 0; d3_camLerp_y = 0; }
static d3_view_action_back = function() { d3_camLerp = 1; d3_camLerp_x = 180; d3_camLerp_y = 0; }
static d3_view_action_right = function() { d3_camLerp = 1; d3_camLerp_x = 90; d3_camLerp_y = 0; }
static d3_view_action_left = function() { d3_camLerp = 1; d3_camLerp_x = -90; d3_camLerp_y = 0; }
static d3_view_action_bottom = function() { d3_camLerp = 1; d3_camLerp_x = 0; d3_camLerp_y = -89; }
static d3_view_action_top = function() { d3_camLerp = 1; d3_camLerp_x = 0; d3_camLerp_y = 89; }
static d3_view_action_front = function() /*=>*/ { d3_camLerp = 1; d3_camLerp_x = 0; d3_camLerp_y = 0; }
static d3_view_action_back = function() /*=>*/ { d3_camLerp = 1; d3_camLerp_x = 180; d3_camLerp_y = 0; }
static d3_view_action_right = function() /*=>*/ { d3_camLerp = 1; d3_camLerp_x = 90; d3_camLerp_y = 0; }
static d3_view_action_left = function() /*=>*/ { d3_camLerp = 1; d3_camLerp_x = -90; d3_camLerp_y = 0; }
static d3_view_action_bottom = function() /*=>*/ { d3_camLerp = 1; d3_camLerp_x = 0; d3_camLerp_y = -89; }
static d3_view_action_top = function() /*=>*/ { d3_camLerp = 1; d3_camLerp_x = 0; d3_camLerp_y = 89; }
#endregion
////============ DATA ============
@ -2124,14 +2122,14 @@ function Panel_Preview() : PanelContent() constructor {
if(mouse_on_preview && mouse_press(mb_right, pFOCUS) && !key_mod_press(SHIFT)) {
menuCall("preview_context_menu",,, [
menuItemAction(__txtx("panel_graph_preview_window", "Send to preview window"), panel_preview_new_preview_window),
MENU_ITEMS.preview_new_preview_window,
-1,
menuItemAction(__txtx("panel_preview_save", "Save current preview as") + "...", panel_preview_saveCurrentFrame),
menuItemAction(__txtx("panel_preview_save_all", "Save all current previews as") + "...", panel_preview_saveAllCurrentFrames),
MENU_ITEMS.preview_save_current_frame,
MENU_ITEMS.preview_save_all_current_frames,
-1,
menuItemAction($"{__txtx("panel_preview_copy_image", "Copy image")}", panel_preview_copyCurrentFrame, THEME.copy),
menuItemAction($"{__txtx("panel_preview_copy_color", "Copy color")} [{sample_color}]", panel_preview_copy_color),
menuItemAction($"{__txtx("panel_preview_copy_hex", "Copy hex")} [{color_get_hex(sample_color)}]", panel_preview_copy_color_hex),
MENU_ITEMS.preview_copy_current_frame,
MENU_ITEMS.preview_copy_color,
MENU_ITEMS.preview_copy_color_hex,
],, getNodePreview());
}

View file

@ -4,6 +4,12 @@ function panel_preview_window_reset() { CHECK_PANEL_PREVIEW_WINDOW CALL("preview
function panel_preview_window_inspect() { CHECK_PANEL_PREVIEW_WINDOW CALL("preview_window_inspect"); PANEL_GRAPH.nodes_selecting = [ FOCUS_CONTENT.node_target ]; }
function panel_preview_window_preview() { CHECK_PANEL_PREVIEW_WINDOW CALL("preview_window_preview"); PANEL_PREVIEW.setNodePreview(FOCUS_CONTENT.node_target); }
function __fnInit_Preview_Window() {
registerFunction("Preview Window", "Reset view", "", MOD_KEY.none, panel_preview_window_reset ).setMenu("preview_window_reset_view")
registerFunction("Preview Window", "Inspect", "", MOD_KEY.none, panel_preview_window_inspect ).setMenu("preview_window_inspect")
registerFunction("Preview Window", "Preview", "", MOD_KEY.none, panel_preview_window_preview ).setMenu("preview_window_preview")
}
function Panel_Preview_Window() : PanelContent() constructor {
min_w = ui(64);
min_h = ui(64);
@ -54,15 +60,11 @@ function Panel_Preview_Window() : PanelContent() constructor {
content_surface = noone;
surfaceCheck();
registerFunction("Preview Window", "Reset view", "", MOD_KEY.none, panel_preview_window_reset);
registerFunction("Preview Window", "Inspect", "", MOD_KEY.none, panel_preview_window_inspect);
registerFunction("Preview Window", "Preview", "", MOD_KEY.none, panel_preview_window_preview);
menu = [
menuItemAction(__txtx("reset_view", "Reset view"), panel_preview_window_reset),
MENU_ITEMS.preview_window_reset_view,
-1,
menuItemAction(__txt("Inspect"), panel_preview_window_inspect),
menuItemAction(__txtx("panel_graph_send_to_preview", "Send to preview"), panel_preview_window_preview),
MENU_ITEMS.preview_window_inspect,
MENU_ITEMS.preview_window_preview,
-1,
]
@ -161,7 +163,7 @@ function Panel_Preview_Window() : PanelContent() constructor {
var o = node_target.outputs[i];
if(o.type != VALUE_TYPE.surface) continue;
array_push(_menu, menuItemAction(o.name, function(_dat) { changeChannel(_dat.index); }));
array_push(_menu, menuItem(o.name, function(_dat) { changeChannel(_dat.index); }));
}
menuCall("preview_window_menu",,, _menu,, node_target);
}

View file

@ -103,9 +103,9 @@ function Panel_Workspace() : PanelContent() constructor {
if(mouse_press(mb_right, pFOCUS)) {
layout_selecting = str;
menuCall("workspace_menu",,, [
menuItemAction(__txt("Select"), apply_space),
menuItemAction(__txtx("workspace_replace_current", "Replace with current"), replace_space),
menuItemAction(__txt("Delete"), delete_space, THEME.cross),
menuItem(__txt("Select"), apply_space),
menuItem(__txtx("workspace_replace_current", "Replace with current"), replace_space),
menuItem(__txt("Delete"), delete_space, THEME.cross),
]);
}
}