icon_animation.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include <assets_icons.h>
  8. typedef struct IconAnimation IconAnimation;
  9. typedef void (*IconAnimationCallback)(IconAnimation* instance, void* context);
  10. /** Allocate icon animation instance with const icon data.
  11. * always returns Icon or stops system if not enough memory
  12. */
  13. IconAnimation* icon_animation_alloc(const Icon* icon);
  14. /** Release icon animation instance
  15. */
  16. void icon_animation_free(IconAnimation* instance);
  17. /** Get icon animation width
  18. */
  19. void icon_animation_set_update_callback(
  20. IconAnimation* instance,
  21. IconAnimationCallback callback,
  22. void* context);
  23. /** Get icon animation width
  24. */
  25. uint8_t icon_animation_get_width(IconAnimation* instance);
  26. /** Get icon animation height
  27. */
  28. uint8_t icon_animation_get_height(IconAnimation* instance);
  29. /** Start icon animation
  30. */
  31. void icon_animation_start(IconAnimation* instance);
  32. /** Stop icon animation
  33. */
  34. void icon_animation_stop(IconAnimation* instance);
  35. /** Returns true if current frame is a last one
  36. */
  37. bool icon_animation_is_last_frame(IconAnimation* instance);
  38. #ifdef __cplusplus
  39. }
  40. #endif