GtkSourceGutter

GtkSourceGutter — Gutter object for GtkSourceView

Synopsis

#include <gtksourceview/gtksourcegutter.h>

                    GtkSourceGutter;
void                (*GtkSourceGutterDataFunc)          (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *cell,
                                                         gint line_number,
                                                         gboolean current_line,
                                                         gpointer data);
void                (*GtkSourceGutterSizeFunc)          (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *cell,
                                                         gpointer data);
GdkWindow *         gtk_source_gutter_get_window        (GtkSourceGutter *gutter);
void                gtk_source_gutter_insert            (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         gint position);
void                gtk_source_gutter_reorder           (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         gint position);
void                gtk_source_gutter_remove            (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer);
void                gtk_source_gutter_set_cell_data_func
                                                        (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         GtkSourceGutterDataFunc func,
                                                         gpointer func_data,
                                                         GDestroyNotify destroy);
void                gtk_source_gutter_set_cell_size_func
                                                        (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         GtkSourceGutterSizeFunc func,
                                                         gpointer func_data,
                                                         GDestroyNotify destroy);
void                gtk_source_gutter_queue_draw        (GtkSourceGutter *gutter);

Object Hierarchy

  GObject
   +----GtkSourceGutter

Properties

  "view"                     GtkSourceView*        : Read / Write / Construct Only
  "window-type"              GtkTextWindowType     : Read / Write / Construct Only

Signals

  "cell-activated"                                 : Run Last
  "query-tooltip"                                  : Run Last

Description

The GtkSourceGutter object represents the left and right gutters of the text view. It is used by GtkSourceView to draw the line numbers and category marks that might be present on a line. By packing additional GtkCellRenderer objects in the gutter, you can extend the gutter with your own custom drawings.

The gutter works very much the same way as cells rendered in a GtkTreeView. The concept is similar, with the exception that the gutter does not have an underlying GtkTreeModel. Instead, you should use gtk_source_gutter_set_cell_data_func to set a callback to fill in any of the cell renderers properties, given the line for which the cell is to be rendered. Renderers are inserted into the gutter at a certain position. The builtin line number renderer is at position

GTK_SOURCE_VIEW_GUTTER_POSITION_LINES (-30) and the marks renderer is at GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS (-20). You can use these values to position custom renderers accordingly. The width of a cell renderer can be specified as either fixed (using

gtk_cell_renderer_set_fixed_size) or dynamic, in which case you must set gtk_source_gutter_set_cell_size_func. This callback is used to set the properties of the renderer such that gtk_cell_renderer_get_size yields the maximum width of the cell.

Details

GtkSourceGutter

typedef struct _GtkSourceGutter GtkSourceGutter;

GtkSourceGutterDataFunc ()

void                (*GtkSourceGutterDataFunc)          (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *cell,
                                                         gint line_number,
                                                         gboolean current_line,
                                                         gpointer data);

GtkSourceGutterSizeFunc ()

void                (*GtkSourceGutterSizeFunc)          (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *cell,
                                                         gpointer data);

gtk_source_gutter_get_window ()

GdkWindow *         gtk_source_gutter_get_window        (GtkSourceGutter *gutter);

Get the GdkWindow of the gutter. The window will only be available when the gutter has at least one, non-zero width, cell renderer packed.

gutter :

a GtkSourceGutter

Returns :

the GdkWindow of the gutter, or NULL if the gutter has no window.

Since 2.8


gtk_source_gutter_insert ()

void                gtk_source_gutter_insert            (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         gint position);

Inserts renderer into gutter at position.

gutter :

a GtkSourceGutter

renderer :

a GtkCellRenderer

position :

the renderers position

Since 2.8


gtk_source_gutter_reorder ()

void                gtk_source_gutter_reorder           (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         gint position);

Reorders renderer in gutter to new position.

gutter :

a GtkSourceGutter

renderer :

a GtkCellRenderer

position :

the new renderer position

Since 2.8


gtk_source_gutter_remove ()

void                gtk_source_gutter_remove            (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer);

Removes renderer from gutter.

gutter :

a GtkSourceGutter

renderer :

a GtkCellRenderer

Since 2.8


gtk_source_gutter_set_cell_data_func ()

void                gtk_source_gutter_set_cell_data_func
                                                        (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         GtkSourceGutterDataFunc func,
                                                         gpointer func_data,
                                                         GDestroyNotify destroy);

Sets the GtkSourceGutterDataFunc to use for renderer. This function is used to setup the cell renderer properties for rendering the current cell.

gutter :

a GtkSourceGutter

renderer :

a GtkCellRenderer

func :

the GtkSourceGutterDataFunc to use

func_data :

the user data for func

destroy :

the destroy notification for func_data

Since 2.8


gtk_source_gutter_set_cell_size_func ()

void                gtk_source_gutter_set_cell_size_func
                                                        (GtkSourceGutter *gutter,
                                                         GtkCellRenderer *renderer,
                                                         GtkSourceGutterSizeFunc func,
                                                         gpointer func_data,
                                                         GDestroyNotify destroy);

Sets the GtkSourceGutterSizeFunc to use for renderer. This function is used to setup the cell renderer properties for measuring the maximum size of the cell.

gutter :

a GtkSourceGutter

renderer :

a GtkCellRenderer

func :

the GtkSourceGutterSizeFunc to use

func_data :

the user data for func

destroy :

the destroy notification for func_data

Since 2.8


gtk_source_gutter_queue_draw ()

void                gtk_source_gutter_queue_draw        (GtkSourceGutter *gutter);

Invalidates the drawable area of the gutter. You can use this to force a redraw of the gutter if something has changed and needs to be redrawn.

gutter :

a GtkSourceGutter

Since 2.8

Property Details

The "view" property

  "view"                     GtkSourceView*        : Read / Write / Construct Only

The GtkSourceView of the gutter


The "window-type" property

  "window-type"              GtkTextWindowType     : Read / Write / Construct Only

The text window type on which the window is placed

Default value: GTK_TEXT_WINDOW_PRIVATE

Signal Details

The "cell-activated" signal

void                user_function                      (GtkSourceGutter *gutter,
                                                        GtkCellRenderer *renderer,
                                                        GtkTextIter     *iter,
                                                        GdkEvent        *event,
                                                        gpointer         user_data)      : Run Last

Emitted when a cell has been activated (for instance when there was a button press on the cell). The signal is only emitted for cells that have the activatable property set to TRUE.

gutter :

the GtkSourceGutter

renderer :

the GtkCellRenderer which was activated

iter :

the GtkTextIter at which the cell was activated

event :

the GdkEvent with which the cell was activated

user_data :

user data set when the signal handler was connected.

The "query-tooltip" signal

gboolean            user_function                      (GtkSourceGutter *gutter,
                                                        GtkCellRenderer *renderer,
                                                        GtkTextIter     *iter,
                                                        GtkTooltip      *tooltip,
                                                        gpointer         user_data)      : Run Last

Emitted when a tooltip is requested for a specific cell. Signal handlers can return TRUE to notify the tooltip has been handled.

gutter :

the GtkSourceGutter

renderer :

the GtkCellRenderer which was activated

iter :

the GtkTextIter at which the cell was activated

tooltip :

the GtkTooltip

user_data :

user data set when the signal handler was connected.

See Also

GtkSourceView