rich_text.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. Copyright (C) 2014 Olivier Marty <olivier.marty.m at gmail.com>
  3. This program is free software; you can redistribute it and/or
  4. modify it under the terms of the GNU General Public License
  5. as published by the Free Software Foundation; either version 2
  6. of the License, or (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program; if not, write to the Free Software
  13. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  14. */
  15. #ifndef H_RICH_TEXT
  16. #define H_RICH_TEXT
  17. enum t_type {T_REGULAR = 0, T_ITALIC = 1, T_BOLD = 2};
  18. struct richText
  19. {
  20. struct richText *left; // left and right must be NULL or non-NULL at the same time
  21. struct richText *right;
  22. // it left and right are NULL :
  23. enum t_type type;
  24. char *pos;
  25. int size;
  26. // if first node :
  27. char *raw;
  28. };
  29. // data is not copied, field raw contains a pointer to it
  30. struct richText* richTextParse(char* data);
  31. void richTextFree(struct richText *rt);
  32. #endif