Provided by: allegro5-doc_5.2.3.0-1_all bug


       al_do_multiline_text - Allegro 5 API


              #include <allegro5/allegro_font.h>

              void al_do_multiline_text(const ALLEGRO_FONT *font,
                 float max_width, const char *text,
                 bool (*cb)(int line_num, const char *line, int size, void *extra),
                 void *extra)


       This    function    processes    the    text    and    splits    it    into    lines    as
       al_draw_multiline_text(3alleg5) would, and then calls the callback cb once for every line.
       This  is  useful  for  custom  drawing  of  multiline text, or for calculating the size of
       multiline text ahead of time.  See the  documentation  on  al_draw_multiline_text(3alleg5)
       for an explanation of the splitting algorithm.

       For  every  line  that  this function splits text into the callback cb will be called once
       with the following parameters:

       · line_num - the number of the line starting from zero and counting up

       · line - a pointer to the beginning character of the line (see below)

       · size - the size of the line (0 for empty lines)

       · extra - the same pointer that was passed to al_do_multiline_text

       Note that line is not guaranteed to be a NUL-terminated string, but will merely point to a
       character  within  text  or  to  an  empty string in case of an empty line.  If you need a
       NUL-terminated string, you will have to  copy  line  to  a  buffer  and  NUL-terminate  it
       yourself.  You will also have to make your own copy if you need the contents of line after
       cb has returned, as line is not guaranteed to be valid after that.

       If the callback cb returns false, al_do_multiline_text will stop immediately, otherwise it
       will continue on to the next line.