Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Signals | ![]() |
![]() |
![]() |
![]() |
#include <gtksourceview/gtksource.h> GtkSourceView; enum GtkSourceSmartHomeEndType; enum GtkSourceDrawSpacesFlags; enum GtkSourceViewGutterPosition; GtkWidget * gtk_source_view_new (void
); GtkWidget * gtk_source_view_new_with_buffer (GtkSourceBuffer *buffer
); void gtk_source_view_set_auto_indent (GtkSourceView *view
,gboolean enable
); gboolean gtk_source_view_get_auto_indent (GtkSourceView *view
); void gtk_source_view_set_indent_on_tab (GtkSourceView *view
,gboolean enable
); gboolean gtk_source_view_get_indent_on_tab (GtkSourceView *view
); void gtk_source_view_set_indent_width (GtkSourceView *view
,gint width
); gint gtk_source_view_get_indent_width (GtkSourceView *view
); void gtk_source_view_set_insert_spaces_instead_of_tabs (GtkSourceView *view
,gboolean enable
); gboolean gtk_source_view_get_insert_spaces_instead_of_tabs (GtkSourceView *view
); void gtk_source_view_set_smart_home_end (GtkSourceView *view
,GtkSourceSmartHomeEndType smart_he
); GtkSourceSmartHomeEndType gtk_source_view_get_smart_home_end (GtkSourceView *view
); void gtk_source_view_set_mark_attributes (GtkSourceView *view
,const gchar *category
,GtkSourceMarkAttributes *attributes
,gint priority
); GtkSourceMarkAttributes * gtk_source_view_get_mark_attributes (GtkSourceView *view
,const gchar *category
,gint *priority
); void gtk_source_view_set_highlight_current_line (GtkSourceView *view
,gboolean hl
); gboolean gtk_source_view_get_highlight_current_line (GtkSourceView *view
); void gtk_source_view_set_show_line_marks (GtkSourceView *view
,gboolean show
); gboolean gtk_source_view_get_show_line_marks (GtkSourceView *view
); void gtk_source_view_set_show_line_numbers (GtkSourceView *view
,gboolean show
); gboolean gtk_source_view_get_show_line_numbers (GtkSourceView *view
); void gtk_source_view_set_show_right_margin (GtkSourceView *view
,gboolean show
); gboolean gtk_source_view_get_show_right_margin (GtkSourceView *view
); void gtk_source_view_set_right_margin_position (GtkSourceView *view
,guint pos
); guint gtk_source_view_get_right_margin_position (GtkSourceView *view
); void gtk_source_view_set_tab_width (GtkSourceView *view
,guint width
); guint gtk_source_view_get_tab_width (GtkSourceView *view
); void gtk_source_view_set_draw_spaces (GtkSourceView *view
,GtkSourceDrawSpacesFlags flags
); GtkSourceDrawSpacesFlags gtk_source_view_get_draw_spaces (GtkSourceView *view
); GtkSourceCompletion * gtk_source_view_get_completion (GtkSourceView *view
); GtkSourceGutter * gtk_source_view_get_gutter (GtkSourceView *view
,GtkTextWindowType window_type
); guint gtk_source_view_get_visual_column (GtkSourceView *view
,const GtkTextIter *iter
);
GObject +----GInitiallyUnowned +----GtkWidget +----GtkContainer +----GtkTextView +----GtkSourceView
GtkSourceView implements AtkImplementorIface, GtkBuildable and GtkScrollable.
"auto-indent" gboolean : Read / Write "completion" GtkSourceCompletion* : Read "draw-spaces" GtkSourceDrawSpacesFlags : Read / Write "highlight-current-line" gboolean : Read / Write "indent-on-tab" gboolean : Read / Write "indent-width" gint : Read / Write "insert-spaces-instead-of-tabs" gboolean : Read / Write "right-margin-position" guint : Read / Write "show-line-marks" gboolean : Read / Write "show-line-numbers" gboolean : Read / Write "show-right-margin" gboolean : Read / Write "smart-home-end" GtkSourceSmartHomeEndType : Read / Write "tab-width" guint : Read / Write
"line-mark-activated" :Run Last
"move-lines" :Action
"move-words" :Action
"redo" :Action
"show-completion" :Action
"smart-home-end" :Run Last
"undo" :Action
GtkSourceView is the main object of the GtkSourceView library. It provides a text view with syntax highlighting, undo/redo and text marks. Use a GtkSourceBuffer to display text with a GtkSourceView.
typedef enum { GTK_SOURCE_SMART_HOME_END_DISABLED, GTK_SOURCE_SMART_HOME_END_BEFORE, GTK_SOURCE_SMART_HOME_END_AFTER, GTK_SOURCE_SMART_HOME_END_ALWAYS } GtkSourceSmartHomeEndType;
smart-home-end disabled. | |
move to the first/last non-whitespace character on the first press of the HOME/END keys and to the beginning/end of the line on the second press. | |
move to the beginning/end of the line on the first press of the HOME/END keys and to the first/last non-whitespace character on the second press. | |
always move to the first/last non-whitespace character when the HOME/END keys are pressed. |
typedef enum { GTK_SOURCE_DRAW_SPACES_SPACE = 1 << 0, GTK_SOURCE_DRAW_SPACES_TAB = 1 << 1, GTK_SOURCE_DRAW_SPACES_NEWLINE = 1 << 2, GTK_SOURCE_DRAW_SPACES_NBSP = 1 << 3, GTK_SOURCE_DRAW_SPACES_LEADING = 1 << 4, GTK_SOURCE_DRAW_SPACES_TEXT = 1 << 5, GTK_SOURCE_DRAW_SPACES_TRAILING = 1 << 6, GTK_SOURCE_DRAW_SPACES_ALL = 0x7f } GtkSourceDrawSpacesFlags;
GtkSourceDrawSpacesFlags determine what kind of spaces whould be drawn. If none of GTK_SOURCE_DRAW_SPACES_LEADING, GTK_SOURCE_DRAW_SPACES_TEXT or GTK_SOURCE_DRAW_SPACES_TRAILING is specified, whitespaces at any position in the line will be drawn (i.e. it has the same effect as specifying all of them).
whether the space character should be drawn. | |
whether the tab character should be drawn. | |
whether the line breaks should be drawn. | |
whether the non-breaking whitespaces should be drawn. | |
whether leading whitespaces should be drawn. | |
whether whitespaces inside text should be drawn. | |
whether trailing whitespaces should be drawn. | |
wheter all kind of spaces should be drawn. |
typedef enum { GTK_SOURCE_VIEW_GUTTER_POSITION_LINES = -30, GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS = -20 } GtkSourceViewGutterPosition;
GtkWidget * gtk_source_view_new (void
);
Creates a new GtkSourceView. An empty default buffer will be
created for you. If you want to specify your own buffer, consider
gtk_source_view_new_with_buffer()
.
Returns : |
a new GtkSourceView. |
GtkWidget * gtk_source_view_new_with_buffer (GtkSourceBuffer *buffer
);
Creates a new GtkSourceView widget displaying the buffer
buffer
. One buffer can be shared among many widgets.
|
a GtkSourceBuffer. |
Returns : |
a new GtkSourceView. |
void gtk_source_view_set_auto_indent (GtkSourceView *view
,gboolean enable
);
If TRUE
auto indentation of text is enabled.
|
a GtkSourceView. |
|
whether to enable auto indentation. |
gboolean gtk_source_view_get_auto_indent (GtkSourceView *view
);
Returns whether auto indentation of text is enabled.
|
a GtkSourceView. |
Returns : |
TRUE if auto indentation is enabled. |
void gtk_source_view_set_indent_on_tab (GtkSourceView *view
,gboolean enable
);
If TRUE
, when the tab key is pressed and there is a selection, the
selected text is indented of one level instead of being replaced with
the \t characters. Shift+Tab unindents the selection.
|
a GtkSourceView. |
|
whether to indent a block when tab is pressed. |
Since 1.8
gboolean gtk_source_view_get_indent_on_tab (GtkSourceView *view
);
Returns whether when the tab key is pressed the current selection should get indented instead of replaced with the \t character.
|
a GtkSourceView. |
Returns : |
TRUE if the selection is indented when tab is pressed. |
Since 1.8
void gtk_source_view_set_indent_width (GtkSourceView *view
,gint width
);
Sets the number of spaces to use for each step of indent.
If width
is -1, the value of the GtkSourceView::tab-width property
will be used.
|
a GtkSourceView. |
|
indent width in characters. |
gint gtk_source_view_get_indent_width (GtkSourceView *view
);
Returns the number of spaces to use for each step of indent.
See gtk_source_view_set_indent_width()
for details.
|
a GtkSourceView. |
Returns : |
indent width. |
void gtk_source_view_set_insert_spaces_instead_of_tabs (GtkSourceView *view
,gboolean enable
);
If TRUE
any tabulator character inserted is replaced by a group
of space characters.
|
a GtkSourceView. |
|
whether to insert spaces instead of tabs. |
gboolean gtk_source_view_get_insert_spaces_instead_of_tabs
(GtkSourceView *view
);
Returns whether when inserting a tabulator character it should be replaced by a group of space characters.
|
a GtkSourceView. |
Returns : |
TRUE if spaces are inserted instead of tabs. |
void gtk_source_view_set_smart_home_end (GtkSourceView *view
,GtkSourceSmartHomeEndType smart_he
);
Set the desired movement of the cursor when HOME and END keys are pressed.
|
a GtkSourceView. |
|
the desired behavior among GtkSourceSmartHomeEndType. |
GtkSourceSmartHomeEndType gtk_source_view_get_smart_home_end
(GtkSourceView *view
);
Returns a GtkSourceSmartHomeEndType end value specifying how the cursor will move when HOME and END keys are pressed.
|
a GtkSourceView. |
Returns : |
a GtkSourceSmartHomeEndType value. |
void gtk_source_view_set_mark_attributes (GtkSourceView *view
,const gchar *category
,GtkSourceMarkAttributes *attributes
,gint priority
);
Sets attributes and priority for the category
.
|
a GtkSourceView. |
|
the category. |
|
mark attributes. |
|
priority of the category. |
GtkSourceMarkAttributes * gtk_source_view_get_mark_attributes (GtkSourceView *view
,const gchar *category
,gint *priority
);
Gets attributes and priority for the category
.
|
a GtkSourceView. |
|
the category. |
|
place where priority of the category will be stored. |
Returns : |
GtkSourceMarkAttributes for the category .
The object belongs to view , so it must not be unreffed. [transfer none]
|
void gtk_source_view_set_highlight_current_line (GtkSourceView *view
,gboolean hl
);
If hl
is TRUE
the current line is highlighted.
|
a GtkSourceView. |
|
whether to highlight the current line. |
gboolean gtk_source_view_get_highlight_current_line
(GtkSourceView *view
);
Returns whether the current line is highlighted.
|
a GtkSourceView. |
Returns : |
TRUE if the current line is highlighted. |
void gtk_source_view_set_show_line_marks (GtkSourceView *view
,gboolean show
);
If TRUE
line marks will be displayed beside the text.
|
a GtkSourceView. |
|
whether line marks should be displayed. |
Since 2.2
gboolean gtk_source_view_get_show_line_marks (GtkSourceView *view
);
Returns whether line marks are displayed beside the text.
|
a GtkSourceView. |
Returns : |
TRUE if the line marks are displayed. |
Since 2.2
void gtk_source_view_set_show_line_numbers (GtkSourceView *view
,gboolean show
);
If TRUE
line numbers will be displayed beside the text.
|
a GtkSourceView. |
|
whether line numbers should be displayed. |
gboolean gtk_source_view_get_show_line_numbers
(GtkSourceView *view
);
Returns whether line numbers are displayed beside the text.
|
a GtkSourceView. |
Returns : |
TRUE if the line numbers are displayed. |
void gtk_source_view_set_show_right_margin (GtkSourceView *view
,gboolean show
);
If TRUE
a right margin is displayed.
|
a GtkSourceView. |
|
whether to show a right margin. |
gboolean gtk_source_view_get_show_right_margin
(GtkSourceView *view
);
Returns whether a right margin is displayed.
|
a GtkSourceView. |
Returns : |
TRUE if the right margin is shown. |
void gtk_source_view_set_right_margin_position (GtkSourceView *view
,guint pos
);
Sets the position of the right margin in the given view
.
|
a GtkSourceView. |
|
the width in characters where to position the right margin. |
guint gtk_source_view_get_right_margin_position
(GtkSourceView *view
);
Gets the position of the right margin in the given view
.
|
a GtkSourceView. |
Returns : |
the position of the right margin. |
void gtk_source_view_set_tab_width (GtkSourceView *view
,guint width
);
Sets the width of tabulation in characters.
|
a GtkSourceView. |
|
width of tab in characters. |
guint gtk_source_view_get_tab_width (GtkSourceView *view
);
Returns the width of tabulation in characters.
|
a GtkSourceView. |
Returns : |
width of tab. |
void gtk_source_view_set_draw_spaces (GtkSourceView *view
,GtkSourceDrawSpacesFlags flags
);
Set if and how the spaces should be visualized. Specifying flags
as 0 will
disable display of spaces.
|
a GtkSourceView. |
|
GtkSourceDrawSpacesFlags specifing how white spaces should be displayed |
GtkSourceDrawSpacesFlags gtk_source_view_get_draw_spaces
(GtkSourceView *view
);
Returns the GtkSourceDrawSpacesFlags specifying if and how spaces
should be displayed for this view
.
|
a GtkSourceView |
Returns : |
the GtkSourceDrawSpacesFlags, 0 if no spaces should be drawn. |
GtkSourceCompletion * gtk_source_view_get_completion (GtkSourceView *view
);
Gets the GtkSourceCompletion associated with view
.
|
a GtkSourceView. |
Returns : |
the GtkSourceCompletion associated with view . [type GtkSource.Completion][transfer none]
|
GtkSourceGutter * gtk_source_view_get_gutter (GtkSourceView *view
,GtkTextWindowType window_type
);
Returns the GtkSourceGutter object associated with window_type
for view
.
Only GTK_TEXT_WINDOW_LEFT and GTK_TEXT_WINDOW_RIGHT are supported,
respectively corresponding to the left and right gutter. The line numbers
and mark category icons are rendered in the gutter corresponding to
GTK_TEXT_WINDOW_LEFT.
|
a GtkSourceView. |
|
the gutter window type. |
Returns : |
the GtkSourceGutter. [transfer none] |
Since 2.8
guint gtk_source_view_get_visual_column (GtkSourceView *view
,const GtkTextIter *iter
);
Determines the visual column at iter
taking into
consideration the indent width of view
.
|
a GtkSourceView. |
|
a position in view . |
Returns : |
the visual column at iter . |
"auto-indent"
property"auto-indent" gboolean : Read / Write
Whether to enable auto indentation.
Default value: FALSE
"completion"
property"completion" GtkSourceCompletion* : Read
The completion object associated with the view
"draw-spaces"
property"draw-spaces" GtkSourceDrawSpacesFlags : Read / Write
Set if and how the spaces should be visualized.
Since 2.4
"highlight-current-line"
property"highlight-current-line" gboolean : Read / Write
Whether to highlight the current line.
Default value: FALSE
"indent-on-tab"
property"indent-on-tab" gboolean : Read / Write
Whether to indent the selected text when the tab key is pressed.
Default value: TRUE
"indent-width"
property"indent-width" gint : Read / Write
Width of an indentation step expressed in number of spaces.
Allowed values: [-1,32]
Default value: -1
"insert-spaces-instead-of-tabs"
property"insert-spaces-instead-of-tabs" gboolean : Read / Write
Whether to insert spaces instead of tabs.
Default value: FALSE
"right-margin-position"
property"right-margin-position" guint : Read / Write
Position of the right margin.
Allowed values: [1,1000]
Default value: 80
"show-line-marks"
property"show-line-marks" gboolean : Read / Write
Whether to display line mark pixbufs
Default value: FALSE
"show-line-numbers"
property"show-line-numbers" gboolean : Read / Write
Whether to display line numbers
Default value: FALSE
"show-right-margin"
property"show-right-margin" gboolean : Read / Write
Whether to display the right margin.
Default value: FALSE
"smart-home-end"
property"smart-home-end" GtkSourceSmartHomeEndType : Read / Write
Set the behavior of the HOME and END keys.
Default value: GTK_SOURCE_SMART_HOME_END_DISABLED
Since 2.0
"tab-width"
property"tab-width" guint : Read / Write
Width of an tab character expressed in number of spaces.
Allowed values: [1,32]
Default value: 8
"line-mark-activated"
signalvoid user_function (GtkSourceView *view,
GtkTextIter *iter,
GdkEvent *event,
gpointer user_data) : Run Last
Emitted when a line mark has been activated (for instance when there
was a button press in the line marks gutter). You can use iter
to
determine on which line the activation took place.
|
the GtkSourceView |
|
a GtkTextIter |
|
the GdkEvent that activated the event |
|
user data set when the signal handler was connected. |
"move-lines"
signalvoid user_function (GtkSourceView *view,
gboolean copy,
gint count,
gpointer user_data) : Action
The ::move-lines signal is a keybinding which gets emitted
when the user initiates moving a line. The default binding key
is Alt+Up/Down arrow. And moves the currently selected lines,
or the current line by count
. For the moment, only
count
of -1 or 1 is valid.
|
the GtkSourceView which received the signal |
|
TRUE if the line should be copied,
FALSE if it should be moved |
|
the number of lines to move over. |
|
user data set when the signal handler was connected. |
Since 2.10
"move-words"
signalvoid user_function (GtkSourceView *view,
gint count,
gpointer user_data) : Action
The ::move-words signal is a keybinding which gets emitted when the user initiates moving a word. The default binding key is Alt+Left/Right Arrow and moves the current selection, or the current word by one word.
|
the GtkSourceView which received the signal |
|
the number of words to move over |
|
user data set when the signal handler was connected. |
Since 3.0
"show-completion"
signalvoid user_function (GtkSourceView *view,
gpointer user_data) : Action
The ::show-completion signal is a key binding signal which gets emitted when the user requests a completion, by pressing Control+space.
This will create a GtkSourceCompletionContext with the activation
type as GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED
.
Applications should not connect to it, but may emit it with
g_signal_emit_by_name()
if they need to activate the completion by
another means, for example with another key binding or a menu entry.
|
The GtkSourceView who emits the signal |
|
user data set when the signal handler was connected. |
"smart-home-end"
signalvoid user_function (GtkSourceView *view,
GtkTextIter *iter,
gint count,
gpointer user_data) : Run Last
Emitted when a the cursor was moved according to the smart home end setting. The signal is emitted after the cursor is moved, but during the GtkTextView::move-cursor action. This can be used to find out whether the cursor was moved by a normal home/end or by a smart home/end.
|
the GtkSourceView |
|
a GtkTextIter |
|
the count |
|
user data set when the signal handler was connected. |
Since 3.0