cwidget
0.5.17
|
A fragment that caches its contents; a cached result is used if the same width is passed to the layout routine twice in a row. More...
#include <fragment_cache.h>
Public Member Functions | |
fragment_cache (fragment *_contents) | |
void | invalidate () |
fragment_contents | layout (size_t firstw, size_t restw, const style &st) |
Return all the lines of this fragment, given the "shape" of the fragment. More... | |
void | set_attr (int attr) |
size_t | max_width (size_t first_indent, size_t rest_indent) const |
size_t | trailing_width (size_t first_indent, size_t rest_indent) const |
bool | final_newline () const |
![]() | |
virtual | ~fragment () |
Nothing to do in the base class. | |
A fragment that caches its contents; a cached result is used if the same width is passed to the layout routine twice in a row.
Obviously this should only be done if you know that the contents are static.
|
virtual |
Implements cwidget::fragment.
References cwidget::fragment::final_newline().
|
virtual |
Return all the lines of this fragment, given the "shape" of the fragment.
Note that some fragments ignore the given widths, so the caller is expected to either put everything in a formatting box (one that forces its contents to stay "in bounds") or manually clip the return value.
firstw | the width to which the first line of the fragment should be formatted. |
w | the width to which subsequent lines of the fragment should be formatted. |
s | the enclosing style of this fragment. The fragment's size is guaranteed to be independent of s. |
Implements cwidget::fragment.
References cwidget::fragment::layout().
Referenced by cwidget::widgets::togglebutton::paint().
|
virtual |
first_indent | the indentation of the first line, relative to a baseline (which may be outside this fragment). |
rest_indent | the indentation of any other lines. |
Implements cwidget::fragment.
References cwidget::fragment::max_width().
|
virtual |
first_indent | the indentation of the first line. |
rest_indent | the indentation of any other lines. |
Implements cwidget::fragment.
References cwidget::fragment::trailing_width().