Add a new resize function and fixed some issues.

The default values for showing and hiding columns wasn't properly set
yet, this has been fixed for now. (Will need more tuning later on.)
This commit is contained in:
Mark de Wever 2009-04-25 16:20:57 +00:00
parent 4db520a6dc
commit 76aaea1bd4
2 changed files with 35 additions and 6 deletions

View file

@ -150,17 +150,17 @@ void tscrollbar_container::NEW_layout_init(const bool full_initialization)
if(full_initialization) {
if(initial_vertical_scrollbar_mode_ == SHOW) {
vertical_scrollbar_mode_ = SHOW;
} else {
if(initial_vertical_scrollbar_mode_ == HIDE) {
vertical_scrollbar_mode_ = HIDE;
} else {
vertical_scrollbar_mode_ = SHOW;
}
show_vertical_scrollbar();
if(initial_vertical_scrollbar_mode_ == SHOW) {
horizontal_scrollbar_mode_ = SHOW;
} else {
if(initial_vertical_scrollbar_mode_ == HIDE) {
horizontal_scrollbar_mode_ = HIDE;
} else {
horizontal_scrollbar_mode_ = SHOW;
}
show_horizontal_scrollbar();
}
@ -169,6 +169,32 @@ void tscrollbar_container::NEW_layout_init(const bool full_initialization)
content_grid_->NEW_layout_init(full_initialization);
}
void tscrollbar_container::NEW_request_reduce_height(
const unsigned maximum_height)
{
if(initial_horizontal_scrollbar_mode_ == HIDE) {
return;
}
assert(vertical_scrollbar_grid_);
tpoint size = get_best_size();
if(static_cast<unsigned>(size.y) < maximum_height) {
return;
}
const tpoint scrollbar_size = vertical_scrollbar_grid_->get_best_size();
if(maximum_height > static_cast<unsigned>(scrollbar_size.y)) {
size.y = maximum_height;
} else {
size.y = scrollbar_size.y;
}
// FIXME adjust for the step size of the scrollbar
set_layout_size(size);
}
void tscrollbar_container::layout_wrap(const unsigned maximum_width)
{
// Inherited.

View file

@ -71,6 +71,9 @@ public:
void layout_init2(const bool full_initialization);
void NEW_layout_init(const bool full_initialization);
/** Inherited from twidget. */
void NEW_request_reduce_height(const unsigned maximum_height);
/** Inherited from tcontainer_. */
bool can_wrap() const
{