]> Untitled Git - wolf-seeking-sheep.git/blob - addons/dialogic/Editor/TimelineEditor/VisualEditor/AddEventButton.gd
Initial Godot project with Dialogic 2.0-Alpha-17
[wolf-seeking-sheep.git] / addons / dialogic / Editor / TimelineEditor / VisualEditor / AddEventButton.gd
1 @tool
2 extends Button
3
4 @export var visible_name := ""
5 @export var event_id := ""
6 @export var event_icon: Texture:
7         get:
8                 return event_icon
9         set(texture):
10                 event_icon = texture
11                 icon = event_icon
12 @export var event_sorting_index: int = 0
13 @export var resource: DialogicEvent
14 @export var dialogic_color_name := ""
15
16
17 func _ready() -> void:
18         tooltip_text = visible_name
19
20         custom_minimum_size = Vector2(get_theme_font("font", "Label").get_string_size(text).x+35,30) * DialogicUtil.get_editor_scale()
21
22         add_theme_color_override("font_color", get_theme_color("font_color", "Editor"))
23         add_theme_color_override("font_color_hover", get_theme_color("accent_color", "Editor"))
24         apply_base_button_style()
25
26
27 func apply_base_button_style() -> void:
28         var nstyle: StyleBoxFlat = get_parent().get_theme_stylebox('normal', 'Button').duplicate()
29         nstyle.border_width_left = 5 * DialogicUtil.get_editor_scale()
30         add_theme_stylebox_override('normal', nstyle)
31         var hstyle: StyleBoxFlat = get_parent().get_theme_stylebox('hover', 'Button').duplicate()
32         hstyle.border_width_left = 5 * DialogicUtil.get_editor_scale()
33         add_theme_stylebox_override('hover', hstyle)
34         set_color(resource.event_color)
35
36
37 func set_color(color:Color) -> void:
38         var style := get_theme_stylebox('normal', 'Button')
39         style.border_color = color
40         add_theme_stylebox_override('normal', style)
41         style = get_theme_stylebox('hover', 'Button')
42         style.border_color = color
43         add_theme_stylebox_override('hover', style)
44
45
46 func toggle_name(on:= false) -> void:
47         if !on:
48                 text = ""
49                 custom_minimum_size = Vector2(40, 40) * DialogicUtil.get_editor_scale()
50                 var style := get_theme_stylebox('normal', 'Button')
51                 style.bg_color = style.border_color.darkened(0.2)
52                 add_theme_stylebox_override('normal', style)
53                 style = get_theme_stylebox('hover', 'Button')
54                 style.bg_color = style.border_color
55                 add_theme_stylebox_override('hover', style)
56         else:
57                 text = visible_name
58                 custom_minimum_size = Vector2(get_theme_font("font", 'Label').get_string_size(text).x+35,30) * DialogicUtil.get_editor_scale()
59                 apply_base_button_style()
60
61
62 func _on_button_down() -> void:
63         find_parent('VisualEditor').get_node('%TimelineArea').start_dragging(1, resource)