Skip to content

Instantly share code, notes, and snippets.

@bitwes
Created April 8, 2020 15:46
Show Gist options
  • Save bitwes/44f851d94d1cdd746e3bb7bf2623980a to your computer and use it in GitHub Desktop.
Save bitwes/44f851d94d1cdd746e3bb7bf2623980a to your computer and use it in GitHub Desktop.
Code for a custom spin box.
# Hook this up to a label and two buttons. The label must be named "Value"
# or you can change the code.
extends Control
export var _low = 0.0 setget set_low, get_low
export var _high = 100.0 setget set_high, get_high
export var _step = 1.0 setget set_step, get_step
export var _value = 0.0 setget set_value, get_value
signal value_changed
func _ready():
_update_display()
func _on_More_pressed():
increment()
emit_signal('value_changed')
func _on_Less_pressed():
decrement()
emit_signal('value_changed')
func _update_display():
$Value.set_text(str(_value))
func get_low():
return _low
func set_low(low):
if(low <= _high):
_low = low
if(_low > _value):
set_value(_low)
func get_high():
return _high
func set_high(high):
if(high >= _low):
_high = high
if(_high < _value):
set_value(_high)
func get_step():
return _step
func set_step(step):
_step = step
func get_value():
return _value
func set_value(value):
_value = value
_update_display()
func increment():
set_value(min(_value + _step, _high))
func decrement():
set_value(max(_value - _step, _low))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment