Wire in the mouse wheel events.

This commit is contained in:
Mark de Wever 2009-10-03 20:01:59 +00:00
parent 3c6084cffe
commit 713056fb86
2 changed files with 85 additions and 0 deletions

View File

@ -100,6 +100,21 @@ tscrollbar_container::tscrollbar_container(const unsigned canvas_count)
connect_signal<event::SDL_KEY_DOWN>(boost::bind(
&tscrollbar_container::signal_handler_sdl_key_down
, this, _2, _3, _5, _6));
connect_signal<event::SDL_WHEEL_UP>(boost::bind(
&tscrollbar_container::signal_handler_sdl_wheel_up
, this, _2, _3));
connect_signal<event::SDL_WHEEL_DOWN>(boost::bind(
&tscrollbar_container::signal_handler_sdl_wheel_down
, this, _2, _3));
connect_signal<event::SDL_WHEEL_LEFT>(boost::bind(
&tscrollbar_container::signal_handler_sdl_wheel_left
, this, _2, _3));
connect_signal<event::SDL_WHEEL_RIGHT>(boost::bind(
&tscrollbar_container::signal_handler_sdl_wheel_right
, this, _2, _3));
}
void tscrollbar_container::layout_init(const bool full_initialization)
@ -869,5 +884,66 @@ void tscrollbar_container::signal_handler_sdl_key_down(
}
}
void tscrollbar_container::signal_handler_sdl_wheel_up(
const event::tevent event
, bool& handled)
{
DBG_GUI_E << get_control_type() << "[" << id() << "]: " << event << ".\n";
assert(vertical_scrollbar_grid_ && vertical_scrollbar_);
if(vertical_scrollbar_grid_->get_visible() == twidget::VISIBLE) {
vertical_scrollbar_->scroll(tscrollbar_::HALF_JUMP_BACKWARDS);
scrollbar_moved();
handled = true;
}
}
void tscrollbar_container::signal_handler_sdl_wheel_down(
const event::tevent event
, bool& handled)
{
DBG_GUI_E << get_control_type() << "[" << id() << "]: " << event << ".\n";
assert(vertical_scrollbar_grid_ && vertical_scrollbar_);
if(vertical_scrollbar_grid_->get_visible() == twidget::VISIBLE) {
vertical_scrollbar_->scroll(tscrollbar_::HALF_JUMP_FORWARD);
scrollbar_moved();
handled = true;
}
}
void tscrollbar_container::signal_handler_sdl_wheel_left(
const event::tevent event
, bool& handled)
{
DBG_GUI_E << get_control_type() << "[" << id() << "]: " << event << ".\n";
assert(horizontal_scrollbar_grid_ && horizontal_scrollbar_);
if(horizontal_scrollbar_grid_->get_visible() == twidget::VISIBLE) {
horizontal_scrollbar_->scroll(tscrollbar_::HALF_JUMP_BACKWARDS);
scrollbar_moved();
handled = true;
}
}
void tscrollbar_container::signal_handler_sdl_wheel_right(
const event::tevent event
, bool& handled)
{
DBG_GUI_E << get_control_type() << "[" << id() << "]: " << event << ".\n";
assert(horizontal_scrollbar_grid_ && horizontal_scrollbar_);
if(horizontal_scrollbar_grid_->get_visible() == twidget::VISIBLE) {
horizontal_scrollbar_->scroll(tscrollbar_::HALF_JUMP_FORWARD);
scrollbar_moved();
handled = true;
}
}
} // namespace gui2

View File

@ -411,6 +411,15 @@ private:
, bool& handled
, const SDLKey key
, SDLMod modifier);
void signal_handler_sdl_wheel_up(const event::tevent event
, bool& handled);
void signal_handler_sdl_wheel_down(const event::tevent event
, bool& handled);
void signal_handler_sdl_wheel_left(const event::tevent event
, bool& handled);
void signal_handler_sdl_wheel_right(const event::tevent event
, bool& handled);
};
} // namespace gui2