MongolRenderEditable class

Displays some text in a scrollable container with a potentially blinking cursor and with gesture recognizers.

This is the renderer for an editable vertical text field. It does not directly provide a means of editing the text, but it does handle text selection and manipulation of the text cursor.

The text is displayed, scrolled by the given offset, aligned according to textAlign. The maxLines property controls whether the text displays on one line or many. The selection, if it is not collapsed, is painted in the selectionColor. If it is collapsed, then it represents the cursor position. The cursor is shown while showCursor is true. It is painted in the cursorColor.

If, when the render object paints, the caret is found to have changed location, onCaretChanged is called.

Keyboard handling, IME handling, scrolling, toggling the showCursor value to actually blink the cursor, and other features not mentioned above are the responsibility of higher layers and not handled by this object.

Inheritance
Implemented types
Mixed in types

Constructors

MongolRenderEditable({TextSpan? text, MongolTextAlign textAlign = MongolTextAlign.top, Color? cursorColor, ValueNotifier<bool>? showCursor, bool? hasFocus, required LayerLink startHandleLayerLink, required LayerLink endHandleLayerLink, int? maxLines = 1, int? minLines, bool expands = false, Color? selectionColor, double textScaleFactor = 1.0, TextSelection? selection, required ViewportOffset offset, bool ignorePointer = false, bool readOnly = false, bool forceLine = true, String obscuringCharacter = '•', bool obscureText = false, double? cursorWidth, double cursorHeight = 1.0, Radius? cursorRadius, Offset cursorOffset = Offset.zero, double devicePixelRatio = 1.0, bool? enableInteractiveSelection, Clip clipBehavior = Clip.hardEdge, required TextSelectionDelegate textSelectionDelegate, MongolRenderEditablePainter? painter, MongolRenderEditablePainter? foregroundPainter})
Creates a render object that implements the visual aspects of a text field.

Properties

