Commit fbc4a7c5 authored by Chyla Zbigniew's avatar Chyla Zbigniew

Added error-info.[ch]


* src/Makefile.am (GNUMERIC_BASE_SOURCES): Added error-info.[ch]

* error-info.[ch]: New files.

* src/plugin.[ch]: New plugin engine.

* src/dialogs/dialog-plugin-manager.c,
src/dialogs/plugin-manager.glade,
src/dialogs/plugin-manager.glade.h:
New plugin manager.

* src/main.c (gnumeric_main): Call plugins_shutdown() on shutdown.

* src/bonobo-io.c
(gnumeric_bonobo_write_workbook, gnumeric_bonobo_read_workbook,
gnumeric_bonobo_io_probe): Added "user_data" arg.
(gnumeric_bonobo_io_init): Saving saver/opener id.

* src/file-autoft.c (gnumeric_extra_autoformat_dirs): Used
gnumeric_config_get_string_list function.

* src/file.c
(file_format_register_open, file_format_register_save): Added
user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save): Take
only FileOpenerId/FileSaverId as parameter.
(get_file_saver_by_id, get_file_opener_by_id): New functions.
(do_load_from): Pass user_data parameter to "probe" and "open"
functions.
(workbook_save_as, workbook_save): Pass user_data parameter to "save"
function.

* src/file.h
(FileFormatProbe, FileFormatOpen, FileFormatSave): Adder user_data
parameter.
(struct _FileOpener, struct _FileSaver): Added opener_id/saver_id
field.
(file_format_register_open, file_format_register_save):
Added user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save):
Take only FileOpenerId/FileSaverId as parameter.

* src/gnumeric-util.[ch]
(gnumeric_error_info_dialog_show, static ctree_insert_error_info):
New functions displaying dialog with ErrorInfo contents.

* src/gui-file.c (gui_file_import): Pass user_data parameter to
"open" function.

* src/gutils.[ch]
New functions: gnumeric_config_get_string_list,
gnumeric_config_set_string_list, g_string_list_copy,
g_strsplit_to_list.
(g_create_list): Added missing va_end().

* src/stf.c (stf_read_workbook, stf_write_workbook): Added user_data
parameter.

* src/workbook.[ch] (workbook_set_saveinfo): Now takes file_saver_id
instead of save_fn.

