zori_longtext.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef zori_longtext_H_INCLUDED
  2. #define zori_longtext_H_INCLUDED
  3. #include "zori.h"
  4. #define ZORI_WIDGET_TYPE_LONGTEXT ZORI_WIDGET_TYPE('z','l','t','x')
  5. struct zori_longtext {
  6. struct zori_widget widget;
  7. int align;
  8. zori_string * caption;
  9. zori_string * text;
  10. int line_start, line_stop, line_pos; /* Current text "window". */
  11. int line_max, line_height; /* text constants. */
  12. int page_lines;
  13. /* Text "window" size for one "page" of text in amount of lines. */
  14. int paused;
  15. double delay;
  16. double delay_total;
  17. };
  18. struct zori_longtext *zori_widget_to_longtext(struct zori_widget *widget);
  19. struct zori_longtext *zori_longtext_set(struct zori_longtext *longtext, const zori_string *text);
  20. struct zori_longtext *zori_longtext_set_cstr(struct zori_longtext *longtext, const char *cstr);
  21. struct zori_longtext *zori_longtext_init_cstr(struct zori_longtext *longtext, const char *cstr);
  22. void zori_longtext_done(struct zori_longtext *longtext);
  23. int zori_longtext_page(struct zori_longtext *longtext);
  24. int zori_longtext_last_page(struct zori_longtext *longtext);
  25. int zori_longtext_page_(struct zori_longtext *longtext, int page);
  26. int zori_longtext_at_end(struct zori_longtext *longtext);
  27. void zori_longtext_update_longtext(struct zori_longtext *longtext, double dt);
  28. int zori_longtext_longtext_at_end(struct zori_longtext *longtext);
  29. void zori_longtext_draw_text(struct zori_longtext *longtext);
  30. void zori_longtext_draw_partial_text(struct zori_longtext *longtext);
  31. void zori_draw_longtext(struct zori_longtext *longtext);
  32. zori_id zori_set_line_stop(zori_id index, int stop);
  33. zori_id zori_line_start_(zori_id index, int start);
  34. int zori_delay_(zori_id index, double delay);
  35. int zori_line_stop(int index);
  36. int zori_line_start(int index);
  37. double zori_delay(int index);
  38. int zori_page_lines_(zori_id index, int lines);
  39. int zori_page_lines(int index);
  40. int zori_paused_(zori_id index, int paused);
  41. int zori_paused(zori_id index);
  42. int zori_page(zori_id index);
  43. int zori_last_page(zori_id index);
  44. int zori_at_end(zori_id index);
  45. int zori_page_(zori_id index, int page);
  46. int zori_next_page(zori_id index);
  47. int zori_previous_page(int index);
  48. int zori_longtext_on_mouse_axes(union zori_event *event);
  49. int zori_longtext_on_mouse_click(union zori_event *event);
  50. int zori_longtext_on_draw(union zori_event *event);
  51. struct zori_longtext *zori_longtext_init(struct zori_longtext *longtext, const char *text);
  52. struct zori_longtext *zori_longtext_new(zori_id id, zori_id parent_id, zori_box *box, const char *text);
  53. zori_id zori_new_longtext(zori_id id, zori_id parent, zori_box *box, const char *text);
  54. #endif