diff options
Diffstat (limited to 'client/menu/settings_row.gd')
| -rw-r--r-- | client/menu/settings_row.gd | 91 | 
1 files changed, 0 insertions, 91 deletions
diff --git a/client/menu/settings_row.gd b/client/menu/settings_row.gd deleted file mode 100644 index d57bbee0..00000000 --- a/client/menu/settings_row.gd +++ /dev/null @@ -1,91 +0,0 @@ -class_name SettingsRow -extends PanelContainer - -signal apply_preset - -@onready var value_parent = $HBoxContainer/BoxContainer -@onready var label = $HBoxContainer/Label - -var setting -var default -var value_node -var description = tr("no value was given to the row") - -func setup(key: String, dict: Dictionary, defaults: Dictionary): -	setting = dict[key] -	description = setting["description"] -	var value = setting["value"] -	default = defaults[key]["value"] -	match setting["type"]: -		"toggle": -			value_node = CheckButton.new() -			value_node.button_pressed = value -		"line": -			value_node = LineEdit.new() -			value_node.text = value -			if default != "": -				value_node.placeholder_text = default -			else: -				value_node.placeholder_text = description -		"dropdown": -			value_node = OptionButton.new() -			for i in setting["options"]: -				value_node.add_item(i) -			value_node.select(value) -		"dropdown_preset": -			value_node = OptionButton.new() -			for i in setting["options"]: -				value_node.add_item(i) -			value_node.select(value) -			value_node.connect("item_selected", apply.bind(Global.get(setting["apply"]))) -		"range": -			value_node = HSlider.new() -			value_node.min_value = setting["min"] -			value_node.max_value = setting["max"] -			value_node.tick_count = abs(setting["max"] - setting["min"]) -			value_node.value = value -		_: -			push_error("Could not set up SettingsRow: Unknown setting type \"%s\"" % setting["type"]) - -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 apply(idx: int, apply: Array): -	emit_signal("apply_preset", apply[idx]) - -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 -		elif value_node is OptionButton: -			return value_node.selected -		elif value_node is HSlider: -			return value_node.value -		else: -			push_error("get_value() failed for unknown node type: %s" % value_node) -			return null -	else: -		return null - -func _on_reset_pressed(): -	match setting["type"]: -		"toggle": -			value_node.button_pressed = default -		"line": -			value_node.text = default -		"dropdown": -			value_node.select(default) -		"dropdown_preset": -			value_node.select(default) -			value_node.emit_signal("item_selected", value_node.selected) -		"range": -			value_node.value = default -		_: -			push_error("Could not reset setting: Unknown setting type \"%s\"" % setting["type"])  |