diff options
Diffstat (limited to 'gedit/gedit-plugin-info.c')
-rwxr-xr-x | gedit/gedit-plugin-info.c | 394 |
1 files changed, 0 insertions, 394 deletions
diff --git a/gedit/gedit-plugin-info.c b/gedit/gedit-plugin-info.c deleted file mode 100755 index 31411c42..00000000 --- a/gedit/gedit-plugin-info.c +++ /dev/null @@ -1,394 +0,0 @@ -/* - * gedit-plugin-info.c - * This file is part of gedit - * - * Copyright (C) 2002-2005 - Paolo Maggi - * Copyright (C) 2007 - Paolo Maggi, Steve Frécinaux - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the gedit Team, 2002-2007. See the AUTHORS file for a - * list of people on the gedit Team. - * See the ChangeLog files for a list of changes. - * - * $Id$ - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <string.h> -#include <glib/gi18n.h> -#include <glib.h> - -#include "gedit-plugin-info.h" -#include "gedit-plugin-info-priv.h" -#include "gedit-debug.h" -#include "gedit-plugin.h" - -void -_gedit_plugin_info_ref (GeditPluginInfo *info) -{ - g_atomic_int_inc (&info->refcount); -} - -static GeditPluginInfo * -gedit_plugin_info_copy (GeditPluginInfo *info) -{ - _gedit_plugin_info_ref (info); - return info; -} - -void -_gedit_plugin_info_unref (GeditPluginInfo *info) -{ - if (!g_atomic_int_dec_and_test (&info->refcount)) - return; - - if (info->plugin != NULL) - { - gedit_debug_message (DEBUG_PLUGINS, "Unref plugin %s", info->name); - - g_object_unref (info->plugin); - } - - g_free (info->file); - g_free (info->module_name); - g_strfreev (info->dependencies); - g_free (info->name); - g_free (info->desc); - g_free (info->icon_name); - g_free (info->website); - g_free (info->copyright); - g_free (info->loader); - g_free (info->version); - g_strfreev (info->authors); - - g_free (info); -} - -/** - * gedit_plugin_info_get_type: - * - * Retrieves the #GType object which is associated with the #GeditPluginInfo - * class. - * - * Return value: the GType associated with #GeditPluginInfo. - **/ -GType -gedit_plugin_info_get_type (void) -{ - static GType the_type = 0; - - if (G_UNLIKELY (!the_type)) - the_type = g_boxed_type_register_static ( - "GeditPluginInfo", - (GBoxedCopyFunc) gedit_plugin_info_copy, - (GBoxedFreeFunc) _gedit_plugin_info_unref); - - return the_type; -} - -/** - * gedit_plugin_info_new: - * @filename: the filename where to read the plugin information - * - * Creates a new #GeditPluginInfo from a file on the disk. - * - * Return value: a newly created #GeditPluginInfo. - */ -GeditPluginInfo * -_gedit_plugin_info_new (const gchar *file) -{ - GeditPluginInfo *info; - GKeyFile *plugin_file = NULL; - gchar *str; - - g_return_val_if_fail (file != NULL, NULL); - - gedit_debug_message (DEBUG_PLUGINS, "Loading plugin: %s", file); - - info = g_new0 (GeditPluginInfo, 1); - info->refcount = 1; - info->file = g_strdup (file); - - plugin_file = g_key_file_new (); - if (!g_key_file_load_from_file (plugin_file, file, G_KEY_FILE_NONE, NULL)) - { - g_warning ("Bad plugin file: %s", file); - goto error; - } - - if (!g_key_file_has_key (plugin_file, - "Gedit Plugin", - "IAge", - NULL)) - { - gedit_debug_message (DEBUG_PLUGINS, - "IAge key does not exist in file: %s", file); - goto error; - } - - /* Check IAge=2 */ - if (g_key_file_get_integer (plugin_file, - "Gedit Plugin", - "IAge", - NULL) != 2) - { - gedit_debug_message (DEBUG_PLUGINS, - "Wrong IAge in file: %s", file); - goto error; - } - - /* Get module name */ - str = g_key_file_get_string (plugin_file, - "Gedit Plugin", - "Module", - NULL); - - if ((str != NULL) && (*str != '\0')) - { - info->module_name = str; - } - else - { - g_warning ("Could not find 'Module' in %s", file); - goto error; - } - - /* Get the dependency list */ - info->dependencies = g_key_file_get_string_list (plugin_file, - "Gedit Plugin", - "Depends", - NULL, - NULL); - if (info->dependencies == NULL) - { - gedit_debug_message (DEBUG_PLUGINS, "Could not find 'Depends' in %s", file); - info->dependencies = g_new0 (gchar *, 1); - } - - /* Get the loader for this plugin */ - str = g_key_file_get_string (plugin_file, - "Gedit Plugin", - "Loader", - NULL); - - if ((str != NULL) && (*str != '\0')) - { - info->loader = str; - } - else - { - /* default to the C loader */ - info->loader = g_strdup("c"); - } - - /* Get Name */ - str = g_key_file_get_locale_string (plugin_file, - "Gedit Plugin", - "Name", - NULL, NULL); - if (str) - info->name = str; - else - { - g_warning ("Could not find 'Name' in %s", file); - goto error; - } - - /* Get Description */ - str = g_key_file_get_locale_string (plugin_file, - "Gedit Plugin", - "Description", - NULL, NULL); - if (str) - info->desc = str; - else - gedit_debug_message (DEBUG_PLUGINS, "Could not find 'Description' in %s", file); - - /* Get Icon */ - str = g_key_file_get_locale_string (plugin_file, - "Gedit Plugin", - "Icon", - NULL, NULL); - if (str) - info->icon_name = str; - else - gedit_debug_message (DEBUG_PLUGINS, "Could not find 'Icon' in %s, using 'gedit-plugin'", file); - - - /* Get Authors */ - info->authors = g_key_file_get_string_list (plugin_file, - "Gedit Plugin", - "Authors", - NULL, - NULL); - if (info->authors == NULL) - gedit_debug_message (DEBUG_PLUGINS, "Could not find 'Authors' in %s", file); - - - /* Get Copyright */ - str = g_key_file_get_string (plugin_file, - "Gedit Plugin", - "Copyright", - NULL); - if (str) - info->copyright = str; - else - gedit_debug_message (DEBUG_PLUGINS, "Could not find 'Copyright' in %s", file); - - /* Get Website */ - str = g_key_file_get_string (plugin_file, - "Gedit Plugin", - "Website", - NULL); - if (str) - info->website = str; - else - gedit_debug_message (DEBUG_PLUGINS, "Could not find 'Website' in %s", file); - - /* Get Version */ - str = g_key_file_get_string (plugin_file, - "Gedit Plugin", - "Version", - NULL); - if (str) - info->version = str; - else - gedit_debug_message (DEBUG_PLUGINS, "Could not find 'Version' in %s", file); - - g_key_file_free (plugin_file); - - /* If we know nothing about the availability of the plugin, - set it as available */ - info->available = TRUE; - - return info; - -error: - g_free (info->file); - g_free (info->module_name); - g_free (info->name); - g_free (info->loader); - g_free (info); - g_key_file_free (plugin_file); - - return NULL; -} - -gboolean -gedit_plugin_info_is_active (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, FALSE); - - return info->available && info->plugin != NULL; -} - -gboolean -gedit_plugin_info_is_available (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, FALSE); - - return info->available != FALSE; -} - -gboolean -gedit_plugin_info_is_configurable (GeditPluginInfo *info) -{ - gedit_debug_message (DEBUG_PLUGINS, "Is '%s' configurable?", info->name); - - g_return_val_if_fail (info != NULL, FALSE); - - if (info->plugin == NULL || !info->available) - return FALSE; - - return gedit_plugin_is_configurable (info->plugin); -} - -const gchar * -gedit_plugin_info_get_module_name (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, NULL); - - return info->module_name; -} - -const gchar * -gedit_plugin_info_get_name (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, NULL); - - return info->name; -} - -const gchar * -gedit_plugin_info_get_description (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, NULL); - - return info->desc; -} - -const gchar * -gedit_plugin_info_get_icon_name (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, NULL); - - /* use the gedit-plugin icon as a default if the plugin does not - have its own */ - if (info->icon_name != NULL && - gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), - info->icon_name)) - return info->icon_name; - else - return "gedit-plugin"; -} - -const gchar ** -gedit_plugin_info_get_authors (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, (const gchar **)NULL); - - return (const gchar **) info->authors; -} - -const gchar * -gedit_plugin_info_get_website (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, NULL); - - return info->website; -} - -const gchar * -gedit_plugin_info_get_copyright (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, NULL); - - return info->copyright; -} - -const gchar * -gedit_plugin_info_get_version (GeditPluginInfo *info) -{ - g_return_val_if_fail (info != NULL, NULL); - - return info->version; -} |