class TextDrawer(AbstractCairoDrawer):
Class that draws text on a Cairo context.
This class supports multi-line text unlike the original Cairo text drawing methods.
Method | __init__ |
Constructs a new instance that will draw the given text on the given Cairo context . |
Method | draw |
Draws the text in the current bounding box of the drawer. |
Method | draw |
Draws the text by setting up an appropriate path on the Cairo context and filling it. x and y denote the coordinates where the drawing should start. If they are both None, the current position of the context will be used. |
Method | get |
Calculates the layout of the current text. x and y denote the coordinates where the drawing should start. If they are both None, the current position of the context will be used. |
Method | text |
Sets the text that will be drawn. |
Method | text |
Returns the X-bearing, Y-bearing, width, height, X-advance and Y-advance of the text. |
Constant | BOTTOM |
Undocumented |
Constant | CENTER |
Undocumented |
Constant | LEFT |
Undocumented |
Constant | RIGHT |
Undocumented |
Constant | TOP |
Undocumented |
Instance Variable | halign |
Undocumented |
Instance Variable | valign |
Undocumented |
Property | text |
Returns the text to be drawn. |
Method | _iterlines |
Iterates over the label line by line and returns a tuple containing the folloing for each line: the line itself, the width of the line and the X-bearing of the line. |
Method | _iterlines |
Iterates over the label line by line and returns a tuple containing the folloing for each line: the line itself, the width of the line and the X-bearing of the line. |
Instance Variable | _text |
Undocumented |
Inherited from AbstractCairoDrawer
:
Method | bbox |
Sets the bounding box of the drawing area where this drawer will draw. |
Instance Variable | context |
Undocumented |
Property | bbox |
The bounding box of the drawing area where this drawer will draw. |
Method | _mark |
Marks the given point with a small circle on the canvas. Used primarily for debugging purposes. |
Instance Variable | _bbox |
Undocumented |
Draws the text in the current bounding box of the drawer.
Since the class itself is an instance of AbstractCairoDrawer
, it
has an attribute named bbox which will be used as a bounding
box.
- @param wrap: whether to allow re-wrapping of the text if it does not
- fit within the bounding box horizontally.
Draws the text by setting up an appropriate path on the Cairo
context and filling it. x
and y
denote the coordinates where the
drawing should start. If they are both None, the current position
of the context will be used.
Vertical alignment settings are not taken into account in this method as the text is not drawn within a box.
- @param x: The X coordinate of the reference point where the layout should
- start.
- @param y: The Y coordinate of the reference point where the layout should
- start.
- @param width: The width of the box in which the text will be fitted. It
- matters only when the text is right-aligned or centered. The text
will overflow the box if any of the lines is longer than the box
width and
wrap
is False. - @param wrap: whether to allow re-wrapping of the text if it does not
- fit within the given width.
Calculates the layout of the current text. x
and y
denote the
coordinates where the drawing should start. If they are both None,
the current position of the context will be used.
Vertical alignment settings are not taken into account in this method as the text is not drawn within a box.
- @param x: The X coordinate of the reference point where the layout should
- start.
- @param y: The Y coordinate of the reference point where the layout should
- start.
- @param width: The width of the box in which the text will be fitted. It
- matters only when the text is right-aligned or centered. The text
will overflow the box if any of the lines is longer than the box
width and
wrap
is False. - @param wrap: whether to allow re-wrapping of the text if it does not
- fit within the given width.
- @return: a list consisting of (x, y, line) tuples where x and
- y refer to reference points on the Cairo canvas and line refers to the corresponding text that should be plotted there.
Sets the text that will be drawn.
If text
is None, it will be mapped to an empty string; otherwise,
it will be converted to a string.
Returns the X-bearing, Y-bearing, width, height, X-advance and Y-advance of the text.
For multi-line text, the X-bearing and Y-bearing correspond to the first line, while the X-advance is extracted from the last line. and the Y-advance is the sum of all the Y-advances. The width and height correspond to the entire bounding box of the text.
Iterates over the label line by line and returns a tuple containing the folloing for each line: the line itself, the width of the line and the X-bearing of the line.
Iterates over the label line by line and returns a tuple containing the folloing for each line: the line itself, the width of the line and the X-bearing of the line.
The difference between this method and _iterlines()
is that this
method is allowed to re-wrap the line if necessary.
- @param width: The width of the box in which the text will be fitted.
- Lines will be wrapped if they are wider than this width.