TeplAbstractFactory

TeplAbstractFactory — Abstract factory singleton class

Functions

Types and Values

Object Hierarchy

    GObject
    ╰── TeplAbstractFactory

Includes

#include <tepl/tepl.h>

Description

Tepl uses the TeplAbstractFactory singleton to create some objects and widgets. By creating a subclass of TeplAbstractFactory (to override the desired virtual functions) and setting the instance with tepl_abstract_factory_set_singleton(), an application can tell Tepl to create custom objects and widgets.

Note that GtkTextViewClass has the ::create_buffer factory method, that TeplView overrides to create a TeplBuffer. How the TeplView and TeplBuffer are created can be customized with the ::create_tab vfunc of TeplAbstractFactory.

Recommendation for the subclass name: in Tepl, TeplAbstractFactory is an abstract class, but in an application it is a concrete class. So “MyappFactory” is a better name than “MyappAbstractFactory”.

Functions

tepl_abstract_factory_set_singleton ()

void
tepl_abstract_factory_set_singleton (TeplAbstractFactory *factory);

Sets the TeplAbstractFactory singleton. This should be called early in main(), for example just after calling tepl_init().

This function must be called only once, before the first call to tepl_abstract_factory_get_singleton().

Tepl takes ownership of the factory reference.

Parameters

factory

a TeplAbstractFactory.

[transfer full]

Since: 3.0


tepl_abstract_factory_get_singleton ()

TeplAbstractFactory *
tepl_abstract_factory_get_singleton (void);

Gets the TeplAbstractFactory singleton instance.

If tepl_abstract_factory_set_singleton() has not been called, the singleton is created with a TeplAbstractFactory instance.

Returns

the TeplAbstractFactory singleton instance.

[transfer none]

Since: 3.0


tepl_abstract_factory_create_main_window ()

GtkApplicationWindow *
tepl_abstract_factory_create_main_window
                               (TeplAbstractFactory *factory,
                                GtkApplication *app);

Creates a main GtkApplicationWindow in the sense of tepl_application_window_is_main_window().

Parameters

factory

the TeplAbstractFactory.

 

app

a GtkApplication.

 

Returns

a new main application window, or NULL if the vfunc is not implemented.

[transfer floating][nullable]


tepl_abstract_factory_create_tab ()

TeplTab *
tepl_abstract_factory_create_tab (TeplAbstractFactory *factory);

Parameters

factory

the TeplAbstractFactory.

 

Returns

a new TeplTab.

[transfer floating]

Since: 3.0


tepl_abstract_factory_create_tab_label ()

GtkWidget *
tepl_abstract_factory_create_tab_label
                               (TeplAbstractFactory *factory,
                                TeplTab *tab);

Creates a new tab label for tab , suitable for gtk_notebook_set_tab_label().

Parameters

factory

the TeplAbstractFactory.

 

tab

a TeplTab.

 

Returns

a new GtkWidget, or NULL for the default tab label (“page N” with GtkNotebook).

[transfer floating][nullable]

Since: 3.0


tepl_abstract_factory_create_file ()

TeplFile *
tepl_abstract_factory_create_file (TeplAbstractFactory *factory);

Parameters

factory

the TeplAbstractFactory.

 

Returns

a new TeplFile.

[transfer full]

Since: 4.0


tepl_abstract_factory_create_metadata_manager_file ()

GFile *
tepl_abstract_factory_create_metadata_manager_file
                               (TeplAbstractFactory *factory);

Creates a new GFile that is then intended to be used as an argument to tepl_metadata_manager_load_from_disk() and tepl_metadata_manager_save_to_disk(). This function just creates the GFile object, it doesn't call any TeplMetadataManager function.

Parameters

factory

the TeplAbstractFactory.

 

Returns

a new GFile, or NULL if the vfunc is not implemented.

[transfer full][nullable]

Since: 5.0


tepl_abstract_factory_fill_prefs_dialog ()

void
tepl_abstract_factory_fill_prefs_dialog
                               (TeplAbstractFactory *factory,
                                TeplPrefsDialog *dialog);

dialog is a newly-created TeplPrefsDialog. This function fills dialog with the intended content.

Parameters

factory

the TeplAbstractFactory.

 

dialog

a TeplPrefsDialog.

 

Since: 6.2

Types and Values

struct TeplAbstractFactory

struct TeplAbstractFactory;

struct TeplAbstractFactoryClass

struct TeplAbstractFactoryClass {
	GObjectClass parent_class;

	GtkApplicationWindow * (* create_main_window)			(TeplAbstractFactory *factory,
									 GtkApplication      *app);

	TeplTab *		(* create_tab)				(TeplAbstractFactory *factory);

	GtkWidget *		(* create_tab_label)			(TeplAbstractFactory *factory,
									 TeplTab             *tab);

	TeplFile *		(* create_file)				(TeplAbstractFactory *factory);

	GFile *			(* create_metadata_manager_file) (TeplAbstractFactory *factory);

	void			(* fill_prefs_dialog)			(TeplAbstractFactory *factory,
									 TeplPrefsDialog     *dialog);
};

Members

create_main_window ()

Virtual function pointer for tepl_abstract_factory_create_main_window(). It is not implemented by default.

 

create_tab ()

Virtual function pointer for tepl_abstract_factory_create_tab(). By default the TeplTab is created with tepl_tab_new().

 

create_tab_label ()

Virtual function pointer for tepl_abstract_factory_create_tab_label(). By default the tab label is created with tepl_tab_label_new().

 

create_file ()

Virtual function pointer for tepl_abstract_factory_create_file(). By default the TeplFile is created with tepl_file_new().

 

create_metadata_manager_file ()

Virtual function pointer for tepl_abstract_factory_create_metadata_manager_file(). It is not implemented by default.

 

fill_prefs_dialog ()

Virtual function pointer for tepl_abstract_factory_fill_prefs_dialog(). It is not implemented by default.