Expose selectable property of ItemList's Item

This commit is contained in:
jmb462 2022-01-07 23:26:27 +01:00
parent c09c4e0154
commit cf5cad7126
2 changed files with 11 additions and 1 deletions

View File

@ -1492,6 +1492,9 @@ bool ItemList::_set(const StringName &p_name, const Variant &p_value) {
} else if (components[1] == "disabled") { } else if (components[1] == "disabled") {
set_item_disabled(item_index, p_value); set_item_disabled(item_index, p_value);
return true; return true;
} else if (components[1] == "selectable") {
set_item_selectable(item_index, p_value);
return true;
} }
} }
#ifndef DISABLE_DEPRECATED #ifndef DISABLE_DEPRECATED
@ -1528,6 +1531,9 @@ bool ItemList::_get(const StringName &p_name, Variant &r_ret) const {
} else if (components[1] == "disabled") { } else if (components[1] == "disabled") {
r_ret = is_item_disabled(item_index); r_ret = is_item_disabled(item_index);
return true; return true;
} else if (components[1] == "selectable") {
r_ret = is_item_selectable(item_index);
return true;
} }
} }
return false; return false;
@ -1541,6 +1547,10 @@ void ItemList::_get_property_list(List<PropertyInfo> *p_list) const {
pi.usage &= ~(get_item_icon(i).is_null() ? PROPERTY_USAGE_STORAGE : 0); pi.usage &= ~(get_item_icon(i).is_null() ? PROPERTY_USAGE_STORAGE : 0);
p_list->push_back(pi); p_list->push_back(pi);
pi = PropertyInfo(Variant::BOOL, vformat("item_%d/selectable", i));
pi.usage &= ~(is_item_selectable(i) ? PROPERTY_USAGE_STORAGE : 0);
p_list->push_back(pi);
pi = PropertyInfo(Variant::BOOL, vformat("item_%d/disabled", i)); pi = PropertyInfo(Variant::BOOL, vformat("item_%d/disabled", i));
pi.usage &= ~(!is_item_disabled(i) ? PROPERTY_USAGE_STORAGE : 0); pi.usage &= ~(!is_item_disabled(i) ? PROPERTY_USAGE_STORAGE : 0);
p_list->push_back(pi); p_list->push_back(pi);

View File

@ -62,7 +62,7 @@ private:
String language; String language;
TextDirection text_direction = TEXT_DIRECTION_AUTO; TextDirection text_direction = TEXT_DIRECTION_AUTO;
bool selectable = false; bool selectable = true;
bool selected = false; bool selected = false;
bool disabled = false; bool disabled = false;
bool tooltip_enabled = true; bool tooltip_enabled = true;