Доработка. WIP Добавление элементов для ЭМС-ТГ

This commit is contained in:
sasha80
2026-03-19 09:18:32 +03:00
parent 190f06b72c
commit dac7987585
6 changed files with 153 additions and 520 deletions

View File

@@ -5,13 +5,13 @@
[sub_resource type="GDScript" id="GDScript_63652"]
script/source = "extends GridContainer
@export var header_text: String:
@export var text: String:
set(val):
header_text = val
text = val
if is_inside_tree():
$label.text = val
get:
return header_text
return text
@export_file var image_file: String:
@@ -24,8 +24,9 @@ script/source = "extends GridContainer
func _enter_tree() -> void:
$image.texture = load(image_file)
$label.text = header_text
if ResourceLoader.exists(image_file):
$image.texture = load(image_file)
$label.text = text
"
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nbmfn"]
@@ -36,8 +37,10 @@ corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[node name="header-image" type="GridContainer"]
offset_right = 91.0
offset_bottom = 25.0
offset_right = 100.0
offset_bottom = 19.0
size_flags_horizontal = 3
size_flags_vertical = 3
columns = 2
script = SubResource("GDScript_63652")

View File

@@ -59,18 +59,35 @@ func _assert(val: bool, msg: String = '<не указано>'):
get_tree().quit(1)
func set_columns_min_size_auto(cc: int):
if cc <= 0: return
var sizes: = Array()
sizes.resize(cc)
sizes.fill(size.x / cc)
set_columns_min_size(sizes)
## Закрепляет заголовок таблицы.[br]
## [param scrl] - Прокрутка родитель таблицы.[br]
## [param prnt] - Родитель прокрутки.[br]
func pin_header(scrl: ScrollContainer, prnt: Control):
scrl.remove_child(header)
prnt.add_child(header)
var v_separation = get_theme_constant('v_separation')
var v_separation: = get_theme_constant('v_separation')
header.position = scrl.position - Vector2(0, header.size.y + v_separation)
scroll = scrl
scroll_adj = scrl.position
## Закрепляет заголовок таблицы.[br]
## GridView должен лежать на Scrol. Scrol должен иметь родителя
func pin_header2():
var scrl = get_parent()
var prnt = scrl.get_parent()
pin_header(scrl, prnt)
header.size.x = scrl.size.x
## Перемещает указатель на одну строку вверх
func selector_up():
var i_rows: = []
@@ -189,6 +206,17 @@ func set_node_property(i_col: int, i_row: int, pname: String, val) -> void:
node.set(pname, val)
## Устанавливает свойство ячейки заголовка[br]
## [param i_col] - Индекс колонки.[br]
## [param pname] - Имя свойства.[br]
## [param val] - Значение свойства.[br]
## [i]Свойство[/i] [param pname] [i]ячейки должно существовать.[/i]
func set_header_property(i_col: int, pname: String, val) -> void:
var key: = get_node_key(HEAD_KEY_FORMAT, i_col, 0)
var node = nodes[key]
node.set(pname, val)
## Возвращает значение поля ячейки.[br]
## [param pname] - Имя поля.[br]
## [param i_col] - Индекс колонки.[br]
@@ -232,6 +260,13 @@ func set_columns_min_size(sizes: Array) -> void:
set_nodes_min_size(0, sizes, HEAD_KEY_FORMAT)
func set_headers_min_size(sizes: Array) -> void:
for i_col in columns:
var key: = get_node_key(HEAD_KEY_FORMAT, i_col, 0)
var node = nodes[key]
node.custom_minimum_size.x = sizes[i_col]
node.set_deferred('size.x', sizes[i_col])
##
func set_columns_aligment(alignments: Array) -> void:
var rows_count: = get_rows_count()
@@ -574,6 +609,25 @@ func set_nodes_min_size(i_row: int, sizes: Array, key_format: String = NODE_KEY_
node.set_deferred('size.x', sizes[i_col])
## [param i_row] - Индекс ряда.
func set_rows_min_hight(hight: int) -> void:
var rows_count = get_rows_count()
for i_row in rows_count:
for i_col in columns:
var key: = get_node_key(NODE_KEY_FORMAT, i_col, i_row)
var node = nodes[key]
node.custom_minimum_size.y = hight
node.set_deferred('size.y', hight)
func set_header_min_hight(hight: int):
for i_col in columns:
var key: = get_node_key(HEAD_KEY_FORMAT, i_col, 0)
var node = nodes[key]
node.custom_minimum_size.y = hight
node.set_deferred('size.y', hight)
## [param i_col] - Индекс колонки.[br][param i_row] - Индекс ряда.
func set_node_text(i_col: int, i_row: int, val: String) -> void:
var key: = get_node_key(NODE_KEY_FORMAT, i_col, i_row)