* src/xml-io.c
(xml_probe, gnumeric_xml_read_workbook, gnumeric_xml_write_workbook):
Added user_data parameter.
(xml_init): Store xml_opener_id and xml_saver_id.
(gnumeric_xml_get_opener_id, gnumeric_xml_get_saver_id): New
functions.
parent c46a5465
......@@ -143,3 +143,12 @@ Printing
Widget polishing
----------------
Plugins
-------
- i18n support for third-party plugins.
- Add extra info (authors, etc.) to XML file.
- Plugin manager: add "refresh list" button.
- Plugin manager: add GUI for adding extra directories with plugins.
- Beautify ErrorInfo dialog (it's ugly).
- Mark plugin as "broken" if deactivation failed.
2001-01-25 Zbigniew Chyla <cyba@gnome.pl>
* src/Makefile.am (GNUMERIC_BASE_SOURCES): Added error-info.[ch]
* error-info.[ch]: New files.
* src/plugin.[ch]: New plugin engine.
* src/dialogs/dialog-plugin-manager.c,
src/dialogs/plugin-manager.glade,
src/dialogs/plugin-manager.glade.h:
New plugin manager.
* src/main.c (gnumeric_main): Call plugins_shutdown() on shutdown.
* src/bonobo-io.c
(gnumeric_bonobo_write_workbook, gnumeric_bonobo_read_workbook,
gnumeric_bonobo_io_probe): Added "user_data" arg.
(gnumeric_bonobo_io_init): Saving saver/opener id.
* src/file-autoft.c (gnumeric_extra_autoformat_dirs): Used
gnumeric_config_get_string_list function.
* src/file.c
(file_format_register_open, file_format_register_save): Added
user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save): Take
only FileOpenerId/FileSaverId as parameter.
(get_file_saver_by_id, get_file_opener_by_id): New functions.
(do_load_from): Pass user_data parameter to "probe" and "open"
functions.
(workbook_save_as, workbook_save): Pass user_data parameter to "save"
function.
* src/file.h
(FileFormatProbe, FileFormatOpen, FileFormatSave): Adder user_data
parameter.
(struct _FileOpener, struct _FileSaver): Added opener_id/saver_id
field.
(file_format_register_open, file_format_register_save):
Added user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save):
Take only FileOpenerId/FileSaverId as parameter.
* src/gnumeric-util.[ch]
(gnumeric_error_info_dialog_show, static ctree_insert_error_info):
New functions displaying dialog with ErrorInfo contents.
* src/gui-file.c (gui_file_import): Pass user_data parameter to
"open" function.
* src/gutils.[ch]
New functions: gnumeric_config_get_string_list,
gnumeric_config_set_string_list, g_string_list_copy,
g_strsplit_to_list.
(g_create_list): Added missing va_end().
* src/stf.c (stf_read_workbook, stf_write_workbook): Added user_data
parameter.
* src/workbook.[ch] (workbook_set_saveinfo): Now takes file_saver_id
instead of save_fn.
* src/xml-io.c
(xml_probe, gnumeric_xml_read_workbook, gnumeric_xml_write_workbook):
Added user_data parameter.
(xml_init): Store xml_opener_id and xml_saver_id.
(gnumeric_xml_get_opener_id, gnumeric_xml_get_saver_id): New
functions.
2001-01-25 Almer S. Tigelaar <almer1@dds.nl>
* src/clipboard.h : Add PASTE_UPDATE_ROW_HEIGHT as a new paste flag.
......
2001-01-25 Zbigniew Chyla <cyba@gnome.pl>
* src/Makefile.am (GNUMERIC_BASE_SOURCES): Added error-info.[ch]
* error-info.[ch]: New files.
* src/plugin.[ch]: New plugin engine.
* src/dialogs/dialog-plugin-manager.c,
src/dialogs/plugin-manager.glade,
src/dialogs/plugin-manager.glade.h:
New plugin manager.
* src/main.c (gnumeric_main): Call plugins_shutdown() on shutdown.
* src/bonobo-io.c
(gnumeric_bonobo_write_workbook, gnumeric_bonobo_read_workbook,
gnumeric_bonobo_io_probe): Added "user_data" arg.
(gnumeric_bonobo_io_init): Saving saver/opener id.
* src/file-autoft.c (gnumeric_extra_autoformat_dirs): Used
gnumeric_config_get_string_list function.
* src/file.c
(file_format_register_open, file_format_register_save): Added
user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save): Take
only FileOpenerId/FileSaverId as parameter.
(get_file_saver_by_id, get_file_opener_by_id): New functions.
(do_load_from): Pass user_data parameter to "probe" and "open"
functions.
(workbook_save_as, workbook_save): Pass user_data parameter to "save"
function.
* src/file.h
(FileFormatProbe, FileFormatOpen, FileFormatSave): Adder user_data
parameter.
(struct _FileOpener, struct _FileSaver): Added opener_id/saver_id
field.
(file_format_register_open, file_format_register_save):
Added user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save):
Take only FileOpenerId/FileSaverId as parameter.
* src/gnumeric-util.[ch]
(gnumeric_error_info_dialog_show, static ctree_insert_error_info):
New functions displaying dialog with ErrorInfo contents.
* src/gui-file.c (gui_file_import): Pass user_data parameter to
"open" function.
* src/gutils.[ch]
New functions: gnumeric_config_get_string_list,
gnumeric_config_set_string_list, g_string_list_copy,
g_strsplit_to_list.
(g_create_list): Added missing va_end().
* src/stf.c (stf_read_workbook, stf_write_workbook): Added user_data
parameter.
* src/workbook.[ch] (workbook_set_saveinfo): Now takes file_saver_id
instead of save_fn.
* src/xml-io.c
(xml_probe, gnumeric_xml_read_workbook, gnumeric_xml_write_workbook):
Added user_data parameter.
(xml_init): Store xml_opener_id and xml_saver_id.
(gnumeric_xml_get_opener_id, gnumeric_xml_get_saver_id): New
functions.
2001-01-25 Almer S. Tigelaar <almer1@dds.nl>
* src/clipboard.h : Add PASTE_UPDATE_ROW_HEIGHT as a new paste flag.
......
2001-01-25 Zbigniew Chyla <cyba@gnome.pl>
* src/Makefile.am (GNUMERIC_BASE_SOURCES): Added error-info.[ch]
* error-info.[ch]: New files.
* src/plugin.[ch]: New plugin engine.
* src/dialogs/dialog-plugin-manager.c,
src/dialogs/plugin-manager.glade,
src/dialogs/plugin-manager.glade.h:
New plugin manager.
* src/main.c (gnumeric_main): Call plugins_shutdown() on shutdown.
* src/bonobo-io.c
(gnumeric_bonobo_write_workbook, gnumeric_bonobo_read_workbook,
gnumeric_bonobo_io_probe): Added "user_data" arg.
(gnumeric_bonobo_io_init): Saving saver/opener id.
* src/file-autoft.c (gnumeric_extra_autoformat_dirs): Used
gnumeric_config_get_string_list function.
* src/file.c
(file_format_register_open, file_format_register_save): Added
user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save): Take
only FileOpenerId/FileSaverId as parameter.
(get_file_saver_by_id, get_file_opener_by_id): New functions.
(do_load_from): Pass user_data parameter to "probe" and "open"
functions.
(workbook_save_as, workbook_save): Pass user_data parameter to "save"
function.
* src/file.h
(FileFormatProbe, FileFormatOpen, FileFormatSave): Adder user_data
parameter.
(struct _FileOpener, struct _FileSaver): Added opener_id/saver_id
field.
(file_format_register_open, file_format_register_save):
Added user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save):
Take only FileOpenerId/FileSaverId as parameter.
* src/gnumeric-util.[ch]
(gnumeric_error_info_dialog_show, static ctree_insert_error_info):
New functions displaying dialog with ErrorInfo contents.
* src/gui-file.c (gui_file_import): Pass user_data parameter to
"open" function.
* src/gutils.[ch]
New functions: gnumeric_config_get_string_list,
gnumeric_config_set_string_list, g_string_list_copy,
g_strsplit_to_list.
(g_create_list): Added missing va_end().
* src/stf.c (stf_read_workbook, stf_write_workbook): Added user_data
parameter.
* src/workbook.[ch] (workbook_set_saveinfo): Now takes file_saver_id
instead of save_fn.
* src/xml-io.c
(xml_probe, gnumeric_xml_read_workbook, gnumeric_xml_write_workbook):
Added user_data parameter.
(xml_init): Store xml_opener_id and xml_saver_id.
(gnumeric_xml_get_opener_id, gnumeric_xml_get_saver_id): New
functions.
2001-01-25 Almer S. Tigelaar <almer1@dds.nl>
* src/clipboard.h : Add PASTE_UPDATE_ROW_HEIGHT as a new paste flag.
......
2001-01-25 Zbigniew Chyla <cyba@gnome.pl>
* src/Makefile.am (GNUMERIC_BASE_SOURCES): Added error-info.[ch]
* error-info.[ch]: New files.
* src/plugin.[ch]: New plugin engine.
* src/dialogs/dialog-plugin-manager.c,
src/dialogs/plugin-manager.glade,
src/dialogs/plugin-manager.glade.h:
New plugin manager.
* src/main.c (gnumeric_main): Call plugins_shutdown() on shutdown.
* src/bonobo-io.c
(gnumeric_bonobo_write_workbook, gnumeric_bonobo_read_workbook,
gnumeric_bonobo_io_probe): Added "user_data" arg.
(gnumeric_bonobo_io_init): Saving saver/opener id.
* src/file-autoft.c (gnumeric_extra_autoformat_dirs): Used
gnumeric_config_get_string_list function.
* src/file.c
(file_format_register_open, file_format_register_save): Added
user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save): Take
only FileOpenerId/FileSaverId as parameter.
(get_file_saver_by_id, get_file_opener_by_id): New functions.
(do_load_from): Pass user_data parameter to "probe" and "open"
functions.
(workbook_save_as, workbook_save): Pass user_data parameter to "save"
function.
* src/file.h
(FileFormatProbe, FileFormatOpen, FileFormatSave): Adder user_data
parameter.
(struct _FileOpener, struct _FileSaver): Added opener_id/saver_id
field.
(file_format_register_open, file_format_register_save):
Added user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save):
Take only FileOpenerId/FileSaverId as parameter.
* src/gnumeric-util.[ch]
(gnumeric_error_info_dialog_show, static ctree_insert_error_info):
New functions displaying dialog with ErrorInfo contents.
* src/gui-file.c (gui_file_import): Pass user_data parameter to
"open" function.
* src/gutils.[ch]
New functions: gnumeric_config_get_string_list,
gnumeric_config_set_string_list, g_string_list_copy,
g_strsplit_to_list.
(g_create_list): Added missing va_end().
* src/stf.c (stf_read_workbook, stf_write_workbook): Added user_data
parameter.
* src/workbook.[ch] (workbook_set_saveinfo): Now takes file_saver_id
instead of save_fn.
* src/xml-io.c
(xml_probe, gnumeric_xml_read_workbook, gnumeric_xml_write_workbook):
Added user_data parameter.
(xml_init): Store xml_opener_id and xml_saver_id.
(gnumeric_xml_get_opener_id, gnumeric_xml_get_saver_id): New
functions.
2001-01-25 Almer S. Tigelaar <almer1@dds.nl>
* src/clipboard.h : Add PASTE_UPDATE_ROW_HEIGHT as a new paste flag.
......
2001-01-25 Zbigniew Chyla <cyba@gnome.pl>
* src/Makefile.am (GNUMERIC_BASE_SOURCES): Added error-info.[ch]
* error-info.[ch]: New files.
* src/plugin.[ch]: New plugin engine.
* src/dialogs/dialog-plugin-manager.c,
src/dialogs/plugin-manager.glade,
src/dialogs/plugin-manager.glade.h:
New plugin manager.
* src/main.c (gnumeric_main): Call plugins_shutdown() on shutdown.
* src/bonobo-io.c
(gnumeric_bonobo_write_workbook, gnumeric_bonobo_read_workbook,
gnumeric_bonobo_io_probe): Added "user_data" arg.
(gnumeric_bonobo_io_init): Saving saver/opener id.
* src/file-autoft.c (gnumeric_extra_autoformat_dirs): Used
gnumeric_config_get_string_list function.
* src/file.c
(file_format_register_open, file_format_register_save): Added
user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save): Take
only FileOpenerId/FileSaverId as parameter.
(get_file_saver_by_id, get_file_opener_by_id): New functions.
(do_load_from): Pass user_data parameter to "probe" and "open"
functions.
(workbook_save_as, workbook_save): Pass user_data parameter to "save"
function.
* src/file.h
(FileFormatProbe, FileFormatOpen, FileFormatSave): Adder user_data
parameter.
(struct _FileOpener, struct _FileSaver): Added opener_id/saver_id
field.
(file_format_register_open, file_format_register_save):
Added user_data parameter, return FileOpenerId/FileSaverId.
(file_format_unregister_open, file_format_unregister_save):
Take only FileOpenerId/FileSaverId as parameter.
* src/gnumeric-util.[ch]
(gnumeric_error_info_dialog_show, static ctree_insert_error_info):
New functions displaying dialog with ErrorInfo contents.
* src/gui-file.c (gui_file_import): Pass user_data parameter to
"open" function.
* src/gutils.[ch]
New functions: gnumeric_config_get_string_list,
gnumeric_config_set_string_list, g_string_list_copy,
g_strsplit_to_list.
(g_create_list): Added missing va_end().
* src/stf.c (stf_read_workbook, stf_write_workbook): Added user_data
parameter.
* src/workbook.[ch] (workbook_set_saveinfo): Now takes file_saver_id
instead of save_fn.
* src/xml-io.c
(xml_probe, gnumeric_xml_read_workbook, gnumeric_xml_write_workbook):
Added user_data parameter.
(xml_init): Store xml_opener_id and xml_saver_id.
(gnumeric_xml_get_opener_id, gnumeric_xml_get_saver_id): New
functions.
2001-01-25 Almer S. Tigelaar <almer1@dds.nl>
* src/clipboard.h : Add PASTE_UPDATE_ROW_HEIGHT as a new paste flag.
......
......@@ -84,6 +84,8 @@ GNUMERIC_BASE_SOURCES = \
datetime.h \
dependent.c \
dependent.h \
error-info.c \
error-info.h \
eval.h \
eval.c \
expr.c \
......
......@@ -30,6 +30,9 @@
#include "xml-io.h"
#include "bonobo-io.h"
static FileOpenerId gnumeric_bonobo_opener_id;
static FileSaverId gnumeric_bonobo_saver_id;
static void
write_stream_to_storage (xmlNodePtr cur,
Bonobo_PersistStream persist,
......@@ -225,8 +228,9 @@ gnumeric_bonobo_obj_read (xmlNodePtr tree,
static int
gnumeric_bonobo_write_workbook (IOContext *context,
WorkbookView *wb_view,
const char *filename)
WorkbookView *wb_view,
const gchar *filename,
gpointer user_data)
{
int size, ret;
xmlChar *mem;
......@@ -416,8 +420,9 @@ hack_xmlSAXParseFile (Bonobo_Stream stream)
static int
gnumeric_bonobo_read_workbook (IOContext *context,
WorkbookView *wb_view,
const char *filename)
WorkbookView *wb_view,
const char *filename,
gpointer user_data)
{
CORBA_Environment ev;
xmlDoc *doc;
......@@ -485,8 +490,8 @@ gnumeric_bonobo_read_workbook (IOContext *context,
xml_workbook_read (context, wb_view, ctxt, doc->root);
workbook_set_saveinfo (wb_view_workbook (wb_view),
(char *) filename, FILE_FL_AUTO,
gnumeric_bonobo_write_workbook);
(char *) filename, FILE_FL_AUTO,
gnumeric_bonobo_saver_id);
xml_parse_ctx_destroy (ctxt);
......@@ -502,7 +507,7 @@ gnumeric_bonobo_read_workbook (IOContext *context,
}
static gboolean
gnumeric_bonobo_io_probe (const char *filename)
gnumeric_bonobo_io_probe (const char *filename, gpointer user_data)
{
char *p;
......@@ -522,8 +527,10 @@ gnumeric_bonobo_io_init (void)
{
char *desc = _("Gnumeric Bonobo file format");
file_format_register_open (100, desc, gnumeric_bonobo_io_probe,
gnumeric_bonobo_read_workbook);
file_format_register_save (".efs", desc, FILE_FL_AUTO,
gnumeric_bonobo_write_workbook);
gnumeric_bonobo_opener_id = file_format_register_open (
100, desc, gnumeric_bonobo_io_probe,
gnumeric_bonobo_read_workbook, NULL);
gnumeric_bonobo_saver_id = file_format_register_save (
".efs", desc, FILE_FL_AUTO,
gnumeric_bonobo_write_workbook, NULL);
}
This diff is collapsed.
......@@ -16,27 +16,24 @@
<widget>
<class>GnomeDialog</class>
<name>dialog</name>
<width>500</width>
<height>300</height>
<name>dialog_plugin_manager</name>
<visible>False</visible>
<title>Gnumeric Plugin Manager</title>
<type>GTK_WINDOW_DIALOG</type>
<position>GTK_WIN_POS_CENTER</position>
<modal>False</modal>
<default_width>500</default_width>
<default_width>600</default_width>
<default_height>300</default_height>
<allow_shrink>False</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>False</auto_shrink>
<auto_close>False</auto_close>
<hide_on_close>False</hide_on_close>
<auto_close>True</auto_close>
<hide_on_close>True</hide_on_close>
<widget>
<class>GtkVBox</class>
<child_name>GnomeDialog:vbox</child_name>
<name>dialog-vbox1</name>
<border_width>3</border_width>
<name>dialog-vbox</name>
<homogeneous>False</homogeneous>
<spacing>8</spacing>
<child>
......@@ -48,7 +45,7 @@
<widget>
<class>GtkHButtonBox</class>
<child_name>GnomeDialog:action_area</child_name>
<name>dialog-action_area1</name>
<name>dialog-action_area</name>
<layout_style>GTK_BUTTONBOX_END</layout_style>
<spacing>8</spacing>
<child_min_width>85</child_min_width>
......@@ -64,37 +61,43 @@
<widget>
<class>GtkButton</class>
<name>add_btn</name>
<can_default>True</can_default>
<can_focus>True</can_focus>
<label>Add</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap>
</widget>
<widget>
<class>GtkButton</class>
<name>remove_btn</name>
<can_default>True</can_default>
<can_focus>True</can_focus>
<label>Remove</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_REMOVE</stock_pixmap>
</widget>
<widget>
<class>GtkButton</class>
<name>close_btn</name>
<name>button_close_manager</name>
<can_default>True</can_default>
<has_default>True</has_default>
<can_focus>True</can_focus>
<stock_button>GNOME_STOCK_BUTTON_CLOSE</stock_button>
</widget>
</widget>
<widget>
<class>GtkVBox</class>
<name>vbox1</name>
<border_width>3</border_width>
<class>Placeholder</class>
</widget>
</widget>
</widget>
<widget>
<class>GtkWindow</class>
<name>window1</name>
<visible>False</visible>
<title>window1</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
<modal>False</modal>
<allow_shrink>False</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>False</auto_shrink>
<widget>
<class>GtkVBox</class>
<name>page_plugin_list</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<widget>
<class>GtkHBox</class>
<name>hbox1</name>
<homogeneous>False</homogeneous>
<spacing>3</spacing>
<spacing>0</spacing>
<child>
<padding>0</padding>
<expand>True</expand>
......@@ -102,12 +105,10 @@
</child>
<widget>
<class>GtkScrolledWindow</class>
<name>scrolledwindow1</name>
<hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy>
<vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy>
<hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
<vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
<class>GtkVBox</class>
<name>vbox4</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
<expand>True</expand>
......@@ -115,144 +116,482 @@
</child>
<widget>
<class>GtkCList</class>
<name>plugin_clist</name>
<height>100</height>
<can_focus>True</can_focus>
<columns>1</columns>
<column_widths>80</column_widths>
<selection_mode>GTK_SELECTION_BROWSE</selection_mode>
<show_titles>True</show_titles>
<shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
<class>GtkScrolledWindow</class>
<name>scrolledwindow5</name>
<hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy>
<vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
<hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
<vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
<child>
<padding>0</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<widget>
<class>GtkLabel</class>
<child_name>CList:title</child_name>
<name>label5</name>
<label>Installed Plugins</label>
<justify>GTK_JUSTIFY_LEFT</justify>
<wrap>False</wrap>
<xalign>7.45058e-09</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
<class>GtkCList</class>
<name>clist_active</name>
<can_focus>True</can_focus>
<columns>1</columns>
<column_widths>80</column_widths>
<selection_mode>GTK_SELECTION_SINGLE</selection_mode>
<show_titles>True</show_titles>
<shadow_type>GTK_SHADOW_IN</shadow_type>
<widget>
<class>GtkLabel</class>
<child_name>CList:title</child_name>
<name>label_active</name>
<label>Active plugins</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
</widget>
</widget>
<widget>
<class>GtkScrolledWindow</class>
<name>scrolledwindow4</name>
<hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy>
<vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
<hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
<vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
<child>
<padding>0</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<widget>
<class>GtkCList</class>
<name>clist_inactive</name>
<can_focus>True</can_focus>
<columns>1</columns>
<column_widths>80</column_widths>
<selection_mode>GTK_SELECTION_SINGLE</selection_mode>
<show_titles>True</show_titles>
<shadow_type>GTK_SHADOW_IN</shadow_type>
<widget>
<class>GtkLabel</class>
<child_name>CList:title</child_name>
<name>label_inactive</name>
<label>Available inactive plugins</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
</widget>
</widget>
</widget>
<widget>
<class>GtkNotebook</class>
<name>notebook1</name>
<can_focus>True</can_focus>
<show_tabs>True</show_tabs>
<show_border>True</show_border>
<tab_pos>GTK_POS_BOTTOM</tab_pos>
<scrollable>False</scrollable>
<tab_hborder>10</tab_hborder>
<tab_vborder>2</tab_vborder>
<popup_enable>True</popup_enable>
<class>GtkVBox</class>
<name>vbox5</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
<expand>True</expand>
<expand>False</expand>
<fill>True</fill>
</child>
<widget>
<class>GtkLabel</class>
<name>description_lbl</name>
<label></label>
<justify>GTK_JUSTIFY_LEFT</justify>
<wrap>True</wrap>
<xalign>0</xalign>
<yalign>0</yalign>
<xpad>5</xpad>
<ypad>3</ypad>
<class>GtkButton</class>
<name>button_activate_plugin</name>
<border_width>4</border_width>
<sensitive>False</sensitive>
<can_focus>True</can_focus>
<label>Activate plugin</label>
<relief>GTK_RELIEF_NORMAL</relief>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
<widget>
<class>GtkButton</class>
<name>button_deactivate_plugin</name>
<border_width>4</border_width>
<sensitive>False</sensitive>
<can_focus>True</can_focus>
<label>Deactivate plugin</label>
<relief>GTK_RELIEF_NORMAL</relief>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
<widget>
<class>GtkButton</class>
<name>button_activate_all</name>
<border_width>4</border_width>
<sensitive>False</sensitive>
<can_focus>True</can_focus>
<label>Activate all plugins</label>
<relief>GTK_RELIEF_NORMAL</relief>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>