implement right/left key handlers for treeviews

This commit is contained in:
gfgtdf 2016-03-07 19:10:55 +01:00
parent d26c2b6043
commit 33b8d66b34
2 changed files with 23 additions and 2 deletions

View file

@ -186,4 +186,26 @@ void ttree_view::signal_handler_left_button_down(const event::tevent event)
get_window()->keyboard_capture(this);
}
void ttree_view::handle_key_left_arrow(SDLMod modifier, bool& handled)
{
ttree_view_node* selected = selected_item();
if(!selected || selected->is_folded()) {
tscrollbar_container::handle_key_left_arrow(modifier, handled);
return;
}
selected->fold();
handled = true;
}
void ttree_view::handle_key_right_arrow(SDLMod modifier, bool& handled)
{
ttree_view_node* selected = selected_item();
if(!selected || !selected->is_folded()) {
tscrollbar_container::handle_key_left_arrow(modifier, handled);
return;
}
selected->unfold();
handled = true;
}
} // namespace gui2

View file

@ -89,13 +89,12 @@ protected:
/** Inherited from tscrollbar_container. */
void handle_key_down_arrow(SDLMod modifier, bool& handled);
#endif
/** Inherited from tscrollbar_container. */
void handle_key_left_arrow(SDLMod modifier, bool& handled);
/** Inherited from tscrollbar_container. */
void handle_key_right_arrow(SDLMod modifier, bool& handled);
#endif
private:
/**
* @todo evaluate which way the dependancy should go.