submenu-vm.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. * @return SubmenuItem instance that can be used to modify or delete that item
  18. */
  19. SubmenuItem* add_item(
  20. const char* label,
  21. uint32_t index,
  22. SubmenuItemCallback callback,
  23. void* callback_context);
  24. /**
  25. * @brief Set submenu item selector
  26. *
  27. * @param index index of the item to be selected
  28. */
  29. void set_selected_item(uint32_t index);
  30. /**
  31. * @brief Set optional header for submenu
  32. *
  33. * @param header header to set
  34. */
  35. void set_header(const char* header);
  36. private:
  37. Submenu* submenu;
  38. };