mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-12-25 06:26:42 +01:00
palette panel
This commit is contained in:
parent
0e260e2e09
commit
1274fc9405
12 changed files with 163 additions and 70 deletions
|
@ -30,6 +30,8 @@
|
|||
destroy_on_escape = true;
|
||||
destroy_on_click_out = false;
|
||||
anchor = ANCHOR.none;
|
||||
|
||||
init_pressing = mouse_click(mb_left);
|
||||
#endregion
|
||||
|
||||
#region windows
|
||||
|
@ -194,7 +196,7 @@
|
|||
if(!active) return;
|
||||
if(!DIALOG_CLICK) return;
|
||||
|
||||
if(mouse_press(mb_any)) {
|
||||
if(!init_pressing && mouse_press(mb_any)) {
|
||||
if(!isTop()) return;
|
||||
|
||||
for( var i = 0, n = array_length(children); i < n; i++ )
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
/// @description init
|
||||
if(init_pressing && mouse_release(mb_left))
|
||||
init_pressing = false;
|
||||
|
||||
if !ready exit;
|
||||
if !active exit;
|
||||
|
||||
|
|
|
@ -76,22 +76,16 @@ event_inherited();
|
|||
draw_circle_prec(ui(16) + ui(4), yy + ui(16), ui(4), false);
|
||||
}
|
||||
|
||||
if(preset_selecting == i) drawPaletteGrid(pal.palette, ui(16), yy + ui(28), ww, _gs, selector.current_color);
|
||||
else drawPalette(pal.palette, ui(16), yy + ui(28), ww, ui(20));
|
||||
if(preset_selecting == i)
|
||||
var _palRes = drawPaletteGrid(pal.palette, ui(16), yy + ui(28), ww, _gs, selector.current_color);
|
||||
else
|
||||
drawPalette(pal.palette, ui(16), yy + ui(28), ww, ui(20));
|
||||
|
||||
if(!click_block && mouse_click(mb_left, interactable && sFOCUS)) {
|
||||
if(preset_selecting == i && _hover && point_in_rectangle(_m[0], _m[1], ui(16), yy + ui(28), ui(16) + ww, yy + ui(28) + _height)) {
|
||||
var m_ax = _m[0] - ui(16);
|
||||
var m_ay = _m[1] - (yy + ui(28));
|
||||
|
||||
var m_gx = floor(m_ax / _gs);
|
||||
var m_gy = floor(m_ay / _gs);
|
||||
|
||||
var _index = m_gy * col + m_gx;
|
||||
if(_index < pre_amo && _index >= 0) {
|
||||
selector.setColor(pal.palette[_index]);
|
||||
if(preset_selecting == i && _hover && _palRes.hoverIndex > noone) {
|
||||
selector.setColor(_palRes.hoverColor);
|
||||
selector.setHSV();
|
||||
}
|
||||
|
||||
} else if(isHover) {
|
||||
preset_selecting = i;
|
||||
click_block = true;
|
||||
|
|
|
@ -22,6 +22,11 @@ event_inherited();
|
|||
instance_destroy();
|
||||
});
|
||||
|
||||
function setName(_name) {
|
||||
self.name = _name;
|
||||
return self;
|
||||
}
|
||||
|
||||
WIDGET_CURRENT = tb_name;
|
||||
KEYBOARD_STRING = "";
|
||||
#endregion
|
|
@ -9,6 +9,5 @@
|
|||
draw_text(dialog_x + ui(8), dialog_y + dialog_h / 2, __txt("Name"));
|
||||
|
||||
tb_name.setFocusHover(sFOCUS, sHOVER);
|
||||
tb_name.draw(dialog_x + ui(64), dialog_y + ui(8), dialog_w - ui(72), dialog_h - ui(16),
|
||||
name, mouse_ui);
|
||||
tb_name.draw(dialog_x + ui(64), dialog_y + ui(8), dialog_w - ui(72), dialog_h - ui(16), name, mouse_ui);
|
||||
#endregion
|
|
@ -190,27 +190,18 @@ event_inherited();
|
|||
}
|
||||
|
||||
if(palette_selecting == i)
|
||||
drawPaletteGrid(pal.palette, ui(16), yy + ui(28), ww, _gs);
|
||||
var _palRes = drawPaletteGrid(pal.palette, ui(16), yy + ui(28), ww, _gs);
|
||||
else
|
||||
drawPalette(pal.palette, ui(16), yy + ui(28), ww, ui(20));
|
||||
|
||||
if(!click_block && mouse_click(mb_left, interactable && sFOCUS)) {
|
||||
if(palette_selecting == i && _hover && point_in_rectangle(_m[0], _m[1], ui(16), yy + ui(28), ui(16) + ww, yy + ui(28) + _height)) {
|
||||
var m_ax = _m[0] - ui(16);
|
||||
var m_ay = _m[1] - (yy + ui(28));
|
||||
|
||||
var m_gx = floor(m_ax / _gs);
|
||||
var m_gy = floor(m_ay / _gs);
|
||||
|
||||
var _index = m_gy * col + m_gx;
|
||||
if(_index < pre_amo && _index >= 0) {
|
||||
var c = pal.palette[_index];
|
||||
|
||||
if(palette_selecting == i && _hover && _palRes.hoverIndex > noone) {
|
||||
var c = _palRes.hoverColor;
|
||||
if(is_real(c)) c = cola(c);
|
||||
|
||||
selector.setColor(c);
|
||||
selector.setHSV();
|
||||
}
|
||||
|
||||
} else if(isHover) {
|
||||
palette_selecting = i;
|
||||
click_block = true;
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
/// @description network
|
||||
var _id = async_load[? "id"];
|
||||
|
||||
if(ds_map_exists(global.FILE_LOAD_ASYNC, async_load[? "id"])) {
|
||||
var cb = global.FILE_LOAD_ASYNC[? async_load[? "id"]];
|
||||
var callback = cb[0];
|
||||
|
@ -7,4 +9,33 @@ if(ds_map_exists(global.FILE_LOAD_ASYNC, async_load[? "id"])) {
|
|||
callback(arguments);
|
||||
}
|
||||
|
||||
if(PALETTE_LOSPEC && _id == PALETTE_LOSPEC) {
|
||||
PALETTE_LOSPEC = 0;
|
||||
if (async_load[? "status"] != 0) exit;
|
||||
|
||||
var res = ds_map_find_value(async_load, "result");
|
||||
var resJson = json_try_parse(res, -1);
|
||||
|
||||
if(resJson == -1) exit;
|
||||
if(!is_struct(resJson)) exit;
|
||||
if(!struct_has(resJson, "colors")) exit;
|
||||
|
||||
var _name = resJson.name;
|
||||
var _auth = resJson.author;
|
||||
var _colr = resJson.colors;
|
||||
|
||||
if(!is_array(_colr)) exit;
|
||||
|
||||
_name = string_replace_all(_name, "-", " ");
|
||||
|
||||
var _path = $"{DIRECTORY}Palettes/{_name}.hex"
|
||||
var _f = file_text_open_write(_path);
|
||||
for (var i = 0, n = array_length(_colr); i < n; i++)
|
||||
file_text_write_string(_f, $"{_colr[i]}\n");
|
||||
file_text_close(_f);
|
||||
__initPalette();
|
||||
|
||||
noti_status($"Loaded palette: {_name} by {_auth} completed.", noone, true);
|
||||
}
|
||||
|
||||
asyncLoad(async_load);
|
|
@ -3,22 +3,22 @@
|
|||
"%Name":"o_main",
|
||||
"eventList":[
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":64,"eventType":8,"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":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":2,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":62,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":1,"eventType":2,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":75,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":4,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":3,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":1,"eventType":5,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":75,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":69,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":68,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":60,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":70,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":20,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":68,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":69,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":70,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":75,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":64,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":75,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":1,"eventType":9,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
{"$GMEvent":"","%Name":"","collisionObjectId":null,"eventNum":1,"eventType":10,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
|
||||
],
|
||||
|
|
|
@ -225,17 +225,26 @@ function drawPalette(_pal, _x, _y, _w, _h, _a = 1) { #region
|
|||
}
|
||||
} #endregion
|
||||
|
||||
function drawPaletteGrid(_pal, _x, _y, _w, _gs = 24, c_color = -1) { #region
|
||||
function drawPaletteGrid(_pal, _x, _y, _w, _gs = 24, params = {}) { #region
|
||||
var c_color = struct_try_get(params, "color", -1);
|
||||
var _stretch = struct_try_get(params, "stretch", false);
|
||||
var _mx = struct_try_get(params, "mx", -1);
|
||||
var _my = struct_try_get(params, "my", -1);
|
||||
|
||||
var amo = array_length(_pal);
|
||||
var col = floor(_w / _gs);
|
||||
var row = ceil(amo / col);
|
||||
var cx = -1, cy = -1;
|
||||
var _h = row * _gs;
|
||||
|
||||
var _gw = _stretch? _w / (min(col, amo)) : _gs;
|
||||
var _hov = noone;
|
||||
var _hcc = noone;
|
||||
|
||||
for(var i = 0; i < amo; i++) {
|
||||
var _cc = safe_mod(i, col);
|
||||
var _rr = floor(i / col);
|
||||
var _x0 = _x + _cc * _gs;
|
||||
var _x0 = _x + _cc * _gw;
|
||||
var _y0 = _y + _rr * _gs;
|
||||
var _i = 0;
|
||||
|
||||
|
@ -258,7 +267,11 @@ function drawPaletteGrid(_pal, _x, _y, _w, _gs = 24, c_color = -1) { #region
|
|||
}
|
||||
}
|
||||
|
||||
draw_sprite_stretched_ext(THEME.palette_mask, _i, _x0, _y0 + 1, _gs, _gs, _pal[i], 1);
|
||||
draw_sprite_stretched_ext(THEME.palette_mask, _i, _x0, _y0 + 1, _cc == col - 1? _gw : ceil(_gw), _gs, _pal[i], 1);
|
||||
if(point_in_rectangle(_mx, _my, _x0, _y0, _x0 + _gw, _y0 + _gs)) {
|
||||
_hov = i;
|
||||
_hcc = _pal[i];
|
||||
}
|
||||
|
||||
var _same = (c_color & 0x00FFFFFF) == (_pal[i] & 0x00FFFFFF);
|
||||
if(c_color >= 0 && _same) {
|
||||
|
@ -269,8 +282,12 @@ function drawPaletteGrid(_pal, _x, _y, _w, _gs = 24, c_color = -1) { #region
|
|||
|
||||
if(cx != -1) {
|
||||
var _pd = ui(5);
|
||||
draw_sprite_stretched_ext(THEME.palette_selecting, 0, cx - _pd, cy + 1 - _pd, _gs + _pd * 2, _gs + _pd * 2);
|
||||
draw_sprite_stretched_ext(THEME.palette_selecting, 0, cx - _pd, cy + 1 - _pd, _gw + _pd * 2, _gs + _pd * 2);
|
||||
}
|
||||
|
||||
return _h;
|
||||
return {
|
||||
height: _h,
|
||||
hoverIndex: _hov,
|
||||
hoverColor: _hcc,
|
||||
};
|
||||
} #endregion
|
|
@ -79,8 +79,10 @@ function loadPalette(path) { #region
|
|||
return pal;
|
||||
} #endregion
|
||||
|
||||
globalvar PALETTES;
|
||||
globalvar PALETTES, PALETTE_LOSPEC;
|
||||
|
||||
PALETTES = [];
|
||||
PALETTE_LOSPEC = 0;
|
||||
|
||||
function __initPalette() {
|
||||
PALETTES = [];
|
||||
|
|
|
@ -13,6 +13,31 @@ function Panel_Palette() : PanelContent() constructor {
|
|||
|
||||
__save_palette_data = [];
|
||||
|
||||
menu_refresh = menuItem(__txt("Refresh"), function() { __initPalette(); });
|
||||
menu_add = menuItem(__txt("Add"), function(_dat) {
|
||||
return submenuCall(_dat, [
|
||||
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();
|
||||
}),
|
||||
menuItem(__txt("Lospec..."), function() {
|
||||
fileNameCall("", function(txt) {
|
||||
if(txt == "") return;
|
||||
txt = string_lower(txt);
|
||||
txt = string_replace_all(txt, " ", "-");
|
||||
|
||||
var _url = $"https://Lospec.com/palette-list{txt}.json";
|
||||
PALETTE_LOSPEC = http_get(_url);
|
||||
}).setName("Palette")
|
||||
}),
|
||||
]);
|
||||
}).setIsShelf();
|
||||
|
||||
menu_stretch = menuItem(__txt("Stretch"), function() { PREFERENCES.palette_stretch = !PREFERENCES.palette_stretch; }, noone, noone, function() /*=>*/ {return PREFERENCES.palette_stretch});
|
||||
|
||||
function onResize() {
|
||||
sp_palettes.resize(w - ui(padding + padding), h - ui(padding + padding));
|
||||
}
|
||||
|
@ -22,9 +47,9 @@ function Panel_Palette() : PanelContent() constructor {
|
|||
var ww = sp_palettes.surface_w;
|
||||
var hh = ui(28);
|
||||
var _gs = grid_size;
|
||||
var _height;
|
||||
var yy = _y;
|
||||
var cur = CURRENT_COLOR;
|
||||
var _height;
|
||||
|
||||
if(pHOVER && key_mod_press(CTRL)) {
|
||||
if(mouse_wheel_down()) grid_size_to = clamp(grid_size_to - ui(4), ui(8), ui(32));
|
||||
|
@ -57,15 +82,34 @@ function Panel_Palette() : PanelContent() constructor {
|
|||
hh += _add_h + ui(8);
|
||||
}
|
||||
|
||||
if(PALETTE_LOSPEC) {
|
||||
var _add_h = ui(28);
|
||||
var _add_w = ui(64);
|
||||
var _add_x = ww / 2 + sin(current_time / 400) * (ww - _add_w) / 2 - _add_w / 2;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.timeline_node, 0, 0, yy, ww, _add_h, COLORS._main_value_positive, .4);
|
||||
draw_sprite_stretched_ext(THEME.timeline_node, 0, _add_x, yy, _add_w, _add_h, COLORS._main_value_positive, .3);
|
||||
draw_sprite_stretched_ext(THEME.timeline_node, 1, 0, yy, ww, _add_h, COLORS._main_value_positive, .7);
|
||||
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_value_positive);
|
||||
draw_text_add(ww / 2, yy + _add_h / 2, __txt("Loading Lospec Palette..."));
|
||||
|
||||
yy += _add_h + ui(8);
|
||||
hh += _add_h + ui(8);
|
||||
}
|
||||
|
||||
if(mouse_release(mb_left)) drag_from_self = false;
|
||||
|
||||
var right_clicked = false;
|
||||
var pd = lerp(ui(4), ui(10), (grid_size - ui(8)) / (ui(32) - ui(8)));
|
||||
var param = { color: cur, stretch : PREFERENCES.palette_stretch, mx : _m[0], my : _m[1] };
|
||||
|
||||
for(var i = 0; i < array_length(PALETTES); i++) {
|
||||
var preset = PALETTES[i];
|
||||
var pre_amo = array_length(preset.palette);
|
||||
var col = floor((ww - ui(20)) / _gs);
|
||||
var col = floor((ww - pd * 2) / _gs);
|
||||
var row = ceil(pre_amo / col);
|
||||
|
||||
_height = ui(34) + row * _gs;
|
||||
_height = ui(21) + row * _gs + pd;
|
||||
|
||||
var isHover = pHOVER && point_in_rectangle(_m[0], _m[1], 0, max(0, yy), ww, min(sp_palettes.h, yy + _height));
|
||||
|
||||
|
@ -74,29 +118,21 @@ function Panel_Palette() : PanelContent() constructor {
|
|||
draw_sprite_stretched_ext(THEME.node_active, 1, 0, yy, ww, _height, COLORS._main_accent, 1);
|
||||
|
||||
draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text_sub);
|
||||
draw_text(ui(10), yy + ui(2), preset.name);
|
||||
drawPaletteGrid(preset.palette, ui(10), yy + ui(24), ww - ui(20), _gs, cur);
|
||||
draw_text(pd, yy + ui(2), preset.name);
|
||||
var _palRes = drawPaletteGrid(preset.palette, pd, yy + ui(20), ww - pd * 2, _gs, param);
|
||||
|
||||
if(isHover) {
|
||||
if(mouse_press(mb_left, pFOCUS)) {
|
||||
if(point_in_rectangle(_m[0], _m[1], ui(10), yy + ui(24), ww - ui(10), yy + ui(24) + _height)) {
|
||||
var m_ax = _m[0] - ui(10);
|
||||
var m_ay = _m[1] - (yy + ui(24));
|
||||
|
||||
var m_gx = floor(m_ax / _gs);
|
||||
var m_gy = floor(m_ay / _gs);
|
||||
|
||||
var _index = m_gy * col + m_gx;
|
||||
if(_index < pre_amo && _index >= 0) {
|
||||
CURRENT_COLOR = array_safe_get_fast(preset.palette, _index);
|
||||
if(_palRes.hoverIndex > noone) {
|
||||
CURRENT_COLOR = _palRes.hoverColor;
|
||||
|
||||
DRAGGING = {
|
||||
type: "Color",
|
||||
data: array_safe_get_fast(preset.palette, _index)
|
||||
data: _palRes.hoverColor
|
||||
}
|
||||
MESSAGE = DRAGGING;
|
||||
}
|
||||
} else if(point_in_rectangle(_m[0], _m[1], ui(10), yy, ww - ui(10), yy + ui(24))) {
|
||||
|
||||
} else if(point_in_rectangle(_m[0], _m[1], pd, yy, ww - pd, yy + ui(20))) {
|
||||
DRAGGING = {
|
||||
type: "Palette",
|
||||
data: preset.palette
|
||||
|
@ -108,11 +144,11 @@ function Panel_Palette() : PanelContent() constructor {
|
|||
|
||||
if(mouse_press(mb_right, pFOCUS)) {
|
||||
hovering = preset;
|
||||
right_clicked = true;
|
||||
|
||||
menuCall("palette_window_preset_menu",,, [
|
||||
menuItem(__txt("Refresh"), function() {
|
||||
__initPalette();
|
||||
}),
|
||||
menu_add,
|
||||
menu_refresh,
|
||||
-1,
|
||||
menuItem(__txtx("palette_editor_set_default", "Set as default"), function() {
|
||||
PROJECT.setPalette(array_clone(hovering.palette));
|
||||
|
@ -121,12 +157,23 @@ function Panel_Palette() : PanelContent() constructor {
|
|||
file_delete(hovering.path);
|
||||
__initPalette();
|
||||
}),
|
||||
-1,
|
||||
menu_stretch,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
yy += _height + ui(8);
|
||||
hh += _height + ui(8);
|
||||
yy += _height + ui(4);
|
||||
hh += _height + ui(4);
|
||||
}
|
||||
|
||||
if(!right_clicked && mouse_press(mb_right, pFOCUS)) {
|
||||
menuCall("palette_window_preset_menu_empty",,, [
|
||||
menu_add,
|
||||
menu_refresh,
|
||||
-1,
|
||||
menu_stretch,
|
||||
]);
|
||||
}
|
||||
|
||||
return hh;
|
||||
|
|
|
@ -104,6 +104,8 @@
|
|||
PREFERENCES.collection_preview_speed = 60;
|
||||
PREFERENCES.collection_scale = 1;
|
||||
|
||||
PREFERENCES.palette_stretch = false;
|
||||
|
||||
PREFERENCES.pan_mouse_key = mb_middle;
|
||||
#endregion
|
||||
|
||||
|
|
Loading…
Reference in a new issue