Package icyllis.modernui.text.style
Interface LeadingMarginSpan
- All Superinterfaces:
ParagraphStyle
- All Known Subinterfaces:
LeadingMarginSpan.LeadingMarginSpan2
- All Known Implementing Classes:
BulletSpan
,CodeBlockSpan
,HeadingSpan
,LeadingMarginSpan.Standard
,OrderedListItemSpan
,QuoteSpan
,ThematicBreakSpan
A paragraph style affecting the leading margin. There can be multiple leading
margin spans on a single paragraph; they will be rendered in order, each
adding its margin to the ones before it. The leading margin is on the right
for lines in a right-to-left paragraph.
LeadingMarginSpans should be attached from the first character to the last character of a single paragraph.
- See Also:
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
An extended version ofLeadingMarginSpan
, which allows the implementor to specify the number of lines of the paragraph to which this object is attached that the "first line of paragraph" margin width will be applied to.static class
The standard implementation of LeadingMarginSpan, which adjusts the margin but does not do any rendering. -
Method Summary
Modifier and TypeMethodDescriptionvoid
drawLeadingMargin
(Canvas c, TextPaint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) Renders the leading margin.default void
drawMargin
(Canvas c, TextPaint p, int left, int right, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) Called when drawing the margin.int
getLeadingMargin
(boolean first) Returns the amount by which to adjust the leading margin.
-
Method Details
-
getLeadingMargin
int getLeadingMargin(boolean first) Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it.- Parameters:
first
- true if the request is for the first line of a paragraph, false for subsequent lines- Returns:
- the offset for the margin.
-
drawLeadingMargin
void drawLeadingMargin(Canvas c, TextPaint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) Renders the leading margin. This is called before the margin has been adjusted by the value returned bygetLeadingMargin(boolean)
.- Parameters:
c
- the canvasp
- the paint. This should be left unchanged on exit.x
- the current position of the margindir
- the base direction of the paragraph; if negative, the margin is to the right of the text, otherwise it is to the left.top
- the top of the linebaseline
- the baseline of the linebottom
- the bottom of the linetext
- the textstart
- the start of the lineend
- the end of the linefirst
- true if this is the first line of its paragraphlayout
- the layout containing this line
-
drawMargin
default void drawMargin(Canvas c, TextPaint p, int left, int right, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) Called when drawing the margin.The default implementation is to call
drawLeadingMargin(icyllis.modernui.graphics.Canvas, icyllis.modernui.text.TextPaint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, icyllis.modernui.text.Layout)
, where x is either left or right, depending on dir. This method allows to draw the trailing margin at the same time, not just the leading margin.Added by Modern UI.
- Parameters:
c
- the canvasp
- the paint. This should be left unchanged on exit.left
- the current left position of the marginright
- the current right position of the margindir
- the base direction of the paragraph; if negative, the margin is to the right of the text, otherwise it is to the left.top
- the top of the linebaseline
- the baseline of the linebottom
- the bottom of the linetext
- the textstart
- the start of the lineend
- the end of the linefirst
- true if this is the first line of its paragraphlayout
- the layout containing this line
-