Updated editor spin slider to have better behaviour and adjusted control's size_flags_stretch_ratio value range
(cherry picked from commit 915ab50673
)
This commit is contained in:
parent
a5a28239a6
commit
b7fbdf4bed
|
@ -34,6 +34,9 @@
|
||||||
#include "editor_scale.h"
|
#include "editor_scale.h"
|
||||||
|
|
||||||
String EditorSpinSlider::get_tooltip(const Point2 &p_pos) const {
|
String EditorSpinSlider::get_tooltip(const Point2 &p_pos) const {
|
||||||
|
if (grabber->is_visible()) {
|
||||||
|
return rtos(get_value()) + "\n\n" + TTR("Hold Ctrl to round to integers. Hold Shift for more precise changes.");
|
||||||
|
}
|
||||||
return rtos(get_value());
|
return rtos(get_value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,7 +112,21 @@ void EditorSpinSlider::_gui_input(const Ref<InputEvent> &p_event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grabbing_spinner) {
|
if (grabbing_spinner) {
|
||||||
|
// Don't make the user scroll all the way back to 'in range' if they went off the end.
|
||||||
|
if (pre_grab_value < get_min() && !is_lesser_allowed()) {
|
||||||
|
pre_grab_value = get_min();
|
||||||
|
}
|
||||||
|
if (pre_grab_value > get_max() && !is_greater_allowed()) {
|
||||||
|
pre_grab_value = get_max();
|
||||||
|
}
|
||||||
|
|
||||||
if (mm->get_control()) {
|
if (mm->get_control()) {
|
||||||
|
// If control was just pressed, don't make the value do a huge jump in magnitude.
|
||||||
|
if (grabbing_spinner_dist_cache != 0) {
|
||||||
|
pre_grab_value += grabbing_spinner_dist_cache * get_step();
|
||||||
|
grabbing_spinner_dist_cache = 0;
|
||||||
|
}
|
||||||
|
|
||||||
set_value(Math::round(pre_grab_value + get_step() * grabbing_spinner_dist_cache * 10));
|
set_value(Math::round(pre_grab_value + get_step() * grabbing_spinner_dist_cache * 10));
|
||||||
} else {
|
} else {
|
||||||
set_value(pre_grab_value + get_step() * grabbing_spinner_dist_cache);
|
set_value(pre_grab_value + get_step() * grabbing_spinner_dist_cache);
|
||||||
|
|
|
@ -3008,7 +3008,7 @@ void Control::_bind_methods() {
|
||||||
ADD_GROUP("Size Flags", "size_flags_");
|
ADD_GROUP("Size Flags", "size_flags_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "size_flags_horizontal", PROPERTY_HINT_FLAGS, "Fill,Expand,Shrink Center,Shrink End"), "set_h_size_flags", "get_h_size_flags");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "size_flags_horizontal", PROPERTY_HINT_FLAGS, "Fill,Expand,Shrink Center,Shrink End"), "set_h_size_flags", "get_h_size_flags");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "size_flags_vertical", PROPERTY_HINT_FLAGS, "Fill,Expand,Shrink Center,Shrink End"), "set_v_size_flags", "get_v_size_flags");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "size_flags_vertical", PROPERTY_HINT_FLAGS, "Fill,Expand,Shrink Center,Shrink End"), "set_v_size_flags", "get_v_size_flags");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "size_flags_stretch_ratio", PROPERTY_HINT_RANGE, "0,128,0.01"), "set_stretch_ratio", "get_stretch_ratio");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "size_flags_stretch_ratio", PROPERTY_HINT_RANGE, "0,20,0.01,or_greater"), "set_stretch_ratio", "get_stretch_ratio");
|
||||||
ADD_GROUP("Theme", "");
|
ADD_GROUP("Theme", "");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "theme", PROPERTY_HINT_RESOURCE_TYPE, "Theme"), "set_theme", "get_theme");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "theme", PROPERTY_HINT_RESOURCE_TYPE, "Theme"), "set_theme", "get_theme");
|
||||||
ADD_GROUP("", "");
|
ADD_GROUP("", "");
|
||||||
|
|
Loading…
Reference in New Issue