mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2025-12-16 13:30:07 +01:00
[Complex Text Layouts] Add BiDi and font features demo.
This commit is contained in:
94
gui/bidi_and_font_features/LICENSE.LinLibertine.txt
Normal file
94
gui/bidi_and_font_features/LICENSE.LinLibertine.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
Copyright (c) 2003–2012, Philipp H. Poll (www.linuxlibertine.org | gillian at linuxlibertine.org),
|
||||
with Reserved Font Name "Linux Libertine" and "Biolinum".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
92
gui/bidi_and_font_features/LICENSE.Noto.txt
Normal file
92
gui/bidi_and_font_features/LICENSE.Noto.txt
Normal file
@@ -0,0 +1,92 @@
|
||||
This Font Software is licensed under the SIL Open Font License,
|
||||
Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font
|
||||
creation efforts of academic and linguistic communities, and to
|
||||
provide a free and open framework in which fonts may be shared and
|
||||
improved in partnership with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply to
|
||||
any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software
|
||||
components as distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to,
|
||||
deleting, or substituting -- in part or in whole -- any of the
|
||||
components of the Original Version, by changing formats or by porting
|
||||
the Font Software to a new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed,
|
||||
modify, redistribute, and sell modified and unmodified copies of the
|
||||
Font Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components, in
|
||||
Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the
|
||||
corresponding Copyright Holder. This restriction only applies to the
|
||||
primary font name as presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created using
|
||||
the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
13
gui/bidi_and_font_features/README.md
Normal file
13
gui/bidi_and_font_features/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
BiDI and Font Features Demo
|
||||
|
||||
A demo showing BiDi text and BiDi overrides, line breaking and justification, and OpenType font features.
|
||||
|
||||
Language: GDScript
|
||||
|
||||
Renderer: Vulkan
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||

|
||||