alwaysNeedsCompositing bool
Whether this render object always needs compositing.
no setterinherited
attached bool
Whether the render tree this render object belongs to is attached to a PipelineOwner.
no setterinherited
clipBehavior Clip
Defaults to Clip.hardEdge, and must not be null.
getter/setter pair
constraints BoxConstraints
The box constraints most recently received from the parent.
no setterinherited
cursorColor Color?
The color to use when painting the cursor.
getter/setter pair
cursorHeight double
How thick the cursor will be.
getter/setter pair
cursorOffset Offset
The offset that is used, in pixels, when painting the cursor on screen.
getter/setter pair
cursorRadius Radius?
How rounded the corners of the cursor should be.
getter/setter pair
cursorWidth double
How wide the cursor will be.
getter/setter pair
debugCanParentUseSize bool
Whether the parent render object is permitted to use this render object's size.
no setterinherited
debugCreator Object?
The object responsible for creating this render object.
getter/setter pairinherited
debugDisposed bool?
Whether this has been disposed.
no setterinherited
debugDoingThisLayout bool
Whether performLayout for this render object is currently running.
no setterinherited
debugDoingThisLayoutWithCallback bool
Whether invokeLayoutCallback for this render object is currently running.
no setterinherited
debugDoingThisPaint bool
Whether paint for this render object is currently running.
no setterinherited
debugDoingThisResize bool
Whether performResize for this render object is currently running.
no setterinherited
debugLayer ContainerLayer?
In debug mode, the compositing layer that this render object uses to repaint.
no setterinherited
debugLayoutParent RenderObject?
The RenderObject that's expected to call layout on this RenderObject in its performLayout implementation.
no setterinherited
debugNeedsCompositedLayerUpdate bool
Whether this render object's layer information is dirty.
no setterinherited
debugNeedsLayout bool
Whether this render object's layout information is dirty.
no setterinherited
debugNeedsPaint bool
Whether this render object's paint information is dirty.
no setterinherited
debugSemantics SemanticsNode?
The semantics of this render object.
no setterinherited
depth int
The depth of this render object in the render tree.
no setterinherited
devicePixelRatio double
The pixel ratio of the current device.
getter/setter pair
enableInteractiveSelection bool?
Whether to allow the user to change the selection.
getter/setter pair
The LayerLink of end selection handle.
getter/setter pair
expands bool
Whether this widget's width will be sized to fill its parent.
getter/setter pair
forceLine bool
Whether this rendering object will take a full line regardless the text height.
getter/setter pair
foregroundPainter MongolRenderEditablePainter?
The MongolRenderEditablePainter to use for painting above this MongolRenderEditable's text content.
getter/setter pair
hasFocus bool
Whether the editable is currently focused.
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
hasSize bool
Whether this render object has undergone layout and has a size.
no setterinherited
ignorePointer bool
Whether the handleEvent will propagate pointer events to selection handlers.
getter/setter pair
isRepaintBoundary bool
Whether this render object repaints separately from its parent.
no setterinherited
lastSecondaryTapDownPosition Offset?
The position of the most recent secondary tap down event on this text input.
no setter
layer ContainerLayer?
The compositing layer that this render object uses to repaint.
getter/setter pairinherited
maxLines int?
The maximum number of lines for the text to span, wrapping if necessary.
getter/setter pair
maxScrollExtent double
The maximum amount the text is allowed to scroll.
no setter
minLines int?
The minimum number of lines to occupy when the content spans fewer lines.
getter/setter pair
needsCompositing bool
Whether we or one of our descendants has a compositing layer.
no setterinherited
obscureText bool
Whether to hide the text being edited (e.g., for passwords).
getter/setter pair
obscuringCharacter String
Character used for obscuring text if obscureText is true.
getter/setter pair
offset ViewportOffset
The offset at which the text should be painted.
getter/setter pair
owner PipelineOwner?
The owner for this render object (null if unattached).
no setterinherited
paintBounds Rect
Returns a rectangle that contains all the pixels painted by this box.
no setterinherited
painter MongolRenderEditablePainter?
Sets the MongolRenderEditablePainter to use for painting beneath this MongolRenderEditable's text content.
getter/setter pair
parent RenderObject?
The parent of this render object in the render tree.
no setterinherited
parentData ParentData?
Data for use by the parent render object.
getter/setter pairinherited
plainText String
Returns a plain text version of the text in TextPainter.
no setter
preferredLineWidth double
An estimate of the width of a line in the text. See TextPainter.preferredLineWidth. This does not require the layout to be updated.
no setter
readOnly bool
Whether this rendering object is read only.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selection TextSelection?
The region of text that is selected, if any.
getter/setter pair
selectionColor Color?
The color to use when painting the selection.
getter/setter pair
selectionEnabled bool
Whether interactive selection is enabled based on the values of enableInteractiveSelection and obscureText.
no setter
selectionEndInViewport ValueListenable<bool>
Track whether position of the end of the selected text is within the viewport.
no setter
selectionStartInViewport ValueListenable<bool>
Track whether position of the start of the selected text is within the viewport.
no setter
semanticBounds Rect
The bounding box, in the local coordinate system, of this object, for accessibility purposes.
no setterinherited
showCursor ValueNotifier<bool>
Whether to paint the cursor.
getter/setter pair
size Size
The size of this render box computed during layout.
getter/setter pairinherited
sizedByParent bool
Whether the constraints are the only input to the sizing algorithm (in particular, child nodes have no impact).
no setterinherited
The LayerLink of start selection handle.
getter/setter pair
text TextSpan?
The text to paint in the form of a tree of TextSpans.
getter/setter pair
textAlign MongolTextAlign
How the text should be aligned vertically.
getter/setter pair
textScaleFactor double
The number of font pixels for each logical pixel.
getter/setter pair
textSelectionDelegate TextSelectionDelegate
The object that controls the text selection, used by this render object for implementing cut, copy, and paste keyboard shortcuts.
getter/setter pair

Methods

