submenu_vm.h 1003 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include "generic_view_module.h"
  3. #include <gui/modules/submenu.h>
  4. class SubmenuVM : public GenericViewModule {
  5. public:
  6. SubmenuVM();
  7. ~SubmenuVM() final;
  8. View* get_view() final;
  9. void clean() final;
  10. /**
  11. * @brief Add item to submenu
  12. *
  13. * @param label - menu item label
  14. * @param index - menu item index, used for callback, may be the same with other items
  15. * @param callback - menu item callback
  16. * @param callback_context - menu item callback context
  17. */
  18. void add_item(
  19. const char* label,
  20. uint32_t index,
  21. SubmenuItemCallback callback,
  22. void* callback_context);
  23. /**
  24. * @brief Set submenu item selector
  25. *
  26. * @param index index of the item to be selected
  27. */
  28. void set_selected_item(uint32_t index);
  29. /**
  30. * @brief Set optional header for submenu
  31. *
  32. * @param header header to set
  33. */
  34. void set_header(const char* header);
  35. private:
  36. Submenu* submenu;
  37. };