TotemPlugin

TotemPlugin — base plugin class and loading/unloading functions

Stability Level

Unstable, unless otherwise indicated

Includes

#include <totem-dirs.h>

Description

libpeas is used as a general-purpose architecture for adding plugins to Totem, with derived support for different programming languages.

The functions in totem-dirs.h are used to allow plugins to find and load files installed alongside the plugins, such as UI files.

Functions

TOTEM_PLUGIN_REGISTER()

#define             TOTEM_PLUGIN_REGISTER(TYPE_NAME, TypeName, type_name)

Registers a plugin with the Totem plugin system, including registering the type specified in the parameters and declaring its activate and deactivate functions.

Parameters

TYPE_NAME

the name of the plugin type, in UPPER_CASE

 

TypeName

the name of the plugin type, in CamelCase

 

type_name

the name of the plugin type, in lower_case

 

TOTEM_PLUGIN_REGISTER_CONFIGURABLE()

#define             TOTEM_PLUGIN_REGISTER_CONFIGURABLE(TYPE_NAME, TypeName, type_name)

Registers a configurable plugin with the Totem plugin system, including registering the type specified in the parameters and declaring its activate and deactivate and widget creation functions.

Parameters

TYPE_NAME

the name of the plugin type, in UPPER_CASE

 

TypeName

the name of the plugin type, in CamelCase

 

type_name

the name of the plugin type, in lower_case

 

totem_plugin_find_file ()

char *
totem_plugin_find_file (const char *plugin_name,
                        const char *file);

Finds the specified file by looking in the plugin paths listed by totem_get_plugin_paths() and then in the system Totem data directory.

This should be used by plugins to find plugin-specific resource files.

Parameters

plugin_name

the plugin name

 

file

the file to find

 

Returns

a newly-allocated absolute path for the file, or NULL


totem_plugin_load_interface ()

GtkBuilder *
totem_plugin_load_interface (const char *plugin_name,
                             const char *name,
                             gboolean fatal,
                             GtkWindow *parent,
                             gpointer user_data);

Loads an interface file (GtkBuilder UI file) for a plugin, given its filename and assuming it's installed in the plugin's data directory.

This should be used instead of attempting to load interfaces manually in plugins.

Parameters

plugin_name

the plugin name

 

name

interface filename

 

fatal

TRUE if it's a fatal error if the interface can't be loaded

 

parent

the interface's parent GtkWindow.

[allow-none]

user_data

a pointer to be passed to each signal handler in the interface when they're called.

[allow-none]

Returns

the GtkBuilder instance for the interface.

[transfer full]


totem_get_plugin_paths ()

char **
totem_get_plugin_paths (void);

Return a NULL-terminated array of paths to directories which can contain Totem plugins. This respects the GSettings disable_user_plugins setting.

Returns

a NULL-terminated array of paths to plugin directories.

[transfer full]

Since: 2.90.0

Types and Values