mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-20 12:33:14 +00:00
Some timeline UI improvements
This commit is contained in:
parent
2ce81f8c1c
commit
1b22e75034
2 changed files with 93 additions and 100 deletions
|
@ -1,5 +1,7 @@
|
|||
extends Panel
|
||||
|
||||
const FRAME_BUTTON_TSCN := preload("res://src/UI/Timeline/FrameButton.tscn")
|
||||
|
||||
var is_animation_running := false
|
||||
var animation_loop := 1 ## 0 is no loop, 1 is cycle loop, 2 is ping-pong loop
|
||||
var animation_forward := true
|
||||
|
@ -13,24 +15,21 @@ var max_cel_size := 144
|
|||
var past_above_canvas := true
|
||||
var future_above_canvas := true
|
||||
|
||||
var frame_button_node := preload("res://src/UI/Timeline/FrameButton.tscn")
|
||||
|
||||
@onready var old_scroll := 0 ## The previous scroll state of $ScrollContainer
|
||||
@onready var tag_spacer = find_child("TagSpacer")
|
||||
@onready var start_spacer = find_child("StartSpacer")
|
||||
@onready var layer_settings_container: VBoxContainer = %LayerSettingsContainer
|
||||
@onready var layer_container: VBoxContainer = %LayerContainer
|
||||
@onready var add_layer_list: MenuButton = $"%AddLayerList"
|
||||
@onready var tag_spacer := %TagSpacer as Control
|
||||
@onready var layer_settings_container := %LayerSettingsContainer as VBoxContainer
|
||||
@onready var layer_container := %LayerContainer as VBoxContainer
|
||||
@onready var add_layer_list := $"%AddLayerList" as MenuButton
|
||||
@onready var blend_modes_button := %BlendModes as OptionButton
|
||||
@onready var timeline_scroll: ScrollContainer = find_child("TimelineScroll")
|
||||
@onready var frame_scroll_container: Control = find_child("FrameScrollContainer")
|
||||
@onready var frame_scroll_bar: HScrollBar = find_child("FrameScrollBar")
|
||||
@onready var tag_scroll_container: ScrollContainer = find_child("TagScroll")
|
||||
@onready var layer_frame_h_split: HSplitContainer = find_child("LayerFrameHSplit")
|
||||
@onready var fps_spinbox: ValueSlider = find_child("FPSValue")
|
||||
@onready var onion_skinning_button: BaseButton = find_child("OnionSkinning")
|
||||
@onready var loop_animation_button: BaseButton = find_child("LoopAnim")
|
||||
@onready var drag_highlight: ColorRect = find_child("DragHighlight")
|
||||
@onready var frame_scroll_container := %FrameScrollContainer as Control
|
||||
@onready var frame_scroll_bar := %FrameScrollBar as HScrollBar
|
||||
@onready var tag_scroll_container := %TagScroll as ScrollContainer
|
||||
@onready var layer_frame_h_split := %LayerFrameHSplit as HSplitContainer
|
||||
@onready var fps_spinbox := %FPSValue as ValueSlider
|
||||
@onready var onion_skinning_button := %OnionSkinning as BaseButton
|
||||
@onready var onion_skinning_settings := $OnionSkinningSettings as Popup
|
||||
@onready var loop_animation_button := %LoopAnim as BaseButton
|
||||
@onready var drag_highlight := $DragHighlight as ColorRect
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
|
@ -86,14 +85,14 @@ func _ready() -> void:
|
|||
var future_above = Global.config_cache.get_value(
|
||||
"timeline", "future_above_canvas", future_above_canvas
|
||||
)
|
||||
$"%PastOnionSkinning".value = past_rate
|
||||
$"%FutureOnionSkinning".value = future_rate
|
||||
$"%BlueRedMode".button_pressed = blue_red
|
||||
$"%PastPlacement".select(0 if past_above else 1)
|
||||
$"%FuturePlacement".select(0 if future_above else 1)
|
||||
%PastOnionSkinning.value = past_rate
|
||||
%FutureOnionSkinning.value = future_rate
|
||||
%BlueRedMode.button_pressed = blue_red
|
||||
%PastPlacement.select(0 if past_above else 1)
|
||||
%FuturePlacement.select(0 if future_above else 1)
|
||||
# emit signals that were supposed to be emitted (Check if it's still required in godot 4)
|
||||
$"%PastPlacement".item_selected.emit(0 if past_above else 1)
|
||||
$"%FuturePlacement".item_selected.emit(0 if future_above else 1)
|
||||
%PastPlacement.item_selected.emit(0 if past_above else 1)
|
||||
%FuturePlacement.item_selected.emit(0 if future_above else 1)
|
||||
# Makes sure that the frame and tag scroll bars are in the right place:
|
||||
Global.layer_vbox.emit_signal.call_deferred("resized")
|
||||
|
||||
|
@ -488,14 +487,8 @@ func _on_OnionSkinning_pressed() -> void:
|
|||
|
||||
|
||||
func _on_OnionSkinningSettings_pressed() -> void:
|
||||
$OnionSkinningSettings.popup(
|
||||
Rect2(
|
||||
onion_skinning_button.global_position.x - $OnionSkinningSettings.size.x - 16,
|
||||
onion_skinning_button.global_position.y - $OnionSkinningSettings.size.y + 32,
|
||||
136,
|
||||
126
|
||||
)
|
||||
)
|
||||
var pos := Vector2i(onion_skinning_button.global_position) - onion_skinning_settings.size
|
||||
onion_skinning_settings.popup(Rect2i(pos.x - 16, pos.y + 32, 136, 126))
|
||||
|
||||
|
||||
func _on_LoopAnim_pressed() -> void:
|
||||
|
@ -981,11 +974,11 @@ func _on_OpacitySlider_value_changed(value: float) -> void:
|
|||
|
||||
|
||||
func _on_onion_skinning_settings_close_requested() -> void:
|
||||
$OnionSkinningSettings.hide()
|
||||
onion_skinning_settings.hide()
|
||||
|
||||
|
||||
func _on_onion_skinning_settings_visibility_changed() -> void:
|
||||
Global.can_draw = not $OnionSkinningSettings.visible
|
||||
Global.can_draw = not onion_skinning_settings.visible
|
||||
|
||||
|
||||
# Methods to update the UI in response to changes in the current project
|
||||
|
@ -1005,7 +998,7 @@ func project_changed() -> void:
|
|||
for i in project.layers.size():
|
||||
project_layer_added(i)
|
||||
for f in project.frames.size():
|
||||
var button := frame_button_node.instantiate() as Button
|
||||
var button := FRAME_BUTTON_TSCN.instantiate() as Button
|
||||
button.frame = f
|
||||
Global.frame_hbox.add_child(button)
|
||||
|
||||
|
@ -1030,7 +1023,7 @@ func project_changed() -> void:
|
|||
|
||||
func project_frame_added(frame: int) -> void:
|
||||
var project := Global.current_project
|
||||
var button := frame_button_node.instantiate() as Button
|
||||
var button := FRAME_BUTTON_TSCN.instantiate() as Button
|
||||
button.frame = frame
|
||||
Global.frame_hbox.add_child(button)
|
||||
Global.frame_hbox.move_child(button, frame)
|
||||
|
|
|
@ -188,7 +188,6 @@ anchor_bottom = 1.0
|
|||
|
||||
[node name="TimelineButtons" type="HBoxContainer" parent="TimelineContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="LayerTools" type="PanelContainer" parent="TimelineContainer/TimelineButtons"]
|
||||
layout_mode = 2
|
||||
|
@ -199,11 +198,10 @@ layout_mode = 2
|
|||
|
||||
[node name="LayerButtons" type="HBoxContainer" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/separation = 9
|
||||
|
||||
[node name="AddLayer" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(44, 22)
|
||||
custom_minimum_size = Vector2(44, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
|
@ -256,7 +254,7 @@ offset_bottom = 6.0
|
|||
texture = ExtResource("10")
|
||||
|
||||
[node name="RemoveLayer" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(22, 22)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
|
@ -281,7 +279,7 @@ size_flags_vertical = 0
|
|||
texture = ExtResource("6")
|
||||
|
||||
[node name="MoveUpLayer" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(22, 22)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
|
@ -306,7 +304,7 @@ size_flags_vertical = 0
|
|||
texture = ExtResource("4")
|
||||
|
||||
[node name="MoveDownLayer" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(22, 22)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
|
@ -331,7 +329,7 @@ size_flags_vertical = 0
|
|||
texture = ExtResource("3")
|
||||
|
||||
[node name="CloneLayer" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(22, 22)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
|
@ -355,7 +353,7 @@ size_flags_vertical = 0
|
|||
texture = ExtResource("7")
|
||||
|
||||
[node name="MergeDownLayer" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(22, 22)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
|
@ -379,31 +377,26 @@ size_flags_horizontal = 0
|
|||
size_flags_vertical = 0
|
||||
texture = ExtResource("5")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="LayerFX" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/HBoxContainer"]
|
||||
[node name="LayerFX" type="Button" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons"]
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
mouse_default_cursor_shape = 2
|
||||
text = "FX"
|
||||
|
||||
[node name="BlendModeLabel" type="Label" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/HBoxContainer"]
|
||||
[node name="BlendContainer" type="HBoxContainer" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="BlendModeLabel" type="Label" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/BlendContainer"]
|
||||
layout_mode = 2
|
||||
text = "Blend mode:"
|
||||
|
||||
[node name="BlendModes" type="OptionButton" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/HBoxContainer"]
|
||||
[node name="BlendModes" type="OptionButton" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/BlendContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_default_cursor_shape = 2
|
||||
|
||||
[node name="OpacitySlider" parent="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer" instance=ExtResource("9")]
|
||||
custom_minimum_size = Vector2(207, 24)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
value = 100.0
|
||||
prefix = "Opacity:"
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="TimelineContainer/TimelineButtons"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
@ -421,14 +414,14 @@ size_flags_horizontal = 10
|
|||
custom_minimum_size = Vector2(0, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 40
|
||||
theme_override_constants/separation = 24
|
||||
alignment = 2
|
||||
|
||||
[node name="FrameButtons" type="HBoxContainer" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AddFrame" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Add a new frame"
|
||||
|
@ -449,7 +442,7 @@ offset_bottom = 6.0
|
|||
texture = ExtResource("19")
|
||||
|
||||
[node name="DeleteFrame" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Remove Frame"
|
||||
|
@ -472,7 +465,7 @@ size_flags_vertical = 0
|
|||
texture = ExtResource("20")
|
||||
|
||||
[node name="CopyFrame" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Clone Frame"
|
||||
|
@ -493,7 +486,7 @@ offset_bottom = 7.0
|
|||
texture = ExtResource("27")
|
||||
|
||||
[node name="FrameTagButton" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Manage frame tags"
|
||||
|
@ -514,7 +507,7 @@ offset_bottom = 7.0
|
|||
texture = ExtResource("28")
|
||||
|
||||
[node name="MoveLeft" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Move the selected frame to the left."
|
||||
|
@ -536,7 +529,7 @@ texture = ExtResource("8")
|
|||
flip_h = true
|
||||
|
||||
[node name="MoveRight" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Move the selected frame to the right."
|
||||
|
@ -560,7 +553,7 @@ texture = ExtResource("8")
|
|||
layout_mode = 2
|
||||
|
||||
[node name="FirstFrame" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/PlaybackButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
tooltip_text = "Jump to the first frame"
|
||||
focus_mode = 0
|
||||
|
@ -580,7 +573,7 @@ offset_bottom = 6.0
|
|||
texture = ExtResource("21")
|
||||
|
||||
[node name="PreviousFrame" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/PlaybackButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
tooltip_text = "Go to the previous frame"
|
||||
focus_mode = 0
|
||||
|
@ -600,7 +593,7 @@ offset_bottom = 6.0
|
|||
texture = ExtResource("23")
|
||||
|
||||
[node name="PlayBackwards" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/PlaybackButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
tooltip_text = "Play the animation backwards (from end to beginning)"
|
||||
focus_mode = 0
|
||||
|
@ -621,7 +614,7 @@ offset_bottom = 6.0
|
|||
texture = ExtResource("24")
|
||||
|
||||
[node name="PlayForward" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/PlaybackButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Play the animation forward (from beginning to end)"
|
||||
|
@ -643,7 +636,7 @@ offset_bottom = 6.0
|
|||
texture = ExtResource("22")
|
||||
|
||||
[node name="NextFrame" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/PlaybackButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
tooltip_text = "Go to the next frame"
|
||||
focus_mode = 0
|
||||
|
@ -663,7 +656,7 @@ offset_bottom = 6.0
|
|||
texture = ExtResource("26")
|
||||
|
||||
[node name="LastFrame" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/PlaybackButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
tooltip_text = "Jump to the last frame"
|
||||
focus_mode = 0
|
||||
|
@ -686,7 +679,7 @@ texture = ExtResource("25")
|
|||
layout_mode = 2
|
||||
|
||||
[node name="OnionSkinningSettings" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/LoopButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Onion Skinning settings"
|
||||
|
@ -709,7 +702,8 @@ size_flags_vertical = 0
|
|||
texture = ExtResource("30")
|
||||
|
||||
[node name="OnionSkinning" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/LoopButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
tooltip_text = "Enable/disable Onion Skinning"
|
||||
focus_mode = 0
|
||||
|
@ -731,7 +725,8 @@ size_flags_vertical = 0
|
|||
texture = ExtResource("29")
|
||||
|
||||
[node name="LoopAnim" type="Button" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/LoopButtons" groups=["UIButtons"]]
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
tooltip_text = "Cycle loop"
|
||||
focus_mode = 0
|
||||
|
@ -751,24 +746,28 @@ offset_bottom = 7.0
|
|||
texture = ExtResource("31")
|
||||
|
||||
[node name="FPSValue" parent="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/LoopButtons" instance=ExtResource("9")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(72, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 1
|
||||
tooltip_text = "How many frames per second should the animation preview be?
|
||||
The more FPS, the faster the animation plays."
|
||||
min_value = 0.1
|
||||
max_value = 50.0
|
||||
step = 0.1
|
||||
value = 6.0
|
||||
allow_greater = true
|
||||
suffix = "FPS"
|
||||
|
||||
[node name="TagScroll" type="ScrollContainer" parent="TimelineContainer/TimelineButtons/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 32)
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(0, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
mouse_filter = 2
|
||||
theme = SubResource("20")
|
||||
vertical_scroll_mode = 3
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="TimelineContainer/TimelineButtons/VBoxContainer/TagScroll"]
|
||||
layout_mode = 2
|
||||
|
@ -777,60 +776,67 @@ size_flags_vertical = 3
|
|||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="TagSpacer" type="Control" parent="TimelineContainer/TimelineButtons/VBoxContainer/TagScroll/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TagContainer" type="Control" parent="TimelineContainer/TimelineButtons/VBoxContainer/TagScroll/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="TimelineContainer"]
|
||||
[node name="MainBodyPanel" type="PanelContainer" parent="TimelineContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="TimelineContainer/PanelContainer"]
|
||||
[node name="MainBodyVBoxContainer" type="VBoxContainer" parent="TimelineContainer/MainBodyPanel"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="TimelineScroll" type="ScrollContainer" parent="TimelineContainer/PanelContainer/VBoxContainer"]
|
||||
[node name="TimelineScroll" type="ScrollContainer" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="LayerFrameHSplit" type="HSplitContainer" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll"]
|
||||
[node name="LayerFrameHSplit" type="HSplitContainer" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="LayerContainer" type="VBoxContainer" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit"]
|
||||
[node name="LayerContainer" type="VBoxContainer" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="LayerLabel" type="Label" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit/LayerContainer"]
|
||||
[node name="OpacitySlider" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit/LayerContainer" instance=ExtResource("9")]
|
||||
custom_minimum_size = Vector2(207, 30)
|
||||
layout_mode = 2
|
||||
text = "Layers"
|
||||
size_flags_vertical = 0
|
||||
value = 100.0
|
||||
prefix = "Opacity:"
|
||||
|
||||
[node name="LayerVBox" type="VBoxContainer" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit/LayerContainer"]
|
||||
[node name="LayerVBox" type="VBoxContainer" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit/LayerContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="FrameScrollContainer" type="Container" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit"]
|
||||
[node name="FrameScrollContainer" type="Container" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
script = ExtResource("11")
|
||||
h_scroll_bar_node_path = NodePath("../../../BreakFreeFromContainer/FrameScrollBar")
|
||||
|
||||
[node name="FrameAndCelBox" type="VBoxContainer" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit/FrameScrollContainer"]
|
||||
[node name="FrameAndCelBox" type="VBoxContainer" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit/FrameScrollContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="FrameHBox" type="HBoxContainer" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit/FrameScrollContainer/FrameAndCelBox"]
|
||||
[node name="FrameHBox" type="HBoxContainer" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit/FrameScrollContainer/FrameAndCelBox"]
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CelVBox" type="VBoxContainer" parent="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit/FrameScrollContainer/FrameAndCelBox"]
|
||||
[node name="CelVBox" type="VBoxContainer" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit/FrameScrollContainer/FrameAndCelBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="BreakFreeFromContainer" type="Control" parent="TimelineContainer/PanelContainer/VBoxContainer"]
|
||||
[node name="BreakFreeFromContainer" type="Control" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="FrameScrollBar" type="HScrollBar" parent="TimelineContainer/PanelContainer/VBoxContainer/BreakFreeFromContainer"]
|
||||
[node name="FrameScrollBar" type="HScrollBar" parent="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/BreakFreeFromContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
anchor_right = 1.0
|
||||
offset_left = 41.0
|
||||
|
@ -840,8 +846,8 @@ size_flags_horizontal = 3
|
|||
[node name="AnimationTimer" type="Timer" parent="."]
|
||||
|
||||
[node name="OnionSkinningSettings" type="Popup" parent="."]
|
||||
position = Vector2i(0, 36)
|
||||
size = Vector2i(315, 299)
|
||||
position = Vector2i(0, 24)
|
||||
size = Vector2i(288, 207)
|
||||
unresizable = false
|
||||
borderless = false
|
||||
|
||||
|
@ -919,12 +925,6 @@ popup/item_0/id = 0
|
|||
popup/item_1/text = "Below canvas"
|
||||
popup/item_1/id = 1
|
||||
|
||||
[node name="Label" type="Label" parent="OnionSkinningSettings/OnionSkinningButtons"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.333333, 0.901961, 0.462745, 1)
|
||||
text = "If you want a layer to ignore onion skinning simply add the \"_io\" suffix in its name."
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="FrameTagDialog" parent="." instance=ExtResource("42")]
|
||||
|
||||
[node name="LayerEffectsSettings" parent="." instance=ExtResource("26_vbrbd")]
|
||||
|
@ -946,9 +946,8 @@ script = ExtResource("12")
|
|||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons/MoveDownLayer" to="." method="change_layer_order" binds= [false]]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons/CloneLayer" to="." method="_on_CloneLayer_pressed"]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons/MergeDownLayer" to="." method="_on_MergeDownLayer_pressed"]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/HBoxContainer/LayerFX" to="." method="_on_layer_fx_pressed"]
|
||||
[connection signal="item_selected" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/HBoxContainer/BlendModes" to="." method="_on_blend_modes_item_selected"]
|
||||
[connection signal="value_changed" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/OpacitySlider" to="." method="_on_OpacitySlider_value_changed"]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/LayerButtons/LayerFX" to="." method="_on_layer_fx_pressed"]
|
||||
[connection signal="item_selected" from="TimelineContainer/TimelineButtons/LayerTools/LayerSettingsContainer/BlendContainer/BlendModes" to="." method="_on_blend_modes_item_selected"]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons/AddFrame" to="." method="add_frame"]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons/DeleteFrame" to="." method="_on_DeleteFrame_pressed"]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/FrameButtons/CopyFrame" to="." method="_on_CopyFrame_pressed"]
|
||||
|
@ -965,8 +964,9 @@ script = ExtResource("12")
|
|||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/LoopButtons/OnionSkinning" to="." method="_on_OnionSkinning_pressed"]
|
||||
[connection signal="pressed" from="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/LoopButtons/LoopAnim" to="." method="_on_LoopAnim_pressed"]
|
||||
[connection signal="value_changed" from="TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/AnimationButtons/LoopButtons/FPSValue" to="." method="_on_FPSValue_value_changed"]
|
||||
[connection signal="gui_input" from="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit" to="." method="_on_LayerFrameSplitContainer_gui_input"]
|
||||
[connection signal="resized" from="TimelineContainer/PanelContainer/VBoxContainer/TimelineScroll/LayerFrameHSplit/LayerContainer/LayerVBox" to="." method="_on_LayerVBox_resized"]
|
||||
[connection signal="gui_input" from="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit" to="." method="_on_LayerFrameSplitContainer_gui_input"]
|
||||
[connection signal="value_changed" from="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit/LayerContainer/OpacitySlider" to="." method="_on_OpacitySlider_value_changed"]
|
||||
[connection signal="resized" from="TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/LayerFrameHSplit/LayerContainer/LayerVBox" to="." method="_on_LayerVBox_resized"]
|
||||
[connection signal="timeout" from="AnimationTimer" to="." method="_on_AnimationTimer_timeout"]
|
||||
[connection signal="close_requested" from="OnionSkinningSettings" to="." method="_on_onion_skinning_settings_close_requested"]
|
||||
[connection signal="visibility_changed" from="OnionSkinningSettings" to="." method="_on_onion_skinning_settings_visibility_changed"]
|
||||
|
|
Loading…
Add table
Reference in a new issue