summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorAndreas Haas <liu.gam3@gmail.com>2016-05-27 18:54:46 +0200
committerAndreas Haas <liu.gam3@gmail.com>2016-05-27 18:54:46 +0200
commit7c1594ee5a6e17216ffa4e73e33be235e65e0946 (patch)
tree4d530f277c58a03d972012d84ff0f8f3655a8fdc /scene/gui
parenteb7227a20b27e91c6e2adfb1ded738f2dd7e453b (diff)
Use scalar to scale TileMap icons
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/item_list.cpp27
-rw-r--r--scene/gui/item_list.h8
2 files changed, 14 insertions, 21 deletions
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp
index a616dc9254..09239e6af7 100644
--- a/scene/gui/item_list.cpp
+++ b/scene/gui/item_list.cpp
@@ -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() {
diff --git a/scene/gui/item_list.h b/scene/gui/item_list.h
index a79d2575bd..1d10058bc4 100644
--- a/scene/gui/item_list.h
+++ b/scene/gui/item_list.h
@@ -45,8 +45,6 @@ private:
bool ensure_selected_visible;
- bool icon_stretch;
-
Vector<Item> items;
Vector<int> separators;
@@ -67,6 +65,8 @@ private:
bool allow_rmb_select;
+ real_t icon_scale;
+
void _scroll_changed(double);
void _input_event(const InputEvent& p_event);
protected:
@@ -152,8 +152,8 @@ public:
virtual String get_tooltip(const Point2& p_pos) const;
int get_item_at_pos(const Point2& p_pos,bool p_exact=false) const;
- void set_icon_stretch_to_max_size(bool p_stretch);
- bool get_icon_stretch_to_max_size() const;
+ void set_icon_scale(real_t p_scale);
+ real_t get_icon_scale() const;
ItemList();
~ItemList();