Top |
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”.
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.
Since: 3.0
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.
Since: 3.0
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()
.
a new main application window, or
NULL
if the vfunc is not implemented.
[transfer floating][nullable]
TeplTab *
tepl_abstract_factory_create_tab (TeplAbstractFactory *factory
);
Since: 3.0
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()
.
a new GtkWidget, or NULL
for the
default tab label (“page N” with GtkNotebook).
[transfer floating][nullable]
Since: 3.0
TeplFile *
tepl_abstract_factory_create_file (TeplAbstractFactory *factory
);
Since: 4.0
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.
Since: 5.0
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.
Since: 6.2
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); };
Virtual function pointer for
|
||
Virtual function pointer for |
||
Virtual function pointer for
|
||
Virtual function pointer for
|
||
Virtual function pointer for
|
||
Virtual function pointer for
|