variable-item-list.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include <gui/view.h>
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. typedef struct VariableItemList VariableItemList;
  7. typedef struct VariableItem VariableItem;
  8. typedef void (*VariableItemChangeCallback)(VariableItem* item);
  9. /** Allocate and initialize VariableItemList
  10. * @return VariableItemList*
  11. */
  12. VariableItemList* variable_item_list_alloc();
  13. /** Deinitialize and free VariableItemList
  14. * @param variable_item_list VariableItemList instance
  15. */
  16. void variable_item_list_free(VariableItemList* variable_item_list);
  17. void variable_item_list_clean(VariableItemList* variable_item_list);
  18. View* variable_item_list_get_view(VariableItemList* variable_item_list);
  19. /** Add item to VariableItemList
  20. * @param variable_item_list VariableItemList instance
  21. * @param label item name
  22. * @param values_count item values count
  23. * @param change_callback called on value change in gui
  24. * @param context item context
  25. * @return VariableItem* item instance
  26. */
  27. VariableItem* variable_item_list_add(
  28. VariableItemList* variable_item_list,
  29. const char* label,
  30. uint8_t values_count,
  31. VariableItemChangeCallback change_callback,
  32. void* context);
  33. /** Set item current selected index
  34. * @param item VariableItem* instance
  35. * @param current_value_index
  36. */
  37. void variable_item_set_current_value_index(VariableItem* item, uint8_t current_value_index);
  38. /** Set item current selected text
  39. * @param item VariableItem* instance
  40. * @param current_value_text
  41. */
  42. void variable_item_set_current_value_text(VariableItem* item, const char* current_value_text);
  43. /** Get item current selected index
  44. * @param item VariableItem* instance
  45. * @return uint8_t current selected index
  46. */
  47. uint8_t variable_item_get_current_value_index(VariableItem* item);
  48. /** Get item context
  49. * @param item VariableItem* instance
  50. * @return void* item context
  51. */
  52. void* variable_item_get_context(VariableItem* item);
  53. #ifdef __cplusplus
  54. }
  55. #endif