26 #include "fragment_contents.h"
28 #include <cwidget/style.h>
71 virtual size_t max_width(
size_t first_indent,
72 size_t rest_indent)
const=0;
82 size_t rest_indent)
const=0;
101 fragment *text_fragment(
const std::wstring &s);
112 fragment *text_fragment(
const std::wstring &s,
123 fragment *text_fragment(
const std::string &s,
124 const char *encoding=NULL);
129 fragment *text_fragment(
const std::string &s,
131 const char *encoding=NULL);
144 return text_fragment(std::string(s), st);
173 fragment *sequence_fragment(
const std::vector<fragment *> &fragments);
185 fragment *sequence_fragment(fragment *f, ...);
195 fragment *join_fragments(
const std::vector<fragment *> &fragments,
196 const std::wstring &between);
211 fragment *
flowbox(fragment *contents);
225 fragment *
fillbox(fragment *contents);
251 fragment *
clipbox(fragment *contents);
267 fragment *
indentbox(
size_t firstindent,
size_t restindent, fragment *contents);
277 fragment *
dropbox(fragment *header, fragment *contents);
300 enum align {top,
center, bottom};
325 size_t _width, align _vert_align,
337 size_t _width, align _vert_align,
338 const std::vector<fragment *> &_lines)
347 fragment_column_entry()
364 fragment *fragment_columns(
const std::vector<fragment_column_entry> &columns);
393 fragment *
fragf(
const char *format, ...);