adoptChild(RenderObject child) → void
Called by subclasses when they decide a render object is a child.
inherited
applyPaintTransform(covariant RenderObject child, Matrix4 transform) → void
Multiply the transform from the parent's coordinate system to this box's coordinate system into the given transform.
inherited
assembleSemanticsNode(SemanticsNode node, SemanticsConfiguration config, Iterable<SemanticsNode> children) → void
Assemble the SemanticsNode for this RenderObject.
override
attach(PipelineOwner owner) → void
Mark this render object as attached to the given owner.
override
clearSemantics() → void
Removes all semantics from this render object and its descendants.
inherited
computeDistanceToActualBaseline(TextBaseline baseline) double
Returns the distance from the y-coordinate of the position of the box to the y-coordinate of the first given baseline in the box's contents, if any, or null otherwise.
override
computeDryBaseline(covariant BoxConstraints constraints, TextBaseline baseline) double?
Computes the value returned by getDryBaseline.
inherited
computeDryLayout(covariant BoxConstraints constraints) Size
Computes the value returned by getDryLayout. Do not call this function directly, instead, call getDryLayout.
override
computeMaxIntrinsicHeight(double width) double
Computes the value returned by getMaxIntrinsicHeight. Do not call this function directly, instead, call getMaxIntrinsicHeight.
override
computeMaxIntrinsicWidth(double height) double
Computes the value returned by getMaxIntrinsicWidth. Do not call this function directly, instead, call getMaxIntrinsicWidth.
override
computeMinIntrinsicHeight(double width) double
Computes the value returned by getMinIntrinsicHeight. Do not call this function directly, instead, call getMinIntrinsicHeight.
override
computeMinIntrinsicWidth(double height) double
Computes the value returned by getMinIntrinsicWidth. Do not call this function directly, instead, call getMinIntrinsicWidth.
override
debugAdoptSize(Size value) Size
Claims ownership of the given Size.
inherited
debugAssertDoesMeetConstraints() → void
Verify that the object's constraints are being met. Override this function in a subclass to verify that your state matches the constraints object. This function is only called in checked mode and only when needsLayout is false. If the constraints are not met, it should assert or throw an exception.
inherited
debugAssertLayoutUpToDate() → void
Assert that the last layout still matches the constraints.
debugCannotComputeDryLayout({String? reason, FlutterError? error}) bool
Called from computeDryLayout or computeDryBaseline within an assert if the given RenderBox subclass does not support calculating a dry layout.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
override
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
override
debugHandleEvent(PointerEvent event, HitTestEntry<HitTestTarget> entry) bool
Implements the debugPaintPointersEnabled debugging feature.
inherited
debugPaint(PaintingContext context, Offset offset) → void
Override this method to paint debugging information.
inherited
debugPaintBaselines(PaintingContext context, Offset offset) → void
In debug mode, paints a line for each baseline.
inherited
debugPaintPointers(PaintingContext context, Offset offset) → void
In debug mode, paints a rectangle if this render box has counted more pointer downs than pointer up events.
inherited
debugPaintSize(PaintingContext context, Offset offset) → void
In debug mode, paints a border around this render box.
inherited
debugRegisterRepaintBoundaryPaint({bool includedParent = true, bool includedChild = false}) → void
Called, in debug mode, if isRepaintBoundary is true, when either the this render object or its parent attempt to paint.
inherited
debugResetSize() → void
If a subclass has a "size" (the state controlled by parentUsesSize, whatever it is in the subclass, e.g. the actual size property of RenderBox), and the subclass verifies that in debug mode this "size" property isn't used when debugCanParentUseSize isn't set, then that subclass should override debugResetSize to reapply the current values of debugCanParentUseSize to that state.
inherited
describeApproximatePaintClip(covariant RenderObject child) Rect?
Returns a rect in this object's coordinate system that describes the approximate bounding box of the clip rect that would be applied to the given child during the paint phase, if any.
override
describeForError(String name, {DiagnosticsTreeStyle style = DiagnosticsTreeStyle.shallow}) DiagnosticsNode
Adds a debug representation of a RenderObject optimized for including in error messages.
inherited
describeSemanticsClip(covariant RenderObject? child) Rect?
Returns a rect in this object's coordinate system that describes which SemanticsNodes produced by the child should be included in the semantics tree. SemanticsNodes from the child that are positioned outside of this rect will be dropped. Child SemanticsNodes that are positioned inside this rect, but outside of describeApproximatePaintClip will be included in the tree marked as hidden. Child SemanticsNodes that are inside of both rect will be included in the tree as regular nodes.
inherited
describeSemanticsConfiguration(SemanticsConfiguration config) → void
Report the semantics of this node, for example for accessibility purposes.
override
detach() → void
Mark this render object as detached from its PipelineOwner.
override
dispose() → void
Release any resources held by this render object.
override
dropChild(RenderObject child) → void
Called by subclasses when they decide a render object is no longer a child.
inherited
getBoxesForSelection(TextSelection selection) List<Rect>
Returns a list of rects that bound the given selection.
getDistanceToActualBaseline(TextBaseline baseline) double?
Calls computeDistanceToActualBaseline and caches the result.
inherited
getDistanceToBaseline(TextBaseline baseline, {bool onlyReal = false}) double?
Returns the distance from the y-coordinate of the position of the box to the y-coordinate of the first given baseline in the box's contents.
inherited
getDryBaseline(covariant BoxConstraints constraints, TextBaseline baseline) double?
Returns the distance from the top of the box to the first baseline of the box's contents for the given constraints, or null if this RenderBox does not have any baselines.
inherited
getDryLayout(covariant BoxConstraints constraints) Size
Returns the Size that this RenderBox would like to be given the provided BoxConstraints.
inherited
getEndpointsForSelection(TextSelection selection) List<TextSelectionPoint>
Returns the local coordinates of the endpoints of the given selection.
getLineAtOffset(TextPosition position) TextSelection
Return a TextSelection containing the line of the given TextPosition.
override
getLocalRectForCaret(TextPosition caretPosition) Rect
Returns the Rect in local coordinates for the caret at the given text position.
getMaxIntrinsicHeight(double width) double
Returns the smallest height beyond which increasing the height never decreases the preferred width. The preferred width is the value that would be returned by getMinIntrinsicWidth for that height.
inherited
getMaxIntrinsicWidth(double height) double
Returns the smallest width beyond which increasing the width never decreases the preferred height. The preferred height is the value that would be returned by getMinIntrinsicHeight for that width.
inherited
getMinIntrinsicHeight(double width) double
Returns the minimum height that this box could be without failing to correctly paint its contents within itself, without clipping.
inherited
getMinIntrinsicWidth(double height) double
Returns the minimum width that this box could be without failing to correctly paint its contents within itself, without clipping.
inherited
getPositionForPoint(Offset globalPosition) TextPosition
Returns the position in the text for the given global coordinate.
getRectForComposingRange(TextRange range) Rect?
Returns the smallest Rect, in the local coordinate system, that covers the text within the TextRange specified.
getTextPositionAbove(TextPosition position) TextPosition
Returns the TextPosition above the given offset into the text.
override
getTextPositionBelow(TextPosition position) TextPosition
Returns the TextPosition below the given offset into the text.
override
getTransformTo(RenderObject? ancestor) Matrix4
Applies the paint transform up the tree to ancestor.
inherited
getWordBoundary(TextPosition position) TextRange
Returns the text range of the word at the given offset. Characters not part of a word, such as spaces, symbols, and punctuation, have word breaks on both sides. In such cases, this method will return a text range that contains the given text position.
override
globalToLocal(Offset point, {RenderObject? ancestor}) Offset
Convert the given point from the global coordinate system in logical pixels to the local coordinate system for this box.
inherited
handleDoubleTap() → void
If ignorePointer is false (the default) then this method is called by the internal gesture recognizer's DoubleTapGestureRecognizer.onDoubleTap callback.
handleEvent(PointerEvent event, covariant BoxHitTestEntry entry) → void
Override this method to handle pointer events that hit this render object.
override
handleLongPress() → void
If ignorePointer is false (the default) then this method is called by the internal gesture recognizer's LongPressGestureRecognizer.onLongPress callback.
handleSecondaryTapDown(TapDownDetails details) → void
Tracks the position of a secondary tap event.
handleTap() → void
If ignorePointer is false (the default) then this method is called by the internal gesture recognizer's TapGestureRecognizer.onTap callback.
handleTapDown(TapDownDetails details) → void
If ignorePointer is false (the default) then this method is called by the internal gesture recognizer's TapGestureRecognizer.onTapDown callback.
hitTest(BoxHitTestResult result, {required Offset position}) bool
Determines the set of render objects located at the given position.
inherited
hitTestChildren(BoxHitTestResult result, {required Offset position}) bool
Override this method to check whether any children are located at the given position.
inherited
hitTestSelf(Offset position) bool
Override this method if this render object can be hit even if its children were not hit.
override
invokeLayoutCallback<T extends Constraints>(LayoutCallback<T> callback) → void
Allows mutations to be made to this object's child list (and any descendants) as well as to any other dirty nodes in the render tree owned by the same PipelineOwner as this object. The callback argument is invoked synchronously, and the mutations are allowed only during that callback's execution.
inherited
layout(Constraints constraints, {bool parentUsesSize = false}) → void
Compute the layout for this render object.
inherited
localToGlobal(Offset point, {RenderObject? ancestor}) Offset
Convert the given point from the local coordinate system for this box to the global coordinate system in logical pixels.
inherited
markNeedsCompositedLayerUpdate() → void
Mark this render object as having changed a property on its composited layer.
inherited
markNeedsCompositingBitsUpdate() → void
Mark the compositing state for this render object as dirty.
inherited
markNeedsLayout() → void
Mark this render object's layout information as dirty, and either register this object with its PipelineOwner, or defer to the parent, depending on whether this object is a relayout boundary or not respectively.
inherited
markNeedsLayoutForSizedByParentChange() → void
Mark this render object's layout information as dirty (like markNeedsLayout), and additionally also handle any necessary work to handle the case where sizedByParent has changed value.
inherited
markNeedsPaint() → void
Mark this render object as having changed its visual appearance.
override
markNeedsSemanticsUpdate() → void
Mark this node as needing an update to its semantics description.
inherited
markNeedsTextLayout() → void
Marks the render object as needing to be laid out again and have its text metrics recomputed.
markParentNeedsLayout() → void
Mark this render object's layout information as dirty, and then defer to the parent.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paint(PaintingContext context, Offset offset) → void
Paint this render object into the given context at the given offset.
override
paintsChild(covariant RenderObject child) bool
Whether the given child would be painted if paint were called.
inherited
performLayout() → void
Do the work of computing the layout for this render object.
override
performResize() → void
Updates the render objects size using only the constraints.
inherited
reassemble() → void
Cause the entire subtree rooted at the given RenderObject to be marked dirty for layout, paint, etc, so that the effects of a hot reload can be seen, or so that the effect of changing a global debug flag (such as debugPaintSizeEnabled) can be applied.
inherited
redepthChild(RenderObject child) → void
Adjust the depth of the given child to be greater than this node's own depth.
inherited
redepthChildren() → void
Adjust the depth of this node's children, if any.
override
replaceRootLayer(OffsetLayer rootLayer) → void
Replace the layer. This is only valid for the root of a render object subtree (whatever object scheduleInitialPaint was called on).
inherited
scheduleInitialLayout() → void
Bootstrap the rendering pipeline by scheduling the very first layout.
inherited
scheduleInitialPaint(ContainerLayer rootLayer) → void
Bootstrap the rendering pipeline by scheduling the very first paint.
inherited
scheduleInitialSemantics() → void
Bootstrap the semantics reporting mechanism by marking this node as needing a semantics update.
inherited
selectPosition({required SelectionChangedCause cause}) → void
Move selection to the location of the last tap down.
selectPositionAt({required Offset from, Offset? to, required SelectionChangedCause cause}) → void
Select text between the global positions from and to.
selectWord({required SelectionChangedCause cause}) → void
Select a word around the location of the last tap down.
selectWordEdge({required SelectionChangedCause cause}) → void
Move the selection to the beginning or end of a word.
selectWordsInRange({required Offset from, Offset? to, required SelectionChangedCause cause}) → void
Selects the set words of a paragraph in a given range of global positions.
sendSemanticsEvent(SemanticsEvent semanticsEvent) → void
Sends a SemanticsEvent associated with this render object's SemanticsNode.
inherited
setupParentData(covariant RenderObject child) → void
Override to setup parent data correctly for your children.
inherited
showOnScreen({RenderObject? descendant, Rect? rect, Duration duration = Duration.zero, Curve curve = Curves.ease}) → void
Attempt to make (a portion of) this or a descendant RenderObject visible on screen.
inherited
startHorizontalCaretMovement(TextPosition startPosition) HorizontalCaretMovementRun
Starts a HorizontalCaretMovementRun at the given location in the text, for handling consecutive horizontal caret movements.
systemFontsDidChange() → void
A callback that is called when system fonts have changed.
override
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines = '', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a description of the tree rooted at this node. If the prefix argument is provided, then every line in the output will be prefixed by that string.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the render object. This description is often somewhat long.
inherited
toStringShort() String
Returns a human understandable name.
inherited
updateCompositedLayer({required covariant OffsetLayer? oldLayer}) OffsetLayer
Update the composited layer owned by this render object.
inherited
visitChildren(RenderObjectVisitor visitor) → void
Calls visitor for each immediate child of this render object.
override
visitChildrenForSemantics(RenderObjectVisitor visitor) → void
Called when collecting the semantics of this node.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

nextCharacter(int index, String string, [bool includeWhitespace = true]) int
Returns the index into the string of the next character boundary after the given index.
previousCharacter(int index, String string, [bool includeWhitespace = true]) int
Returns the index into the string of the previous character boundary before the given index.