Доработка. WIP Добавление элементов для ЭМС-ТГ
This commit is contained in:
@@ -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")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user