|
||||
33
gui/bidi_and_font_features/bidi.gd
Normal file
33
gui/bidi_and_font_features/bidi.gd
Normal file
@@ -0,0 +1,33 @@
|
||||
extends Control
|
||||
|
||||
func _ready():
|
||||
var tree = $"TabContainer/Text direction/Tree"
|
||||
var root = tree.create_item()
|
||||
tree.set_hide_root(true)
|
||||
var first = tree.create_item(root)
|
||||
first.set_text(0, "רֵאשִׁית")
|
||||
var second = tree.create_item(first)
|
||||
second.set_text(0, "שֵׁנִי")
|
||||
var third = tree.create_item(second)
|
||||
third.set_text(0, "שְׁלִישִׁי")
|
||||
var fourth = tree.create_item(third)
|
||||
fourth.set_text(0, "fourth")
|
||||
|
||||
func _on_Tree_item_selected():
|
||||
var tree = $"TabContainer/Text direction/Tree"
|
||||
var path = ""
|
||||
var item = tree.get_selected()
|
||||
while item != null:
|
||||
path = item.get_text(0) + "/" + path
|
||||
item = item.get_parent()
|
||||
$"TabContainer/Text direction/LineEditST".text = path
|
||||
$"TabContainer/Text direction/LineEditNoST".text = path
|
||||
|
||||
func _on_LineEditCustomSTDst_text_changed(new_text):
|
||||
$"TabContainer/Text direction/LineEditCustomSTSource".text = new_text
|
||||
|
||||
func _on_LineEditCustomSTSource_text_changed(new_text):
|
||||
$"TabContainer/Text direction/LineEditCustomSTDst".text = new_text
|
||||
|
||||
func _on_LineEditCustomSTDst_tree_entered():
|
||||
$"TabContainer/Text direction/LineEditCustomSTDst".text = $"TabContainer/Text direction/LineEditCustomSTSource".text # Refresh text to apply custom script once it's loaded.
|
||||
627
gui/bidi_and_font_features/bidi.tscn
Normal file
627
gui/bidi_and_font_features/bidi.tscn
Normal file
@@ -0,0 +1,627 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://doa7j7q1j4p4e"]
|
||||
|
||||
[ext_resource type="Font" path="res://noto_font.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://bidi.gd" id="2"]
|
||||
[ext_resource type="Script" path="res://custom_st_parser.gd" id="3"]
|
||||
[ext_resource type="Font" path="res://lib_font.tres" id="4"]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( "2" )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Line breaking and justification" type="Panel" parent="TabContainer"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 4.0
|
||||
offset_top = 38.0
|
||||
offset_right = -4.0
|
||||
offset_bottom = -4.0
|
||||
script = null
|
||||
|
||||
[node name="LabelBrkInfo" type="Label" parent="TabContainer/Line breaking and justification"]
|
||||
offset_left = 30.0
|
||||
offset_top = 30.0
|
||||
offset_right = 830.0
|
||||
offset_bottom = 52.0
|
||||
theme_override_colors/font_color = Color(0.419608, 0.831373, 0.505882, 1)
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "1. Line breaking and space justification."
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelTHNoBreak" type="Label" parent="TabContainer/Line breaking and justification"]
|
||||
anchor_top = 0.000891266
|
||||
anchor_bottom = 0.000891266
|
||||
offset_left = 30.0
|
||||
offset_top = 69.5027
|
||||
offset_right = 988.0
|
||||
offset_bottom = 92.5027
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "ภาษาไทย หรือ ภาษาไทยกลาง เป็นภาษาราชการและภาษาประจำชาติของประเทศไทย ภาษาไทยเป็นภาษาในกลุ่มภาษาไทซึ่งเป็นกลุ่มย่อยของตระกูลภาษาขร้า-ไท"
|
||||
autowrap_mode = 3
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelTHBreak" type="Label" parent="TabContainer/Line breaking and justification"]
|
||||
offset_left = 30.0
|
||||
offset_top = 100.0
|
||||
offset_right = 333.0
|
||||
offset_bottom = 200.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "ภาษาไทย หรือ ภาษาไทยกลาง เป็นภาษาราชการและภาษาประจำชาติของประเทศไทย ภาษาไทยเป็นภาษาในกลุ่มภาษาไทซึ่งเป็นกลุ่มย่อยของตระกูลภาษาขร้า-ไท"
|
||||
align = 3
|
||||
autowrap_mode = 3
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelJstInfo" type="Label" parent="TabContainer/Line breaking and justification"]
|
||||
anchor_top = 0.000891266
|
||||
anchor_bottom = 0.000891266
|
||||
offset_left = 30.0
|
||||
offset_top = 213.5
|
||||
offset_right = 830.0
|
||||
offset_bottom = 236.5
|
||||
theme_override_colors/font_color = Color(0.420413, 0.832031, 0.504023, 1)
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "2. Kashida justification."
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelARNoJst2" type="Label" parent="TabContainer/Line breaking and justification"]
|
||||
anchor_top = 0.000891266
|
||||
anchor_bottom = 0.000891266
|
||||
offset_left = 30.0
|
||||
offset_top = 248.5
|
||||
offset_right = 830.0
|
||||
offset_bottom = 271.5
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "آنچ اندر وهم ناید آن شوم"
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelARJst" type="Label" parent="TabContainer/Line breaking and justification"]
|
||||
anchor_top = 0.000891266
|
||||
anchor_bottom = 0.000891266
|
||||
offset_left = 30.0
|
||||
offset_top = 273.5
|
||||
offset_right = 255.0
|
||||
offset_bottom = 296.5
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "آنچ اندر وهم ناید آن شوم"
|
||||
align = 3
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Text direction" type="Panel" parent="TabContainer"]
|
||||
visible = false
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 4.0
|
||||
offset_top = 38.0
|
||||
offset_right = -4.0
|
||||
offset_bottom = -4.0
|
||||
script = null
|
||||
|
||||
[node name="LabelDirInfo" type="Label" parent="TabContainer/Text direction"]
|
||||
offset_left = 30.0
|
||||
offset_top = 30.0
|
||||
offset_right = 830.0
|
||||
offset_bottom = 50.0
|
||||
theme_override_colors/font_color = Color(0.419608, 0.831373, 0.505882, 1)
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "1. Base text direction. (Left-to-right, Auto, Right-to-left)"
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditL1" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 30.0
|
||||
offset_top = 60.0
|
||||
offset_right = 260.0
|
||||
offset_bottom = 90.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Najaf (ٱلنَّجَف), also known as Baniqia."
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
text_direction = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditA1" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 270.0
|
||||
offset_top = 60.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 90.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Najaf (ٱلنَّجَف), also known as Baniqia."
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditR1" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
modulate = Color(0.847059, 0.54902, 0.54902, 1)
|
||||
offset_left = 510.0
|
||||
offset_top = 60.0
|
||||
offset_right = 740.0
|
||||
offset_bottom = 90.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Najaf (ٱلنَّجَف), also known as Baniqia."
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
text_direction = 2
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditL2" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
modulate = Color(0.847059, 0.54902, 0.54902, 1)
|
||||
offset_left = 30.0
|
||||
offset_top = 99.5
|
||||
offset_right = 260.0
|
||||
offset_bottom = 129.5
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "الإنجليزية أو الإنغليزية (بالإنجليزية: English)،"
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
text_direction = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditA2" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 270.0
|
||||
offset_top = 100.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 130.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "الإنجليزية أو الإنغليزية (بالإنجليزية: English)،"
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditR2" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 510.0
|
||||
offset_top = 100.0
|
||||
offset_right = 740.0
|
||||
offset_bottom = 130.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "الإنجليزية أو الإنغليزية (بالإنجليزية: English)،"
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
text_direction = 2
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelSTInfo" type="Label" parent="TabContainer/Text direction"]
|
||||
offset_left = 30.0
|
||||
offset_top = 150.0
|
||||
offset_right = 830.0
|
||||
offset_bottom = 170.0
|
||||
theme_override_colors/font_color = Color(0.419608, 0.831373, 0.505882, 1)
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "2. BiDi override for structured text (select item in the list to test)."
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Tree" type="Tree" parent="TabContainer/Text direction"]
|
||||
offset_left = 30.0
|
||||
offset_top = 180.0
|
||||
offset_right = 430.0
|
||||
offset_bottom = 340.0
|
||||
theme_override_fonts/title_button_font = ExtResource( "1" )
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelNoST" type="Label" parent="TabContainer/Text direction"]
|
||||
offset_left = 460.0
|
||||
offset_top = 195.0
|
||||
offset_right = 560.0
|
||||
offset_bottom = 215.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Default BiDi:"
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelST" type="Label" parent="TabContainer/Text direction"]
|
||||
offset_left = 460.0
|
||||
offset_top = 238.5
|
||||
offset_right = 560.0
|
||||
offset_bottom = 258.5
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "\"File\" override:"
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditNoST" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 582.0
|
||||
offset_top = 188.0
|
||||
offset_right = 882.0
|
||||
offset_bottom = 218.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditST" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 582.0
|
||||
offset_top = 236.0
|
||||
offset_right = 882.0
|
||||
offset_bottom = 266.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
structured_text_bidi_override = 2
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelSTCustomInfo" type="Label" parent="TabContainer/Text direction"]
|
||||
offset_left = 30.0
|
||||
offset_top = 358.0
|
||||
offset_right = 830.0
|
||||
offset_bottom = 381.0
|
||||
theme_override_colors/font_color = Color(0.419608, 0.831373, 0.505882, 1)
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "3. Custom BiDi override script (split by \":\" and reverse the order, see \"cutom_st_parser.gd\"):"
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditCustomSTSource" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 30.0
|
||||
offset_top = 396.0
|
||||
offset_right = 330.0
|
||||
offset_bottom = 426.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "first:second:third"
|
||||
context_menu_enabled = false
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LineEditCustomSTDst" type="LineEdit" parent="TabContainer/Text direction"]
|
||||
offset_left = 342.0
|
||||
offset_top = 396.0
|
||||
offset_right = 642.0
|
||||
offset_bottom = 426.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "first:second:third"
|
||||
context_menu_enabled = false
|
||||
structured_text_bidi_override = 6
|
||||
structured_text_bidi_override_options = []
|
||||
script = ExtResource( "3" )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Font features" type="Panel" parent="TabContainer"]
|
||||
visible = false
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 4.0
|
||||
offset_top = 38.0
|
||||
offset_right = -4.0
|
||||
offset_bottom = -4.0
|
||||
script = null
|
||||
|
||||
[node name="LabelDisplay1" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 30.0
|
||||
offset_top = 30.0
|
||||
offset_right = 330.0
|
||||
offset_bottom = 70.0
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Que fin after 019 1/2 1/3 &, h, β, θ,"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelInfo1" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 446.0
|
||||
offset_top = 30.0
|
||||
offset_right = 746.0
|
||||
offset_bottom = 70.0
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "default, no features"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelDisplay2" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 30.0
|
||||
offset_top = 69.5
|
||||
offset_right = 330.0
|
||||
offset_bottom = 109.5
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Que fin after 019 1/2 1/3 &, h, β, θ,"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
opentype_features/standard_ligatures = null
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelInfo2" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 446.0
|
||||
offset_top = 70.0
|
||||
offset_right = 746.0
|
||||
offset_bottom = 110.0
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "standard_ligatures=0 (disabled)"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelDisplay3" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 30.0
|
||||
offset_top = 109.5
|
||||
offset_right = 330.0
|
||||
offset_bottom = 149.5
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Que fin after 019 1/2 1/3 &, h, β, θ,"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
opentype_features/small_capitals = 1.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelInfo3" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 446.0
|
||||
offset_top = 110.0
|
||||
offset_right = 746.0
|
||||
offset_bottom = 150.0
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "small_capitals=1"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelDisplay4" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 31.0
|
||||
offset_top = 150.5
|
||||
offset_right = 331.0
|
||||
offset_bottom = 190.5
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Que fin after 019 1/2 1/3 &, h, β, θ,"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
opentype_features/slashed_zero = 1.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelInfo4" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 446.0
|
||||
offset_top = 150.0
|
||||
offset_right = 746.0
|
||||
offset_bottom = 190.0
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "slashed_zero=1"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelDisplay5" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 31.0
|
||||
offset_top = 190.5
|
||||
offset_right = 331.0
|
||||
offset_bottom = 230.5
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Que fin after 019 1/2 1/3 &, h, β, θ,"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
opentype_features/fractions = 1.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelInfo5" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 446.0
|
||||
offset_top = 190.0
|
||||
offset_right = 918.609
|
||||
offset_bottom = 230.0
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "fractions"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelDisplay6" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 31.0
|
||||
offset_top = 230.5
|
||||
offset_right = 331.0
|
||||
offset_bottom = 270.5
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Que fin after 019 1/2 1/3 &, h, β, θ,"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
opentype_features/oldstyle_figures = 1.0
|
||||
opentype_features/stylistic_alternates = 1.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelInfo6" type="Label" parent="TabContainer/Font features"]
|
||||
offset_left = 446.0
|
||||
offset_top = 230.0
|
||||
offset_right = 918.609
|
||||
offset_bottom = 270.0
|
||||
theme_override_fonts/font = ExtResource( "4" )
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "oldstyle_figures=1, stylistic_alternates=1"
|
||||
valign = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="TabContainer/Font features"]
|
||||
offset_left = 33.0
|
||||
offset_top = 287.0
|
||||
offset_right = 965.0
|
||||
offset_bottom = 383.0
|
||||
theme_override_fonts/normal_font = ExtResource( "4" )
|
||||
text = "
|
||||
Que fin 1/3 0 Que fin 1/3 0 Que fin 1/3 0
|
||||
"
|
||||
bbcode_enabled = true
|
||||
custom_effects = []
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="RichTextLabel2" type="RichTextLabel" parent="TabContainer/Font features"]
|
||||
anchor_left = -0.000334372
|
||||
anchor_right = -0.000334372
|
||||
offset_left = 33.3397
|
||||
offset_top = 407.0
|
||||
offset_right = 992.34
|
||||
offset_bottom = 490.0
|
||||
theme_override_fonts/normal_font = ExtResource( "4" )
|
||||
text = "[font_size=24]
|
||||
Que fin 1/3 0 [opentype_features=liga=0]Que fin 1/3 0[/opentype_features] [opentype_features=frac=1,zero]Que fin 1/3 0[/opentype_features]
|
||||
[/font_size]"
|
||||
custom_effects = []
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[connection signal="item_selected" from="TabContainer/Text direction/Tree" to="." method="_on_Tree_item_selected"]
|
||||
[connection signal="text_changed" from="TabContainer/Text direction/LineEditCustomSTSource" to="." method="_on_LineEditCustomSTSource_text_changed"]
|
||||
[connection signal="text_changed" from="TabContainer/Text direction/LineEditCustomSTDst" to="." method="_on_LineEditCustomSTDst_text_changed"]
|
||||
[connection signal="tree_entered" from="TabContainer/Text direction/LineEditCustomSTDst" to="." method="_on_LineEditCustomSTDst_tree_entered"]
|
||||
15
gui/bidi_and_font_features/custom_st_parser.gd
Normal file
15
gui/bidi_and_font_features/custom_st_parser.gd
Normal file
@@ -0,0 +1,15 @@
|
||||
extends LineEdit
|
||||
|
||||
func _structured_text_parser(args, text):
|
||||
var output = []
|
||||
var tags = text.split(":")
|
||||
var prev = 0
|
||||
var count = int(tags.size())
|
||||
output.clear()
|
||||
for i in range(count):
|
||||
var range1 = Vector2i(prev, prev + tags[i].length())
|
||||
var range2 = Vector2i(prev + tags[i].length(), prev + tags[i].length() + 1)
|
||||
output.push_front(range1)
|
||||
output.push_front(range2)
|
||||
prev = prev + tags[i].length() + 1
|
||||
return output
|
||||
BIN
gui/bidi_and_font_features/fonts/LinLibertine_R.otf
Normal file
BIN
gui/bidi_and_font_features/fonts/LinLibertine_R.otf
Normal file
Binary file not shown.
28
gui/bidi_and_font_features/fonts/LinLibertine_R.otf.import
Normal file
28
gui/bidi_and_font_features/fonts/LinLibertine_R.otf.import
Normal file
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontData"
|
||||
uid="uid://bic5b75wmaxwj"
|
||||
path="res://.godot/imported/LinLibertine_R.otf-0d33583986cf94e9ad55cc89a5951934.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://fonts/LinLibertine_R.otf"
|
||||
dest_files=["res://.godot/imported/LinLibertine_R.otf-0d33583986cf94e9ad55cc89a5951934.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
antialiased=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8.0
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
oversampling=0.0
|
||||
compress=true
|
||||
preload/char_ranges=PackedStringArray()
|
||||
preload/glyph_ranges=PackedStringArray()
|
||||
preload/configurations=PackedStringArray()
|
||||
support_overrides/language_enabled=PackedStringArray()
|
||||
support_overrides/language_disabled=PackedStringArray()
|
||||
support_overrides/script_enabled=PackedStringArray()
|
||||
support_overrides/script_disabled=PackedStringArray()
|
||||
BIN
gui/bidi_and_font_features/fonts/NotoNaskhArabicUI_Regular.ttf
Normal file
BIN
gui/bidi_and_font_features/fonts/NotoNaskhArabicUI_Regular.ttf
Normal file
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontData"
|
||||
uid="uid://61ui1kmi5tt7"
|
||||
path="res://.godot/imported/NotoNaskhArabicUI_Regular.ttf-71ae3841953d426d66ee60d00f69e0e0.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://fonts/NotoNaskhArabicUI_Regular.ttf"
|
||||
dest_files=["res://.godot/imported/NotoNaskhArabicUI_Regular.ttf-71ae3841953d426d66ee60d00f69e0e0.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
antialiased=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8.0
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
oversampling=0.0
|
||||
compress=true
|
||||
preload/char_ranges=PackedStringArray()
|
||||
preload/glyph_ranges=PackedStringArray()
|
||||
preload/configurations=PackedStringArray()
|
||||
support_overrides/language_enabled=PackedStringArray()
|
||||
support_overrides/language_disabled=PackedStringArray()
|
||||
support_overrides/script_enabled=PackedStringArray()
|
||||
support_overrides/script_disabled=PackedStringArray()
|
||||
BIN
gui/bidi_and_font_features/fonts/NotoSansHebrew_Regular.ttf
Normal file
BIN
gui/bidi_and_font_features/fonts/NotoSansHebrew_Regular.ttf
Normal file
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontData"
|
||||
uid="uid://cwer1pi5ka4io"
|
||||
path="res://.godot/imported/NotoSansHebrew_Regular.ttf-9d09161984e30bb05b9445728c29a2a8.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://fonts/NotoSansHebrew_Regular.ttf"
|
||||
dest_files=["res://.godot/imported/NotoSansHebrew_Regular.ttf-9d09161984e30bb05b9445728c29a2a8.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
antialiased=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8.0
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
oversampling=0.0
|
||||
compress=true
|
||||
preload/char_ranges=PackedStringArray()
|
||||
preload/glyph_ranges=PackedStringArray()
|
||||
preload/configurations=PackedStringArray()
|
||||
support_overrides/language_enabled=PackedStringArray()
|
||||
support_overrides/language_disabled=PackedStringArray()
|
||||
support_overrides/script_enabled=PackedStringArray()
|
||||
support_overrides/script_disabled=PackedStringArray()
|
||||
BIN
gui/bidi_and_font_features/fonts/NotoSansThaiUI_Regular.ttf
Normal file
BIN
gui/bidi_and_font_features/fonts/NotoSansThaiUI_Regular.ttf
Normal file
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontData"
|
||||
uid="uid://dcyy0x2u3jocr"
|
||||
path="res://.godot/imported/NotoSansThaiUI_Regular.ttf-a2b65614687aa5ce07b4d39f23198f14.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://fonts/NotoSansThaiUI_Regular.ttf"
|
||||
dest_files=["res://.godot/imported/NotoSansThaiUI_Regular.ttf-a2b65614687aa5ce07b4d39f23198f14.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
antialiased=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8.0
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
oversampling=0.0
|
||||
compress=true
|
||||
preload/char_ranges=PackedStringArray()
|
||||
preload/glyph_ranges=PackedStringArray()
|
||||
preload/configurations=PackedStringArray()
|
||||
support_overrides/language_enabled=PackedStringArray()
|
||||
support_overrides/language_disabled=PackedStringArray()
|
||||
support_overrides/script_enabled=PackedStringArray()
|
||||
support_overrides/script_disabled=PackedStringArray()
|
||||
BIN
gui/bidi_and_font_features/fonts/NotoSansUI_Regular.ttf
Normal file
BIN
gui/bidi_and_font_features/fonts/NotoSansUI_Regular.ttf
Normal file
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontData"
|
||||
uid="uid://ba53h385o6ips"
|
||||
path="res://.godot/imported/NotoSansUI_Regular.ttf-e126ff40055cb76ad9714327677638b8.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://fonts/NotoSansUI_Regular.ttf"
|
||||
dest_files=["res://.godot/imported/NotoSansUI_Regular.ttf-e126ff40055cb76ad9714327677638b8.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
antialiased=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8.0
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
oversampling=0.0
|
||||
compress=true
|
||||
preload/char_ranges=PackedStringArray()
|
||||
preload/glyph_ranges=PackedStringArray()
|
||||
preload/configurations=PackedStringArray()
|
||||
support_overrides/language_enabled=PackedStringArray()
|
||||
support_overrides/language_disabled=PackedStringArray()
|
||||
support_overrides/script_enabled=PackedStringArray()
|
||||
support_overrides/script_disabled=PackedStringArray()
|
||||
BIN
gui/bidi_and_font_features/icon.png
Normal file
BIN
gui/bidi_and_font_features/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
35
gui/bidi_and_font_features/icon.png.import
Normal file
35
gui/bidi_and_font_features/icon.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture2D"
|
||||
uid="uid://g6u3g3bv5nva"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
compress/streamed=false
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
6
gui/bidi_and_font_features/lib_font.tres
Normal file
6
gui/bidi_and_font_features/lib_font.tres
Normal file
@@ -0,0 +1,6 @@
|
||||
[gd_resource type="Font" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://fonts/LinLibertine_R.otf" type="FontData" id=1]
|
||||
|
||||
[resource]
|
||||
data/0 = ExtResource( 1 )
|
||||
12
gui/bidi_and_font_features/noto_font.tres
Normal file
12
gui/bidi_and_font_features/noto_font.tres
Normal file
@@ -0,0 +1,12 @@
|
||||
[gd_resource type="Font" load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://fonts/NotoSansThaiUI_Regular.ttf" type="FontData" id=1]
|
||||
[ext_resource path="res://fonts/NotoNaskhArabicUI_Regular.ttf" type="FontData" id=2]
|
||||
[ext_resource path="res://fonts/NotoSansHebrew_Regular.ttf" type="FontData" id=3]
|
||||
[ext_resource path="res://fonts/NotoSansUI_Regular.ttf" type="FontData" id=4]
|
||||
|
||||
[resource]
|
||||
data/0 = ExtResource( 1 )
|
||||
data/1 = ExtResource( 2 )
|
||||
data/2 = ExtResource( 3 )
|
||||
data/3 = ExtResource( 4 )
|
||||
15
gui/bidi_and_font_features/project.godot
Normal file
15
gui/bidi_and_font_features/project.godot
Normal file
@@ -0,0 +1,15 @@
|
||||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=4
|
||||
|
||||
[application]
|
||||
|
||||
config/name="BiDi and font features demo."
|
||||
run/main_scene="res://bidi.tscn"
|
||||
config/icon="res://icon.png"
|
||||
BIN
gui/bidi_and_font_features/screenshots/bidi.png
Normal file
BIN
gui/bidi_and_font_features/screenshots/bidi.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 172 KiB |
35
gui/bidi_and_font_features/screenshots/bidi.png.import
Normal file
35
gui/bidi_and_font_features/screenshots/bidi.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture2D"
|
||||
uid="uid://e0kr85p63y1e"
|
||||
path="res://.godot/imported/bidi.png-b063a53994859c3e43f1022e88c1162c.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://screenshots/bidi.png"
|
||||
dest_files=["res://.godot/imported/bidi.png-b063a53994859c3e43f1022e88c1162c.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
compress/streamed=false
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
BIN
gui/bidi_and_font_features/screenshots/font_features.png
Normal file
BIN
gui/bidi_and_font_features/screenshots/font_features.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 156 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture2D"
|
||||
uid="uid://c1acx0yclosw3"
|
||||
path="res://.godot/imported/font_features.png-0a9509f2c2c735752a635f0a4ca36458.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://screenshots/font_features.png"
|
||||
dest_files=["res://.godot/imported/font_features.png-0a9509f2c2c735752a635f0a4ca36458.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
compress/streamed=false
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
BIN
gui/bidi_and_font_features/screenshots/line_break_and_fill.png
Normal file
BIN
gui/bidi_and_font_features/screenshots/line_break_and_fill.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 157 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture2D"
|
||||
uid="uid://buudvan2lbkg8"
|
||||
path="res://.godot/imported/line_break_and_fill.png-7f47b8c4f43550cfc850eae46ff42cd7.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://screenshots/line_break_and_fill.png"
|
||||
dest_files=["res://.godot/imported/line_break_and_fill.png-7f47b8c4f43550cfc850eae46ff42cd7.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
compress/streamed=false
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
28
gui/ui_mirroring/fonts/NotoNaskhArabic-Bold.ttf.import
Normal file
28
gui/ui_mirroring/fonts/NotoNaskhArabic-Bold.ttf.import
Normal file
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontData"
|
||||
uid="uid://cppw66bb3hcnx"
|
||||
path="res://.godot/imported/NotoNaskhArabic-Bold.ttf-b67ac52f5189efb58090e60209f82666.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://fonts/NotoNaskhArabic-Bold.ttf"
|
||||
dest_files=["res://.godot/imported/NotoNaskhArabic-Bold.ttf-b67ac52f5189efb58090e60209f82666.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
antialiased=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8.0
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
oversampling=0.0
|
||||
compress=true
|
||||
preload/char_ranges=PackedStringArray()
|
||||
preload/glyph_ranges=PackedStringArray()
|
||||
preload/configurations=PackedStringArray()
|
||||
support_overrides/language_enabled=PackedStringArray()
|
||||
support_overrides/language_disabled=PackedStringArray()
|
||||
support_overrides/script_enabled=PackedStringArray()
|
||||
support_overrides/script_disabled=PackedStringArray()
|
||||
28
gui/ui_mirroring/fonts/NotoSans-Bold.ttf.import
Normal file
28
gui/ui_mirroring/fonts/NotoSans-Bold.ttf.import
Normal file
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontData"
|
||||
uid="uid://gfhw2u2k16h"
|
||||
path="res://.godot/imported/NotoSans-Bold.ttf-8ff3d9f1cfda88e84d6afd9724b2bba7.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://fonts/NotoSans-Bold.ttf"
|
||||
dest_files=["res://.godot/imported/NotoSans-Bold.ttf-8ff3d9f1cfda88e84d6afd9724b2bba7.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
antialiased=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8.0
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
oversampling=0.0
|
||||
compress=true
|
||||
preload/char_ranges=PackedStringArray()
|
||||
preload/glyph_ranges=PackedStringArray()
|
||||
preload/configurations=PackedStringArray()
|
||||
support_overrides/language_enabled=PackedStringArray()
|
||||
support_overrides/language_disabled=PackedStringArray()
|
||||
support_overrides/script_enabled=PackedStringArray()
|
||||
support_overrides/script_disabled=PackedStringArray()
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture2D"
|
||||
uid="uid://bn78a6fg2lrwg"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
@@ -10,7 +11,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -27,7 +28,7 @@ roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
||||
35
gui/ui_mirroring/screenshots/ui_mirroring_ar.png.import
Normal file
35
gui/ui_mirroring/screenshots/ui_mirroring_ar.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture2D"
|
||||
uid="uid://bk7vjwlmxebjj"
|
||||
path="res://.godot/imported/ui_mirroring_ar.png-0ac3776471fa54847d7107e345a38530.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://screenshots/ui_mirroring_ar.png"
|
||||
dest_files=["res://.godot/imported/ui_mirroring_ar.png-0ac3776471fa54847d7107e345a38530.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
compress/streamed=false
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
35
gui/ui_mirroring/screenshots/ui_mirroring_en.png.import
Normal file
35
gui/ui_mirroring/screenshots/ui_mirroring_en.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture2D"
|
||||
uid="uid://kmiwt21qccaq"
|
||||
path="res://.godot/imported/ui_mirroring_en.png-2424f2dd8e09af8f321757ff70ce6185.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://screenshots/ui_mirroring_en.png"
|
||||
dest_files=["res://.godot/imported/ui_mirroring_en.png-2424f2dd8e09af8f321757ff70ce6185.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
compress/streamed=false
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://c20r173idr1eu"]
|
||||
|
||||
[ext_resource path="res://noto_font.tres" type="Font" id=1]
|
||||
[ext_resource type="Font" path="res://noto_font.tres" id="1"]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
[sub_resource type="GDScript" id="1"]
|
||||
script/source = "extends Control
|
||||
|
||||
func _ready():
|
||||
@@ -19,19 +19,19 @@ func _on_Button_pressed():
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = SubResource( 1 )
|
||||
script = SubResource( "1" )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="PanelLTR" type="Panel" parent="."]
|
||||
self_modulate = Color( 0.494118, 1, 0.737255, 1 )
|
||||
self_modulate = Color(0.494118, 1, 0.737255, 1)
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 35.0
|
||||
margin_top = -200.0
|
||||
margin_right = 275.0
|
||||
margin_bottom = -50.0
|
||||
offset_left = 35.0
|
||||
offset_top = -200.0
|
||||
offset_right = 275.0
|
||||
offset_bottom = -50.0
|
||||
layout_direction = 2
|
||||
script = null
|
||||
__meta__ = {
|
||||
@@ -39,8 +39,8 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="PanelLTR"]
|
||||
margin_right = 40.0
|
||||
margin_bottom = 40.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
columns = 3
|
||||
script = null
|
||||
__meta__ = {
|
||||
@@ -48,132 +48,131 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="ButtonNW" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_right = 77.3438
|
||||
margin_bottom = 23.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_right = 77.0
|
||||
offset_bottom = 27.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "NorthWest"
|
||||
script = null
|
||||
|
||||
[node name="ButtonN" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_left = 81.0
|
||||
margin_right = 128.719
|
||||
margin_bottom = 23.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 81.0
|
||||
offset_right = 128.0
|
||||
offset_bottom = 27.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "North"
|
||||
script = null
|
||||
|
||||
[node name="ButtonNE" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_left = 132.0
|
||||
margin_right = 204.859
|
||||
margin_bottom = 23.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 132.0
|
||||
offset_right = 204.0
|
||||
offset_bottom = 27.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "NorthEast"
|
||||
script = null
|
||||
|
||||
[node name="ButtonW" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_top = 27.0
|
||||
margin_right = 77.0
|
||||
margin_bottom = 50.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_top = 31.0
|
||||
offset_right = 77.0
|
||||
offset_bottom = 58.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "West"
|
||||
script = null
|
||||
|
||||
[node name="ButtonCenter" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_left = 81.0
|
||||
margin_top = 27.0
|
||||
margin_right = 128.0
|
||||
margin_bottom = 50.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 81.0
|
||||
offset_top = 31.0
|
||||
offset_right = 128.0
|
||||
offset_bottom = 58.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "*"
|
||||
script = null
|
||||
|
||||
[node name="ButtonE" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_left = 132.0
|
||||
margin_top = 27.0
|
||||
margin_right = 204.0
|
||||
margin_bottom = 50.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 132.0
|
||||
offset_top = 31.0
|
||||
offset_right = 204.0
|
||||
offset_bottom = 58.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Еast"
|
||||
script = null
|
||||
|
||||
[node name="ButtonSW" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_top = 54.0
|
||||
margin_right = 77.0
|
||||
margin_bottom = 77.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_top = 62.0
|
||||
offset_right = 77.0
|
||||
offset_bottom = 89.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "SouthWest"
|
||||
script = null
|
||||
|
||||
[node name="ButtonS" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_left = 81.0
|
||||
margin_top = 54.0
|
||||
margin_right = 128.016
|
||||
margin_bottom = 77.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 81.0
|
||||
offset_top = 62.0
|
||||
offset_right = 128.0
|
||||
offset_bottom = 89.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "South"
|
||||
script = null
|
||||
|
||||
[node name="ButtonSE" type="Button" parent="PanelLTR/GridContainer"]
|
||||
margin_left = 132.0
|
||||
margin_top = 54.0
|
||||
margin_right = 204.156
|
||||
margin_bottom = 77.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 132.0
|
||||
offset_top = 62.0
|
||||
offset_right = 204.0
|
||||
offset_bottom = 89.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "SouthEast"
|
||||
script = null
|
||||
|
||||
[node name="PanelLocale" type="Panel" parent="PanelLTR"]
|
||||
self_modulate = Color( 0.819608, 0.254902, 0.254902, 1 )
|
||||
margin_left = 20.0
|
||||
margin_top = 90.0
|
||||
margin_right = 170.0
|
||||
margin_bottom = 130.0
|
||||
self_modulate = Color(0.819608, 0.254902, 0.254902, 1)
|
||||
offset_left = 20.0
|
||||
offset_top = 90.0
|
||||
offset_right = 170.0
|
||||
offset_bottom = 130.0
|
||||
layout_direction = 1
|
||||
script = null
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="PanelLTR/PanelLocale"]
|
||||
margin_right = 107.0
|
||||
margin_bottom = 34.0005
|
||||
offset_right = 107.0
|
||||
offset_bottom = 34.0005
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ButtonPrev" type="Button" parent="PanelLTR/PanelLocale/HBoxContainer"]
|
||||
margin_left = -0.34375
|
||||
margin_right = 63.0
|
||||
margin_bottom = 34.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_right = 64.0
|
||||
offset_bottom = 34.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Previous"
|
||||
script = null
|
||||
|
||||
[node name="ButtonNext" type="Button" parent="PanelLTR/PanelLocale/HBoxContainer"]
|
||||
margin_left = 66.2656
|
||||
margin_right = 107.0
|
||||
margin_bottom = 34.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 68.0
|
||||
offset_right = 109.0
|
||||
offset_bottom = 34.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Next"
|
||||
script = null
|
||||
|
||||
[node name="PanelRTL" type="Panel" parent="."]
|
||||
self_modulate = Color( 0.0705882, 0.235294, 1, 1 )
|
||||
self_modulate = Color(0.0705882, 0.235294, 1, 1)
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 33.9999
|
||||
margin_top = -200.0
|
||||
margin_right = 284.0
|
||||
margin_bottom = -50.0
|
||||
offset_left = 33.9999
|
||||
offset_top = -200.0
|
||||
offset_right = 284.0
|
||||
offset_bottom = -50.0
|
||||
layout_direction = 3
|
||||
script = null
|
||||
__meta__ = {
|
||||
@@ -181,8 +180,8 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="PanelRTL"]
|
||||
margin_right = 40.0
|
||||
margin_bottom = 40.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
columns = 3
|
||||
script = null
|
||||
__meta__ = {
|
||||
@@ -190,97 +189,96 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="ButtonNW" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_right = 80.0
|
||||
margin_bottom = 27.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_right = 81.0
|
||||
offset_bottom = 27.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "الشمال الشرقي"
|
||||
script = null
|
||||
|
||||
[node name="ButtonN" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_left = 84.0
|
||||
margin_right = 128.0
|
||||
margin_bottom = 27.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 85.0
|
||||
offset_right = 131.0
|
||||
offset_bottom = 27.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "الشمال"
|
||||
script = null
|
||||
|
||||
[node name="ButtonNE" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_left = 132.0
|
||||
margin_right = 218.0
|
||||
margin_bottom = 27.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 135.0
|
||||
offset_right = 214.0
|
||||
offset_bottom = 27.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "الشمال الغربي"
|
||||
script = null
|
||||
|
||||
[node name="ButtonW" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_top = 31.0
|
||||
margin_right = 80.0
|
||||
margin_bottom = 58.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_top = 31.0
|
||||
offset_right = 81.0
|
||||
offset_bottom = 58.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "الشرق"
|
||||
script = null
|
||||
|
||||
[node name="ButtonCenter" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_left = 84.0
|
||||
margin_top = 31.0
|
||||
margin_right = 128.0
|
||||
margin_bottom = 58.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 85.0
|
||||
offset_top = 31.0
|
||||
offset_right = 131.0
|
||||
offset_bottom = 58.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "*"
|
||||
script = null
|
||||
|
||||
[node name="ButtonE" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_left = 132.0
|
||||
margin_top = 31.0
|
||||
margin_right = 218.0
|
||||
margin_bottom = 58.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 135.0
|
||||
offset_top = 31.0
|
||||
offset_right = 214.0
|
||||
offset_bottom = 58.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "الغرب"
|
||||
script = null
|
||||
|
||||
[node name="ButtonSW" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_left = -0.59375
|
||||
margin_top = 62.0
|
||||
margin_right = 80.0
|
||||
margin_bottom = 89.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_top = 62.0
|
||||
offset_right = 81.0
|
||||
offset_bottom = 89.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "الجنوب الشرقي"
|
||||
script = null
|
||||
|
||||
[node name="ButtonS" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_left = 83.0469
|
||||
margin_top = 62.0
|
||||
margin_right = 128.0
|
||||
margin_bottom = 89.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 85.0
|
||||
offset_top = 62.0
|
||||
offset_right = 131.0
|
||||
offset_bottom = 89.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "الجنوب"
|
||||
script = null
|
||||
|
||||
[node name="ButtonSE" type="Button" parent="PanelRTL/GridContainer"]
|
||||
margin_left = 131.734
|
||||
margin_top = 62.0
|
||||
margin_right = 218.0
|
||||
margin_bottom = 89.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 135.0
|
||||
offset_top = 62.0
|
||||
offset_right = 214.0
|
||||
offset_bottom = 89.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = " الجنوب الغربي"
|
||||
script = null
|
||||
|
||||
[node name="ButtonSwapLocale" type="Button" parent="."]
|
||||
margin_left = 670.0
|
||||
margin_top = 25.0
|
||||
margin_right = 820.0
|
||||
margin_bottom = 65.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 670.0
|
||||
offset_top = 25.0
|
||||
offset_right = 820.0
|
||||
offset_bottom = 65.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Swap locale"
|
||||
script = null
|
||||
__meta__ = {
|
||||
@@ -291,87 +289,89 @@ __meta__ = {
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -20.0
|
||||
offset_left = -20.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
margin_left = 20.0
|
||||
margin_top = 20.0
|
||||
margin_right = 140.0
|
||||
margin_bottom = 60.0
|
||||
offset_left = 20.0
|
||||
offset_top = 20.0
|
||||
offset_right = 140.0
|
||||
offset_bottom = 60.0
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ButtonBack" type="Button" parent="HBoxContainer"]
|
||||
margin_left = -0.921875
|
||||
margin_right = 40.0
|
||||
margin_bottom = 40.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Back"
|
||||
script = null
|
||||
|
||||
[node name="ButtonFwd" type="Button" parent="HBoxContainer"]
|
||||
margin_left = 43.2188
|
||||
margin_right = 105.0
|
||||
margin_bottom = 40.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 44.0
|
||||
offset_right = 105.0
|
||||
offset_bottom = 40.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Forward"
|
||||
script = null
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
margin_left = 670.0
|
||||
margin_top = 70.0
|
||||
margin_right = 820.0
|
||||
margin_bottom = 100.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 670.0
|
||||
offset_top = 70.0
|
||||
offset_right = 820.0
|
||||
offset_bottom = 100.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
align = 1
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="LabelInfo" type="Label" parent="."]
|
||||
margin_left = 100.0
|
||||
margin_top = 100.0
|
||||
margin_right = 550.0
|
||||
margin_bottom = 300.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 100.0
|
||||
offset_top = 100.0
|
||||
offset_right = 550.0
|
||||
offset_bottom = 300.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Click \"Swap Locale\" button to swap locale between \"en and \"ar\".
|
||||
|
||||
Green tinted controls - LTR layout direction.
|
||||
Blue tinted controls - RTL layout direction.
|
||||
Red tinted controls - Layout direction from locale.
|
||||
Gray (default) controls - Inherited layout direction."
|
||||
structured_text_bidi_override_options = []
|
||||
script = null
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="."]
|
||||
margin_left = 129.0
|
||||
margin_top = 240.0
|
||||
margin_right = 264.0
|
||||
margin_bottom = 260.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 129.0
|
||||
offset_top = 240.0
|
||||
offset_right = 264.0
|
||||
offset_bottom = 260.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
items = []
|
||||
script = null
|
||||
|
||||
[node name="CheckBox" type="CheckBox" parent="."]
|
||||
margin_left = 124.0
|
||||
margin_top = 265.0
|
||||
margin_right = 184.0
|
||||
margin_bottom = 290.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
custom_font_sizes/font_size = 12
|
||||
offset_left = 124.0
|
||||
offset_top = 265.0
|
||||
offset_right = 184.0
|
||||
offset_bottom = 290.0
|
||||
theme_override_fonts/font = ExtResource( "1" )
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Test"
|
||||
script = null
|
||||
__meta__ = {
|
||||
|
||||
Reference in New Issue
Block a user