|
|
|
|
|
Description |
- Throughout we distinguish between buffer coordinates which are pixels
with the origin at the upper left corner of the first character on the
first line. Window coordinates are relative to the top left pixel which
is visible in the current TextView. Coordinates from Events
are in the latter relation. The conversion can be done with
textViewWindowToBufferCoords.
TODO
- If PangoTabArray is bound: do textViewSetTabs and textViewGetTabs
|
|
Synopsis |
|
| | | | | | | | | | | | textViewNew :: IO TextView | | textViewNewWithBuffer :: TextBuffer -> IO TextView | | textViewSetBuffer :: TextViewClass tv => tv -> TextBuffer -> IO () | | textViewGetBuffer :: TextViewClass tv => tv -> IO TextBuffer | | textViewScrollToMark :: TextViewClass tv => tv -> TextMark -> Double -> Maybe (Double, Double) -> IO () | | textViewScrollToIter :: TextViewClass tv => tv -> TextIter -> Double -> Maybe (Double, Double) -> IO Bool | | textViewScrollMarkOnscreen :: TextViewClass tv => tv -> TextMark -> IO () | | textViewMoveMarkOnscreen :: TextViewClass tv => tv -> TextMark -> IO Bool | | textViewPlaceCursorOnscreen :: TextViewClass tv => tv -> IO Bool | | textViewGetLineAtY :: TextViewClass tv => tv -> Int -> IO (TextIter, Int) | | textViewGetLineYrange :: TextViewClass tv => tv -> TextIter -> IO (Int, Int) | | textViewGetIterAtLocation :: TextViewClass tv => tv -> Int -> Int -> IO TextIter | | textViewBufferToWindowCoords :: TextViewClass tv => tv -> TextWindowType -> (Int, Int) -> IO (Int, Int) | | textViewWindowToBufferCoords :: TextViewClass tv => tv -> TextWindowType -> (Int, Int) -> IO (Int, Int) | | textViewGetWindow :: TextViewClass tv => tv -> TextWindowType -> IO (Maybe DrawWindow) | | textViewGetWindowType :: TextViewClass tv => tv -> DrawWindow -> IO TextWindowType | | textViewSetBorderWindowSize :: TextViewClass tv => tv -> TextWindowType -> Int -> IO () | | textViewGetBorderWindowSize :: TextViewClass tv => tv -> TextWindowType -> IO Int | | textViewForwardDisplayLine :: TextViewClass tv => tv -> TextIter -> IO Bool | | textViewBackwardDisplayLine :: TextViewClass tv => tv -> TextIter -> IO Bool | | textViewForwardDisplayLineEnd :: TextViewClass tv => TextIter -> tv -> IO Bool | | textViewBackwardDisplayLineEnd :: TextViewClass tv => tv -> TextIter -> IO Bool | | textViewForwardDisplayLineStart :: TextViewClass tv => tv -> TextIter -> IO Bool | | textViewBackwardDisplayLineStart :: TextViewClass tv => tv -> TextIter -> IO Bool | | textViewStartsDisplayLine :: TextViewClass tv => tv -> TextIter -> IO Bool | | textViewMoveVisually :: TextViewClass tv => tv -> TextIter -> Int -> IO Bool | | textViewAddChildAtAnchor :: (TextViewClass tv, WidgetClass w) => tv -> w -> TextChildAnchor -> IO () | | textChildAnchorNew :: IO TextChildAnchor | | textChildAnchorGetWidgets :: TextChildAnchor -> IO [Widget] | | textChildAnchorGetDeleted :: TextChildAnchor -> IO Bool | | textViewAddChildInWindow :: (TextViewClass tv, WidgetClass w) => tv -> w -> TextWindowType -> Int -> Int -> IO () | | textViewMoveChild :: (TextViewClass tv, WidgetClass w) => tv -> w -> Int -> Int -> IO () | | textViewSetWrapMode :: TextViewClass tv => tv -> WrapMode -> IO () | | textViewGetWrapMode :: TextViewClass tv => tv -> IO WrapMode | | textViewSetEditable :: TextViewClass tv => tv -> Bool -> IO () | | textViewGetEditable :: TextViewClass tv => tv -> IO Bool | | textViewSetCursorVisible :: TextViewClass tv => tv -> Bool -> IO () | | textViewGetCursorVisible :: TextViewClass tv => tv -> IO Bool | | textViewSetPixelsAboveLines :: TextViewClass tv => tv -> Int -> IO () | | textViewGetPixelsAboveLines :: TextViewClass tv => tv -> IO Int | | textViewSetPixelsBelowLines :: TextViewClass tv => tv -> Int -> IO () | | textViewGetPixelsBelowLines :: TextViewClass tv => tv -> IO Int | | textViewSetPixelsInsideWrap :: TextViewClass tv => tv -> Int -> IO () | | textViewGetPixelsInsideWrap :: TextViewClass tv => tv -> IO Int | | textViewSetJustification :: TextViewClass tv => tv -> Justification -> IO () | | textViewGetJustification :: TextViewClass tv => tv -> IO Justification | | textViewSetLeftMargin :: TextViewClass tv => tv -> Int -> IO () | | textViewGetLeftMargin :: TextViewClass tv => tv -> IO Int | | textViewSetRightMargin :: TextViewClass tv => tv -> Int -> IO () | | textViewGetRightMargin :: TextViewClass tv => tv -> IO Int | | textViewSetIndent :: TextViewClass tv => tv -> Int -> IO () | | textViewGetIndent :: TextViewClass tv => tv -> IO Int | | textViewGetDefaultAttributes :: TextViewClass tv => tv -> IO TextAttributes | | onCopyClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | afterCopyClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | onCutClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | afterCutClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | onDeleteFromCursor :: TextViewClass tv => tv -> (DeleteType -> Int -> IO ()) -> IO (ConnectId tv) | | afterDeleteFromCursor :: TextViewClass tv => tv -> (DeleteType -> Int -> IO ()) -> IO (ConnectId tv) | | onInsertAtCursor :: TextViewClass tv => tv -> (String -> IO ()) -> IO (ConnectId tv) | | afterInsertAtCursor :: TextViewClass tv => tv -> (String -> IO ()) -> IO (ConnectId tv) | | onMoveCursor :: TextViewClass tv => tv -> (MovementStep -> Int -> Bool -> IO ()) -> IO (ConnectId tv) | | afterMoveCursor :: TextViewClass tv => tv -> (MovementStep -> Int -> Bool -> IO ()) -> IO (ConnectId tv) | | onMoveFocus :: TextViewClass tv => tv -> (DirectionType -> IO ()) -> IO (ConnectId tv) | | afterMoveFocus :: TextViewClass tv => tv -> (DirectionType -> IO ()) -> IO (ConnectId tv) | | onPageHorizontally :: TextViewClass tv => tv -> (Int -> Bool -> IO ()) -> IO (ConnectId tv) | | afterPageHorizontally :: TextViewClass tv => tv -> (Int -> Bool -> IO ()) -> IO (ConnectId tv) | | onPasteClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | afterPasteClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | onPopulatePopup :: TextViewClass tv => tv -> (Menu -> IO ()) -> IO (ConnectId tv) | | afterPopulatePopup :: TextViewClass tv => tv -> (Menu -> IO ()) -> IO (ConnectId tv) | | onSetAnchor :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | afterSetAnchor :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | onSetScrollAdjustments :: TextViewClass tv => tv -> (Adjustment -> Adjustment -> IO ()) -> IO (ConnectId tv) | | afterSetScrollAdjustments :: TextViewClass tv => tv -> (Adjustment -> Adjustment -> IO ()) -> IO (ConnectId tv) | | onToggleOverwrite :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) | | afterToggleOverwrite :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
|
|
Documentation |
|
data DeleteType |
editing option
| Constructors | DeleteChars | | DeleteWordEnds | | DeleteWords | | DeleteDisplayLines | | DeleteDisplayLineEnds | | DeleteParagraphEnds | | DeleteParagraphs | | DeleteWhitespace | |
| Instances | |
|
|
data DirectionType |
editing direction
| Constructors | DirTabForward | | DirTabBackward | | DirUp | | DirDown | | DirLeft | | DirRight | |
| Instances | |
|
|
data Justification |
justification for label and maybe other widgets
(text?)
| Constructors | JustifyLeft | | JustifyRight | | JustifyCenter | | JustifyFill | |
| Instances | |
|
|
data MovementStep |
movement in text widget
| Constructors | MovementLogicalPositions | | MovementVisualPositions | | MovementWords | | MovementDisplayLines | | MovementDisplayLineEnds | | MovementParagraphs | | MovementParagraphEnds | | MovementPages | | MovementBufferEnds | | MovementHorizontalPages | |
| Instances | |
|
|
data TextWindowType |
The window type for coordinate translation.
| Constructors | TextWindowPrivate | | TextWindowWidget | | TextWindowText | | TextWindowLeft | | TextWindowRight | | TextWindowTop | | TextWindowBottom | |
| Instances | |
|
|
data WrapMode |
Determine how lines are wrapped in a TextView.
| Constructors | WrapNone | | WrapChar | | WrapWord | | WrapWordChar | |
| Instances | |
|
|
textViewNew :: IO TextView |
Create a new TextView widget with a
default TextBuffer.
|
|
textViewNewWithBuffer :: TextBuffer -> IO TextView |
Create a new TextView widget with
the given TextBuffer.
|
|
textViewSetBuffer :: TextViewClass tv => tv -> TextBuffer -> IO () |
Set the TextBuffer for a given TextView widget.
|
|
textViewGetBuffer :: TextViewClass tv => tv -> IO TextBuffer |
Returns the TextBuffer being displayed by this text view.
|
|
textViewScrollToMark :: TextViewClass tv => tv -> TextMark -> Double -> Maybe (Double, Double) -> IO () |
Scroll to the position of the supplied
TextMark.
- Supplying xalign, yalign gives a goal position of
the TextMark within screen bounds. 0,0 means left, top and
1.0,1.0 means right, bottom.
- Supply Nothing if the goal is to bring the position into
view with the minimum of scrolling.
- withinMargin is within [0.0 .. 0.5) and imposes an extra margin
at all four sides of the window within which xalign and
yalign are evaluated.
- The line distances are calculated in an idle handler. Calling this
function ensures that the line heights are indeed evaluated before the
scroll is carried out.
|
|
textViewScrollToIter :: TextViewClass tv => tv -> TextIter -> Double -> Maybe (Double, Double) -> IO Bool |
Scroll to the position of the supplied
TextIter.
- The position might not be correct due to the delayed calculation of the
line heights.
- Returns True if the function actually scrolled.
|
|
textViewScrollMarkOnscreen :: TextViewClass tv => tv -> TextMark -> IO () |
Scroll the visible area of the widget
so the TextMark becomes visible.
|
|
textViewMoveMarkOnscreen :: TextViewClass tv => tv -> TextMark -> IO Bool |
Move a TextMark within the
buffer until it is in the currently visible area of the widget.
- Returns True if the Mark was moved.
|
|
textViewPlaceCursorOnscreen :: TextViewClass tv => tv -> IO Bool |
Move the cursor within the buffer
until it is in the currently visible area of the widget.
- Returns True if the Mark was moved.
|
|
textViewGetLineAtY :: TextViewClass tv => tv -> Int -> IO (TextIter, Int) |
Get the TextIter at the start of the
line containing the coordinate y.
- y is in buffer coordinates.
- Returns the TextIter and the top of the line.
|
|
textViewGetLineYrange :: TextViewClass tv => tv -> TextIter -> IO (Int, Int) |
Get the y coordinate of the top and the
height of the line TextIter is on.
|
|
textViewGetIterAtLocation :: TextViewClass tv => tv -> Int -> Int -> IO TextIter |
Retrieves the TextIter at
buffer coordinates x and y.
|
|
textViewBufferToWindowCoords :: TextViewClass tv => tv -> TextWindowType -> (Int, Int) -> IO (Int, Int) |
Convert buffer cooridnates into
window coordinates.
|
|
textViewWindowToBufferCoords :: TextViewClass tv => tv -> TextWindowType -> (Int, Int) -> IO (Int, Int) |
Convert window cooridnates into
buffer coordinates.
|
|
textViewGetWindow :: TextViewClass tv => tv -> TextWindowType -> IO (Maybe DrawWindow) |
Get the underlying DrawWindow.
- The TextWindowType determines which window of the
TextWidget we would like to receive.
- Returns Nothing if there is no DrawWindow of the specified type.
|
|
textViewGetWindowType :: TextViewClass tv => tv -> DrawWindow -> IO TextWindowType |
Retrieve the type of window the
TextView widget contains.
- Usually used to find out which window an event corresponds to. An
emission of an event signal of TextView yields a
DrawWindow. This function can be used to see if the event
actually belongs to the main text window.
|
|
textViewSetBorderWindowSize :: TextViewClass tv => tv -> TextWindowType -> Int -> IO () |
Set the border width of the
TextView widget.
- Sets the width of TextWindowLeft or
TextWindowRight, or the height of TextWindowTop or
TextWindowBottom. Automatically destroys the corresponding
window if the size is set to 0 and creates the window if the size is set
to non-zero. This function can only used with the four window types
mentioned.
|
|
textViewGetBorderWindowSize :: TextViewClass tv => tv -> TextWindowType -> IO Int |
Retrieve the border width of the
specified window.
|
|
textViewForwardDisplayLine :: TextViewClass tv => tv -> TextIter -> IO Bool |
Move the iterator forwards by one display line.
- Moves the given TextIter forward by one display (wrapped)
line. A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters. Display
lines are created by line-wrapping a paragraph. If wrapping is turned
off, display lines and paragraphs will be the same. Display lines are
divided differently for each view, since they depend on the view's width;
paragraphs are the same in all views, since they depend on the contents
of the TextBuffer.
|
|
textViewBackwardDisplayLine :: TextViewClass tv => tv -> TextIter -> IO Bool |
Move the iterator backwards by one
display line.
|
|
textViewForwardDisplayLineEnd :: TextViewClass tv => TextIter -> tv -> IO Bool |
Move the iterator forwards and to the end.
|
|
textViewBackwardDisplayLineEnd :: TextViewClass tv => tv -> TextIter -> IO Bool |
Move the iterator backwards and to the end.
|
|
textViewForwardDisplayLineStart :: TextViewClass tv => tv -> TextIter -> IO Bool |
Move the iterator forwards and to the start.
|
|
textViewBackwardDisplayLineStart :: TextViewClass tv => tv -> TextIter -> IO Bool |
Move the iterator backwards and to the start.
|
|
textViewStartsDisplayLine :: TextViewClass tv => tv -> TextIter -> IO Bool |
Determines whether the iter is at the start of a display line.
|
|
textViewMoveVisually :: TextViewClass tv => tv -> TextIter -> Int -> IO Bool |
Move the iterator a number of lines.
|
|
textViewAddChildAtAnchor :: (TextViewClass tv, WidgetClass w) => tv -> w -> TextChildAnchor -> IO () |
Add a child widget in the
TextBuffer at a given TextChildAnchor.
|
|
textChildAnchorNew :: IO TextChildAnchor |
Create a new TextChildAnchor.
- Using textBufferCreateChildAnchor is usually simpler then
executing this function and textBufferInsertChildAnchor.
|
|
textChildAnchorGetWidgets :: TextChildAnchor -> IO [Widget] |
Retrieve all Widgets at this
TextChildAnchor.
- The widgets in the returned list need to be upcasted to what they were.
|
|
textChildAnchorGetDeleted :: TextChildAnchor -> IO Bool |
Query if an anchor was deleted.
|
|
textViewAddChildInWindow :: (TextViewClass tv, WidgetClass w) => tv -> w -> TextWindowType -> Int -> Int -> IO () |
Place a widget in within the text.
- This function places a Widget at an absolute pixel position
into the TextView. Note that any scrolling will leave the
widget in the same spot as it was.
- The position x, y is relative to the
DrawWindow specified by TextWindowType.
|
|
textViewMoveChild :: (TextViewClass tv, WidgetClass w) => tv -> w -> Int -> Int -> IO () |
Move a child widget within the
TextView.
|
|
textViewSetWrapMode :: TextViewClass tv => tv -> WrapMode -> IO () |
Specify how to wrap text.
|
|
textViewGetWrapMode :: TextViewClass tv => tv -> IO WrapMode |
Query how text is wrapped.
|
|
textViewSetEditable :: TextViewClass tv => tv -> Bool -> IO () |
Toggle whether the text in the
TextView is editable or not.
|
|
textViewGetEditable :: TextViewClass tv => tv -> IO Bool |
Retrieve information whether a
TextView is editable or not.
|
|
textViewSetCursorVisible :: TextViewClass tv => tv -> Bool -> IO () |
Toggle whether the cursor in the
TextView is visible or not.
|
|
textViewGetCursorVisible :: TextViewClass tv => tv -> IO Bool |
Retrieve information whether the cursor
in a TextView is visible or not.
|
|
textViewSetPixelsAboveLines :: TextViewClass tv => tv -> Int -> IO () |
Set the number of pixels above each
paragraph.
- Tags in the buffer may override this default.
|
|
textViewGetPixelsAboveLines :: TextViewClass tv => tv -> IO Int |
Get the number of pixels above each
paragraph.
- Tags in the buffer may override this default.
|
|
textViewSetPixelsBelowLines :: TextViewClass tv => tv -> Int -> IO () |
Set the number of pixels below each
paragraph.
- Tags in the buffer may override this default.
|
|
textViewGetPixelsBelowLines :: TextViewClass tv => tv -> IO Int |
Get the number of pixels below each
paragraph.
- Tags in the buffer may override this default.
|
|
textViewSetPixelsInsideWrap :: TextViewClass tv => tv -> Int -> IO () |
Set the number of pixels between
lines inside a wraped paragraph.
- Tags in the buffer may override this default.
|
|
textViewGetPixelsInsideWrap :: TextViewClass tv => tv -> IO Int |
Get the number of pixels between
lines inside a wraped paragraph.
- Tags in the buffer may override this default.
|
|
textViewSetJustification :: TextViewClass tv => tv -> Justification -> IO () |
Specify how to wrap text.
|
|
textViewGetJustification :: TextViewClass tv => tv -> IO Justification |
Query how text is wrapped.
|
|
textViewSetLeftMargin :: TextViewClass tv => tv -> Int -> IO () |
Set the number of pixels in the margin.
- Tags in the buffer may override this default.
|
|
textViewGetLeftMargin :: TextViewClass tv => tv -> IO Int |
Get the number of pixels in the margin.
- Tags in the buffer may override this default.
|
|
textViewSetRightMargin :: TextViewClass tv => tv -> Int -> IO () |
Set the number of pixels in the margin.
- Tags in the buffer may override this default.
|
|
textViewGetRightMargin :: TextViewClass tv => tv -> IO Int |
Get the number of pixels in the margin.
- Tags in the buffer may override this default.
|
|
textViewSetIndent :: TextViewClass tv => tv -> Int -> IO () |
Set the indentation in pixels for the first line
in a paragraph.
- Tags in the buffer may override this default.
- The indentation may be negative.
|
|
textViewGetIndent :: TextViewClass tv => tv -> IO Int |
Get the indentation in pixels for the first line
in a paragraph.
- Tags in the buffer may override this default.
- The indentation may be negative.
|
|
textViewGetDefaultAttributes :: TextViewClass tv => tv -> IO TextAttributes |
Obtains a copy of the default text attributes. These are the attributes
used for text unless a tag overrides them.
|
|
onCopyClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
Copying to the clipboard.
- This signal is emitted when a selection is copied to the clipboard.
- The action itself happens when the TextView processes this
signal.
|
|
afterCopyClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
|
onCutClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
Cutting to the clipboard.
- This signal is emitted when a selection is cut out and copied to the
clipboard. The action itself happens when the textview processed this
request.
|
|
afterCutClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
|
onDeleteFromCursor :: TextViewClass tv => tv -> (DeleteType -> Int -> IO ()) -> IO (ConnectId tv) |
Deleting text.
- The widget will remove the specified number of units in the text where
the meaning of units depends on the kind of deletion.
- The action itself happens when the TextView processes this
signal.
|
|
afterDeleteFromCursor :: TextViewClass tv => tv -> (DeleteType -> Int -> IO ()) -> IO (ConnectId tv) |
|
onInsertAtCursor :: TextViewClass tv => tv -> (String -> IO ()) -> IO (ConnectId tv) |
Inserting text.
- The widget will insert the string into the text where the meaning
of units depends on the kind of deletion.
- The action itself happens when the TextView processes this
signal.
|
|
afterInsertAtCursor :: TextViewClass tv => tv -> (String -> IO ()) -> IO (ConnectId tv) |
|
onMoveCursor :: TextViewClass tv => tv -> (MovementStep -> Int -> Bool -> IO ()) -> IO (ConnectId tv) |
Moving the cursor.
- The signal specifies what kind and how many steps the cursor will do.
The flag is set to True if this movement extends a selection.
- The action itself happens when the TextView processes this
signal.
|
|
afterMoveCursor :: TextViewClass tv => tv -> (MovementStep -> Int -> Bool -> IO ()) -> IO (ConnectId tv) |
|
onMoveFocus :: TextViewClass tv => tv -> (DirectionType -> IO ()) -> IO (ConnectId tv) |
Moving the focus.
- The action itself happens when the TextView processes this
signal.
|
|
afterMoveFocus :: TextViewClass tv => tv -> (DirectionType -> IO ()) -> IO (ConnectId tv) |
|
onPageHorizontally :: TextViewClass tv => tv -> (Int -> Bool -> IO ()) -> IO (ConnectId tv) |
Page change signals.
- The signal specifies how many pages the view should move up or down.
The flag is set to True if this movement extends a selection.
- The action itself happens when the TextView processes this
signal.
- Figure out why this signal is called horizontally, not vertically.
|
|
afterPageHorizontally :: TextViewClass tv => tv -> (Int -> Bool -> IO ()) -> IO (ConnectId tv) |
|
onPasteClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
Pasting from the clipboard.
- This signal is emitted when something is pasted from the clipboard.
- The action itself happens when the TextView processes this
signal.
|
|
afterPasteClipboard :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
|
onPopulatePopup :: TextViewClass tv => tv -> (Menu -> IO ()) -> IO (ConnectId tv) |
Add menu entries to context menus.
- This signal is emitted if a context menu within the TextView
is opened. This signal can be used to add application specific menu
items to this popup.
|
|
afterPopulatePopup :: TextViewClass tv => tv -> (Menu -> IO ()) -> IO (ConnectId tv) |
|
onSetAnchor :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
Inserting an anchor.
- This signal is emitted when anchor is inserted into the text.
- The action itself happens when the TextView processes this
signal.
|
|
afterSetAnchor :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
|
onSetScrollAdjustments :: TextViewClass tv => tv -> (Adjustment -> Adjustment -> IO ()) -> IO (ConnectId tv) |
The scroll-bars changed.
|
|
afterSetScrollAdjustments :: TextViewClass tv => tv -> (Adjustment -> Adjustment -> IO ()) -> IO (ConnectId tv) |
|
onToggleOverwrite :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
Insert/Overwrite mode has changed.
- This signal is emitted when the TextView changes from
inserting mode to overwriting mode and vice versa.
- The action itself happens when the TextView processes this
signal.
|
|
afterToggleOverwrite :: TextViewClass tv => tv -> IO () -> IO (ConnectId tv) |
|
Produced by Haddock version 0.6 |