TeplAbstractFactory

TeplAbstractFactory — Abstract factory singleton class

Types and Values

Object Hierarchy

    GObject
    ╰── TeplAbstractFactory
        ╰── TeplAbstractFactoryVala

Includes

#include <tepl/tepl.h>

Description

The Tepl framework 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 “MyappAbstractFactory” is not a good name for a TeplAbstractFactory subclass. “MyappFactory” is a better name (of course change “Myapp” with the application namespace).

For an application written in Vala, see TeplAbstractFactoryVala.

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

Types and Values

TeplAbstractFactory

typedef struct _TeplAbstractFactory 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);
};

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().