libwtk-sdl2  0.0.1
container.hpp
1 #ifndef LIBWTK_SDL2_CONTAINER_HPP
2 #define LIBWTK_SDL2_CONTAINER_HPP
3 
4 #include <functional>
5 
6 #include "widget.hpp"
7 
8 // Base class for containers with multiple widgets that are all drawn to a
9 // common area.
10 struct container : widget
11 {
12  ~container() override;
13  void on_draw(draw_context & dc, selection_context const & sc) const override;
14  void on_mouse_up_event(mouse_up_event const & me) override;
15  void on_mouse_down_event(mouse_down_event const & me) override;
16  void on_mouse_move_event(mouse_move_event const & e) override;
17 
18  std::vector<widget *> get_children() override = 0;
19  std::vector<widget const *> get_children() const override = 0;
20  void on_box_allocated() override = 0;
21  widget * find_selectable(navigation_type nt, point center) override = 0;
22 
23  protected:
24 
25  void init_children();
26 
27 };
28 
29 #endif
30 
Definition: mouse_event.hpp:19
std::vector< widget * > get_children() override=0
Definition: mouse_event.hpp:8
void on_draw(draw_context &dc, selection_context const &sc) const override
Definition: container.hpp:10
void on_box_allocated() override=0
Definition: draw_context.hpp:126
widget * find_selectable(navigation_type nt, point center) override=0
Definition: geometry.hpp:6
Definition: selection_context.hpp:18
Definition: mouse_event.hpp:26
Definition: widget.hpp:52