diff options
Diffstat (limited to 'client/menu/settings_row.gd')
| -rw-r--r-- | client/menu/settings_row.gd | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/client/menu/settings_row.gd b/client/menu/settings_row.gd new file mode 100644 index 00000000..ee4b8cb9 --- /dev/null +++ b/client/menu/settings_row.gd @@ -0,0 +1,36 @@ +class_name SettingsRow +extends PanelContainer + +@onready var value_parent = $HBoxContainer/BoxContainer +@onready var label = $HBoxContainer/Label + +var value_node +var description = tr("no value was given to the row") + +func setup(description_: String, value): +	description = description_ +	if value is bool: +		value_node = CheckButton.new() +		value_node.button_pressed = value +	elif value is String: +		value_node = LineEdit.new() +		value_node.text = value + +func _ready(): +	if value_node != null: +		var c: Control = value_node +		c.size_flags_vertical = Control.SIZE_EXPAND_FILL +		c.size_flags_horizontal = Control.SIZE_EXPAND_FILL +		label.text = description +		value_parent.add_child(c) + +func get_value(): +	if value_node != null: +		if value_node is CheckButton: +			return value_node.button_pressed +		elif value_node is LineEdit: +			return value_node.text +		else: +			return null +	else: +		return null | 
