gtk-sharpGtk# is thread aware, but not thread safe; See the Gtk# Thread Programming for details.Gtk.ContainerGtk.IScrollableWidget that displays a
using System;
using Gtk;
class TextViewSample
{
static void Main ()
{
new TextViewSample ();
}
TextViewSample ()
{
Application.Init ();
Window win = new Window ("TextViewSample");
win.DeleteEvent += new DeleteEventHandler (OnWinDelete);
win.SetDefaultSize (600,400);
Gtk.TextView view;
Gtk.TextBuffer buffer;
view = new Gtk.TextView ();
buffer = view.Buffer;
buffer.Text = "Hello, this is some text";
win.Add (view);
win.ShowAll ();
Application.Run ();
}
void OnWinDelete (object obj, DeleteEventArgs args)
{
Application.Quit ();
}
}
Now you might put the view in a container and display it on
the screen; when the user edits the text, events on the
buffer will be emitted, such as , ,
and so on.
ConstructorCreates a new TextView
If you don't set the before using
the text view, an empty default buffer will be created for
you. If you want to specify your own buffer, use
.
Constructor
the buffer to be displayed
Creates a new TextView displaying a specified buffer.
Creates a new widget
displaying the buffer. One
buffer can be shared among many widgets.
Constructor
Pointer to the C object.
Internal constructorThis is an internal constructor, and should not be used by user code.PropertyGLib.Property("accepts-tab")System.BooleanWhether Tab will result in a tab character being entered.a Defaults to true.MethodSystem.Void
any
a in the current Adds a child widget in the text buffer, at the given anchorMethodSystem.Void
a
a
a
a Adds a child at fixed coordinates in one of the text widget's windows.The window must have non-zero size (see ). Note that the child coordinates are given relative to the in question, and that these coordinates have no sane relationship to scrolling. When placing a child in GTK_TEXT_WINDOW_WIDGET, scrolling is irrelevant, the child floats above all scrollable areas. But when placing a child in one of the scrollable windows (border windows or text window), you will need to compute the child's correct position in buffer coordinates any time scrolling occurs or buffer changes occur, and then call to update the child's position. Unfortunately there is no good way to detect that scrolling has occurred, using the current API; a possible hack would be to update all child positions when the scroll adjustments change or the text buffer changes. See bug 64518 on bugzilla.gnome.org for status of fixing this issue.EventGLib.Signal("backspace")System.EventHandlerTo be addedTo be addedMethodSystem.Boolean
the given Moves the given iter backward by one display (wrapped) line if was moved and is not on the end iterator
Moves the given iter backward 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 .
MethodSystem.Boolean
the given Moves the given backward to the next display line start if was moved and is not on the end iterator
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 .
PropertyGLib.Property("buffer")Gtk.TextBuffer
The displayed by the text view
the current buffer that is displayedMethodSystem.Void
a ,
except for
x coordinate of the buffer
y coordinate of the buffer
return location for the window's x coordinate
return location for the window's y coordinate
Converts specified buffer coordinates to coordinates
for window
Note that you can't convert coordinates for a nonexisting
window (see .
EventGLib.Signal("copy-clipboard")System.EventHandlerRaised when text is copied to the clipboard.PropertyGLib.Property("cursor-visible")System.BooleanWhether the insertion point is displayedwhether the insertion point is visibleDefaults to true.EventGLib.Signal("cut-clipboard")System.EventHandlerRaised whenever a selection is cut to the clipboard.PropertyGtk.TextAttributesThe default text attributesa s
Obtains a copy of the default text attributes. These are
the attributes used for text unless a tag overrides
them. You'd typically pass the default attributes in to
in order to get the attributes in effect at a given
text position.
The return valuea is a copy owned by the caller of this
function, and should be freed.
EventGLib.Signal("delete-from-cursor")Gtk.DeleteFromCursorHandlerRaised when text is deleted from the cursor (usually by hitting Backspace or Delete).PropertyGLib.Property("editable")System.BooleanWhether the text can be modified by the userWhether or not the text can be edited by the user.Defaults to true.MethodSystem.Boolean
the given Moves the given forward by one display (wrapped) line if was moved and is not on the end iterator
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 .
MethodSystem.Boolean
a Moves forward to the next display line end if was moved and is not on the end iterator
Moves the given iter forward to the next display line
end. 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
.
MethodSystem.Int32
a window to return size from
Gets the width of the specified border window.the width of the windowMethodSystem.Void
To be added.
To be added.
To be added.
To be added.To be added.MethodGtk.TextIter
x position, in buffer coordinates
y position, in buffer coordinates
Retrieves the iterator at buffer coordinates and .a Buffer coordinates are coordinates for the entire buffer, not just the currently-displayed portion. If you have coordinates from an event, you have to convert those to buffer coordinates with .MethodSystem.Int32
a
a
a To be addeda To be addedMethodGdk.Rectangle
a Gets a rectangle which roughly contains the character at iter.a , which is the bounds of the character at The rectangle position is in buffer coordinates; use to convert these coordinates to coordinates for one of the windows in the text view.MethodSystem.Void
a
a y coordinate
return location for top coordinate of the line
This method should be fixedGets the at the start of the line containing the coordinate . is in buffer coordinates, convert from window coordinates with . If non-, will be filled with the coordinate of the top edge of the line.MethodSystem.Void
the given
return location for the y coordinate
return location for the height
Gets the y coordinate of the top of the line
containing , and the height of the line
Gets the y coordinate of the top of the line containing
iter, and the height of the line. The coordinate is a buffer
coordinate; convert to window coordinates with .
MethodGdk.Window
window to get
Retrieves the corresponding to an area of the text view
a , or
Retrieves the corresponding to
an area of the text view; possible windows include the
overall widget window, child windows on the left, right,
top, bottom, and the window that displays the text
buffer. Windows are and
nonexistent if their width or height is 0, and are
nonexistent before the widget has been realized.
MethodGtk.TextWindowType
a window type
Used for finding out which window an event corresponds tothe window typePropertyGLib.GTypeGType Property.a Returns the native value for .PropertyGLib.Property("hadjustment")Gtk.AdjustmentTo be added.To be added.To be added.PropertyGLib.Property("hscroll-policy")Gtk.ScrollablePolicyTo be added.To be added.To be added.MethodSystem.Boolean
To be added.
To be added.To be added.To be added.PropertyGLib.Property("im-module")System.StringTo be added.To be added.To be added.PropertyGLib.Property("indent")System.Int32The default indentation for paragraphsThe number of pixels of indentation.
Tags in the may override the default.
EventGLib.Signal("insert-at-cursor")Gtk.InsertAtCursorHandlerRaised whenever text is inserted at the cursor.PropertyGLib.Property("justification")Gtk.JustificationThe default justificationThe default justification of paragraphs
Tags in the may
override the defaults.
PropertyGLib.Property("left-margin")System.Int32The default left marginThe left margin.MethodSystem.Void
child widget already added to the text view
new X position in window coordinates
new Y position in window coordinates
Updates the position of a childEventGLib.Signal("move-cursor")Gtk.MoveCursorHandlerRaised whenever the cursor is moved.MethodSystem.Boolean
a Moves within the buffer so that it's located within the currently-visible text area if the mark moved (wasn't already onscreen)EventGLib.Signal("move-viewport")Gtk.MoveViewportHandlerTo be added.To be added.MethodSystem.Boolean
the given
the number of characters to move (negative moves left, positive moves right)
Move the iterator a given number of characters visually, treating it as the strong cursor position if iter moved and is not on the end iterator
Move the iterator a given number of characters visually,
treating it as the strong cursor position. If count is
positive, then the new strong cursor position will be
count positions to the right of the old cursor
position. If count is negative then the new strong cursor
position will be count positions to the left of the old
cursor position.
In the presence of bidirection text, the correspondence
between logical and visual order will depend on the
direction of the current run, and there may be jumps when
the cursor is moved off of the end of a run.
MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideBackspace", Type=typeof(Gtk.TextView))System.VoidDefault handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideCopyClipboard", Type=typeof(Gtk.TextView))System.VoidDefault handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideCutClipboard", Type=typeof(Gtk.TextView))System.VoidDefault handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideDeleteFromCursor", Type=typeof(Gtk.TextView))System.Void
a
a Default handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideInsertAtCursor", Type=typeof(Gtk.TextView))System.Void
a Default handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideMoveCursor", Type=typeof(Gtk.TextView))System.Void
a
a
a Default handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideMoveViewport", Type=typeof(Gtk.TextView))System.Void
To be added.
To be added.
To be added.To be added.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverridePasteClipboard", Type=typeof(Gtk.TextView))System.VoidDefault handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverridePopulatePopup", Type=typeof(Gtk.TextView))System.Void
a Default handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverridePreeditChanged", Type=typeof(Gtk.TextView))System.Void
To be added.
To be added.To be added.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideSelectAll", Type=typeof(Gtk.TextView))System.Void
To be added.
To be added.To be added.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideSetAnchor", Type=typeof(Gtk.TextView))System.VoidDefault handler for the event.Override this method in a subclass to provide a default handler for the event.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideToggleCursorVisible", Type=typeof(Gtk.TextView))System.VoidTo be added.To be added.MethodGLib.DefaultSignalHandler(ConnectionMethod="OverrideToggleOverwrite", Type=typeof(Gtk.TextView))System.VoidDefault handler for the event.Override this method in a subclass to provide a default handler for the event.PropertyGLib.Property("overwrite")System.BooleanWhether entered text overwrites existing contents.a Defaults to false.EventGLib.Signal("paste-clipboard")System.EventHandlerRaised whenever text is pasted from the clipboard.PropertyGLib.Property("pixels-above-lines")System.Int32The default number of blank pixels above paragraphsthe number of pixels above paragraphs
Tags in the may
override the defaults.
PropertyGLib.Property("pixels-below-lines")System.Int32The default number of pixels of blank space to put below paragraphsthe blank space below paragraphs in pixels
Tags in the may
override this default.
PropertyGLib.Property("pixels-inside-wrap")System.Int32The default number of pixels of blank space to leave between display/wrapped lines within a paragraphdefault number of pixels of blank space between wrapped lines
Tags in the may
override this default.
MethodSystem.BooleanMoves the cursor to the currently visible region of the buffer if it isn't there already. if the cursor had to be movedEventGLib.Signal("populate-popup")Gtk.PopulatePopupHandlerRaised when the popup dialog on this object needs to be filled with data.EventGLib.Signal("preedit-changed")Gtk.PreeditChangedHandlerTo be added.To be added.MethodSystem.VoidTo be added.To be added.PropertyGLib.Property("right-margin")System.Int32The default right marginthe right marginMethodSystem.Void
a mark in the current
Scrolls the text view the minimum distance such that is contained within the visible area of
the widget
MethodSystem.Boolean
the given
margin of screen size, the valid range is 0.0 to 0.5
whether to use alignment arguments (if , just get the mark onscreen)
horizontal alignment of mark within visible area
vertical alignment of mark within visible area
Scrolls the text view so that is on
the screen in the position indicated by and if scrolling occurred
Scrolls the text view so that is on the screen in the
position indicated by and . An alignment of
0.0 indicates left or top, 1.0 indicates right or bottom,
0.5 means center. If is , the text scrolls
the minimal distance to get the mark onscreen, possibly
not scrolling at all. The effective screen for purposes of
this function is reduced by a margin of size
within_margin.
NOTE: This function uses the currently-computed height of
the lines in the text buffer. Note that line heights are
computed in an idle handler; so this function may not have
the desired effect if it's called before the height
computations. To avoid oddness, consider using which saves a point to be scrolled to after line
validation.
MethodSystem.Void
a given
margin of screen size, the valid range is 0.0 to 0.5
whether to use alignment arguments (if , just get the mark onscreen)
horizontal alignment of mark within visible area
vertical alignment of mark within visible area
Scrolls the view so that is on the
screen in the position indicated by and
An alignment of 0.0 indicates left or top, 1.0 indicates
right or bottom, 0.5 means center. If is ,
the text scrolls the minimal distance to get the mark
onscreen, possibly not scrolling at all. The effective
screen for purposes of this function is reduced by a
margin of size .
EventGLib.Signal("select-all")Gtk.SelectAllHandlerTo be added.To be added.EventGLib.Signal("set-anchor")System.EventHandlerRaised whenever an anchor (e.g. ) is set within the TextView. MethodSystem.Void
the window to affect
the width or height of the window
Sets the width of
or , or the height of
or .
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 be used for the
"border windows," it doesn't work with , , or .
MethodSystem.Boolean
the given Determines whether iter is at the start of a display line if begins a wrapped line
Determines whether iter is at the start of a display
line. See for an
explanation of display lines vs. paragraphs.
PropertyGLib.Property("tabs")Pango.TabArrayCustom tabs for this textcustom tabes for this textEventGLib.Signal("toggle-cursor-visible")System.EventHandlerTo be added.To be added.EventGLib.Signal("toggle-overwrite")System.EventHandlerRaised whenever the insert/overwrite flag is toggled.PropertyGLib.Property("vadjustment")Gtk.AdjustmentTo be added.To be added.To be added.PropertyGdk.RectangleReturns the currently-visible region of the buffer, in buffer coordinates.a
You can convert to window coordinates with .
PropertyGLib.Property("vscroll-policy")Gtk.ScrollablePolicyTo be added.To be added.To be added.MethodSystem.Void
a except
x coordinate of the window
y coordinate of the window
return location for the buffer's x coordinate
return location for the buffer's y coordinate
Converts coordinates on the window to buffer coordinates
Note that you can't convert coordinates for a nonexisting
window (see .
PropertyGLib.Property("wrap-mode")Gtk.WrapModeWhether to wrap lines never, at word boundaries, or at character boundaries.the of the text view