Compare commits

..

6 Commits

33 changed files with 755 additions and 152 deletions

View File

@ -18,7 +18,7 @@ generate_mipmaps=false
disable_embedded_bitmaps=true disable_embedded_bitmaps=true
multichannel_signed_distance_field=true multichannel_signed_distance_field=true
msdf_pixel_range=8 msdf_pixel_range=8
msdf_size=48 msdf_size=64
allow_system_fallback=true allow_system_fallback=true
force_autohinter=false force_autohinter=false
modulate_color_glyphs=false modulate_color_glyphs=false
@ -34,7 +34,8 @@ preload=[{
"chars": [], "chars": [],
"glyphs": [], "glyphs": [],
"name": "New Configuration", "name": "New Configuration",
"size": Vector2i(16, 0) "size": Vector2i(16, 0),
&"variation_embolden": 0.0
}] }]
language_support={} language_support={}
script_support={} script_support={}

BIN
src/logic-scenes/chat_view/avatar-other-large.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dw5d2ffpq8w3r"
path="res://.godot/imported/avatar-other-large.png-13bb73d673b58a9200359552f01269ba.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logic-scenes/chat_view/avatar-other-large.png"
dest_files=["res://.godot/imported/avatar-other-large.png-13bb73d673b58a9200359552f01269ba.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/logic-scenes/chat_view/avatar-other.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dkqsw8nh2crhq"
path="res://.godot/imported/avatar-other.png-09f69875162e2f76b5a47c0d287cd91e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logic-scenes/chat_view/avatar-other.png"
dest_files=["res://.godot/imported/avatar-other.png-09f69875162e2f76b5a47c0d287cd91e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/logic-scenes/chat_view/avatar-self.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dekaqj10p8rqk"
path="res://.godot/imported/avatar-self.png-01f4d75fe95c2d322095af684ab1d9a8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logic-scenes/chat_view/avatar-self.png"
dest_files=["res://.godot/imported/avatar-self.png-01f4d75fe95c2d322095af684ab1d9a8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,2 @@
class_name ChatConversation extends Resource
@export var messages: Array[ChatMessage]

View File

@ -0,0 +1 @@
uid://c8hqd1leg4dfy

View File

@ -1,126 +0,0 @@
[gd_scene format=3 uid="uid://b1pv7j1hag5m3"]
[ext_resource type="FontFile" uid="uid://bdkb43smt08c0" path="res://import/fonts/Ubuntu-B.ttf" id="1_1f64j"]
[ext_resource type="FontFile" uid="uid://bmh8v44f6txfo" path="res://import/fonts/Ubuntu-RI.ttf" id="2_n65mw"]
[ext_resource type="FontFile" uid="uid://b0i5ipn75noh6" path="res://import/fonts/Ubuntu-R.ttf" id="3_1hd2w"]
[ext_resource type="Script" uid="uid://db7t2kqbsskoq" path="res://logic-scenes/chat_view/chat-view.gd" id="4_n65mw"]
[ext_resource type="Script" uid="uid://be16bo6mf4kqu" path="res://logic-scenes/chat_view/chat-bubble.gd" id="5_1hd2w"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_iwd5k"]
content_margin_left = 12.0
content_margin_top = 8.0
content_margin_right = 12.0
content_margin_bottom = 8.0
bg_color = Color(0.757003, 0.509749, 0.667446, 1)
border_color = Color(0.8, 0.8, 0.8, 0)
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
[sub_resource type="Theme" id="Theme_w8y7q"]
default_font = ExtResource("3_1hd2w")
default_font_size = 24
RichTextLabel/fonts/bold_font = ExtResource("1_1f64j")
RichTextLabel/fonts/italics_font = ExtResource("2_n65mw")
RichTextLabel/styles/normal = SubResource("StyleBoxFlat_iwd5k")
VBoxContainer/constants/separation = 9
[sub_resource type="Resource" id="Resource_iwd5k"]
script = ExtResource("5_1hd2w")
text = "Sorry"
time_string = "This is smol."
metadata/_custom_type_script = "uid://be16bo6mf4kqu"
[sub_resource type="Resource" id="Resource_1hd2w"]
script = ExtResource("5_1hd2w")
text = "I never knew what to say. Can I write instead?"
metadata/_custom_type_script = "uid://be16bo6mf4kqu"
[sub_resource type="Resource" id="Resource_w8y7q"]
script = ExtResource("5_1hd2w")
text = "🙄"
is_own_message = true
metadata/_custom_type_script = "uid://be16bo6mf4kqu"
[node name="Control" type="Control" unique_id=306300003]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = SubResource("Theme_w8y7q")
[node name="ScrollContainer" type="ScrollContainer" parent="." unique_id=124411261]
layout_mode = 0
offset_right = 582.0
offset_bottom = 1082.0
theme = SubResource("Theme_w8y7q")
script = ExtResource("4_n65mw")
messages = Array[ExtResource("5_1hd2w")]([SubResource("Resource_iwd5k"), SubResource("Resource_1hd2w"), SubResource("Resource_w8y7q")])
[node name="Template" type="ScrollContainer" parent="." unique_id=1981714851]
layout_mode = 0
offset_left = 1061.0
offset_top = 78.0
offset_right = 1643.0
offset_bottom = 702.0
[node name="VBoxContainer" type="VBoxContainer" parent="Template" unique_id=1303301180]
layout_mode = 2
size_flags_horizontal = 3
[node name="RichTextLabel2" type="RichTextLabel" parent="Template/VBoxContainer" unique_id=1558665125]
layout_mode = 2
size_flags_horizontal = 0
theme = SubResource("Theme_w8y7q")
bbcode_enabled = true
text = "Dies ist eine Telegram-Message.
Ich schreibe mal etwas länger, ob zu sehen,
ob der Bums irgendwann umbricht.
[i]8:12 PM[/i]"
fit_content = true
scroll_active = false
autowrap_mode = 0
[node name="RichTextLabel3" type="RichTextLabel" parent="Template/VBoxContainer" unique_id=1220988641]
layout_mode = 2
theme = SubResource("Theme_w8y7q")
bbcode_enabled = true
text = "Dies ist eine Telegram-Message
[i]8:12 PM[/i]"
fit_content = true
[node name="RichTextLabel4" type="RichTextLabel" parent="Template/VBoxContainer" unique_id=443052553]
layout_mode = 2
theme = SubResource("Theme_w8y7q")
bbcode_enabled = true
text = "Dies ist eine Telegram-Message
[i]8:12 PM[/i]"
fit_content = true
[node name="RichTextLabel5" type="RichTextLabel" parent="Template/VBoxContainer" unique_id=1955305073]
layout_mode = 2
theme = SubResource("Theme_w8y7q")
bbcode_enabled = true
text = "Dies ist eine Telegram-Message
[i]8:12 PM[/i]"
fit_content = true
horizontal_alignment = 2
[node name="RichTextLabel6" type="RichTextLabel" parent="Template/VBoxContainer" unique_id=1577640143]
layout_mode = 2
theme = SubResource("Theme_w8y7q")
bbcode_enabled = true
text = "Dies ist eine Telegram-Message
[i]8:12 PM[/i]"
fit_content = true
[node name="RichTextLabel" type="RichTextLabel" parent="Template/VBoxContainer" unique_id=1513469081]
layout_mode = 2
size_flags_horizontal = 3
theme = SubResource("Theme_w8y7q")
bbcode_enabled = true
text = "Dies ist eine Telegram-Message, die deutlich länger ist, als die vorherige, um das mal abzuschätzen.
[i]8:12 PM[/i]"
fit_content = true

View File

@ -1,30 +1,19 @@
class_name ChatView extends ScrollContainer class_name ChatView extends Control
@export var messages: Array[ChatMessage] @export var conversation : ChatConversation
@export var scroll_offset := 220
var v_box: VBoxContainer var prefab_other: PackedScene = preload("res://logic-scenes/chat_view/message_other.tscn")
var prefab_self: PackedScene = preload("res://logic-scenes/chat_view/message_self.tscn")
func _ready() -> void: func _ready() -> void:
v_box = VBoxContainer.new() rebuild.call_deferred()
add_child(v_box, false, Node.INTERNAL_MODE_BACK)
rebuild()
func rebuild(): func rebuild() -> void:
for child in v_box.get_children(): for message in conversation.messages:
child.free() var bubble : ChatBubble = prefab_self.instantiate() if message.is_own_message else prefab_other.instantiate()
%ChatHistory.add_child(bubble)
bubble.set_text.call_deferred(message.text, message.time_string)
var text_server: = TextServerManager.get_primary_interface() await get_tree().process_frame
%ChatContainer.scroll_vertical = scroll_offset
for message in messages:
var shaped_tex: RID = text_server.create_shaped_text(TextServer.DIRECTION_AUTO, TextServer.ORIENTATION_HORIZONTAL)
text_server.shaped_text_add_string(shaped_tex, message.text, [theme.default_font.get_rid()], theme.default_base_scale)
text_server.shaped_text_fit_to_width(shaped_tex, size.x)
var label: = RichTextLabel.new()
label.custom_minimum_size = text_server.shaped_text_get_size(shaped_tex) + Vector2( 16, 16 )
label.text = message.text
label.size_flags_horizontal = Control.SIZE_SHRINK_END if message.is_own_message else Control.SIZE_SHRINK_BEGIN
v_box.add_child(label)

View File

@ -0,0 +1,182 @@
[gd_scene format=3 uid="uid://dgb7x8na0ek57"]
[ext_resource type="Theme" uid="uid://bhw3jbbrt3m1k" path="res://logic-scenes/chat_view/theme-smartphone.tres" id="1_6hmi7"]
[ext_resource type="Texture2D" uid="uid://b3guc2v1fj04p" path="res://logic-scenes/chat_view/phone-background.png" id="1_vvup7"]
[ext_resource type="LabelSettings" uid="uid://dy1l6fcsy54od" path="res://logic-scenes/chat_view/labe-top-bar.tres" id="2_xckgu"]
[ext_resource type="Resource" uid="uid://cc6q101fbtq0" path="res://logic-scenes/chat_view/conversation-brother.tres" id="3_5qtt2"]
[ext_resource type="Texture2D" uid="uid://dhecdhucnu7sq" path="res://logic-scenes/chat_view/phone-notifications.png" id="3_myhe7"]
[ext_resource type="StyleBox" uid="uid://coqfwa80t22m0" path="res://logic-scenes/chat_view/style-chat-system-shade.tres" id="3_qbcw0"]
[ext_resource type="Script" uid="uid://db7t2kqbsskoq" path="res://logic-scenes/chat_view/chat-view.gd" id="4_myhe7"]
[ext_resource type="Texture2D" uid="uid://cv58eu35ra1ku" path="res://logic-scenes/chat_view/phone-dot.png" id="4_vvup7"]
[ext_resource type="Texture2D" uid="uid://bng2qbusdg7dj" path="res://logic-scenes/chat_view/phone-signal.png" id="4_xckgu"]
[ext_resource type="Texture2D" uid="uid://dw5d2ffpq8w3r" path="res://logic-scenes/chat_view/avatar-other-large.png" id="5_5qtt2"]
[ext_resource type="LabelSettings" uid="uid://mh8uu4rlqmv5" path="res://logic-scenes/chat_view/label-timestamp.tres" id="5_qgt32"]
[ext_resource type="PackedScene" uid="uid://dc58hnxdn0l2o" path="res://logic-scenes/chat_view/message_other.tscn" id="8_wih1b"]
[ext_resource type="PackedScene" uid="uid://cjodbrwc01gwi" path="res://logic-scenes/chat_view/message_self.tscn" id="13_qw8qg"]
[sub_resource type="Gradient" id="Gradient_qgt32"]
colors = PackedColorArray(0, 0, 0, 0.5019608, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_5qtt2"]
gradient = SubResource("Gradient_qgt32")
fill_from = Vector2(0, 0.5)
fill_to = Vector2(0, 1)
[node name="PhoneScreen" type="TextureRect" unique_id=422469732]
custom_minimum_size = Vector2(400, 640)
anchors_preset = -1
anchor_right = 0.41666666
anchor_bottom = 1.1851852
size_flags_horizontal = 0
size_flags_vertical = 0
texture = ExtResource("1_vvup7")
script = ExtResource("4_myhe7")
conversation = ExtResource("3_5qtt2")
metadata/_edit_use_anchors_ = true
[node name="ForegroundApp" type="MarginContainer" parent="." unique_id=1253480453]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 4
theme_override_constants/margin_right = 4
theme_override_constants/margin_bottom = 0
[node name="AppLayout" type="VBoxContainer" parent="ForegroundApp" unique_id=1207866359]
layout_mode = 2
theme = ExtResource("1_6hmi7")
[node name="ChatContainer" type="ScrollContainer" parent="ForegroundApp/AppLayout" unique_id=124411261]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
horizontal_scroll_mode = 0
vertical_scroll_mode = 2
[node name="ChatHistory" type="VBoxContainer" parent="ForegroundApp/AppLayout/ChatContainer" unique_id=1303301180]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="ChatHeader" type="TextureRect" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory" unique_id=706531178]
custom_minimum_size = Vector2(0, 320)
layout_mode = 2
texture = SubResource("GradientTexture2D_5qtt2")
[node name="VBoxContainer" type="VBoxContainer" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory/ChatHeader" unique_id=2070178907]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Spacer" type="Control" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory/ChatHeader/VBoxContainer" unique_id=52070824]
custom_minimum_size = Vector2(0, 64)
layout_mode = 2
[node name="ContactAvatar" type="TextureRect" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory/ChatHeader/VBoxContainer" unique_id=1516679922]
layout_mode = 2
texture = ExtResource("5_5qtt2")
stretch_mode = 3
[node name="ContactText" type="Label" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory/ChatHeader/VBoxContainer" unique_id=21415362]
layout_mode = 2
text = "<Name> <Given Name>
+49 123456789
Member of 👯Geschwister"
label_settings = ExtResource("5_qgt32")
horizontal_alignment = 1
vertical_alignment = 2
[node name="BoundaryText" type="Label" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory/ChatHeader/VBoxContainer" unique_id=1935901886]
layout_mode = 2
text = "This is the beginning of your chat history with <Name> on this device.
"
label_settings = ExtResource("5_qgt32")
horizontal_alignment = 1
vertical_alignment = 2
[node name="Message-Other" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory" unique_id=102479796 instance=ExtResource("8_wih1b")]
layout_mode = 2
script = null
[node name="Message-Self" parent="ForegroundApp/AppLayout/ChatContainer/ChatHistory" unique_id=806983375 instance=ExtResource("13_qw8qg")]
layout_mode = 2
script = null
[node name="TopBarShade" type="PanelContainer" parent="." unique_id=18123572]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 32.0
grow_horizontal = 2
size_flags_vertical = 0
theme_override_styles/panel = ExtResource("3_qbcw0")
[node name="TopBar" type="HBoxContainer" parent="TopBarShade" unique_id=715115340]
layout_mode = 2
alignment = 1
[node name="Time" type="Label" parent="TopBarShade/TopBar" unique_id=538973152]
layout_mode = 2
text = "08:12 PM"
label_settings = ExtResource("2_xckgu")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Notifcations" type="TextureRect" parent="TopBarShade/TopBar" unique_id=164400921]
layout_mode = 2
texture = ExtResource("3_myhe7")
[node name="Dot1" type="TextureRect" parent="TopBarShade/TopBar" unique_id=1306078406]
layout_mode = 2
texture = ExtResource("4_vvup7")
[node name="Dot2" type="TextureRect" parent="TopBarShade/TopBar" unique_id=256206201]
layout_mode = 2
texture = ExtResource("4_vvup7")
[node name="Control2" type="Control" parent="TopBarShade/TopBar" unique_id=209916177]
layout_mode = 2
size_flags_horizontal = 3
[node name="SignalStrength" type="TextureRect" parent="TopBarShade/TopBar" unique_id=416104296]
layout_mode = 2
texture = ExtResource("4_xckgu")
[node name="Carrier" type="Label" parent="TopBarShade/TopBar" unique_id=61022698]
layout_mode = 2
text = "HRT-Mobile"
label_settings = ExtResource("2_xckgu")
horizontal_alignment = 1
vertical_alignment = 1
[node name="NavBarShade" type="PanelContainer" parent="." unique_id=555699836]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -32.0
grow_horizontal = 2
grow_vertical = 0
size_flags_vertical = 0
theme_override_styles/panel = ExtResource("3_qbcw0")
[node name="NavBar" type="HBoxContainer" parent="NavBarShade" unique_id=2104485739]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
alignment = 1
[node name="Dot1" type="TextureRect" parent="NavBarShade/NavBar" unique_id=839179932]
layout_mode = 2
texture = ExtResource("4_vvup7")
[node name="Dot2" type="TextureRect" parent="NavBarShade/NavBar" unique_id=993692065]
layout_mode = 2
texture = ExtResource("4_vvup7")

View File

@ -0,0 +1,35 @@
## chat_bubble.gd — attach to your bubble container (e.g. PanelContainer)
@tool
class_name ChatBubble
extends Container
@export var min_bubble_width: float = 64.0
@export var max_bubble_width: float = 512.0
@onready var label: RichTextLabel = %RichTextLabel
@onready var timestamp: Label = %TimeStamp
var _text := ""
func _ready():
label.resized.connect(_on_label_resized)
label.theme_changed.connect(_on_label_resized)
label.fit_content = true
func _process(_delta: float) -> void:
if (label.text != _text):
set_text(label.text, timestamp.text)
func set_text(new_text: String, new_time: String) -> void:
_text = new_text
label.autowrap_mode = TextServer.AUTOWRAP_OFF
label.custom_minimum_size.x = min_bubble_width
label.text = _text # triggers layout → NOTIFICATION_RESIZED
timestamp.text = new_time
func _on_label_resized() -> void:
if label.get_content_width() > max_bubble_width:
label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART
label.custom_minimum_size.x = max_bubble_width
else:
pass # already correctly sized

View File

@ -0,0 +1 @@
uid://dlbwvie007wfx

View File

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="ChatConversation" format=3 uid="uid://cc6q101fbtq0"]
[ext_resource type="Script" uid="uid://be16bo6mf4kqu" path="res://logic-scenes/chat_view/chat-message.gd" id="1_lpye3"]
[ext_resource type="Script" uid="uid://c8hqd1leg4dfy" path="res://logic-scenes/chat_view/chat-conversation.gd" id="2_kg6cg"]
[sub_resource type="Resource" id="Resource_iwd5k"]
script = ExtResource("1_lpye3")
text = "Sorry"
time_string = "This is smol."
metadata/_custom_type_script = "uid://be16bo6mf4kqu"
[sub_resource type="Resource" id="Resource_1hd2w"]
script = ExtResource("1_lpye3")
text = "I never knew what to say. Can I write instead? "
time_string = "8:12 PM"
metadata/_custom_type_script = "uid://be16bo6mf4kqu"
[sub_resource type="Resource" id="Resource_w8y7q"]
script = ExtResource("1_lpye3")
text = "🙄"
time_string = "7:59 PM"
is_own_message = true
metadata/_custom_type_script = "uid://be16bo6mf4kqu"
[resource]
script = ExtResource("2_kg6cg")
messages = Array[ExtResource("1_lpye3")]([SubResource("Resource_iwd5k"), SubResource("Resource_1hd2w"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q"), SubResource("Resource_w8y7q")])
metadata/_custom_type_script = "uid://c8hqd1leg4dfy"

View File

@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" format=3 uid="uid://dy1l6fcsy54od"]
[ext_resource type="FontFile" uid="uid://bdkb43smt08c0" path="res://import/fonts/Ubuntu-B.ttf" id="1_tvq1w"]
[resource]
font = ExtResource("1_tvq1w")
font_size = 18
shadow_size = 0

View File

@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" format=3 uid="uid://mh8uu4rlqmv5"]
[ext_resource type="FontFile" uid="uid://bdkb43smt08c0" path="res://import/fonts/Ubuntu-B.ttf" id="1_f4p0e"]
[resource]
font = ExtResource("1_f4p0e")
font_color = Color(0, 0, 0, 0.8627451)
shadow_size = 0

View File

@ -0,0 +1,66 @@
[gd_scene format=3 uid="uid://dc58hnxdn0l2o"]
[ext_resource type="Theme" uid="uid://bhw3jbbrt3m1k" path="res://logic-scenes/chat_view/theme-smartphone.tres" id="1_0pomh"]
[ext_resource type="Texture2D" uid="uid://dekaqj10p8rqk" path="res://logic-scenes/chat_view/avatar-self.png" id="1_r4gcv"]
[ext_resource type="StyleBox" uid="uid://dj1fuvcy0sw7k" path="res://logic-scenes/chat_view/style-chat-bubble.tres" id="2_0pomh"]
[ext_resource type="Script" uid="uid://dlbwvie007wfx" path="res://logic-scenes/chat_view/chat_bubble.gd" id="3_3g7sa"]
[ext_resource type="LabelSettings" uid="uid://mh8uu4rlqmv5" path="res://logic-scenes/chat_view/label-timestamp.tres" id="4_yjo27"]
[node name="Message-Other" type="HBoxContainer" unique_id=102479796]
size_flags_horizontal = 3
theme = ExtResource("1_0pomh")
alignment = 2
script = ExtResource("3_3g7sa")
[node name="Avatar" type="TextureRect" parent="." unique_id=1077043040]
layout_mode = 2
size_flags_vertical = 8
texture = ExtResource("1_r4gcv")
stretch_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1636732531]
layout_mode = 2
size_flags_horizontal = 2
size_flags_vertical = 9
[node name="Bubble" type="PanelContainer" parent="VBoxContainer" unique_id=793380316]
custom_minimum_size = Vector2(0, 52)
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 3
theme_override_styles/panel = ExtResource("2_0pomh")
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/Bubble" unique_id=1163778954]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 4
[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer/Bubble/MarginContainer" unique_id=418400525]
unique_name_in_owner = true
custom_minimum_size = Vector2(64, 64)
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"message-other"
bbcode_enabled = true
text = "It is a long established fact"
fit_content = true
scroll_active = false
autowrap_mode = 0
vertical_alignment = 1
justification_flags = 99
metadata/_custom_type_script = "uid://dlbwvie007wfx"
[node name="TimeStamp" type="Label" parent="VBoxContainer" unique_id=1723936773]
unique_name_in_owner = true
layout_mode = 2
text = "8:12 PM"
label_settings = ExtResource("4_yjo27")
horizontal_alignment = 2
[node name="Spacer" type="Control" parent="." unique_id=1047768334]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2

View File

@ -0,0 +1,65 @@
[gd_scene format=3 uid="uid://cjodbrwc01gwi"]
[ext_resource type="Theme" uid="uid://bhw3jbbrt3m1k" path="res://logic-scenes/chat_view/theme-smartphone.tres" id="1_aitur"]
[ext_resource type="StyleBox" uid="uid://dd4xc216ul21m" path="res://logic-scenes/chat_view/style-chat-bubble-self.tres" id="1_ufk1a"]
[ext_resource type="Script" uid="uid://dlbwvie007wfx" path="res://logic-scenes/chat_view/chat_bubble.gd" id="2_aitur"]
[ext_resource type="LabelSettings" uid="uid://mh8uu4rlqmv5" path="res://logic-scenes/chat_view/label-timestamp.tres" id="3_hmjif"]
[ext_resource type="Texture2D" uid="uid://dekaqj10p8rqk" path="res://logic-scenes/chat_view/avatar-self.png" id="4_q2b2g"]
[node name="Message-Self" type="HBoxContainer" unique_id=806983375]
size_flags_horizontal = 3
theme = ExtResource("1_aitur")
alignment = 2
script = ExtResource("2_aitur")
[node name="Spacer" type="Control" parent="." unique_id=929861663]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=361845079]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 9
[node name="Bubble" type="PanelContainer" parent="VBoxContainer" unique_id=930440916]
custom_minimum_size = Vector2(0, 52)
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 3
theme_override_styles/panel = ExtResource("1_ufk1a")
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/Bubble" unique_id=2011015357]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
theme_override_constants/margin_left = 4
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 4
[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer/Bubble/MarginContainer" unique_id=342773493]
unique_name_in_owner = true
custom_minimum_size = Vector2(512, 64)
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"message-other"
bbcode_enabled = true
text = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s."
fit_content = true
scroll_active = false
vertical_alignment = 1
justification_flags = 99
metadata/_custom_type_script = "uid://dlbwvie007wfx"
[node name="TimeStamp" type="Label" parent="VBoxContainer" unique_id=1916601114]
unique_name_in_owner = true
layout_mode = 2
text = "8:12 PM"
label_settings = ExtResource("3_hmjif")
horizontal_alignment = 2
[node name="Avatar" type="TextureRect" parent="." unique_id=502320005]
layout_mode = 2
size_flags_vertical = 8
texture = ExtResource("4_q2b2g")
stretch_mode = 2

BIN
src/logic-scenes/chat_view/phone-background.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3guc2v1fj04p"
path="res://.godot/imported/phone-background.png-a0d3235eeec56f234efbacce8d08f024.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logic-scenes/chat_view/phone-background.png"
dest_files=["res://.godot/imported/phone-background.png-a0d3235eeec56f234efbacce8d08f024.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/logic-scenes/chat_view/phone-dot.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cv58eu35ra1ku"
path="res://.godot/imported/phone-dot.png-2758efc6f7ccb6f5a32a65b4f7cfdc54.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logic-scenes/chat_view/phone-dot.png"
dest_files=["res://.godot/imported/phone-dot.png-2758efc6f7ccb6f5a32a65b4f7cfdc54.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/logic-scenes/chat_view/phone-notifications.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dhecdhucnu7sq"
path="res://.godot/imported/phone-notifications.png-2e4c4652e368365f11a8fcd5429d7863.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logic-scenes/chat_view/phone-notifications.png"
dest_files=["res://.godot/imported/phone-notifications.png-2e4c4652e368365f11a8fcd5429d7863.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/logic-scenes/chat_view/phone-signal.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bng2qbusdg7dj"
path="res://.godot/imported/phone-signal.png-dd1931ca7afeae37c8c6215bd5a99a82.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logic-scenes/chat_view/phone-signal.png"
dest_files=["res://.godot/imported/phone-signal.png-dd1931ca7afeae37c8c6215bd5a99a82.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,15 @@
[gd_resource type="StyleBoxFlat" format=3 uid="uid://dd4xc216ul21m"]
[resource]
bg_color = Color(0.21568628, 0.49019608, 0.7607843, 1)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(1, 1, 1, 0.5019608)
border_blend = true
corner_radius_top_left = 24
corner_radius_top_right = 24
corner_radius_bottom_left = 24
shadow_size = 5
shadow_offset = Vector2(5, 8)

View File

@ -0,0 +1,15 @@
[gd_resource type="StyleBoxFlat" format=3 uid="uid://dj1fuvcy0sw7k"]
[resource]
bg_color = Color(0, 0.5529412, 0.5137255, 1)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(1, 1, 1, 0.5019608)
border_blend = true
corner_radius_top_left = 24
corner_radius_top_right = 24
corner_radius_bottom_right = 24
shadow_size = 5
shadow_offset = Vector2(5, 8)

View File

@ -0,0 +1,4 @@
[gd_resource type="StyleBoxFlat" format=3 uid="uid://coqfwa80t22m0"]
[resource]
bg_color = Color(0, 0, 0, 0.627451)

View File

@ -0,0 +1,8 @@
[gd_resource type="Theme" format=3 uid="uid://bhw3jbbrt3m1k"]
[ext_resource type="FontFile" uid="uid://b0i5ipn75noh6" path="res://import/fonts/Ubuntu-R.ttf" id="1_o4frn"]
[resource]
default_font = ExtResource("1_o4frn")
default_font_size = 24
VBoxContainer/constants/separation = 9