Author: mordante
Date: Wed Apr 9 18:51:21 2008
New Revision: 25711
URL: http://svn.gna.org/viewcvs/wesnoth?rev=25711&view=rev
Log:
get_minimum_size() and get_best_size() now look at the actual text width.
Modified:
trunk/data/gui/default/window/addon.cfg
trunk/src/gui/widgets/control.cpp
Modified: trunk/data/gui/default/window/addon.cfg
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/gui/default/window/addon.cfg?rev=25711&r1=25710&r2=25711&view=diff
==============================================================================
--- trunk/data/gui/default/window/addon.cfg (original)
+++ trunk/data/gui/default/window/addon.cfg Wed Apr 9 18:51:21 2008
@@ -28,7 +28,6 @@
border = "all"
border_size = 5
horizontal_alignment = "left"
- horizontal_grow = "true" #FIXME should
not be needed
[label]
label_definition = "default"
@@ -48,7 +47,6 @@
border = "all"
border_size = 5
horizontal_alignment = "left"
- horizontal_grow = "true" #FIXME should
not be needed
[label]
label_definition = "default"
Modified: trunk/src/gui/widgets/control.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/control.cpp?rev=25711&r1=25710&r2=25711&view=diff
==============================================================================
--- trunk/src/gui/widgets/control.cpp (original)
+++ trunk/src/gui/widgets/control.cpp Wed Apr 9 18:51:21 2008
@@ -14,8 +14,10 @@
#include "gui/widgets/control.hpp"
+#include "font.hpp"
#include "foreach.hpp"
#include "log.hpp"
+#include "util.hpp"
#define DBG_G LOG_STREAM_INDENT(debug, gui)
#define LOG_G LOG_STREAM_INDENT(info, gui)
@@ -98,13 +100,28 @@
tpoint tcontrol::get_minimum_size() const
{
assert(config_);
- return tpoint(config_->min_width, config_->min_height);
+ const tpoint min_size(config_->min_width, config_->min_height);
+ if(label_.empty()) {
+ return min_size;
+ }
+
+ SDL_Rect rect = font::line_size(label_, config_->text_font_size);
+ const tpoint text_size(rect.w + config_->text_extra_width, rect.h +
config_->text_extra_height);
+ return maximum(min_size, text_size);
}
tpoint tcontrol::get_best_size() const
{
assert(config_);
- return tpoint(config_->default_width, config_->default_height);
+
+ const tpoint default_size(config_->default_width,
config_->default_height);
+ if(label_.empty()) {
+ return default_size;
+ }
+
+ SDL_Rect rect = font::line_size(label_, config_->text_font_size);
+ const tpoint text_size(rect.w + config_->text_extra_width, rect.h +
config_->text_extra_height);
+ return maximum(default_size, text_size);
}
tpoint tcontrol::get_maximum_size() const
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits