TeplTab

TeplTab — Contains a TeplView and GtkInfoBars

Properties

TeplView * view Read / Write / Construct Only

Signals

Types and Values

  TeplTab
struct TeplTabClass

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkGrid
                    ╰── TeplTab

Implemented Interfaces

TeplTab implements AtkImplementorIface, GtkBuildable, GtkOrientable and TeplTabGroup.

Includes

#include <tepl/tepl.h>

Description

TeplTab is meant to be the content of one tab in the text editor (if the text editor has a Tabbed Document Interface). It is a GtkGrid container that contains the TeplView and can contain one or several GtkInfoBar's. Since it is a GtkGrid, an application can of course add any other widget to it.

To create a new GtkInfoBar, it is recommended to use TeplInfoBar (but TeplTab doesn't enforce it).

By default:

The way that the TeplView is packed into the TeplTab is customizable with the ::pack_view virtual function. Similarly, the way that GtkInfoBar's are added can be customized with ::pack_info_bar.

TeplTabGroup implementation

TeplTab implements the TeplTabGroup interface, for a group of only one tab. It is useful for text editors that open each file in a separate window, or for applications that don't require to open more than one file. But the tepl_tab_group_append_tab() operation is not supported, so some higher-level features of Tepl don't work with TeplTab as the TeplTabGroup of the window. This will maybe be improved in the future by creating automatically a new window.

Functions

tepl_tab_new ()

TeplTab *
tepl_tab_new (void);

Creates a new TeplTab with a new TeplView. The new TeplView can be retrieved afterwards with tepl_tab_get_view().

Returns

a new TeplTab.

Since: 3.0


tepl_tab_new_with_view ()

TeplTab *
tepl_tab_new_with_view (TeplView *view);

Parameters

view

the TeplView that will be contained in the tab.

 

Returns

a new TeplTab.

Since: 3.0


tepl_tab_get_view ()

TeplView *
tepl_tab_get_view (TeplTab *tab);

Parameters

tab

a TeplTab.

 

Returns

the TeplView contained in tab .

[transfer none]

Since: 3.0


tepl_tab_get_buffer ()

TeplBuffer *
tepl_tab_get_buffer (TeplTab *tab);

A convenience function that calls gtk_text_view_get_buffer() on the “view” associated with the tab .

Parameters

tab

a TeplTab.

 

Returns

the TeplBuffer of the “view”.

[transfer none]

Since: 3.0


tepl_tab_add_info_bar ()

void
tepl_tab_add_info_bar (TeplTab *tab,
                       GtkInfoBar *info_bar);

Attaches info_bar to tab .

This function calls the ::pack_info_bar virtual function.

Parameters

tab

a TeplTab.

 

info_bar

a GtkInfoBar.

 

Since: 1.0


tepl_tab_load_file ()

void
tepl_tab_load_file (TeplTab *tab,
                    GFile *location);

Unconditionally loads a file in tab , regardless if there are unsaved changes in the GtkTextBuffer. The previous buffer content is lost.

This function is asynchronous, there is no way to know when the file loading is finished.

Parameters

tab

a TeplTab.

 

location

a GFile.

 

Since: 4.0


tepl_tab_save_async ()

void
tepl_tab_save_async (TeplTab *tab,
                     GAsyncReadyCallback callback,
                     gpointer user_data);

Saves asynchronously the content of the tab . The “location” must not be NULL.

See the GAsyncResult documentation to know how to use this function.

Parameters

tab

a TeplTab.

 

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

user data to pass to callback .

 

Since: 4.0


tepl_tab_save_finish ()

gboolean
tepl_tab_save_finish (TeplTab *tab,
                      GAsyncResult *result);

Finishes a tab saving started with tepl_tab_save_async().

Parameters

tab

a TeplTab.

 

result

a GAsyncResult.

 

Returns

whether the tab was saved successfully.

Since: 4.0


tepl_tab_save_async_simple ()

void
tepl_tab_save_async_simple (TeplTab *tab);

The same as tepl_tab_save_async(), but without callback.

This function is useful when you don't need to know:

  • when the operation is finished;

  • and whether the operation ran successfully.

Parameters

tab

a TeplTab.

 

Since: 4.0


tepl_tab_save_as_async ()

void
tepl_tab_save_as_async (TeplTab *tab,
                        GAsyncReadyCallback callback,
                        gpointer user_data);

Shows a GtkFileChooser to save the tab to a different location, creates an appropriate TeplFileSaver and asynchronously runs it.

See the GAsyncResult documentation to know how to use this function.

Parameters

tab

a TeplTab.

 

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

user data to pass to callback .

 

Since: 4.0


tepl_tab_save_as_finish ()

gboolean
tepl_tab_save_as_finish (TeplTab *tab,
                         GAsyncResult *result);

Finishes a tab saving started with tepl_tab_save_as_async().

Parameters

tab

a TeplTab.

 

result

a GAsyncResult.

 

Returns

whether the tab was saved successfully.

Since: 4.0


tepl_tab_save_as_async_simple ()

void
tepl_tab_save_as_async_simple (TeplTab *tab);

The same as tepl_tab_save_as_async(), but without callback.

This function is useful when you don't need to know:

  • when the operation is finished;

  • and whether the operation ran successfully.

Parameters

tab

a TeplTab.

 

Since: 4.0

Types and Values

TeplTab

typedef struct _TeplTab TeplTab;

struct TeplTabClass

struct TeplTabClass {
	GtkGridClass parent_class;

	/* Vfuncs */

	void (* pack_view)		(TeplTab  *tab,
					 TeplView *view);

	void (* pack_info_bar) (TeplTab    *tab,
					 GtkInfoBar *info_bar);

	/* Signals */

	void (* close_request) (TeplTab *tab);
};

Members

pack_view ()

Virtual function pointer to add the TeplView in the TeplTab container. Called only once at object construction time, when the “view” property is set. By default the TeplView is added to a GtkScrolledWindow and the GtkScrolledWindow is added to the TeplTab with gtk_container_add().

 

pack_info_bar ()

Virtual function pointer to add a GtkInfoBar in the TeplTab container. By default the GtkInfoBar is inserted above the first non-GtkInfoBar child widget of TeplTab (so by default it is inserted below other GtkInfoBar's, but above the GtkScrolledWindow containing the TeplView).

 

close_request ()

For the “close-request” signal.

 

Property Details

The “view” property

  “view”                     TeplView *

The TeplView contained in the tab. When this property is set, the ::pack_view virtual function is called.

Owner: TeplTab

Flags: Read / Write / Construct Only

Since: 3.0

Signal Details

The “close-request” signal

void
user_function (TeplTab *tab,
               gpointer user_data)

The ::close-request signal is emitted when there is a request to close the TeplTab, for example if the user clicks on a close button.

The default object method handler does the following:

  • If the buffer is not modified (according to gtk_text_buffer_get_modified()), close the tab.

  • Else, show a message dialog to propose to save the file before closing.

To override the default object method handler, either override the virtual function in a TeplTab subclass or connect to the signal and call g_signal_stop_emission_by_name().

Parameters

tab

the TeplTab emitting the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0

See Also

TeplInfoBar