Definition in file plugin.c.
#include <libheraia.h>
Go to the source code of this file.
Functions | |
static heraia_plugin_t * | get_plugin_handle (heraia_window_t *main_window, heraia_plugin_t *plugin, const gchar *full_filename, const gchar *filename) |
Here we try to get a handle for the Gmodule referenced by full_filename. | |
static heraia_plugin_t * | get_plugin_init_symbol (heraia_window_t *main_window, heraia_plugin_t *plugin) |
If the handle is ok, we want to have the heraia_plugin_init function (to call it) in order to init the plugin (by itself). | |
static void | init_plugin (heraia_window_t *main_window, heraia_plugin_t *plugin, const gchar *filename, guint plugins_nb) |
finalising initialisation : if everything went fine, the plugin is added to the plugin list and a menu entry is created in the Plugins menu | |
static void | load_one_plugin (heraia_window_t *main_window, const gchar *filename, guint plugins_nb) |
Here we manage to load one plugin at a time (and this is really enough !). | |
gboolean | plugin_capable (void) |
Says whether the system can handle plugins (or not). | |
heraia_plugin_t * | new_plugin (void) |
Creates a new empty plugin it may be initialised by the plugin itself ! | |
void | free_plugin (heraia_plugin_t *plugin) |
free an unused plugin use with caution | |
void | load_plugins (heraia_window_t *main_window) |
looks at the plugins dir(s) and loads the needed plugins (all ;-) (one at a time !!) | |
void | add_entry_to_plugins_menu (heraia_window_t *main_window, heraia_plugin_t *plugin) |
adds a menu entry to the plugin menu adds a signal handler when the menu is toggled | |
heraia_plugin_t * | find_plugin_by_name (GList *plugins_list, gchar *name) |
Finds the desired plugin by its name and return the plugin structure or NULL. | |
gboolean | load_plugin_glade_xml (heraia_window_t *main_window, heraia_plugin_t *plugin) |
Loads the glade xml file that describes the plugin (.glade suffix) tries the paths found in the location_list. | |
void | show_hide_widget (GtkWidget *widget, gboolean show, window_prop_t *win_prop) |
To help plugins to deal with widgets, shows or hide a specific widget. | |
void | refresh_all_plugins (heraia_window_t *main_window) |
To help the main program to send events to the plugins. |
void add_entry_to_plugins_menu | ( | heraia_window_t * | main_window, | |
heraia_plugin_t * | plugin | |||
) |
adds a menu entry to the plugin menu adds a signal handler when the menu is toggled
main_window | : main structure | |
plugin | : a plugin to add to the plugin's menu |
Definition at line 275 of file plugin.c.
References heraia_plugin_t::cmi_entry, heraia_get_widget(), heraia_plugin_t::info, xml_t::main, plugin_info_t::name, heraia_plugin_t::run_proc, and heraia_window_t::xmls.
Referenced by init_plugin().
heraia_plugin_t* find_plugin_by_name | ( | GList * | plugins_list, | |
gchar * | name | |||
) |
Finds the desired plugin by its name and return the plugin structure or NULL.
plugins_list | : list of all available plugins | |
name | : plugin's name we're looking for |
Definition at line 301 of file plugin.c.
References heraia_plugin_t::info, and plugin_info_t::name.
Referenced by init(), pn_treeview_selection_changed_cb(), and run().
void free_plugin | ( | heraia_plugin_t * | plugin | ) |
free an unused plugin use with caution
plugin | : A created a malloc'ed plugin |
Definition at line 85 of file plugin.c.
References plugin_info_t::author, plugin_info_t::description, heraia_plugin_t::error, plugin_filter_t::extensions, heraia_plugin_t::extra, heraia_plugin_t::filename, heraia_plugin_t::filter, heraia_plugin_t::handle, plugin_info_t::homepage, heraia_plugin_t::info, plugin_info_t::name, heraia_plugin_t::path, plugin_info_t::summary, and plugin_info_t::version.
Referenced by get_plugin_init_symbol().
static heraia_plugin_t * get_plugin_handle | ( | heraia_window_t * | main_window, | |
heraia_plugin_t * | plugin, | |||
const gchar * | full_filename, | |||
const gchar * | filename | |||
) | [static] |
Here we try to get a handle for the Gmodule referenced by full_filename.
main_window | : main structure | |
plugin | : the plugin we try to get a handle for | |
full_filename | : the full filename (includes path) to the compiled plugin | |
filename | : the filename (without the path -> used for fancy log reporting) |
Definition at line 126 of file plugin.c.
References heraia_plugin_t::handle, and log_message().
Referenced by load_one_plugin().
static heraia_plugin_t * get_plugin_init_symbol | ( | heraia_window_t * | main_window, | |
heraia_plugin_t * | plugin | |||
) | [static] |
If the handle is ok, we want to have the heraia_plugin_init function (to call it) in order to init the plugin (by itself).
main_window | : main structure | |
plugin | : the plugin to look for its init function |
Definition at line 150 of file plugin.c.
References free_plugin(), heraia_plugin_t::handle, heraia_plugin_init(), and log_message().
Referenced by load_one_plugin().
static void init_plugin | ( | heraia_window_t * | main_window, | |
heraia_plugin_t * | plugin, | |||
const gchar * | filename, | |||
guint | plugins_nb | |||
) | [static] |
finalising initialisation : if everything went fine, the plugin is added to the plugin list and a menu entry is created in the Plugins menu
main_window | : main structure | |
plugin | : the plugin that was initialized | |
filename | : filename of the plugin itself | |
plugins_nb | : a number that will become the id of that plugin |
Definition at line 188 of file plugin.c.
References add_entry_to_plugins_menu(), HERAIA_PLUGIN_ACTION, plugin_info_t::id, heraia_plugin_t::info, heraia_plugin_t::init_proc, log_message(), heraia_window_t::plugins_list, and plugin_info_t::type.
Referenced by load_one_plugin().
static void load_one_plugin | ( | heraia_window_t * | main_window, | |
const gchar * | filename, | |||
guint | plugins_nb | |||
) | [static] |
Here we manage to load one plugin at a time (and this is really enough !).
main_window | : main structure | |
filename | : filename of the plugin that we want to load | |
plugins_nb | : a number that will be the id of that plugin |
Definition at line 211 of file plugin.c.
References heraia_plugin_t::filename, get_plugin_handle(), get_plugin_init_symbol(), init_plugin(), new_plugin(), and heraia_plugin_t::path.
Referenced by load_plugins().
gboolean load_plugin_glade_xml | ( | heraia_window_t * | main_window, | |
heraia_plugin_t * | plugin | |||
) |
Loads the glade xml file that describes the plugin (.glade suffix) tries the paths found in the location_list.
main_window | : main structure | |
plugin | : plugin for whom we want to load it's glade XML definition file |
Definition at line 334 of file plugin.c.
References heraia_plugin_t::info, load_glade_xml_file(), heraia_window_t::location_list, plugin_info_t::name, and heraia_plugin_t::xml.
Referenced by init().
void load_plugins | ( | heraia_window_t * | main_window | ) |
looks at the plugins dir(s) and loads the needed plugins (all ;-) (one at a time !!)
main_window | : main structure |
Definition at line 242 of file plugin.c.
References load_one_plugin(), and log_message().
Referenced by init_heraia_plugin_system().
heraia_plugin_t* new_plugin | ( | void | ) |
Creates a new empty plugin it may be initialised by the plugin itself !
Definition at line 54 of file plugin.c.
References PLUGIN_STATE_NEW, and heraia_plugin_t::state.
Referenced by load_one_plugin().
gboolean plugin_capable | ( | void | ) |
Says whether the system can handle plugins (or not).
Definition at line 42 of file plugin.c.
Referenced by init_heraia_plugin_system().
void refresh_all_plugins | ( | heraia_window_t * | main_window | ) |
To help the main program to send events to the plugins.
main_window | : main structure |
Definition at line 390 of file plugin.c.
References heraia_window_t::plugins_list, and heraia_plugin_t::refresh_proc.
Referenced by refresh_event_handler().
void show_hide_widget | ( | GtkWidget * | widget, | |
gboolean | show, | |||
window_prop_t * | win_prop | |||
) |
To help plugins to deal with widgets, shows or hide a specific widget.
widget | : the widget to show or hide | |
show | : what to do : TRUE to show the widget, FALSE to hide it | |
win_prop | : window properties. |
Definition at line 358 of file plugin.c.
References move_and_show_dialog_box(), and record_and_hide_dialog_box().
Referenced by run(), and statw_close_clicked().