icon_animation.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /**
  2. * @file icon_animation.h
  3. * GUI: IconAnimation API
  4. */
  5. #pragma once
  6. #include <stdint.h>
  7. #include <stdbool.h>
  8. #include <assets_icons.h>
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. /** Icon Animation */
  13. typedef struct IconAnimation IconAnimation;
  14. /** Icon Animation Callback. Used for update notification */
  15. typedef void (*IconAnimationCallback)(IconAnimation* instance, void* context);
  16. /** Allocate icon animation instance with const icon data.
  17. *
  18. * always returns Icon or stops system if not enough memory
  19. *
  20. * @param[in] icon pointer to Icon data
  21. *
  22. * @return IconAnimation instance
  23. */
  24. IconAnimation* icon_animation_alloc(const Icon* icon);
  25. /** Release icon animation instance
  26. *
  27. * @param instance IconAnimation instance
  28. */
  29. void icon_animation_free(IconAnimation* instance);
  30. /** Set IconAnimation update callback
  31. *
  32. * Normally you do not need to use this function, use view_tie_icon_animation
  33. * instead.
  34. *
  35. * @param instance IconAnimation instance
  36. * @param[in] callback IconAnimationCallback
  37. * @param context callback context
  38. */
  39. void icon_animation_set_update_callback(
  40. IconAnimation* instance,
  41. IconAnimationCallback callback,
  42. void* context);
  43. /** Get icon animation width
  44. *
  45. * @param instance IconAnimation instance
  46. *
  47. * @return width in pixels
  48. */
  49. uint8_t icon_animation_get_width(IconAnimation* instance);
  50. /** Get icon animation height
  51. *
  52. * @param instance IconAnimation instance
  53. *
  54. * @return height in pixels
  55. */
  56. uint8_t icon_animation_get_height(IconAnimation* instance);
  57. /** Start icon animation
  58. *
  59. * @param instance IconAnimation instance
  60. */
  61. void icon_animation_start(IconAnimation* instance);
  62. /** Stop icon animation
  63. *
  64. * @param instance IconAnimation instance
  65. */
  66. void icon_animation_stop(IconAnimation* instance);
  67. /** Returns true if current frame is a last one
  68. *
  69. * @param instance IconAnimation instance
  70. *
  71. * @return true if last frame
  72. */
  73. bool icon_animation_is_last_frame(IconAnimation* instance);
  74. #ifdef __cplusplus
  75. }
  76. #endif