|
@@ -720,7 +720,7 @@ void ItemList::ensure_current_is_visible() {
|
|
|
update();
|
|
|
}
|
|
|
|
|
|
-static Size2 _adjust_to_max_size(Size2 p_size, Size2 p_max_size, bool p_stretch) {
|
|
|
+static Size2 _adjust_to_max_size(Size2 p_size, Size2 p_max_size) {
|
|
|
|
|
|
if (p_max_size.x<=0)
|
|
|
p_max_size.x=1e20;
|
|
@@ -730,10 +730,6 @@ static Size2 _adjust_to_max_size(Size2 p_size, Size2 p_max_size, bool p_stretch)
|
|
|
|
|
|
Size2 new_size;
|
|
|
|
|
|
- if (p_stretch && (p_size.x * p_size.y < p_max_size.x * p_max_size.y)) {
|
|
|
- return p_max_size;
|
|
|
- }
|
|
|
-
|
|
|
if (p_size.x > p_max_size.x) {
|
|
|
|
|
|
new_size.width=p_max_size.x;
|
|
@@ -835,7 +831,7 @@ void ItemList::_notification(int p_what) {
|
|
|
Size2 minsize;
|
|
|
if (items[i].icon.is_valid()) {
|
|
|
|
|
|
- minsize=_adjust_to_max_size(items[i].get_icon_size(),max_icon_size, icon_stretch);
|
|
|
+ minsize=_adjust_to_max_size(items[i].get_icon_size(),max_icon_size) * icon_scale;
|
|
|
|
|
|
if (items[i].text!="") {
|
|
|
if (icon_mode==ICON_MODE_TOP) {
|
|
@@ -980,7 +976,7 @@ void ItemList::_notification(int p_what) {
|
|
|
Vector2 text_ofs;
|
|
|
if (items[i].icon.is_valid()) {
|
|
|
|
|
|
- Size2 icon_size = _adjust_to_max_size(items[i].get_icon_size(),max_icon_size, icon_stretch);
|
|
|
+ Size2 icon_size = _adjust_to_max_size(items[i].get_icon_size(),max_icon_size) * icon_scale;
|
|
|
|
|
|
Vector2 icon_ofs;
|
|
|
if (min_icon_size!=Vector2()) {
|
|
@@ -1205,14 +1201,12 @@ bool ItemList::get_allow_rmb_select() const {
|
|
|
return allow_rmb_select;
|
|
|
}
|
|
|
|
|
|
-void ItemList::set_icon_stretch_to_max_size(bool p_stretch) {
|
|
|
-
|
|
|
- icon_stretch = p_stretch;
|
|
|
+void ItemList::set_icon_scale(real_t p_scale) {
|
|
|
+ icon_scale = p_scale;
|
|
|
}
|
|
|
|
|
|
-bool ItemList::get_icon_stretch_to_max_size() const {
|
|
|
-
|
|
|
- return icon_stretch;
|
|
|
+real_t ItemList::get_icon_scale() const {
|
|
|
+ return icon_scale;
|
|
|
}
|
|
|
|
|
|
void ItemList::_bind_methods(){
|
|
@@ -1275,8 +1269,8 @@ void ItemList::_bind_methods(){
|
|
|
ObjectTypeDB::bind_method(_MD("set_max_icon_size","size"),&ItemList::set_max_icon_size);
|
|
|
ObjectTypeDB::bind_method(_MD("get_max_icon_size"),&ItemList::get_max_icon_size);
|
|
|
|
|
|
- ObjectTypeDB::bind_method(_MD("set_icon_stretch_to_max_size","stretch"),&ItemList::set_icon_stretch_to_max_size);
|
|
|
- ObjectTypeDB::bind_method(_MD("get_icon_stretch_to_max_size"),&ItemList::get_icon_stretch_to_max_size);
|
|
|
+ ObjectTypeDB::bind_method(_MD("set_icon_scale","scale"),&ItemList::set_icon_scale);
|
|
|
+ ObjectTypeDB::bind_method(_MD("get_icon_scale"),&ItemList::get_icon_scale);
|
|
|
|
|
|
ObjectTypeDB::bind_method(_MD("set_allow_rmb_select","allow"),&ItemList::set_allow_rmb_select);
|
|
|
ObjectTypeDB::bind_method(_MD("get_allow_rmb_select"),&ItemList::get_allow_rmb_select);
|
|
@@ -1325,8 +1319,7 @@ ItemList::ItemList() {
|
|
|
defer_select_single=-1;
|
|
|
allow_rmb_select=false;
|
|
|
|
|
|
- icon_stretch = false;
|
|
|
-
|
|
|
+ icon_scale = 1.0f;
|
|
|
}
|
|
|
|
|
|
ItemList::~ItemList() {
|