mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-12-25 14:36:13 +01:00
1.17.4
This commit is contained in:
parent
10e4041a32
commit
168286b449
6 changed files with 105 additions and 52 deletions
Binary file not shown.
|
@ -28,7 +28,8 @@ if(winMan_isMinimized()) exit;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VALUE_TYPE.curve :
|
case VALUE_TYPE.curve :
|
||||||
draw_tooltip_text($"[{__txt("Curve Object")}]");
|
// draw_tooltip_text($"[{__txt("Curve Object")}]");
|
||||||
|
draw_tooltip_curve(content);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VALUE_TYPE.color :
|
case VALUE_TYPE.color :
|
||||||
|
|
|
@ -270,3 +270,43 @@ function draw_tooltip_buffer(buff) { #region
|
||||||
draw_text(mx + pd, my + th + pd, $"...({buffer_get_size(buff)} bytes)");
|
draw_text(mx + pd, my + th + pd, $"...({buffer_get_size(buff)} bytes)");
|
||||||
}
|
}
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
function draw_tooltip_curve(curve) { #region
|
||||||
|
|
||||||
|
var ww = ui(160);
|
||||||
|
var hh = ui(160);
|
||||||
|
|
||||||
|
var pd = ui(8);
|
||||||
|
var mx = min(mouse_mx + ui(16), WIN_W - (ww + pd * 2));
|
||||||
|
var my = min(mouse_my + ui(16), WIN_H - (hh + pd * 2));
|
||||||
|
|
||||||
|
draw_sprite_stretched(THEME.textbox, 3, mx, my, ww + pd * 2, hh + pd * 2);
|
||||||
|
draw_sprite_stretched(THEME.textbox, 0, mx, my, ww + pd * 2, hh + pd * 2);
|
||||||
|
|
||||||
|
var x0 = mx + pd;
|
||||||
|
var x1 = x0 + ww;
|
||||||
|
var y0 = my + pd;
|
||||||
|
var y1 = y0 + hh;
|
||||||
|
|
||||||
|
var st = 0.1;
|
||||||
|
|
||||||
|
draw_set_color(COLORS.widget_curve_line);
|
||||||
|
draw_set_alpha(0.15);
|
||||||
|
|
||||||
|
for( var i = st; i < 1; i += st ) {
|
||||||
|
var _y0 = y0 + hh * (1 - i);
|
||||||
|
draw_line(x0, _y0, x1, _y0);
|
||||||
|
|
||||||
|
var _x0 = x0 + ww * i;
|
||||||
|
draw_line(_x0, y0, _x0, y1);
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_set_alpha(1);
|
||||||
|
|
||||||
|
draw_set_color(COLORS._main_accent);
|
||||||
|
draw_curve(x0, y0, ww, hh, curve);
|
||||||
|
|
||||||
|
draw_set_color(COLORS.widget_curve_outline);
|
||||||
|
draw_rectangle(x0, y0, x1, y1, true);
|
||||||
|
|
||||||
|
} #endregion
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
LATEST_VERSION = 11700;
|
LATEST_VERSION = 11700;
|
||||||
VERSION = 11740;
|
VERSION = 11740;
|
||||||
SAVE_VERSION = 11700;
|
SAVE_VERSION = 11700;
|
||||||
VERSION_STRING = "1.17.4.006";
|
VERSION_STRING = "1.17.4";
|
||||||
BUILD_NUMBER = 11740;
|
BUILD_NUMBER = 11740;
|
||||||
|
|
||||||
globalvar HOTKEYS, HOTKEY_CONTEXT;
|
globalvar HOTKEYS, HOTKEY_CONTEXT;
|
||||||
|
|
|
@ -248,11 +248,14 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
|
|
||||||
#region ++++ context menu ++++
|
#region ++++ context menu ++++
|
||||||
keyframe_menu = [ #region
|
keyframe_menu = [ #region
|
||||||
|
|
||||||
menuItem(__txtx("panel_animation_lock_y", "Lock/Unlock Y easing"), function() {
|
menuItem(__txtx("panel_animation_lock_y", "Lock/Unlock Y easing"), function() {
|
||||||
for( var i = 0, n = array_length(keyframe_selecting); i < n; i++ ) {
|
for( var i = 0, n = array_length(keyframe_selecting); i < n; i++ ) {
|
||||||
var k = keyframe_selecting[i];
|
var k = keyframe_selecting[i];
|
||||||
k.ease_y_lock = !k.ease_y_lock;
|
k.ease_y_lock = !k.ease_y_lock;
|
||||||
} }),
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
menuItemGroup(__txtx("panel_animation_ease_in", "Ease in"), [
|
menuItemGroup(__txtx("panel_animation_ease_in", "Ease in"), [
|
||||||
[ [THEME.timeline_ease, 0], function() {
|
[ [THEME.timeline_ease, 0], function() {
|
||||||
for( var i = 0, n = array_length(keyframe_selecting); i < n; i++ ) {
|
for( var i = 0, n = array_length(keyframe_selecting); i < n; i++ ) {
|
||||||
|
@ -673,7 +676,7 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
var t = (_keyframe.time + 1) * timeline_scale + timeline_shift;
|
var t = (_keyframe.time + 1) * timeline_scale + timeline_shift;
|
||||||
_keyframe.dopesheet_x = t;
|
_keyframe.dopesheet_x = t;
|
||||||
|
|
||||||
draw_sprite_ui_uniform(THEME.timeline_keyframe, _keyframe.getDrawIndex(), t, key_y, 1, COLORS.panel_animation_keyframe_hide);
|
draw_sprite_ui_uniform(THEME.timeline_keyframe, 0, t, key_y, 1, COLORS.panel_animation_keyframe_hide);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1093,15 +1096,46 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
#endregion
|
#endregion
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
function editKeyframe(keyframe, _x = mouse_mx + ui(8), _y = mouse_my + ui(8)) {
|
||||||
|
var _wid = keyframe.anim.prop.editWidget;
|
||||||
|
__keyframe_editing = keyframe;
|
||||||
|
|
||||||
|
switch(animator.prop.type) {
|
||||||
|
case VALUE_TYPE.color :
|
||||||
|
switch(animator.prop.display_type) {
|
||||||
|
case VALUE_DISPLAY.palette :
|
||||||
|
var dialog = dialogCall(o_dialog_palette, WIN_W / 2, WIN_H / 2);
|
||||||
|
dialog.setDefault(keyframe.value);
|
||||||
|
dialog.onApply = function(val) { __keyframe_editing.value = val; };
|
||||||
|
dialog.drop_target = _wid;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default :
|
||||||
|
var dialog = dialogCall(o_dialog_color_selector, WIN_W / 2, WIN_H / 2);
|
||||||
|
dialog.setDefault(keyframe.value);
|
||||||
|
dialog.selector.onApply = function(val) { __keyframe_editing.value = val; };
|
||||||
|
dialog.onApply = function(val) { __keyframe_editing.value = val; };
|
||||||
|
dialog.drop_target = _wid;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VALUE_TYPE.gradient :
|
||||||
|
var dialog = dialogCall(o_dialog_gradient, WIN_W / 2, WIN_H / 2);
|
||||||
|
dialog.setDefault(keyframe.value.clone());
|
||||||
|
dialog.onApply = function(val) { __keyframe_editing.value = val; };
|
||||||
|
dialog.drop_target = _wid;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default :
|
||||||
|
dialogCall(o_dialog_value_editor, _x, _y).setKey(keyframe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function _drawDopesheetAnimatorKeysBG(animator, msx, msy) { #region
|
function _drawDopesheetAnimatorKeysBG(animator, msx, msy) { #region
|
||||||
var prop_dope_y = animator.y;
|
var prop_dope_y = animator.y;
|
||||||
var key_hover = noone;
|
var key_hover = noone;
|
||||||
var key_list = animator.values;
|
var key_list = animator.values;
|
||||||
|
|
||||||
//if(animator.prop.name == "Active") { #region active prop
|
|
||||||
|
|
||||||
//} #endregion
|
|
||||||
|
|
||||||
if((animator.prop.on_end == KEYFRAME_END.loop || animator.prop.on_end == KEYFRAME_END.ping) && ds_list_size(key_list) > 1) {
|
if((animator.prop.on_end == KEYFRAME_END.loop || animator.prop.on_end == KEYFRAME_END.ping) && ds_list_size(key_list) > 1) {
|
||||||
var keyframe_s = animator.prop.loop_range == -1? key_list[| 0].time : key_list[| ds_list_size(key_list) - 1 - animator.prop.loop_range].time;
|
var keyframe_s = animator.prop.loop_range == -1? key_list[| 0].time : key_list[| ds_list_size(key_list) - 1 - animator.prop.loop_range].time;
|
||||||
var keyframe_e = key_list[| ds_list_size(key_list) - 1].time;
|
var keyframe_e = key_list[| ds_list_size(key_list) - 1].time;
|
||||||
|
@ -1155,7 +1189,6 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
return key_hover;
|
return key_hover;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
//// DRAW KEYFRAMES
|
|
||||||
__keyframe_editing = noone;
|
__keyframe_editing = noone;
|
||||||
|
|
||||||
function _drawDopesheetAnimatorKeys(_cont, animator, msx, msy) { #region
|
function _drawDopesheetAnimatorKeys(_cont, animator, msx, msy) { #region
|
||||||
|
@ -1192,6 +1225,7 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
if(pHOVER && point_in_circle(msx, msy, t, prop_y, ui(8))) {
|
if(pHOVER && point_in_circle(msx, msy, t, prop_y, ui(8))) {
|
||||||
cc = COLORS.panel_animation_keyframe_selected;
|
cc = COLORS.panel_animation_keyframe_selected;
|
||||||
key_hover = keyframe;
|
key_hover = keyframe;
|
||||||
|
if(!instance_exists(o_dialog_menubox))
|
||||||
TOOLTIP = [ keyframe.value, animator.prop.type ];
|
TOOLTIP = [ keyframe.value, animator.prop.type ];
|
||||||
|
|
||||||
if(pFOCUS && !key_mod_press(SHIFT)) {
|
if(pFOCUS && !key_mod_press(SHIFT)) {
|
||||||
|
@ -1204,39 +1238,7 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
|
|
||||||
} else if(mouse_press(mb_left)) {
|
} else if(mouse_press(mb_left)) {
|
||||||
if(key_mod_press(CTRL)) {
|
if(key_mod_press(CTRL)) {
|
||||||
|
editKeyFrame(keyframe);
|
||||||
var _wid = animator.prop.editWidget;
|
|
||||||
__keyframe_editing = keyframe;
|
|
||||||
|
|
||||||
switch(animator.prop.type) {
|
|
||||||
case VALUE_TYPE.color :
|
|
||||||
switch(animator.prop.display_type) {
|
|
||||||
case VALUE_DISPLAY.palette :
|
|
||||||
var dialog = dialogCall(o_dialog_palette, WIN_W / 2, WIN_H / 2);
|
|
||||||
dialog.setDefault(keyframe.value);
|
|
||||||
dialog.onApply = function(val) { __keyframe_editing.value = val; };
|
|
||||||
dialog.drop_target = _wid;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default :
|
|
||||||
var dialog = dialogCall(o_dialog_color_selector, WIN_W / 2, WIN_H / 2);
|
|
||||||
dialog.setDefault(keyframe.value);
|
|
||||||
dialog.selector.onApply = function(val) { __keyframe_editing.value = val; };
|
|
||||||
dialog.onApply = function(val) { __keyframe_editing.value = val; };
|
|
||||||
dialog.drop_target = _wid;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VALUE_TYPE.gradient :
|
|
||||||
var dialog = dialogCall(o_dialog_gradient, WIN_W / 2, WIN_H / 2);
|
|
||||||
dialog.setDefault(keyframe.value.clone());
|
|
||||||
dialog.onApply = function(val) { __keyframe_editing.value = val; };
|
|
||||||
dialog.drop_target = _wid;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default :
|
|
||||||
dialogCall(o_dialog_value_editor, mouse_mx + ui(8), mouse_my + ui(8)).setKey(keyframe);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
keyframe_dragging = keyframe;
|
keyframe_dragging = keyframe;
|
||||||
|
@ -1252,8 +1254,8 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
cc = key_hover == keyframe? COLORS.panel_animation_keyframe_selected : COLORS._main_accent;
|
cc = key_hover == keyframe? COLORS.panel_animation_keyframe_selected : COLORS._main_accent;
|
||||||
|
|
||||||
var ind = keyframe.getDrawIndex();
|
var ind = keyframe.getDrawIndex();
|
||||||
|
|
||||||
draw_sprite_ui_uniform(THEME.timeline_keyframe, ind, t, prop_y, 1, cc);
|
draw_sprite_ui_uniform(THEME.timeline_keyframe, ind, t, prop_y, 1, cc);
|
||||||
|
|
||||||
if(array_exists(keyframe_selecting, keyframe))
|
if(array_exists(keyframe_selecting, keyframe))
|
||||||
draw_sprite_ui_uniform(THEME.timeline_keyframe_selecting, ind, t, prop_y, 1, COLORS._main_accent);
|
draw_sprite_ui_uniform(THEME.timeline_keyframe_selecting, ind, t, prop_y, 1, COLORS._main_accent);
|
||||||
|
|
||||||
|
@ -1279,12 +1281,15 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
var tx = tool_width;
|
var tx = tool_width;
|
||||||
var ty = animator.y - 1;
|
var ty = animator.y - 1;
|
||||||
|
|
||||||
var hov = item_dragging == noone && pHOVER && point_in_rectangle(msx, msy, 0, ty - ui(8), w, ty + ui(8));
|
var hov = item_dragging == noone && pHOVER && point_in_rectangle(msx, msy, 0, ty - ui(8), w - ui(64), ty + ui(8));
|
||||||
|
|
||||||
//// DRAW NAME
|
//// DRAW NAME
|
||||||
var cc = prop.sep_axis? COLORS.axis[animator.index] : COLORS._main_text_inner;
|
var cc = prop.sep_axis? COLORS.axis[animator.index] : COLORS._main_text_sub;
|
||||||
if(hov) cc = COLORS._main_text_accent;
|
if(hov) cc = COLORS._main_text_accent;
|
||||||
|
|
||||||
|
draw_set_color(CDEF.main_mdblack);
|
||||||
|
draw_rectangle(ui(32), ty - ui(8), tool_width, ty + ui(8), false);
|
||||||
|
|
||||||
draw_set_color(cc);
|
draw_set_color(cc);
|
||||||
|
|
||||||
var _title_x = ui(32);
|
var _title_x = ui(32);
|
||||||
|
@ -2110,13 +2115,18 @@ function Panel_Animation() : PanelContent() constructor {
|
||||||
|
|
||||||
if(mouse_press(mb_right, pFOCUS)) { #region context menu
|
if(mouse_press(mb_right, pFOCUS)) { #region context menu
|
||||||
if(point_in_rectangle(mx, my, bar_x, ui(8), bar_x + dope_sheet_w, ui(8) + dope_sheet_h)) {
|
if(point_in_rectangle(mx, my, bar_x, ui(8), bar_x + dope_sheet_w, ui(8) + dope_sheet_h)) {
|
||||||
|
|
||||||
if(array_empty(keyframe_selecting)) menuCall("animation_keyframe_empty_menu",,, keyframe_menu_empty);
|
if(array_empty(keyframe_selecting)) menuCall("animation_keyframe_empty_menu",,, keyframe_menu_empty);
|
||||||
else menuCall("animation_keyframe_menu",,, keyframe_menu,, keyframe_selecting);
|
else menuCall("animation_keyframe_menu",,, keyframe_menu,, keyframe_selecting);
|
||||||
|
|
||||||
} else if(point_in_rectangle(mx, my, ui(8), ui(8), ui(8) + tool_width, ui(8) + dope_sheet_h)) {
|
} else if(point_in_rectangle(mx, my, ui(8), ui(8), ui(8) + tool_width, ui(8) + dope_sheet_h)) {
|
||||||
|
|
||||||
if(context_selecting_item == noone)
|
if(context_selecting_item == noone)
|
||||||
menuCall("animation_name_empty_menu",,, name_menu_empty);
|
menuCall("animation_name_empty_menu",,, name_menu_empty);
|
||||||
|
|
||||||
else if(is_instanceof(context_selecting_item.item, timelineItemNode))
|
else if(is_instanceof(context_selecting_item.item, timelineItemNode))
|
||||||
menuCall("animation_name_empty_menu",,, name_menu_item);
|
menuCall("animation_name_empty_menu",,, name_menu_item);
|
||||||
|
|
||||||
else if(is_instanceof(context_selecting_item.item, timelineItemGroup))
|
else if(is_instanceof(context_selecting_item.item, timelineItemGroup))
|
||||||
menuCall("animation_name_empty_menu",,, name_menu_group);
|
menuCall("animation_name_empty_menu",,, name_menu_group);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1011,7 +1011,9 @@ function Panel_Inspector() : PanelContent() constructor {
|
||||||
|
|
||||||
if(PROJECT.meta.steam == FILE_STEAM_TYPE.steamOpen) {
|
if(PROJECT.meta.steam == FILE_STEAM_TYPE.steamOpen) {
|
||||||
var _tw = string_width(txt) / 2;
|
var _tw = string_width(txt) / 2;
|
||||||
draw_sprite_ui(THEME.steam, 0, w / 2 - _tw - ui(16), ui(32),,,, COLORS._main_icon);
|
BLEND_ADD
|
||||||
|
draw_sprite_ui(THEME.steam, 0, w / 2 - _tw - ui(16), ui(29), 1, 1, 0, COLORS._main_icon);
|
||||||
|
BLEND_NORMAL
|
||||||
}
|
}
|
||||||
|
|
||||||
var bx = w - ui(44);
|
var bx = w - ui(44);
|
||||||
|
|
Loading…
Reference in a new issue