Author: mordante
Date: Sun Apr 26 18:42:53 2009
New Revision: 35241
URL: http://svn.gna.org/viewcvs/wesnoth?rev=35241&view=rev
Log:
Fixed several minor issues with the scrollbars.
The new algorithm now correctly seems to work with the vertical
scrollbar in the several modes. (The algorithm will be committed next.)
Modified:
trunk/src/gui/widgets/scrollbar_container.cpp
Modified: trunk/src/gui/widgets/scrollbar_container.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/scrollbar_container.cpp?rev=35241&r1=35240&r2=35241&view=diff
==============================================================================
--- trunk/src/gui/widgets/scrollbar_container.cpp (original)
+++ trunk/src/gui/widgets/scrollbar_container.cpp Sun Apr 26 18:42:53 2009
@@ -157,23 +157,39 @@
if(full_initialization) {
-
- if(initial_vertical_scrollbar_mode_ == always_visible
- || initial_vertical_scrollbar_mode_ ==
auto_visible) {
-
- vertical_scrollbar_mode_ = always_visible;
- } else {
- vertical_scrollbar_mode_ = always_invisible;
- }
- show_vertical_scrollbar();
-
- if(initial_vertical_scrollbar_mode_ == always_visible
- || initial_vertical_scrollbar_mode_ ==
auto_visible) {
- horizontal_scrollbar_mode_ = always_visible;
- } else {
- horizontal_scrollbar_mode_ = always_invisible;
- }
- show_horizontal_scrollbar();
+ assert(vertical_scrollbar_grid_);
+ switch(initial_vertical_scrollbar_mode_) {
+ case always_visible :
+ vertical_scrollbar_mode_ = always_visible;
+
vertical_scrollbar_grid_->set_visible(twidget::VISIBLE);
+ break;
+
+ case auto_visible :
+ vertical_scrollbar_mode_ = always_visible;
+
vertical_scrollbar_grid_->set_visible(twidget::HIDDEN);
+ break;
+
+ default :
+ vertical_scrollbar_mode_ = always_invisible;
+
vertical_scrollbar_grid_->set_visible(twidget::INVISIBLE);
+ }
+
+ assert(horizontal_scrollbar_grid_);
+ switch(initial_horizontal_scrollbar_mode_) {
+ case always_visible :
+ horizontal_scrollbar_mode_ = always_visible;
+
horizontal_scrollbar_grid_->set_visible(twidget::VISIBLE);
+ break;
+
+ case auto_visible :
+ horizontal_scrollbar_mode_ = always_visible;
+
horizontal_scrollbar_grid_->set_visible(twidget::HIDDEN);
+ break;
+
+ default :
+ horizontal_scrollbar_mode_ = always_invisible;
+
horizontal_scrollbar_grid_->set_visible(twidget::INVISIBLE);
+ }
}
assert(content_grid_);
@@ -194,14 +210,11 @@
return;
}
- const bool unhide =
- initial_vertical_scrollbar_mode_ == auto_visible_first_run
- && vertical_scrollbar_mode_ == always_invisible;
-
- if(unhide) {
- vertical_scrollbar_mode_ = always_visible;
- show_vertical_scrollbar();
- }
+ const bool resized =
+ vertical_scrollbar_grid_->get_visible() == twidget::INVISIBLE;
+
+ // Always set the bar visible, is a nop is already visible.
+ vertical_scrollbar_grid_->set_visible(twidget::VISIBLE);
const tpoint scrollbar_size = vertical_scrollbar_grid_->get_best_size();
if(maximum_height > static_cast<unsigned>(scrollbar_size.y)) {
@@ -214,7 +227,7 @@
set_layout_size(size);
- if(unhide) {
+ if(resized) {
throw tlayout_exception_width_modified();
}
}
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits