lights_list.hpp 1019 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef LIGHTS_LIST_HPP_INCLUDED
  2. #define LIGHTS_LIST_HPP_INCLUDED
  3. #include <vector>
  4. #include <functional>
  5. #include <gtkmm/box.h>
  6. #include <gtkmm/frame.h>
  7. #include <gtkmm/button.h>
  8. #include "light_on_list.hpp"
  9. #include "light.hpp"
  10. namespace cx_light {
  11. class lights_list: public Gtk::Frame {
  12. public:
  13. lights_list();
  14. ~lights_list() override;
  15. void add_light(light);
  16. void set_add_light_callback(std::function<void()>);
  17. void set_edit_light_callback(std::function<void (light *)>);
  18. void set_show_light_callback(std::function<void (light *)>);
  19. private:
  20. Gtk::Box *content;
  21. Gtk::Box *lights_container;
  22. Gtk::Button *create_light;
  23. std::function<void()> add_light_callback;
  24. std::function<void(light *)> edit_light_callback;
  25. std::function<void(light *)> show_light_callback;
  26. std::vector<light_on_list *> *lights;
  27. void add_create_light_button();
  28. void add_lights_container();
  29. };
  30. }
  31. #endif