From f1b4d9c0a55021d6362e9344afdcaadb5cd78264 Mon Sep 17 00:00:00 2001 From: fenix-hub Date: Sun, 22 Jan 2023 16:38:10 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=20data=20tooltip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../containers/data_tooltip/data_tooltip.gd | 75 ++++------- .../containers/data_tooltip/data_tooltip.tscn | 118 +++++++++++------- 2 files changed, 97 insertions(+), 96 deletions(-) diff --git a/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.gd b/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.gd index 4bf42f3..9b5b858 100644 --- a/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.gd +++ b/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.gd @@ -5,65 +5,32 @@ class_name DataTooltip var value : String = "" var position : Vector2 = Vector2() -var OFFSET : Vector2 = Vector2(15,35) -var GAP : Vector2 = Vector2(0,15) - -onready var Data : Label = $PointData/Value/x -onready var Value : Label = $PointData/Value/y -onready var Function : Label = $PointData/Function +onready var x_lbl : Label = $PointData/x +onready var y_lbl : Label = $PointData/Value/y +onready var func_lbl : Label = $PointData/Value/Function +onready var color_rect: Panel = $PointData/Value/Color func _ready(): hide() + update_size() func _process(delta): - if get_global_mouse_position().y > OFFSET.y + GAP.y: - rect_position = get_global_mouse_position() - OFFSET - GAP - else: - rect_position = get_global_mouse_position() + GAP*5 - OFFSET + if Engine.editor_hint: + return + rect_position = get_global_mouse_position() + Vector2(15, - (get_rect().size.y / 2)) -func update_datas(point : Control): - update_size() - - get("custom_styles/panel").set("bg_color",point.color) - - var font_color : Color - if point.color.g < 0.75: - font_color = Color(1,1,1,1) - else: - font_color = Color(0,0,0,1) - Data.set("custom_colors/font_color",font_color) - Value.set("custom_colors/font_color",font_color) - Function.set("custom_colors/font_color",font_color) - get("custom_styles/panel").set("border_color",font_color) - - Data.set_text(point.point_value[0]+":") - Value.set_text(point.point_value[1]) - Function.set_text(point.function) - update() - show() - -func update_slice_datas(slice : Slice): - update_size() - - get("custom_styles/panel").set("bg_color",slice.color) - - var font_color : Color - if slice.color.g < 0.75: - font_color = Color(1,1,1,1) - else: - font_color = Color(0,0,0,1) - Data.set("custom_colors/font_color",font_color) - Value.set("custom_colors/font_color",font_color) - Function.set("custom_colors/font_color",font_color) - get("custom_styles/panel").set("border_color",font_color) - - Data.set_text(slice.x_value+":") - Value.set_text(slice.y_value) - Function.set_text(slice.function) - update() - show() +func update_values(x: String, y: String, function: String, color: Color): + x_lbl.set_text(x) + y_lbl.set_text(y) + func_lbl.set_text(function) + color_rect.get("custom_styles/panel").set("bg_color", color) func update_size(): - OFFSET.x = get_size().x/2 - OFFSET.y = get_size().y - GAP.y = OFFSET.y/3 + x_lbl.set_text("") + y_lbl.set_text("") + func_lbl.set_text("") + rect_size = Vector2.ZERO + +func _on_DataTooltip_visibility_changed(): + if not visible: + update_size() diff --git a/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn b/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn index 3fba568..d1862fe 100644 --- a/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn +++ b/addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn @@ -1,82 +1,116 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.gd" type="Script" id=1] [sub_resource type="StyleBoxFlat" id=1] content_margin_left = 10.0 content_margin_right = 10.0 -content_margin_top = 5.0 -content_margin_bottom = 5.0 -bg_color = Color( 1, 1, 1, 0 ) -border_width_left = 2 -border_width_top = 2 -border_width_right = 2 -border_width_bottom = 2 +content_margin_top = 8.0 +content_margin_bottom = 8.0 +bg_color = Color( 0.101961, 0.101961, 0.101961, 0.784314 ) border_color = Color( 1, 1, 1, 1 ) corner_radius_top_left = 5 corner_radius_top_right = 5 corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 corner_detail = 20 +anti_aliasing_size = 0.9 + +[sub_resource type="StyleBoxFlat" id=2] +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 20 +anti_aliasing_size = 0.7 + +[sub_resource type="StyleBoxEmpty" id=3] [node name="DataTooltip" type="PanelContainer"] -visible = false -anchor_right = 0.0694688 -anchor_bottom = 0.067 -margin_left = -269.77 -margin_top = 276.615 -margin_right = -269.907 -margin_bottom = 277.416 -grow_horizontal = 2 +margin_right = 169.0 +margin_bottom = 49.0 mouse_filter = 2 custom_styles/panel = SubResource( 1 ) script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": true -} [node name="PointData" type="VBoxContainer" parent="."] margin_left = 10.0 -margin_top = 5.0 -margin_right = 61.0 -margin_bottom = 36.0 +margin_top = 8.0 +margin_right = 159.0 +margin_bottom = 42.0 grow_horizontal = 2 size_flags_horizontal = 3 -custom_constants/separation = 3 +custom_constants/separation = 6 alignment = 1 __meta__ = { "_edit_use_anchors_": false } -[node name="Function" type="Label" parent="PointData"] -margin_right = 51.0 +[node name="x" type="Label" parent="PointData"] +margin_right = 55.0 margin_bottom = 14.0 -size_flags_horizontal = 3 -align = 1 +size_flags_horizontal = 0 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +text = "{x value}" valign = 1 [node name="Value" type="HBoxContainer" parent="PointData"] -margin_top = 17.0 -margin_right = 51.0 -margin_bottom = 31.0 +margin_top = 20.0 +margin_right = 149.0 +margin_bottom = 34.0 grow_horizontal = 2 -size_flags_horizontal = 6 -alignment = 1 +size_flags_horizontal = 7 +custom_constants/separation = 1 -[node name="x" type="Label" parent="PointData/Value"] -margin_right = 39.0 +[node name="Color" type="Panel" parent="PointData/Value"] +margin_top = 2.0 +margin_right = 10.0 +margin_bottom = 12.0 +rect_min_size = Vector2( 10, 10 ) +size_flags_horizontal = 4 +size_flags_vertical = 4 +custom_styles/panel = SubResource( 2 ) + +[node name="VSeparator" type="VSeparator" parent="PointData/Value"] +margin_left = 11.0 +margin_right = 15.0 margin_bottom = 14.0 -size_flags_horizontal = 3 -custom_colors/font_color = Color( 1, 1, 1, 1 ) -text = "Value:" -align = 2 +custom_constants/separation = 4 +custom_styles/separator = SubResource( 3 ) + +[node name="Function" type="Label" parent="PointData/Value"] +margin_left = 16.0 +margin_right = 78.0 +margin_bottom = 14.0 +size_flags_horizontal = 0 +size_flags_vertical = 5 +text = "{function}" valign = 1 +[node name="sep" type="Label" parent="PointData/Value"] +margin_left = 79.0 +margin_right = 83.0 +margin_bottom = 14.0 +size_flags_horizontal = 0 +size_flags_vertical = 5 +text = ":" +valign = 1 + +[node name="VSeparator2" type="VSeparator" parent="PointData/Value"] +margin_left = 84.0 +margin_right = 88.0 +margin_bottom = 14.0 +custom_constants/separation = 4 +custom_styles/separator = SubResource( 3 ) + [node name="y" type="Label" parent="PointData/Value"] -margin_left = 43.0 -margin_right = 51.0 +margin_left = 89.0 +margin_right = 144.0 margin_bottom = 14.0 -size_flags_horizontal = 3 +size_flags_horizontal = 0 +size_flags_vertical = 5 custom_colors/font_color = Color( 1, 1, 1, 1 ) -text = "0" +text = "{y value}" valign = 1 + +[connection signal="visibility_changed" from="." to="." method="_on_DataTooltip_visibility_changed"]