TeplBuffer

TeplBuffer — Subclass of GtkSourceBuffer

Functions

Properties

char * tepl-full-title Read
char * tepl-short-title Read
char * tepl-style-scheme-id Read / Write

Signals

Types and Values

Object Hierarchy

    GEnum
    ╰── TeplSelectionType
    GObject
    ╰── GtkTextBuffer
        ╰── GtkSourceBuffer
            ╰── TeplBuffer

Includes

#include <tepl/tepl.h>

Description

TeplBuffer is a subclass of GtkSourceBuffer, to add more features useful for a text editor.

It also adds an association to a TeplFile that can be retrieved with tepl_buffer_get_file(). The association cannot change. The same for TeplMetadata with tepl_buffer_get_metadata().

The properties and signals have the tepl namespace, to avoid potential conflicts in the future if the property or signal is moved to GtkSourceBuffer.

Functions

tepl_buffer_new ()

TeplBuffer *
tepl_buffer_new (void);

Returns

a new TeplBuffer.

Since: 1.0


tepl_buffer_get_file ()

TeplFile *
tepl_buffer_get_file (TeplBuffer *buffer);

Returns the TeplFile of buffer . The returned object is guaranteed to be the same for the lifetime of buffer .

TeplBuffer creates the TeplFile with tepl_abstract_factory_create_file().

Parameters

buffer

a TeplBuffer.

 

Returns

the associated TeplFile.

[transfer none]

Since: 1.0


tepl_buffer_get_metadata ()

TeplMetadata *
tepl_buffer_get_metadata (TeplBuffer *buffer);

Returns the TeplMetadata of buffer . The returned object is guaranteed to be the same for the lifetime of buffer .

Parameters

buffer

a TeplBuffer.

 

Returns

the associated TeplMetadata.

[transfer none]

Since: 5.0


tepl_buffer_load_metadata_from_metadata_manager ()

void
tepl_buffer_load_metadata_from_metadata_manager
                               (TeplBuffer *buffer);

Calls tepl_metadata_manager_copy_from() for “location” (if not NULL) to the associated TeplMetadata of buffer .

Parameters

buffer

a TeplBuffer.

 

Since: 5.0


tepl_buffer_save_metadata_into_metadata_manager ()

void
tepl_buffer_save_metadata_into_metadata_manager
                               (TeplBuffer *buffer);

Calls tepl_metadata_manager_merge_into() for “location” (if not NULL) from the associated TeplMetadata of buffer .

Parameters

buffer

a TeplBuffer.

 

Since: 5.0


tepl_buffer_is_untouched ()

gboolean
tepl_buffer_is_untouched (TeplBuffer *buffer);

Returns whether buffer is untouched.

This function is for example useful to know if we can re-use this buffer to load a file, instead of opening a new tab or window.

For this function to return TRUE, the buffer must be empty, non-modified, the undo/redo GtkSourceBuffer history must be empty, and the “location” must be NULL.

Parameters

buffer

a TeplBuffer.

 

Returns

TRUE if buffer has not been touched, FALSE otherwise.

Since: 1.0


tepl_buffer_get_short_title ()

gchar *
tepl_buffer_get_short_title (TeplBuffer *buffer);

Returns a title suitable for a tab label. It contains (in that order):

Parameters

buffer

a TeplBuffer.

 

Returns

the buffer short title. Free the return value with g_free() when no longer needed.

Since: 3.0


tepl_buffer_get_full_title ()

gchar *
tepl_buffer_get_full_title (TeplBuffer *buffer);

Returns a title suitable for a GtkWindow title. It contains (in that order):

Parameters

buffer

a TeplBuffer.

 

Returns

the buffer full title. Free the return value with g_free() when no longer needed.

Since: 3.0


tepl_buffer_provide_style_scheme_id_gsetting ()

