aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/plugin-manager/plugin-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/plugin-manager/plugin-manager.c')
-rw-r--r--plugins/plugin-manager/plugin-manager.c289
1 files changed, 0 insertions, 289 deletions
diff --git a/plugins/plugin-manager/plugin-manager.c b/plugins/plugin-manager/plugin-manager.c
deleted file mode 100644
index 160783e856..0000000000
--- a/plugins/plugin-manager/plugin-manager.c
+++ /dev/null
@@ -1,289 +0,0 @@
-
-/* Copyright (C) 2004 Novell Inc.
- by Michael Zucchi <notzed@ximian.com> */
-
-/* This file is licensed under the GNU GPL v2 or later */
-
-/* A plugin manager ui */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <glib/gi18n-lib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <gtk/gtklabel.h>
-#include <gtk/gtktreeview.h>
-#include <gtk/gtktreeselection.h>
-#include <gtk/gtkliststore.h>
-#include <gtk/gtkdialog.h>
-#include <gtk/gtkscrolledwindow.h>
-#include <gtk/gtktable.h>
-#include <gtk/gtkcellrenderertoggle.h>
-#include <gtk/gtkcellrenderertext.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtkhbox.h>
-
-#include "e-util/e-plugin.h"
-#include "shell/es-menu.h"
-
-enum {
- LABEL_NAME,
- LABEL_AUTHOR,
- LABEL_ID,
- LABEL_PATH,
- LABEL_DESCRIPTION,
- LABEL_LAST
-};
-
-static struct {
- const char *label;
-} label_info[LABEL_LAST] = {
- { N_("Name"), },
- { N_("Author(s)"), },
- { N_("Id"), },
- { N_("Path"), },
- { N_("Description"), },
-};
-
-typedef struct _Manager Manager;
-struct _Manager {
- GtkDialog *dialog;
- GtkTreeView *tree;
- GtkListStore *model;
-
- GtkTable *table;
- GtkLabel *labels[LABEL_LAST];
- GtkLabel *items[LABEL_LAST];
-
- GSList *plugins;
-};
-
-/* for tracking if we're shown */
-static GtkDialog *dialog;
-
-void org_gnome_plugin_manager_manage(void *ep, ESMenuTargetShell *t);
-
-static void
-eppm_set_label(GtkLabel *l, const char *v)
-{
- gtk_label_set_label(l, v?v:_("Unknown"));
-}
-
-static void
-eppm_show_plugin(Manager *m, EPlugin *ep)
-{
- if (ep) {
- eppm_set_label(m->items[LABEL_NAME], ep->name);
- if (ep->authors) {
- GSList *l = ep->authors;
- GString *out = g_string_new("");
-
- for (;l;l = g_slist_next(l)) {
- EPluginAuthor *epa = l->data;
-
- if (l != ep->authors)
- g_string_append(out, ",\n");
- if (epa->name)
- g_string_append(out, epa->name);
- if (epa->email) {
- g_string_append(out, " <");
- g_string_append(out, epa->email);
- g_string_append(out, ">");
- }
- }
- gtk_label_set_label(m->items[LABEL_AUTHOR], out->str);
- g_string_free(out, TRUE);
- } else {
- eppm_set_label(m->items[LABEL_AUTHOR], NULL);
- }
-
- eppm_set_label(m->items[LABEL_ID], ep->id);
- eppm_set_label(m->items[LABEL_PATH], ep->path);
- eppm_set_label(m->items[LABEL_DESCRIPTION], ep->description);
- gtk_widget_set_sensitive((GtkWidget *)m->table, TRUE);
- } else {
- int i;
-
- for (i=0;i<LABEL_LAST;i++)
- gtk_label_set_label(m->items[i], "");
- gtk_widget_set_sensitive((GtkWidget *)m->table, FALSE);
- }
-}
-
-static void
-eppm_selection_changed(GtkTreeSelection *selection, Manager *m)
-{
- GtkTreeModel *model;
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
- EPlugin *ep;
-
- gtk_tree_model_get(model, &iter, 2, &ep, -1);
- eppm_show_plugin(m, ep);
- } else {
- eppm_show_plugin(m, NULL);
- }
-}
-
-static void
-eppm_enable_toggled(GtkCellRendererToggle *renderer, char *arg1, Manager *m)
-{
- GtkTreeSelection *selection;
- GtkTreePath *path;
- GtkTreeIter iter;
- EPlugin *plugin;
-
- path = gtk_tree_path_new_from_string(arg1);
- selection = gtk_tree_view_get_selection(m->tree);
- if (gtk_tree_model_get_iter((GtkTreeModel *)m->model, &iter, path)) {
- gtk_tree_model_get((GtkTreeModel *)m->model, &iter, 2, &plugin, -1);
- e_plugin_enable(plugin, !plugin->enabled);
- gtk_list_store_set(m->model, &iter, 1, plugin->enabled, -1);
- }
- gtk_tree_path_free(path);
-}
-
-static void
-eppm_free(void *data)
-{
- Manager *m = data;
- GSList *l;
-
- for (l = m->plugins;l;l=g_slist_next(l))
- g_object_unref(l->data);
- g_slist_free(m->plugins);
-
- g_free(m);
-}
-
-static void
-eppm_response(GtkDialog *w, int button, Manager *m)
-{
- gtk_widget_destroy((GtkWidget*)w);
- dialog = NULL;
-}
-
-void
-org_gnome_plugin_manager_manage(void *ep, ESMenuTargetShell *t)
-{
- Manager *m;
- int i;
- GtkWidget *hbox, *w;
- GtkTreeSelection *selection;
- GtkCellRenderer *renderer;
- GSList *l;
-
- if (dialog) {
- gdk_window_raise(((GtkWidget *)dialog)->window);
- return;
- }
-
- m = g_malloc0(sizeof(*m));
-
- /* Setup the ui */
- m->dialog = (GtkDialog *)gtk_dialog_new_with_buttons(_("Plugin Manager"),
- (GtkWindow *)gtk_widget_get_toplevel(t->target.widget),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
- /* this isn't actually big enough, but oh well, i'll work out resizing later */
- gtk_window_set_default_size((GtkWindow *)m->dialog, 640, 400);
- g_object_set((GObject *)m->dialog, "has_separator", FALSE, NULL);
-
- hbox = gtk_hbox_new(FALSE, 0);
- gtk_container_set_border_width((GtkContainer *)hbox, 12);
- gtk_box_pack_start((GtkBox *)m->dialog->vbox, hbox, TRUE, TRUE, 0);
-
- w = g_object_new(gtk_label_get_type(),
- "label", _("Note: Some changes will not take effect until restart"),
- "wrap", TRUE,
- NULL);
- gtk_widget_show(w);
- gtk_box_pack_start((GtkBox *)m->dialog->vbox, w, FALSE, TRUE, 6);
-
- m->tree = (GtkTreeView *)gtk_tree_view_new();
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes(m->tree, -1, _("Plugin"), renderer, "text", 0, NULL);
- renderer = gtk_cell_renderer_toggle_new();
- /*g_object_set((GObject *)renderer, "activatable", TRUE, NULL);*/
- gtk_tree_view_insert_column_with_attributes(m->tree, -1, _("Enabled"), renderer, "active", 1, NULL);
- g_signal_connect(renderer, "toggled", G_CALLBACK(eppm_enable_toggled), m);
-
- w = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy((GtkScrolledWindow *)w, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- gtk_scrolled_window_set_shadow_type((GtkScrolledWindow *)w, GTK_SHADOW_IN);
- gtk_container_add((GtkContainer *)w, (GtkWidget *)m->tree);
- gtk_box_pack_start((GtkBox *)hbox, (GtkWidget *)w, FALSE, TRUE, 6);
-
- m->table = (GtkTable *)gtk_table_new(LABEL_LAST, 2, FALSE);
- gtk_table_set_col_spacings(m->table, 6);
- gtk_table_set_row_spacings(m->table, 6);
- for (i=0;i<LABEL_LAST;i++) {
- char *markup;
-
- markup = g_strdup_printf("<span weight=\"bold\">%s</span>", _(label_info[i].label));
- m->labels[i] = g_object_new(gtk_label_get_type(),
- "label", markup,
- "use_markup", TRUE,
- "xalign", 1.0,
- "yalign", 0.0, NULL);
- g_free(markup);
- gtk_table_attach(m->table, (GtkWidget *)m->labels[i], 0, 1, i, i+1, GTK_FILL, GTK_FILL, 0, 0);
- m->items[i] = g_object_new(gtk_label_get_type(),
- "wrap", TRUE,
- "selectable", TRUE,
- "xalign", 0.0,
- "yalign", 0.0, NULL);
- gtk_table_attach(m->table, (GtkWidget *)m->items[i], 1, 2, i, i+1, GTK_EXPAND|GTK_FILL, GTK_FILL, 0, 0);
- }
-
- gtk_box_pack_start((GtkBox *)hbox, (GtkWidget *)m->table, TRUE, TRUE, 6);
- gtk_widget_show_all(hbox);
-
- selection = gtk_tree_view_get_selection(m->tree);
- gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
- g_signal_connect(selection, "changed", G_CALLBACK(eppm_selection_changed), m);
-
- m->plugins = e_plugin_list_plugins();
- m->model = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_POINTER);
-
- for (l=m->plugins;l;l=g_slist_next(l)) {
- EPlugin *ep = l->data;
- GtkTreeIter iter;
-
- /* hide ourselves always */
- if (!strcmp(ep->id, "org.gnome.evolution.plugin.manager"))
- continue;
-
- gtk_list_store_append(m->model, &iter);
- gtk_list_store_set(m->model, &iter,
- 0, ep->name?ep->name:ep->id,
- 1, ep->enabled,
- 2, ep,
- -1);
- }
- gtk_tree_view_set_model(m->tree, (GtkTreeModel *)m->model);
-
- g_object_set_data_full((GObject *)m->dialog, "plugin-manager", m, eppm_free);
- g_signal_connect(m->dialog, "response", G_CALLBACK(eppm_response), m);
-
- gtk_widget_show((GtkWidget *)m->dialog);
-}
-
-int e_plugin_lib_enable(EPluginLib *ep, int enable);
-
-int
-e_plugin_lib_enable(EPluginLib *ep, int enable)
-{
- if (enable) {
- } else {
- /* This plugin can't be disabled ... */
- return -1;
- }
-
- return 0;
-}