Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
- Exported types
- Methods
- addSelection
- freeRanges
- getBoundedRanges
- getCaretOffset
- getCharacterAtOffset
- getCharacterCount
- getCharacterExtents
- getDefaultAttributes
- getNSelections
- getOffsetAtPoint
- getRangeExtents
- getRunAttributes
- getSelection
- getStringAtOffset
- getText
- getTextAfterOffset
- getTextAtOffset
- getTextBeforeOffset
- removeSelection
- scrollSubstringTo
- scrollSubstringToPoint
- setCaretOffset
- setSelection
- Signals
Text
should be implemented by AtkObjects
on behalf of widgets
that have text content which is either attributed or otherwise
non-trivial. AtkObjects
whose text content is simple,
unattributed, and very brief may expose that content via
atk_object_get_name
instead; however if the text is editable,
multi-line, typically longer than three or four words, attributed,
selectable, or if the object already uses the 'name' ATK property
for other information, the Text
interface should be used to
expose the text content. In the case of editable text content,
EditableText
(a subtype of the Text
interface) should be
implemented instead.
Text
provides not only traversal facilities and change
notification for text content, but also caret tracking and glyph
bounding box calculations. Note that the text strings are exposed
as UTF-8, and are therefore potentially multi-byte, and
caret-to-byte offset mapping makes no assumptions about the
character length; also bounding box glyph-to-offset mapping may be
complex for languages which use ligatures.
Synopsis
- newtype Text = Text (ManagedPtr Text)
- class (GObject o, IsDescendantOf Text o) => IsText o
- toText :: (MonadIO m, IsText o) => o -> m Text
- textAddSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> m Bool
- textFreeRanges :: (HasCallStack, MonadIO m) => [TextRange] -> m ()
- textGetBoundedRanges :: (HasCallStack, MonadIO m, IsText a) => a -> TextRectangle -> CoordType -> TextClipType -> TextClipType -> m [TextRange]
- textGetCaretOffset :: (HasCallStack, MonadIO m, IsText a) => a -> m Int32
- textGetCharacterAtOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m Char
- textGetCharacterCount :: (HasCallStack, MonadIO m, IsText a) => a -> m Int32
- textGetCharacterExtents :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> CoordType -> m (Int32, Int32, Int32, Int32)
- textGetDefaultAttributes :: (HasCallStack, MonadIO m, IsText a) => a -> m [Ptr ()]
- textGetNSelections :: (HasCallStack, MonadIO m, IsText a) => a -> m Int32
- textGetOffsetAtPoint :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> CoordType -> m Int32
- textGetRangeExtents :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> CoordType -> m TextRectangle
- textGetRunAttributes :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m ([Ptr ()], Int32, Int32)
- textGetSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m (Text, Int32, Int32)
- textGetStringAtOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextGranularity -> m (Maybe Text, Int32, Int32)
- textGetText :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> m Text
- textGetTextAfterOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextBoundary -> m (Text, Int32, Int32)
- textGetTextAtOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextBoundary -> m (Text, Int32, Int32)
- textGetTextBeforeOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextBoundary -> m (Text, Int32, Int32)
- textRemoveSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m Bool
- textScrollSubstringTo :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> ScrollType -> m Bool
- textScrollSubstringToPoint :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> CoordType -> Int32 -> Int32 -> m Bool
- textSetCaretOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m Bool
- textSetSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> Int32 -> m Bool
- type TextTextAttributesChangedCallback = IO ()
- afterTextTextAttributesChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextAttributesChangedCallback) -> m SignalHandlerId
- onTextTextAttributesChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextAttributesChangedCallback) -> m SignalHandlerId
- type TextTextCaretMovedCallback = Int32 -> IO ()
- afterTextTextCaretMoved :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextCaretMovedCallback) -> m SignalHandlerId
- onTextTextCaretMoved :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextCaretMovedCallback) -> m SignalHandlerId
- type TextTextChangedCallback = Int32 -> Int32 -> IO ()
- afterTextTextChanged :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextChangedCallback) -> m SignalHandlerId
- onTextTextChanged :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextChangedCallback) -> m SignalHandlerId
- type TextTextInsertCallback = Int32 -> Int32 -> Text -> IO ()
- afterTextTextInsert :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextInsertCallback) -> m SignalHandlerId
- onTextTextInsert :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextInsertCallback) -> m SignalHandlerId
- type TextTextRemoveCallback = Int32 -> Int32 -> Text -> IO ()
- afterTextTextRemove :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextRemoveCallback) -> m SignalHandlerId
- onTextTextRemove :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextRemoveCallback) -> m SignalHandlerId
- type TextTextSelectionChangedCallback = IO ()
- afterTextTextSelectionChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextSelectionChangedCallback) -> m SignalHandlerId
- onTextTextSelectionChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextSelectionChangedCallback) -> m SignalHandlerId
Exported types
Memory-managed wrapper type.
Instances
Eq Text Source # | |
GObject Text Source # | |
Defined in GI.Atk.Interfaces.Text | |
ManagedPtrNewtype Text Source # | |
Defined in GI.Atk.Interfaces.Text toManagedPtr :: Text -> ManagedPtr Text | |
TypedObject Text Source # | |
Defined in GI.Atk.Interfaces.Text | |
HasParentTypes Text Source # | |
Defined in GI.Atk.Interfaces.Text | |
IsGValue (Maybe Text) Source # | Convert |
Defined in GI.Atk.Interfaces.Text gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe Text -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe Text) | |
type ParentTypes Text Source # | |
Defined in GI.Atk.Interfaces.Text type ParentTypes Text = '[Object] |
class (GObject o, IsDescendantOf Text o) => IsText o Source #
Instances
(GObject o, IsDescendantOf Text o) => IsText o Source # | |
Defined in GI.Atk.Interfaces.Text |
Methods
Click to display all available methods, including inherited ones
Methods
addSelection, bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isFloating, notify, notifyByPspec, ref, refSink, removeSelection, runDispose, scrollSubstringTo, scrollSubstringToPoint, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getBoundedRanges, getCaretOffset, getCharacterAtOffset, getCharacterCount, getCharacterExtents, getData, getDefaultAttributes, getNSelections, getOffsetAtPoint, getProperty, getQdata, getRangeExtents, getRunAttributes, getSelection, getStringAtOffset, getText, getTextAfterOffset, getTextAtOffset, getTextBeforeOffset.
Setters
setCaretOffset, setData, setDataFull, setProperty, setSelection.
addSelection
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> Int32 |
|
-> m Bool |
Adds a selection bounded by the specified offsets.
freeRanges
:: (HasCallStack, MonadIO m) | |
=> [TextRange] |
|
-> m () |
Frees the memory associated with an array of AtkTextRange. It is assumed that the array was returned by the function atk_text_get_bounded_ranges and is NULL terminated.
Since: 1.3
getBoundedRanges
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> TextRectangle |
|
-> CoordType |
|
-> TextClipType |
|
-> TextClipType |
|
-> m [TextRange] | Returns: Array of AtkTextRange. The last element of the array returned by this function will be NULL. |
Get the ranges of text in the specified bounding box.
Since: 1.3
getCaretOffset
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> m Int32 | Returns: the character offset of the position of the caret or -1 if the caret is not located inside the element or in the case of any other failure. |
Gets the offset of the position of the caret (cursor).
getCharacterAtOffset
textGetCharacterAtOffset Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> m Char | Returns: the character at |
Gets the specified text.
getCharacterCount
textGetCharacterCount Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> m Int32 | Returns: the number of characters or -1 in case of failure. |
Gets the character count.
getCharacterExtents
textGetCharacterExtents Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> CoordType |
|
-> m (Int32, Int32, Int32, Int32) |
If the extent can not be obtained (e.g. missing support), all of x, y, width, height are set to -1.
Get the bounding box containing the glyph representing the character at a particular text offset.
getDefaultAttributes
textGetDefaultAttributes Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> m [Ptr ()] | Returns: an |
Creates an AtkAttributeSet
which consists of the default values of
attributes for the text. See the enum AtkTextAttribute for types of text
attributes that can be returned. Note that other attributes may also be
returned.
getNSelections
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> m Int32 | Returns: The number of selected regions, or -1 in the case of failure. |
Gets the number of selected regions.
getOffsetAtPoint
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> Int32 |
|
-> CoordType |
|
-> m Int32 | Returns: the offset to the character which is located at the specified
|
Gets the offset of the character located at coordinates x
and y
. x
and y
are interpreted as being relative to the screen or this widget's window
depending on coords
.
getRangeExtents
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> Int32 |
|
-> CoordType |
|
-> m TextRectangle |
Get the bounding box for text within the specified range.
If the extents can not be obtained (e.g. or missing support), the rectangle fields are set to -1.
Since: 1.3
getRunAttributes
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> m ([Ptr ()], Int32, Int32) | Returns: an |
Creates an AtkAttributeSet
which consists of the attributes explicitly
set at the position offset
in the text. startOffset
and endOffset
are
set to the start and end of the range around offset
where the attributes are
invariant. Note that endOffset
is the offset of the first character
after the range. See the enum AtkTextAttribute for types of text
attributes that can be returned. Note that other attributes may also be
returned.
getSelection
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> m (Text, Int32, Int32) | Returns: a newly allocated string containing the selected text. Use |
Gets the text from the specified selection.
getStringAtOffset
textGetStringAtOffset Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> TextGranularity |
|
-> m (Maybe Text, Int32, Int32) | Returns: a newly allocated string containing the text at
the |
Gets a portion of the text exposed through an Text
according to a given offset
and a specific granularity
, along with the start and end offsets defining the
boundaries of such a portion of text.
If granularity
is ATK_TEXT_GRANULARITY_CHAR the character at the
offset is returned.
If granularity
is ATK_TEXT_GRANULARITY_WORD the returned string
is from the word start at or before the offset to the word start after
the offset.
The returned string will contain the word at the offset if the offset is inside a word and will contain the word before the offset if the offset is not inside a word.
If granularity
is ATK_TEXT_GRANULARITY_SENTENCE the returned string
is from the sentence start at or before the offset to the sentence
start after the offset.
The returned string will contain the sentence at the offset if the offset is inside a sentence and will contain the sentence before the offset if the offset is not inside a sentence.
If granularity
is ATK_TEXT_GRANULARITY_LINE the returned string
is from the line start at or before the offset to the line
start after the offset.
If granularity
is ATK_TEXT_GRANULARITY_PARAGRAPH the returned string
is from the start of the paragraph at or before the offset to the start
of the following paragraph after the offset.
Since: 2.10
getText
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> Int32 |
|
-> m Text | Returns: a newly allocated string containing the text from |
Gets the specified text.
getTextAfterOffset
textGetTextAfterOffset Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> TextBoundary |
|
-> m (Text, Int32, Int32) | Returns: a newly allocated string containing the text after |
Deprecated: (Since version 2.9.3)Please use textGetStringAtOffset
instead.
Gets the specified text.
getTextAtOffset
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> TextBoundary |
|
-> m (Text, Int32, Int32) | Returns: a newly allocated string containing the text at |
Deprecated: This method is deprecated since ATK version2.9.4. Please use textGetStringAtOffset
instead.
Gets the specified text.
If the boundary_type if ATK_TEXT_BOUNDARY_CHAR the character at the offset is returned.
If the boundary_type is ATK_TEXT_BOUNDARY_WORD_START the returned string is from the word start at or before the offset to the word start after the offset.
The returned string will contain the word at the offset if the offset is inside a word and will contain the word before the offset if the offset is not inside a word.
If the boundary type is ATK_TEXT_BOUNDARY_SENTENCE_START the returned string is from the sentence start at or before the offset to the sentence start after the offset.
The returned string will contain the sentence at the offset if the offset is inside a sentence and will contain the sentence before the offset if the offset is not inside a sentence.
If the boundary type is ATK_TEXT_BOUNDARY_LINE_START the returned string is from the line start at or before the offset to the line start after the offset.
getTextBeforeOffset
textGetTextBeforeOffset Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> TextBoundary |
|
-> m (Text, Int32, Int32) | Returns: a newly allocated string containing the text before |
Deprecated: (Since version 2.9.3)Please use textGetStringAtOffset
instead.
Gets the specified text.
removeSelection
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> m Bool |
Removes the specified selection.
scrollSubstringTo
textScrollSubstringTo Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> Int32 |
|
-> ScrollType |
|
-> m Bool | Returns: whether scrolling was successful. |
Makes a substring of text
visible on the screen by scrolling all necessary parents.
Since: 2.32
scrollSubstringToPoint
textScrollSubstringToPoint Source #
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> Int32 |
|
-> CoordType |
|
-> Int32 |
|
-> Int32 |
|
-> m Bool | Returns: whether scrolling was successful. |
Move the top-left of a substring of text
to a given position of the screen
by scrolling all necessary parents.
Since: 2.32
setCaretOffset
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> m Bool |
Sets the caret (cursor) position to the specified offset
.
In the case of rich-text content, this method should either grab focus or move the sequential focus navigation starting point (if the application supports this concept) as if the user had clicked on the new caret position. Typically, this means that the target of this operation is the node containing the new caret position or one of its ancestors. In other words, after this method is called, if the user advances focus, it should move to the first focusable node following the new caret position.
Calling this method should also scroll the application viewport in a way that matches the behavior of the application's typical caret motion or tab navigation as closely as possible. This also means that if the application's caret motion or focus navigation does not trigger a scroll operation, this method should not trigger one either. If the application does not have a caret motion or focus navigation operation, this method should try to scroll the new caret position into view while minimizing unnecessary scroll motion.
setSelection
:: (HasCallStack, MonadIO m, IsText a) | |
=> a |
|
-> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> m Bool |
Changes the start and end offset of the specified selection.
Signals
textAttributesChanged
type TextTextAttributesChangedCallback = IO () Source #
The "text-attributes-changed" signal is emitted when the text attributes of the text of an object which implements AtkText changes.
afterTextTextAttributesChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextAttributesChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textAttributesChanged signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
text #textAttributesChanged callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onTextTextAttributesChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextAttributesChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textAttributesChanged signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
text #textAttributesChanged callback
textCaretMoved
type TextTextCaretMovedCallback Source #
The "text-caret-moved" signal is emitted when the caret position of the text of an object which implements AtkText changes.
afterTextTextCaretMoved :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextCaretMovedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textCaretMoved signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
text #textCaretMoved callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onTextTextCaretMoved :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextCaretMovedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textCaretMoved signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
text #textCaretMoved callback
textChanged
type TextTextChangedCallback Source #
= Int32 |
|
-> Int32 |
|
-> IO () |
The "text-changed" signal is emitted when the text of the object which implements the AtkText interface changes, This signal will have a detail which is either "insert" or "delete" which identifies whether the text change was an insertion or a deletion.
afterTextTextChanged :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textChanged signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
text #textChanged callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “text-changed::detail
” instead.
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onTextTextChanged :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textChanged signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
text #textChanged callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “text-changed::detail
” instead.
textInsert
type TextTextInsertCallback Source #
= Int32 |
|
-> Int32 |
|
-> Text |
|
-> IO () |
The "text-insert" signal is emitted when a new text is inserted. If the signal was not triggered by the user (e.g. typing or pasting text), the "system" detail should be included.
afterTextTextInsert :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextInsertCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textInsert signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
text #textInsert callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “text-insert::detail
” instead.
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onTextTextInsert :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextInsertCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textInsert signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
text #textInsert callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “text-insert::detail
” instead.
textRemove
type TextTextRemoveCallback Source #
= Int32 |
|
-> Int32 |
|
-> Text |
|
-> IO () |
The "text-remove" signal is emitted when a new text is removed. If the signal was not triggered by the user (e.g. typing or pasting text), the "system" detail should be included.
afterTextTextRemove :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextRemoveCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textRemove signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
text #textRemove callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “text-remove::detail
” instead.
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onTextTextRemove :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextRemoveCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textRemove signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
text #textRemove callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “text-remove::detail
” instead.
textSelectionChanged
type TextTextSelectionChangedCallback = IO () Source #
The "text-selection-changed" signal is emitted when the selected text of an object which implements AtkText changes.
afterTextTextSelectionChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextSelectionChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textSelectionChanged signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
text #textSelectionChanged callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onTextTextSelectionChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextSelectionChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the textSelectionChanged signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
text #textSelectionChanged callback