void
tepl_buffer_provide_style_scheme_id_gsetting
                               (TeplBuffer *buffer,
                                GSettings *settings,
                                const gchar *setting_key,
                                gboolean bind_to_property);

A convenience function to provide a GSettings key corresponding to the “tepl-style-scheme-id” property.

Once this function is called, calling tepl_buffer_set_style_scheme_id() or setting the property will benefit from a fallback mechanism that takes the default value of the GSettings key (see g_settings_get_default_value()).

If bind_to_property is TRUE, then this function additionally binds the GSettings key to the property with the G_SETTINGS_BIND_GET flag.

Parameters

buffer

a TeplBuffer.

 

settings

a GSettings object.

 

setting_key

a GSettings key of type string.

 

bind_to_property

whether to bind the GSettings key to the property.

 

Since: 6.4


tepl_buffer_get_style_scheme_id ()

gchar *
tepl_buffer_get_style_scheme_id (TeplBuffer *buffer);

Parameters

buffer

a TeplBuffer.

 

Returns

the “tepl-style-scheme-id”. Free with g_free().

Since: 2.0


tepl_buffer_set_style_scheme_id ()

void
tepl_buffer_set_style_scheme_id (TeplBuffer *buffer,
                                 const gchar *style_scheme_id);

Sets the “tepl-style-scheme-id” property.

The GtkSourceStyleScheme is taken from the default GtkSourceStyleSchemeManager as returned by gtk_source_style_scheme_manager_get_default().

Since 6.4, if there are no GtkSourceStyleScheme for style_scheme_id , there is a fallback mechanism that takes the default value of the provided GSettings key (see tepl_buffer_provide_style_scheme_id_gsetting()); if the GSettings key was not provided, it takes a recommended GtkSourceStyleScheme provided by GtkSourceView (see the documentation of gtk_source_buffer_set_style_scheme()).

If more flexibility is desired, don't use the “tepl-style-scheme-id” property, use the GtkSourceBuffer API instead.

Parameters

buffer

a TeplBuffer.

 

style_scheme_id

the new value.

 

Since: 2.0


tepl_buffer_get_selection_type ()

TeplSelectionType
tepl_buffer_get_selection_type (TeplBuffer *buffer);

Parameters

buffer

a TeplBuffer.

 

Returns

the current TeplSelectionType.

Since: 1.0

Types and Values

TeplBuffer

typedef struct _TeplBuffer TeplBuffer;

enum TeplSelectionType

Members

TEPL_SELECTION_TYPE_NO_SELECTION

No selection.

 

TEPL_SELECTION_TYPE_ON_SAME_LINE

The start and end selection bounds are on the same line.

 

TEPL_SELECTION_TYPE_MULTIPLE_LINES

The selection spans multiple lines.

 

Since: 1.0

Property Details

The “tepl-full-title” property

  “tepl-full-title”          char *

The full title. See tepl_buffer_get_full_title().

Owner: TeplBuffer

Flags: Read

Default value: NULL

Since: 3.0


The “tepl-short-title” property

  “tepl-short-title”         char *

The short title. See tepl_buffer_get_short_title().

Owner: TeplBuffer

Flags: Read

Default value: NULL

Since: 3.0


The “tepl-style-scheme-id” property

  “tepl-style-scheme-id”     char *

The “style-scheme” ID, as a string. This property is useful for binding it to a GSettings key.

When the “style-scheme” is NULL, “tepl-style-scheme-id” contains the empty string.

Owner: TeplBuffer

Flags: Read / Write

Default value: ""

Since: 2.0

Signal Details

The “tepl-cursor-moved” signal

void
user_function (TeplBuffer *buffer,
               gpointer    user_data)

The ::tepl-cursor-moved signal is emitted when the insert mark is moved explicitely or when the buffer changes (insert/delete).

A typical use-case for this signal is to update the cursor position in a statusbar.

Parameters

buffer

the TeplBuffer emitting the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First

Since: 2.0