mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 15:45:38 +00:00
widget: expose truncation status of Selectable
This commit adds an exported method to enable widgets to detect when the text displayed by a Selectable has been truncated. This can be used to implement proper show-full-text-in-an-overlay behavior in a parent widget. I haven't attempted to implement that in core yet, as it is a complex feature involving animation and pointer interaction. Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
This commit is contained in:
@@ -160,6 +160,12 @@ func (l *Selectable) SetText(s string) {
|
||||
}
|
||||
}
|
||||
|
||||
// Truncated returns whether the text has been truncated by the text shaper to
|
||||
// fit within available constraints.
|
||||
func (l *Selectable) Truncated() bool {
|
||||
return l.text.Truncated()
|
||||
}
|
||||
|
||||
// Layout clips to the dimensions of the selectable, updates the shaped text, configures input handling, and paints
|
||||
// the text and selection rectangles. The provided textMaterial and selectionMaterial ops are used to set the
|
||||
// paint material for the text and selection rectangles, respectively.
|
||||
|
||||
@@ -447,6 +447,12 @@ func (e *textView) MoveCoord(pos image.Point) {
|
||||
e.caret.xoff = 0
|
||||
}
|
||||
|
||||
// Truncated returns whether the text in the textView is currently
|
||||
// truncated due to a restriction on the number of lines.
|
||||
func (e *textView) Truncated() bool {
|
||||
return e.index.truncated
|
||||
}
|
||||
|
||||
func (e *textView) layoutText(lt *text.Shaper) {
|
||||
e.Seek(0, io.SeekStart)
|
||||
var r io.Reader = e
|
||||
|
||||
Reference in New Issue
Block a user