[Xfce4-commits] <squeeze:stephan/new-ui> Remove files

Stephan Arts noreply at xfce.org
Fri May 10 13:08:02 CEST 2013


Updating branch refs/heads/stephan/new-ui
         to fa6c69492f5f027fad5f89c742686f9fcc7acaea (commit)
       from e79441c85126cc6210711ded71ad08ba399aaeeb (commit)

commit fa6c69492f5f027fad5f89c742686f9fcc7acaea
Author: Stephan Arts <stephan at xfce.org>
Date:   Fri May 10 13:07:27 2013 +0200

    Remove files

 src/application.c        |  306 -------------
 src/application.h        |   71 ---
 src/button_drag_box.c    |  405 -----------------
 src/button_drag_box.h    |   73 ---
 src/extract_dialog.c     |  167 -------
 src/extract_dialog.h     |   63 ---
 src/message_dialog.c     |  181 --------
 src/message_dialog.h     |   60 ---
 src/navigation_bar.c     |  166 -------
 src/navigation_bar.h     |   64 ---
 src/new_dialog.c         |  155 -------
 src/new_dialog.h         |   63 ---
 src/preferences_dialog.c |  359 ---------------
 src/preferences_dialog.h |   78 ----
 src/properties_dialog.c  |  135 ------
 src/properties_dialog.h  |   67 ---
 src/settings.c           |  192 --------
 src/settings.h           |   75 ----
 src/tool_bar.c           |  399 -----------------
 src/tool_bar.h           |   67 ---
 src/widget_factory.c     | 1084 ----------------------------------------------
 src/widget_factory.h     |   62 ---
 22 files changed, 0 insertions(+), 4292 deletions(-)

diff --git a/src/application.c b/src/application.c
deleted file mode 100644
index 8bb2a85..0000000
--- a/src/application.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <string.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-
-#include <libxfce4util/libxfce4util.h>
-#include <libsqueeze/libsqueeze.h>
-
-#include "new_dialog.h"
-#include "message_dialog.h"
-#include "extract_dialog.h"
-
-#include "settings.h"
-#include "archive_store.h"
-#include "navigation_bar.h"
-#include "application.h"
-#include "widget_factory.h"
-#include "main_window.h"
-
-static void
-sq_application_class_init(SQApplicationClass *archive_class);
-
-static void
-sq_application_init(SQApplication *);
-static void
-sq_application_finalize(GObject *);
-static void
-sq_application_dispose(GObject *object);
-
-enum
-{
-	SQ_APPLICATION_SIGNAL_DESTROY = 0,
-	SQ_APPLICATION_SIGNAL_COUNT
-};
-
-static gint sq_application_signals[SQ_APPLICATION_SIGNAL_COUNT];
-
-GType
-sq_application_get_type (void)
-{
-	static GType sq_application_type = 0;
-
- 	if (!sq_application_type)
-	{
- 		static const GTypeInfo sq_application_info = 
-		{
-			sizeof (SQApplicationClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_application_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQApplication),
-			0,
-			(GInstanceInitFunc) sq_application_init,
-			NULL
-		};
-
-		sq_application_type = g_type_register_static (G_TYPE_OBJECT, "SQApplication", &sq_application_info, 0);
-	}
-	return sq_application_type;
-}
-
-static void
-sq_application_class_init(SQApplicationClass *application_class)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (application_class);
-	object_class->finalize	 = sq_application_finalize;
-	object_class->dispose	  = sq_application_dispose;
-
-	sq_application_signals[SQ_APPLICATION_SIGNAL_DESTROY] = g_signal_new("destroy",
-			G_TYPE_FROM_CLASS(application_class),
-			G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
-			0,
-			NULL,
-			NULL,
-			g_cclosure_marshal_VOID__VOID,
-			G_TYPE_NONE,
-			0);
-}
-
-static void
-sq_application_init(SQApplication *application)
-{
-	application->settings = sq_settings_new();
-	sq_settings_set_group(application->settings, "Global");
-
-	application->props._tabs = sq_settings_read_bool_entry(application->settings, "UseTabs", FALSE);
-
-}
-
-static void
-sq_application_dispose(GObject *object)
-{
-	g_signal_emit(object, sq_application_signals[SQ_APPLICATION_SIGNAL_DESTROY], 0, object);
-}
-
-static void
-sq_application_finalize(GObject *object )
-{
-	SQApplication *application = SQ_APPLICATION(object);
-
-	sq_settings_set_group(application->settings, "Global");
-
-	sq_settings_write_bool_entry(application->settings, "UseTabs", application->props._tabs);
-
-	sq_settings_save(application->settings);
-
-	g_object_unref(G_OBJECT(application->settings));
-}
-
-SQApplication *
-sq_application_new(GtkIconTheme *icon_theme)
-{
-	SQApplication *app;
-
-	app = g_object_new(SQ_TYPE_APPLICATION, NULL);
-
-	app->icon_theme = icon_theme;
-
-	return app;
-}
-
-GtkWidget *
-sq_application_new_window(SQApplication *app)
-{
-	GtkWidget *window = sq_main_window_new(app, app->icon_theme);
-	return window;
-}
-
-gint
-sq_application_extract_archive(SQApplication *app, GFile *file, gchar *dest_path)
-{
-	GtkWidget *dialog = NULL;
-    LSQArchive *archive;
-	GtkWidget *message_dialog;
-    LSQExecuteContext *operation;
-
-    archive = lsq_open_archive( file, NULL );
-    if ( NULL == archive )
-	{
-		/*
-		 * Could not open archive (mime type not supported or file did not exist)
-		 * Should be a more specific error message.
-		 */ 
-		dialog = gtk_message_dialog_new (NULL,GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Could not open archive, MIME-type unsupported or file did not exist"));
-		gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES);
-		gtk_dialog_run (GTK_DIALOG (dialog) );
-		gtk_widget_destroy (GTK_WIDGET (dialog) );
-		return 1;
-	}
-	if(!dest_path)
-	{
-        GtkWidget *extr_dialog = sq_extract_archive_dialog_new( archive, 0 );
-		gint result = gtk_dialog_run (GTK_DIALOG (extr_dialog) );
-		if(result == GTK_RESPONSE_OK)
-		{
-			gtk_widget_hide(extr_dialog);
-			dest_path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(extr_dialog));
-		}
-		gtk_widget_destroy(extr_dialog);
-	}
-	if(!dest_path)
-	{
-        lsq_close_archive( archive );
-		return 1;
-	}
-    message_dialog = sq_message_dialog_new( GTK_WINDOW_TOPLEVEL, archive );
-	gtk_widget_show(message_dialog);
-    operation = lsq_archive_operate( archive, LSQ_COMMAND_TYPE_EXTRACT, NULL, dest_path, NULL, NULL );
-    if ( NULL == operation )
-	{
-		GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 
-														   GTK_DIALOG_DESTROY_WITH_PARENT, 
-														   GTK_MESSAGE_WARNING,
-														   GTK_BUTTONS_CLOSE,
-														   _("Squeeze cannot extract this archive type,\nthe application to support this is missing."));
-		if(warning_dialog)
-		{
-			gtk_dialog_run (GTK_DIALOG (warning_dialog) );
-			gtk_widget_destroy(warning_dialog);
-		}
-
-	}
-    g_object_unref( operation );
-	g_object_ref(app);
-	return 0;
-}
-
-gint
-sq_application_new_archive(SQApplication *app, GFile *file, GSList *files)
-{
-	GtkWidget *dialog = NULL;
-	gint result = 0;
-    LSQArchive *archive;
-	GtkWidget *message_dialog;
-    LSQExecuteContext *operation;
-
-	if(!file)
-	{
-		gchar **filename_components;
-		dialog = sq_new_archive_dialog_new();
-		/* FIXME, does not work correctly when there are more dots in a filename then the one identifying the extention */
-		filename_components = g_strsplit(files->data, ".", 2);
-		gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), filename_components[0]);
-		g_strfreev(filename_components);
-		result = gtk_dialog_run (GTK_DIALOG (dialog) );
-		if(result == GTK_RESPONSE_CANCEL || result == GTK_RESPONSE_DELETE_EVENT)
-		{
-			gtk_widget_destroy (GTK_WIDGET (dialog) );
-			return 2;
-		}
-		if(result == GTK_RESPONSE_OK)
-		{
-			file = sq_new_archive_dialog_get_file(SQ_NEW_ARCHIVE_DIALOG(dialog));
-			gtk_widget_destroy (GTK_WIDGET (dialog) );
-		}
-        archive = lsq_new_archive( file, NULL, TRUE, NULL );
-        if ( NULL == archive )
-		{
-			/* 
-			 * Could not create archive (mime type unsupported) 
-			 */
-			dialog = gtk_message_dialog_new (NULL,GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Could not create archive, MIME-type unsupported"));
-			gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES);
-			gtk_dialog_run (GTK_DIALOG (dialog) );
-			gtk_widget_destroy (GTK_WIDGET (dialog) );
-			return 1;
-		}
-		g_object_unref(file);
-        file = NULL;
-	}
-	else
-	{
-        archive = lsq_open_archive( file, NULL );
-        if ( NULL == archive )
-		{
-			/*
-			 * Could not open archive (mime type not supported or file did not exist)
-			 * Should be a more specific error message.
-			 */ 
-			dialog = gtk_message_dialog_new (NULL,GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Could not open archive, MIME-type unsupported or file did not exist"));
-			gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES);
-			gtk_dialog_run (GTK_DIALOG (dialog) );
-			gtk_widget_destroy (GTK_WIDGET (dialog) );
-			return 1;
-		}
-	}
-    message_dialog = sq_message_dialog_new( GTK_WINDOW_TOPLEVEL, archive );
-	gtk_widget_show(message_dialog);
-
-    operation = lsq_archive_operate( archive, LSQ_COMMAND_TYPE_ADD, NULL, NULL, NULL, NULL );
-    if ( NULL == operation )
-	{
-		/* FIXME: show warning dialog */
-		GtkWidget *warning_dialog = gtk_message_dialog_new(
-                NULL, 
-                GTK_DIALOG_DESTROY_WITH_PARENT, 
-                GTK_MESSAGE_WARNING,
-                GTK_BUTTONS_CLOSE,
-                _("Squeeze cannot add files to this archive type,\nthe application to support this is missing."));
-		gtk_dialog_run (GTK_DIALOG (warning_dialog) );
-		gtk_widget_destroy(warning_dialog);
-	}
-    g_object_unref( operation );
-	g_object_ref(app);
-	return 0;
-}
-
-gint
-sq_application_open_archive(SQApplication *app, GtkWidget *window, GFile *file)
-{
-	gint retval = 0;
-
-	if(!window)
-	{
-		window = sq_application_new_window(app);
-	}
-	if(app->props._tabs)
-	{
-		retval = sq_main_window_open_archive(SQ_MAIN_WINDOW(window), file, -1);
-	}
-	else
-	{
-		retval = sq_main_window_open_archive(SQ_MAIN_WINDOW(window), file, 0);
-	}
-	gtk_widget_show(window);
-	return retval;
-}
diff --git a/src/application.h b/src/application.h
deleted file mode 100644
index 3d84449..0000000
--- a/src/application.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_APPLICATION_H__
-#define __SQRCHIVER_APPLICATION_H__
-G_BEGIN_DECLS
-
-#define SQ_TYPE_APPLICATION sq_application_get_type()
-
-#define SQ_APPLICATION(obj)(				\
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),  \
-			SQ_TYPE_APPLICATION,				  \
-			SQApplication))
-
-#define SQ_IS_APPLICATION(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			SQ_TYPE_APPLICATION))
-
-#define SQ_APPLICATION_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			SQ_TYPE_APPLICATION,	  \
-			SQApplicationClass))
-
-#define SQ_IS_APPLICATION_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			SQ_TYPE_APPLICATION()))	
-
-typedef struct _SQApplication SQApplication;
-
-struct _SQApplication
-{
-	GObject parent;
-	GtkIconTheme *icon_theme;
-	SQSettings *settings;
-	struct {
-		gboolean _tabs;
-	} props;
-};
-
-typedef struct _SQApplicationClass SQApplicationClass;
-
-struct _SQApplicationClass
-{
-	GObjectClass parent_class;
-};
-
-GType	  sq_application_get_type();
-SQApplication *sq_application_new(GtkIconTheme *icon_theme);
-
-GtkWidget *sq_application_new_window(SQApplication *);
-
-gint sq_application_extract_archive(SQApplication *, GFile *, gchar *);
-gint sq_application_new_archive(SQApplication *, GFile *, GSList *);
-
-gint sq_application_open_archive(SQApplication *, GtkWidget *, GFile *);
-
-G_END_DECLS
-#endif /* __SQRCHIVER_APPLICATION_H__*/
diff --git a/src/button_drag_box.c b/src/button_drag_box.c
deleted file mode 100644
index bba6678..0000000
--- a/src/button_drag_box.c
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- *  Copyright (c) 2006 Stephan Arts <stephan at xfce.org>
- *
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <string.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libsqueeze/libsqueeze.h>
-#include "archive_store.h"
-#include "button_drag_box.h"
-
-#define SQ_INDICATOR_SIZE 9
-#define SQ_BUTTON_USER_DATA "sq-user-data"
-#define SQ_DRAG_TARGET_ID "_SQ_BUTTON_DRAG_BOX"
-
-static GdkPixbuf *
-sq_create_icon_from_widget(GtkWidget *widget);
-
-static void
-sq_create_indicator(SQButtonDragBox *box, gint x, gint y, gint width, gint height);
-static void
-sq_delete_indicator(SQButtonDragBox *box);
-
-static gboolean
-cb_signal_blocker(GtkWidget *widget, gpointer user_data);
-
-static void
-cb_sq_button_data_get(GtkWidget *widget, GdkDragContext *context, GtkSelectionData *data, guint info, guint time, gpointer user_data);
-
-static void
-cb_sq_button_drag_begin(GtkWidget *widget, GdkDragContext *context, gpointer user_data);
-
-static void
-cb_sq_button_drag_end(GtkWidget *widget, GdkDragContext *context, gpointer user_data);
-
-static void
-cb_sq_visible_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint infom, guint time, gpointer user_data);
-
-static gboolean
-cb_sq_visible_drag_motion(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer user_data);
-
-static void
-cb_sq_visible_drag_leave(GtkWidget *widget, GdkDragContext *context, guint time, gpointer user_data);
-
-static void
-cb_sq_hidden_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint infom, guint time, gpointer user_data);
-
-G_DEFINE_TYPE (SQButtonDragBox, sq_button_drag_box, GTK_TYPE_VBOX)
-
-static void
-sq_button_drag_box_class_init(SQButtonDragBoxClass *button_drag_box_class)
-{
-}
-
-static void
-sq_button_drag_box_init(SQButtonDragBox *box)
-{
-	GtkWidget *frame;
-
-	box->locked_buttons = 0;
-
-	box->visible_box = gtk_hbox_new(FALSE, 0);
-	box->hidden_box = gtk_hbox_new(FALSE, 0);
-
-	box->entry.target = SQ_DRAG_TARGET_ID;
-	box->entry.flags = GTK_TARGET_SAME_APP;
-	box->entry.info = 2;
-
-	frame = gtk_frame_new(_("Visible:"));
-
-	gtk_drag_dest_set(frame, GTK_DEST_DEFAULT_ALL, &box->entry, 1, GDK_ACTION_MOVE);
-	g_signal_connect(frame, "drag_data_received", G_CALLBACK(cb_sq_visible_data_received), box);
-	g_signal_connect(frame, "drag_motion", G_CALLBACK(cb_sq_visible_drag_motion), box);
-	g_signal_connect(frame, "drag_leave", G_CALLBACK(cb_sq_visible_drag_leave), box);
-
-	gtk_container_set_border_width(GTK_CONTAINER(box->visible_box), 5);
-	gtk_container_add(GTK_CONTAINER(frame), box->visible_box);
-	gtk_box_pack_start(GTK_BOX(box), frame, FALSE, TRUE, 0);
-
-	frame = gtk_frame_new(_("Available:"));
-
-	gtk_drag_dest_set(frame, GTK_DEST_DEFAULT_ALL, &box->entry, 1, GDK_ACTION_MOVE);
-	g_signal_connect(frame, "drag_data_received", G_CALLBACK(cb_sq_hidden_data_received), box);
-
-	gtk_container_set_border_width(GTK_CONTAINER(box->hidden_box), 5);
-	gtk_container_add(GTK_CONTAINER(frame), box->hidden_box);
-	gtk_box_pack_start(GTK_BOX(box), frame, FALSE, TRUE, 0);
-
-	gtk_box_set_homogeneous(GTK_BOX(box), TRUE);
-}
-
-GtkWidget *
-sq_button_drag_box_new(void)
-{
-	GtkWidget *box;
-
-	box = g_object_new(SQ_TYPE_BUTTON_DRAG_BOX, NULL);
-
-	return box;
-}
-
-void
-sq_button_drag_box_add_fixed_button(SQButtonDragBox *box, const gchar *label, gpointer user_data)
-{
-	GtkWidget *button = gtk_button_new_with_label(label);
-
-	g_object_set_data(G_OBJECT(button), SQ_BUTTON_USER_DATA, user_data);
-
-	gtk_box_pack_start(GTK_BOX(box->visible_box), button, FALSE, FALSE, 0);
-
-	g_signal_connect(G_OBJECT(button), "button_press_event", G_CALLBACK(cb_signal_blocker), NULL);
-	g_signal_connect(G_OBJECT(button), "enter_notify_event", G_CALLBACK(cb_signal_blocker), NULL);
-	g_signal_connect(G_OBJECT(button), "focus", G_CALLBACK(cb_signal_blocker), NULL);
-}
-
-void
-sq_button_drag_box_add_button(SQButtonDragBox *box, const gchar *label, gboolean visible, gpointer user_data)
-{
-	GtkWidget *button = gtk_button_new_with_label(label);
-
-	g_object_set_data(G_OBJECT(button), SQ_BUTTON_USER_DATA, user_data);
-
-	gtk_box_pack_start(visible?GTK_BOX(box->visible_box):GTK_BOX(box->hidden_box), button, FALSE, FALSE, 0);
-
-	gtk_drag_source_set(button, GDK_BUTTON1_MASK, &box->entry, 1, GDK_ACTION_MOVE);
-	g_signal_connect(G_OBJECT(button), "drag_data_get", G_CALLBACK(cb_sq_button_data_get), NULL);
-	g_signal_connect(G_OBJECT(button), "drag_begin", G_CALLBACK(cb_sq_button_drag_begin), NULL);
-	g_signal_connect(G_OBJECT(button), "drag_end", G_CALLBACK(cb_sq_button_drag_end), NULL);
-	g_signal_connect(G_OBJECT(button), "button_press_event", G_CALLBACK(cb_signal_blocker), NULL);
-	g_signal_connect(G_OBJECT(button), "enter_notify_event", G_CALLBACK(cb_signal_blocker), NULL);
-	g_signal_connect(G_OBJECT(button), "focus", G_CALLBACK(cb_signal_blocker), NULL);
-}
-
-void
-sq_button_drag_box_lock_buttons(SQButtonDragBox *box, guint buttons)
-{
-	box->locked_buttons = buttons;
-}
-
-GSList *
-sq_button_drag_box_get_visible(SQButtonDragBox *box)
-{
-	GList *iter, *children = iter = gtk_container_get_children(GTK_CONTAINER(box->visible_box));
-	GSList *list = NULL;
-
-	while(iter)
-	{
-		if(GTK_WIDGET_VISIBLE(iter->data))
-		{
-			list = g_slist_append(list, g_object_get_data(G_OBJECT(iter->data), SQ_BUTTON_USER_DATA));
-		}
-
-		iter = g_list_next(iter);
-	}
-
-	g_list_free(children);
-
-	return list;
-}
-
-GSList *
-sq_button_drag_box_get_hidden(SQButtonDragBox *box)
-{
-	GList *iter, *children = iter = gtk_container_get_children(GTK_CONTAINER(box->hidden_box));
-	GSList *list = NULL;
-
-	while(iter)
-	{
-		if(GTK_WIDGET_VISIBLE(iter->data))
-		{
-			list = g_slist_append(list, g_object_get_data(G_OBJECT(iter->data), SQ_BUTTON_USER_DATA));
-		}
-
-		iter = g_list_next(iter);
-	}
-
-	g_list_free(children);
-
-	return list;
-}
-
-static GdkPixbuf *
-sq_create_icon_from_widget(GtkWidget *widget)
-{
-	GdkWindow *drawable = GDK_DRAWABLE(gtk_widget_get_parent_window(widget));
-	return gdk_pixbuf_get_from_drawable(NULL, drawable, NULL, widget->allocation.x, widget->allocation.y, 0, 0, widget->allocation.width, widget->allocation.height);
-}
-
-static void
-sq_create_indicator(SQButtonDragBox *box, gint x, gint y, gint width, gint height)
-{
-	gint attr_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_COLORMAP | GDK_WA_VISUAL;
-	GdkWindowAttr attributes = {
-		NULL,
-		0,
-		x, y,
-		width, height,
-		GDK_INPUT_OUTPUT,
-		gtk_widget_get_visual(box->visible_box),
-		gtk_widget_get_colormap(box->visible_box),
-		GDK_WINDOW_CHILD, 
-		NULL, NULL, NULL, FALSE
-	};
-
-	sq_delete_indicator(box);
-
-	box->indicator = gdk_window_new(gtk_widget_get_parent_window(box->visible_box), &attributes, attr_mask);
-	gdk_window_set_user_data(box->indicator, box->visible_box);
-
-	GdkPoint points[9];
-	points[0].x = 0;
-	points[0].y = 0;
-	points[1].x = width;
-	points[1].y = 0;
-	points[2].x = width/2+1;
-	points[2].y = width/2;
-	points[3].x = width/2+1;
-	points[3].y = height-1-width/2;
-	points[4].x = width;
-	points[4].y = height;
-	points[5].x = 0;
-	points[5].y = height-1;
-	points[6].x = width/2;
-	points[6].y = height-1-width/2;
-	points[7].x = width/2;
-	points[7].y = width/2;
-	points[8].x = 0;
-	points[8].y = 0;
-	GdkRegion *shape = gdk_region_polygon(points, 9, GDK_WINDING_RULE);
-
-	gdk_window_shape_combine_region(box->indicator, shape, 0, 0);
-
-	gdk_window_show(box->indicator);
-	gdk_window_raise(box->indicator);
-}
-
-static void
-sq_delete_indicator(SQButtonDragBox *box)
-{
-	if(box->indicator)
-	{
-		gdk_window_destroy(box->indicator);
-		box->indicator = NULL;
-	}
-}
-
-static gboolean
-cb_signal_blocker(GtkWidget *widget, gpointer user_data)
-{
-	return TRUE;
-}
-
-static void
-cb_sq_button_data_get(GtkWidget *widget, GdkDragContext *context, GtkSelectionData *data, guint info, guint time, gpointer user_data)
-{
-	gtk_widget_hide(widget);
-	gtk_selection_data_set(data, gdk_atom_intern(SQ_DRAG_TARGET_ID, FALSE), 8, NULL, 0);
-}
-
-static void
-cb_sq_button_drag_begin(GtkWidget *widget, GdkDragContext *context, gpointer user_data)
-{
-	GdkPixbuf *pixbuf = sq_create_icon_from_widget(widget);
-
-	gtk_drag_source_set_icon_pixbuf(widget, pixbuf);
-	g_object_unref(G_OBJECT(pixbuf));
-	gtk_widget_hide(widget);
-}
-
-static void
-cb_sq_button_drag_end(GtkWidget *widget, GdkDragContext *context, gpointer user_data)
-{
-	gtk_widget_show(widget);
-}
-
-static void
-cb_sq_visible_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint infom, guint time, gpointer user_data)
-{
-	SQButtonDragBox *box = SQ_BUTTON_DRAG_BOX(user_data);
-
-	GtkWidget *source = gtk_drag_get_source_widget(context);
-	GtkWidget *parent = gtk_widget_get_parent(source);
-
-	gtk_widget_ref(source);
-	gtk_container_remove(GTK_CONTAINER(parent), source);
-	gtk_box_pack_start(GTK_BOX(box->visible_box), source, FALSE, FALSE, 0);
-	gtk_widget_unref(source);
-
-	guint button = 0;
-	gint xoffset = box->visible_box->allocation.x;
-	GtkWidget *item;
-
-	GList *iter, *children = iter = gtk_container_get_children(GTK_CONTAINER(box->visible_box));
-
-	gint i = 0;
-
-	while(iter)
-	{
-		item = GTK_WIDGET(iter->data);
-
-		if(GTK_WIDGET_VISIBLE(item))
-		{
-			button++;
-			if((box->locked_buttons < button) && (x < (item->allocation.width/2 + item->allocation.x - xoffset)))
-			{
-				break;
-			}
-		}
-		i++;
-		iter = g_list_next(iter);
-	}
-
-	g_list_free(children);
-
-	gtk_box_reorder_child(GTK_BOX(box->visible_box), source, i);
-}
-
-static gboolean
-cb_sq_visible_drag_motion(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer user_data)
-{
-	SQButtonDragBox *box = SQ_BUTTON_DRAG_BOX(user_data);
-
-	guint button = 0;
-	gint ix, iy;
-	gint xoffset = box->visible_box->allocation.x;
-	GtkWidget *item;
-
-	GList *iter, *children = iter = gtk_container_get_children(GTK_CONTAINER(box->visible_box));
-
-	ix = xoffset + gtk_container_get_border_width(GTK_CONTAINER(box->visible_box));
-
-	while(iter)
-	{
-		item = GTK_WIDGET(iter->data);
-
-		if(GTK_WIDGET_VISIBLE(item))
-		{
-			button++;
-			if((box->locked_buttons < button) && (x < (item->allocation.width/2 + item->allocation.x - xoffset)))
-			{
-				ix = item->allocation.x;
-				break;
-			}
-			ix = item->allocation.x + item->allocation.width;
-		}
-		iter = g_list_next(iter);
-	}
-
-	g_list_free(children);
-
-	ix -= SQ_INDICATOR_SIZE/2 + 1;
-	iy = box->visible_box->allocation.y - SQ_INDICATOR_SIZE/2 + gtk_container_get_border_width(GTK_CONTAINER(box->visible_box));
-
-	if(!box->indicator)
-	{
-		sq_create_indicator(box, ix, iy, SQ_INDICATOR_SIZE, box->visible_box->allocation.height + SQ_INDICATOR_SIZE - gtk_container_get_border_width(GTK_CONTAINER(box->visible_box))*2);
-	}
-	else
-	{
-		gdk_window_move(box->indicator, ix, iy);
-	}
-
-	return FALSE;
-}
-
-static void
-cb_sq_visible_drag_leave(GtkWidget *widget, GdkDragContext *context, guint time, gpointer user_data)
-{
-	sq_delete_indicator(SQ_BUTTON_DRAG_BOX(user_data));
-}
-
-static void
-cb_sq_hidden_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint infom, guint time, gpointer user_data)
-{
-	GtkWidget *source = gtk_drag_get_source_widget(context);
-	GtkWidget *parent = gtk_widget_get_parent(source);
-
-	/* if the item was dragged back to the location it already was */
-	if(parent == SQ_BUTTON_DRAG_BOX(user_data)->hidden_box)
-	{
-		return;
-	}
-
-	gtk_widget_ref(source);
-	gtk_container_remove(GTK_CONTAINER(parent), source);
-	gtk_box_pack_start(GTK_BOX(SQ_BUTTON_DRAG_BOX(user_data)->hidden_box), source, FALSE, FALSE, 0);
-	gtk_widget_unref(source);
-}
-
diff --git a/src/button_drag_box.h b/src/button_drag_box.h
deleted file mode 100644
index f5041be..0000000
--- a/src/button_drag_box.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  Copyright (c) 2006 Stephan Arts <stephan at xfce.org>
- *
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_BUTTON_DRAG_BOX_H__
-#define __SQRCHIVER_BUTTON_DRAG_BOX_H__
-G_BEGIN_DECLS
-
-#define SQ_TYPE_BUTTON_DRAG_BOX sq_button_drag_box_get_type()
-
-#define SQ_BUTTON_DRAG_BOX(obj)(				\
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),  \
-			SQ_TYPE_BUTTON_DRAG_BOX,				  \
-			SQButtonDragBox))
-
-#define SQ_IS_BUTTON_DRAG_BOX(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			SQ_TYPE_BUTTON_DRAG_BOX))
-
-#define SQ_BUTTON_DRAG_BOX_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			SQ_TYPE_BUTTON_DRAG_BOX,	  \
-			SQButtonDragBoxClass))
-
-#define SQ_IS_BUTTON_DRAG_BOX_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			SQ_TYPE_BUTTON_DRAG_BOX()))	
-
-typedef struct _SQButtonDragBox SQButtonDragBox;
-
-struct _SQButtonDragBox
-{
-	GtkVBox parent;
-	GtkWidget *visible_box;
-	GtkWidget *hidden_box;
-	GtkTargetEntry entry;
-	GdkWindow *indicator;
-	guint locked_buttons;
-};
-
-typedef struct _SQButtonDragBoxClass SQButtonDragBoxClass;
-
-struct _SQButtonDragBoxClass
-{
-	GtkVBoxClass parent_class;
-};
-
-GType	  sq_button_drag_box_get_type();
-GtkWidget *sq_button_drag_box_new();
-
-void	   sq_button_drag_box_lock_buttons(SQButtonDragBox *box, guint buttons);
-void	   sq_button_drag_box_add_fixed_button(SQButtonDragBox *box, const gchar *label, gpointer user_data);
-void	   sq_button_drag_box_add_button(SQButtonDragBox *box, const gchar *label, gboolean visible, gpointer user_data);
-
-GSList	*sq_button_drag_box_get_visible(SQButtonDragBox *box);
-GSList	*sq_button_drag_box_get_hidden(SQButtonDragBox *box);
-
-G_END_DECLS
-#endif /* __SQRCHIVER_BUTTON_DRAG_BOX_H__*/
diff --git a/src/extract_dialog.c b/src/extract_dialog.c
deleted file mode 100644
index 7bf26a1..0000000
--- a/src/extract_dialog.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- *  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 Library 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.
- */
- /*
-	TODO: Fix props
- */
-
-#include <config.h>
-#include <string.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libxfce4util/libxfce4util.h>
-#include <libsqueeze/libsqueeze.h>
-
-#include "extract_dialog.h"
-#include "widget_factory.h"
-
-static void
-sq_extract_archive_dialog_class_init(SQExtractArchiveDialogClass *archive_class);
-
-static void
-sq_extract_archive_dialog_init(SQExtractArchiveDialog *archive);
-
-void
-sq_extract_dialog_option_toggled (GtkWidget *widget, gpointer data);
-void
-sq_extract_dialog_option_child_notify(GtkWidget *widget, GParamSpec *, gpointer data);
-
-GType
-sq_extract_archive_dialog_get_type (void)
-{
-	static GType sq_extract_archive_dialog_type = 0;
-
- 	if (!sq_extract_archive_dialog_type)
-	{
- 		static const GTypeInfo sq_extract_archive_dialog_info = 
-		{
-			sizeof (SQExtractArchiveDialogClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_extract_archive_dialog_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQExtractArchiveDialog),
-			0,
-			(GInstanceInitFunc) sq_extract_archive_dialog_init,
-			NULL
-		};
-
-		sq_extract_archive_dialog_type = g_type_register_static (GTK_TYPE_FILE_CHOOSER_DIALOG, "SQExtractArchiveDialog", &sq_extract_archive_dialog_info, 0);
-	}
-	return sq_extract_archive_dialog_type;
-}
-
-static void
-sq_extract_archive_dialog_class_init(SQExtractArchiveDialogClass *dialog_class)
-{
-}
-
-static void
-sq_extract_archive_dialog_init(SQExtractArchiveDialog *dialog)
-{
-	GtkWidget *hbox = gtk_hbox_new(TRUE, 5);
-	GtkWidget *l_label = gtk_label_new(_("<b>Extract files:</b>"));
-	GtkWidget *r_label = gtk_label_new(_("<b>Options:</b>"));
-	GtkWidget *l_vbox;
-	gtk_label_set_use_markup(GTK_LABEL(l_label), TRUE);
-	gtk_label_set_use_markup(GTK_LABEL(r_label), TRUE);
-
-	l_vbox = gtk_vbox_new(FALSE, 0);
-
-	dialog->l_frame = gtk_frame_new( NULL );
-	gtk_frame_set_label_widget(GTK_FRAME(dialog->l_frame), l_label);
-	gtk_box_pack_start(GTK_BOX(hbox), dialog->l_frame, TRUE, TRUE, 0);
-	gtk_container_add(GTK_CONTAINER(dialog->l_frame), l_vbox);
-	dialog->all_files_radio = gtk_radio_button_new_with_mnemonic (NULL, _("All files"));
-	dialog->sel_files_radio = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(dialog->all_files_radio), _("Selected files"));
-
-	gtk_box_pack_start(GTK_BOX(l_vbox), dialog->all_files_radio, FALSE, FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(l_vbox), dialog->sel_files_radio, FALSE, FALSE, 0);
-
-	dialog->r_frame = gtk_frame_new( NULL );
-	gtk_frame_set_label_widget(GTK_FRAME(dialog->r_frame), r_label);
-	gtk_box_pack_start(GTK_BOX(hbox), dialog->r_frame, TRUE, TRUE, 0);
-
-	gtk_box_pack_end(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 0);
-	gtk_dialog_add_buttons(GTK_DIALOG(dialog), 
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-			_("Extract"), GTK_RESPONSE_OK,
-			NULL);
-	gtk_widget_show_all(hbox);
-}
-
-GtkWidget *
-sq_extract_archive_dialog_new(LSQArchive *archive, gboolean sel_option)
-{
-	SQExtractArchiveDialog *dialog;
-	GtkWidget *r_vbox;
-	gchar *filename;
-	gchar **filename_components;
-
-	dialog = g_object_new(sq_extract_archive_dialog_get_type(), "title", _("Extract archive"), "action", GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, "do-overwrite-confirmation", TRUE, NULL);
-/* Handle 'extract selected files' option */
-	gtk_widget_set_sensitive(dialog->sel_files_radio, sel_option);
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->sel_files_radio), sel_option);
-
-	r_vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(dialog->r_frame), r_vbox);
-
-  if((dialog->command_options = lsq_archive_get_command_options(archive, LSQ_COMMAND_TYPE_EXTRACT)))
-  {
-    LSQCommandOptionPair **options_iter;
-    for(options_iter = dialog->command_options; *options_iter; options_iter++)
-    {
-      GtkWidget *widget;
-      widget = gtk_check_button_new_with_label((*options_iter)->option->blurb);
-      gtk_box_pack_start(GTK_BOX(r_vbox), widget, FALSE, FALSE, 0);
-    }
-  }
-
-	/* FIXME, does not work correctly when there are more dots in a filename then the one identifying the extention */
-	filename = lsq_archive_get_filename(archive);
-	filename_components = g_strsplit(filename, ".", 2);
-	g_free(filename);
-	gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), filename_components[0]);
-	g_strfreev(filename_components);
-
-	gtk_widget_show_all(r_vbox);
-	return GTK_WIDGET(dialog);
-}
-
-void
-sq_extract_dialog_option_toggled (GtkWidget *widget, gpointer data)
-{
-	GValue *val = g_new0(GValue, 1);
-
-	val = g_value_init(val, G_TYPE_BOOLEAN);
-
-	g_value_set_boolean(val, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
-
-	g_free(val);
-}
-
-void
-sq_extract_dialog_option_child_notify (GtkWidget *widget, GParamSpec *pspec, gpointer data)
-{
-	GValue *val = g_new0(GValue, 1);
-	if(strcmp(g_param_spec_get_name(pspec), "text"))
-	{
-		val = g_value_init(val, G_TYPE_STRING);
-		g_object_get_property(G_OBJECT(widget), "text", val);
-	}
-	g_free(val);
-}
diff --git a/src/extract_dialog.h b/src/extract_dialog.h
deleted file mode 100644
index fb079cd..0000000
--- a/src/extract_dialog.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_EXTRACT_ARCHIVE_DIALOG_H__
-#define __SQRCHIVER_EXTRACT_ARCHIVE_DIALOG_H__
-G_BEGIN_DECLS
-
-#define SQ_EXTRACT_ARCHIVE_DIALOG(obj)		 ( \
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),	\
-			sq_extract_archive_dialog_get_type(),	  \
-			SQExtractArchiveDialog))
-
-#define SQ_IS_EXTRACT_ARCHIVE_DIALOG(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			sq_extract_archive_dialog_get_type()))
-
-#define SQ_EXTRACT_ARCHIVE_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			sq_extract_archive_dialog_get_type(),	  \
-			SQExtractArchiveDialogClass))
-
-#define SQ_IS_EXTRACT_ARCHIVE_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			sq_extract_archive_dialog_get_type()))
-
-typedef struct _SQExtractArchiveDialog SQExtractArchiveDialog;
-
-struct _SQExtractArchiveDialog
-{
-	GtkFileChooserDialog parent;
-	GtkWidget *l_frame;
-	GtkWidget *r_frame;
-	GtkWidget *all_files_radio;
-	GtkWidget *sel_files_radio;
-	LSQArchive *archive;
-  LSQCommandOptionPair **command_options;
-};
-
-typedef struct _SQExtractArchiveDialogClass SQExtractArchiveDialogClass;
-
-struct _SQExtractArchiveDialogClass
-{
-	GtkFileChooserDialogClass parent_class;
-};
-
-GType	  sq_extract_archive_dialog_get_type();
-GtkWidget *sq_extract_archive_dialog_new(LSQArchive *, gboolean);
-
-G_END_DECLS
-#endif /* __SQRCHIVER_EXTRACT_ARCHIVE_DIALOG_H__ */
diff --git a/src/message_dialog.c b/src/message_dialog.c
deleted file mode 100644
index 8e19d8b..0000000
--- a/src/message_dialog.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libxfce4util/libxfce4util.h>
-#include <libsqueeze/libsqueeze.h>
-
-#include "message_dialog.h"
-#include "widget_factory.h"
-
-static void
-sq_message_dialog_class_init(SQMessageDialogClass *archive_class);
-
-static void
-sq_message_dialog_init(SQMessageDialog *archive);
-
-static void
-sq_message_dialog_dispose(GObject *dialog);
-
-static gboolean
-sq_message_dialog_progressbar_pulse(SQMessageDialog *dialog);
-static void
-cb_sq_message_dialog_close(GtkButton *button, SQMessageDialog *dialog);
-
-static GObjectClass *parent_class = NULL;
-
-GType
-sq_message_dialog_get_type (void)
-{
-	static GType sq_message_dialog_type = 0;
-
- 	if (!sq_message_dialog_type)
-	{
- 		static const GTypeInfo sq_message_dialog_info = 
-		{
-			sizeof (SQMessageDialogClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_message_dialog_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQMessageDialog),
-			0,
-			(GInstanceInitFunc) sq_message_dialog_init,
-			NULL
-		};
-
-		sq_message_dialog_type = g_type_register_static (GTK_TYPE_WINDOW, "SQMessageDialog", &sq_message_dialog_info, 0);
-	}
-	return sq_message_dialog_type;
-}
-
-static void
-sq_message_dialog_class_init(SQMessageDialogClass *dialog_class)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (dialog_class);
-
-	parent_class = gtk_type_class (GTK_TYPE_WINDOW);
-
-	object_class->dispose = sq_message_dialog_dispose;
-}
-
-static void
-sq_message_dialog_init(SQMessageDialog *dialog)
-{
-	GtkWidget *vbox = gtk_vbox_new(FALSE, 3);
-	GtkWidget *separator;
-	GtkWidget *button_box;
-	GtkWidget *cancel_button;
-	dialog->message_label = gtk_label_new("being silly here");
-	dialog->progress_bar = gtk_progress_bar_new();
-
-	gtk_label_set_ellipsize(GTK_LABEL(dialog->message_label), PANGO_ELLIPSIZE_MIDDLE);
-
-	separator = gtk_hseparator_new();
-	button_box = gtk_hbutton_box_new();
-
-	gtk_box_pack_end(GTK_BOX(vbox), button_box, FALSE, FALSE, 0);
-	gtk_box_pack_end(GTK_BOX(vbox), separator, FALSE, FALSE, 0);
-	gtk_box_pack_end(GTK_BOX(vbox), dialog->message_label, FALSE, FALSE, 0);
-	gtk_box_pack_end(GTK_BOX(vbox), dialog->progress_bar, TRUE, FALSE, 5);
-
-
-	gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_END);
-
-	cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
-
-	g_signal_connect(cancel_button, "clicked", G_CALLBACK(cb_sq_message_dialog_close), dialog);
-
-	gtk_container_add(GTK_CONTAINER(button_box), cancel_button);
-
-	gtk_widget_show_all(vbox);
-
-	gtk_container_add(GTK_CONTAINER(dialog), vbox);
-}
-
-static void
-sq_message_dialog_dispose(GObject *dialog)
-{
-	if(SQ_MESSAGE_DIALOG(dialog)->archive)
-	{
-		GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(dialog), 
-									   GTK_DIALOG_MODAL,
-									   GTK_MESSAGE_WARNING,
-									   GTK_BUTTONS_YES_NO,
-									   "Are you sure you want to cancel this operation?");
-		if(gtk_dialog_run(GTK_DIALOG(warning_dialog)) == GTK_RESPONSE_YES)
-		{
-			lsq_archive_stop(SQ_MESSAGE_DIALOG(dialog)->archive);
-			SQ_MESSAGE_DIALOG(dialog)->archive = NULL;
-
-		}
-		gtk_widget_destroy(warning_dialog);
-
-
-		g_timeout_add(200, (GSourceFunc)sq_message_dialog_progressbar_pulse, dialog);
-	}
-	else
-		parent_class->dispose(dialog);
-}
-
-static gboolean
-sq_message_dialog_progressbar_pulse(SQMessageDialog *dialog)
-{
-	if(dialog->archive)
-	{
-		gtk_progress_bar_pulse(GTK_PROGRESS_BAR(dialog->progress_bar));
-		gtk_progress_bar_set_text(GTK_PROGRESS_BAR(dialog->progress_bar), lsq_archive_get_state_msg(dialog->archive));
-		return TRUE;
-	}
-	return FALSE;
-}
-
-static void
-cb_sq_message_dialog_close(GtkButton *button, SQMessageDialog *dialog)
-{
-	gtk_widget_destroy(GTK_WIDGET(dialog));
-}
-
-GtkWidget *
-sq_message_dialog_new(GtkWindowType type, LSQArchive *archive)
-{
-	SQMessageDialog *dialog;
-	gchar *filename;
-
-	dialog = g_object_new(sq_message_dialog_get_type(),
-			"title", _("Archive manager"),
-			"type", type,
-			"resizable", FALSE,
-			"deletable", FALSE,
-			"modal", TRUE,
-			NULL);
-
-	gtk_widget_set_size_request(GTK_WIDGET(dialog), 300,100);
-
-	SQ_MESSAGE_DIALOG(dialog)->archive = archive;
-
-	g_timeout_add(200, (GSourceFunc)sq_message_dialog_progressbar_pulse, dialog);
-
-	filename = lsq_archive_get_filename(archive);
-	gtk_label_set_text(GTK_LABEL(dialog->message_label), filename);
-	g_free(filename);
-
-	return (GtkWidget *)dialog;
-}
diff --git a/src/message_dialog.h b/src/message_dialog.h
deleted file mode 100644
index 8ccb396..0000000
--- a/src/message_dialog.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_MESSAGE_DIALOG_H__
-#define __SQRCHIVER_MESSAGE_DIALOG_H__
-G_BEGIN_DECLS
-
-#define SQ_MESSAGE_DIALOG(obj)		 ( \
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),	\
-			sq_message_dialog_get_type(),	  \
-			SQMessageDialog))
-
-#define SQ_IS_MESSAGE_DIALOG(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			sq_message_dialog_get_type()))
-
-#define SQ_MESSAGE_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			sq_message_dialog_get_type(),	  \
-			SQMessageDialogClass))
-
-#define SQ_IS_MESSAGE_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			sq_message_dialog_get_type()))
-
-typedef struct _SQMessageDialog SQMessageDialog;
-
-struct _SQMessageDialog
-{
-	GtkWindow parent;
-	LSQArchive *archive;
-	GtkWidget *message_label;
-	GtkWidget *progress_bar;
-};
-
-typedef struct _SQMessageDialogClass SQMessageDialogClass;
-
-struct _SQMessageDialogClass
-{
-	GtkWindowClass parent;
-};
-
-GType	  sq_message_dialog_get_type();
-GtkWidget *sq_message_dialog_new();
-
-G_END_DECLS
-#endif /* __SQRCHIVER_MESSAGE_DIALOG_H__ */
diff --git a/src/navigation_bar.c b/src/navigation_bar.c
deleted file mode 100644
index 1b71d0b..0000000
--- a/src/navigation_bar.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <string.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libxfce4util/libxfce4util.h>
-#include <libsqueeze/libsqueeze.h>
-#include "archive_store.h"
-#include "navigation_bar.h"
-
-
-static void
-sq_navigation_bar_class_init(SQNavigationBarClass *archive_class);
-
-static void
-sq_navigation_bar_init(SQNavigationBar *archive);
-static void
-sq_navigation_bar_dispose(GObject *object);
-
-static void
-cb_sq_navigation_bar_pwd_changed(SQArchiveStore *store, LSQArchiveIter *, SQNavigationBar *bar);
-
-static void
-cb_sq_navigation_bar_new_archive(SQArchiveStore *store, SQNavigationBar *bar);
-
-/* properties */
-enum {
-	SQ_NAVIGATION_BAR_NAV_HISTORY = 1
-};
-
-static GObjectClass *parent_class;
-
-GType
-sq_navigation_bar_get_type (void)
-{
-	static GType sq_navigation_bar_type = 0;
-
- 	if (!sq_navigation_bar_type)
-	{
- 		static const GTypeInfo sq_navigation_bar_info = 
-		{
-			sizeof (SQNavigationBarClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_navigation_bar_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQNavigationBar),
-			0,
-			(GInstanceInitFunc) sq_navigation_bar_init,
-			NULL
-		};
-
-		sq_navigation_bar_type = g_type_register_static (GTK_TYPE_CONTAINER, "SQNavigationBar", &sq_navigation_bar_info, 0);
-	}
-	return sq_navigation_bar_type;
-}
-
-static void
-sq_navigation_bar_class_init(SQNavigationBarClass *navigation_bar_class)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (navigation_bar_class);
-
-	parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
-
-	object_class->dispose	 = sq_navigation_bar_dispose;
-}
-
-static void
-sq_navigation_bar_init(SQNavigationBar *navigation_bar)
-{
-	GTK_WIDGET_SET_FLAGS(navigation_bar, GTK_NO_WINDOW);
-	gtk_widget_set_redraw_on_allocate(GTK_WIDGET(navigation_bar), FALSE);
-
-	navigation_bar->_cb_pwd_changed = cb_sq_navigation_bar_pwd_changed;
-	navigation_bar->_cb_new_archive = cb_sq_navigation_bar_new_archive;
-}
-
-static void
-sq_navigation_bar_dispose(GObject *object)
-{
-	SQNavigationBar *navigation_bar = SQ_NAVIGATION_BAR(object);
-	if(navigation_bar->store)
-	{
-		if(navigation_bar->_cb_pwd_changed)
-		{
-			g_signal_handlers_disconnect_by_func(navigation_bar->store, navigation_bar->_cb_pwd_changed, navigation_bar);
-			navigation_bar->_cb_pwd_changed = NULL;
-		}
-		if(navigation_bar->_cb_new_archive)
-		{
-			g_signal_handlers_disconnect_by_func(navigation_bar->store, navigation_bar->_cb_new_archive, navigation_bar);
-			navigation_bar->_cb_new_archive = NULL;
-		}
-		navigation_bar->store = NULL;
-	}
-	parent_class->dispose(object);
-}
-
-void
-sq_navigation_bar_set_store(SQNavigationBar *navigation_bar, SQArchiveStore *store)
-{
-	if(navigation_bar->store)
-	{
-		if(navigation_bar->_cb_pwd_changed)
-		{
-			g_signal_handlers_disconnect_by_func(navigation_bar->store, navigation_bar->_cb_pwd_changed, navigation_bar);
-		}
-		if(navigation_bar->_cb_new_archive)
-		{
-			g_signal_handlers_disconnect_by_func(navigation_bar->store, navigation_bar->_cb_new_archive, navigation_bar);
-		}
-		navigation_bar->store = NULL;
-	}
-
-	navigation_bar->store = store;
-	if(store)
-	{
-		g_return_if_fail(SQ_IS_ARCHIVE_STORE(store));
-		g_return_if_fail(SQ_IS_NAVIGATION_BAR(navigation_bar));
-		g_signal_connect(G_OBJECT(store), "sq-pwd-changed", (GCallback)navigation_bar->_cb_pwd_changed, navigation_bar);
-		g_signal_connect(G_OBJECT(store), "sq-new-archive", (GCallback)navigation_bar->_cb_new_archive, navigation_bar);
-	}
-
-	navigation_bar->_cb_store_set(navigation_bar);
-}
-
-SQNavigationBar *
-sq_navigation_bar_new(SQArchiveStore *store)
-{
-	SQNavigationBar *bar;
-
-	bar = g_object_new(SQ_TYPE_NAVIGATION_BAR, NULL);
-
-	if(store)
-		sq_navigation_bar_set_store(bar, store);
-
-	return bar;
-}
-
-static void
-cb_sq_navigation_bar_pwd_changed(SQArchiveStore *store, LSQArchiveIter *path, SQNavigationBar *bar)
-{
-}
-
-static void
-cb_sq_navigation_bar_new_archive(SQArchiveStore *store, SQNavigationBar *bar)
-{
-}
-
diff --git a/src/navigation_bar.h b/src/navigation_bar.h
deleted file mode 100644
index 4554fd3..0000000
--- a/src/navigation_bar.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_NAVIGATION_BAR_H__
-#define __SQRCHIVER_NAVIGATION_BAR_H__
-G_BEGIN_DECLS
-
-#define SQ_TYPE_NAVIGATION_BAR sq_navigation_bar_get_type()
-
-#define SQ_NAVIGATION_BAR(obj)(				\
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),  \
-			SQ_TYPE_NAVIGATION_BAR,				  \
-			SQNavigationBar))
-
-#define SQ_IS_NAVIGATION_BAR(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			SQ_TYPE_NAVIGATION_BAR))
-
-#define SQ_NAVIGATION_BAR_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			SQ_TYPE_NAVIGATION_BAR,	  \
-			SQNavigationBarClass))
-
-#define SQ_IS_NAVIGATION_BAR_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			SQ_TYPE_NAVIGATION_BAR()))	
-
-typedef struct _SQNavigationBar SQNavigationBar;
-
-struct _SQNavigationBar
-{
-	GtkContainer parent;
-	SQArchiveStore *store;
-	void (*_cb_pwd_changed)(SQArchiveStore *, LSQArchiveIter *, SQNavigationBar *);
-	void (*_cb_new_archive)(SQArchiveStore *, SQNavigationBar *);
-	void (*_cb_store_set)(SQNavigationBar *);
-};
-
-typedef struct _SQNavigationBarClass SQNavigationBarClass;
-
-struct _SQNavigationBarClass
-{
-	GtkToolbarClass parent_class;
-};
-
-GType	  sq_navigation_bar_get_type();
-SQNavigationBar *sq_navigation_bar_new();
-void	   sq_navigation_bar_set_store(SQNavigationBar *navigation_bar, SQArchiveStore *store);
-
-G_END_DECLS
-#endif /* __SQRCHIVER_NAVIGATION_BAR_H__*/
diff --git a/src/new_dialog.c b/src/new_dialog.c
deleted file mode 100644
index d76aae4..0000000
--- a/src/new_dialog.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- *  Copyright (c) 2006 Stephan Arts <stephan at xfce.org>
- *
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <string.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libxfce4util/libxfce4util.h>
-#include <libsqueeze/libsqueeze.h>
-
-#include "new_dialog.h"
-
-static void
-sq_new_archive_dialog_class_init(SQNewArchiveDialogClass *archive_class);
-
-static void
-sq_new_archive_dialog_init(SQNewArchiveDialog *archive);
-
-GType
-sq_new_archive_dialog_get_type (void)
-{
-	static GType sq_new_archive_dialog_type = 0;
-
- 	if (!sq_new_archive_dialog_type)
-	{
- 		static const GTypeInfo sq_new_archive_dialog_info = 
-		{
-			sizeof (SQNewArchiveDialogClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_new_archive_dialog_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQNewArchiveDialog),
-			0,
-			(GInstanceInitFunc) sq_new_archive_dialog_init,
-			NULL
-		};
-
-		sq_new_archive_dialog_type = g_type_register_static (GTK_TYPE_FILE_CHOOSER_DIALOG, "SQNewArchiveDialog", &sq_new_archive_dialog_info, 0);
-	}
-	return sq_new_archive_dialog_type;
-}
-
-static void
-sq_new_archive_dialog_class_init(SQNewArchiveDialogClass *dialog_class)
-{
-}
-
-static void
-sq_new_archive_dialog_init(SQNewArchiveDialog *dialog)
-{
-	GtkWidget *hbox = gtk_hbox_new(FALSE, 10);
-    //GSList *_supported_mime_types;
-	gtk_box_pack_start (GTK_BOX (hbox),gtk_label_new (_("Archive type:")),FALSE, FALSE, 0);
-
-	dialog->archive_types_combo = gtk_combo_box_new_text();
-	gtk_box_pack_start (GTK_BOX (hbox),dialog->archive_types_combo,FALSE, FALSE, 0);
-
-	gtk_widget_show_all(hbox);
-
-    /*
-	dialog->supported_mime_types = lsq_get_supported_mime_types(LSQ_COMMAND_TYPE_ADD);
-	_supported_mime_types = dialog->supported_mime_types;
-    */
-
-	dialog->file_filter = gtk_file_filter_new();
-	gtk_file_filter_set_name(dialog->file_filter, _("Archives"));
-    /*
-	while(_supported_mime_types)
-	{
-		gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo),
-				lsq_mime_support_get_comment((LSQMimeSupport *)(_supported_mime_types->data)));
-
-		gtk_file_filter_add_mime_type(dialog->file_filter,
-				lsq_mime_support_get_name((LSQMimeSupport *)(_supported_mime_types->data)));
-
-		_supported_mime_types = g_slist_next(_supported_mime_types);
-	}
-    */
-
-	gtk_box_pack_end(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, TRUE, 0);
-	gtk_dialog_add_buttons(GTK_DIALOG(dialog), 
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-			GTK_STOCK_NEW, GTK_RESPONSE_OK,
-			NULL);
-	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-}
-
-GtkWidget *
-sq_new_archive_dialog_new(void)
-{
-	GtkWidget *dialog;
-
-	dialog = g_object_new(sq_new_archive_dialog_get_type(),
-			"title", _("Create new archive"),
-			"do-overwrite-confirmation", TRUE,
-			"action", GTK_FILE_CHOOSER_ACTION_SAVE,
-			NULL);
-	gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), SQ_NEW_ARCHIVE_DIALOG(dialog)->file_filter);
-
-	return dialog;
-}
-
-GFile *
-sq_new_archive_dialog_get_file(SQNewArchiveDialog *dialog)
-{
-	GFile *file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER(dialog));
-
-    if (file)
-	{
-		/*
-		const gchar *mime_type = ""; //lsq_mime_support_get_name(((LSQMimeSupport *)_supported_mime_types->data));
-		gchar *suffix = NULL;
-		gint i;
-		GSList *_supported_mime_types = dialog->supported_mime_types;
-		for(i = 0; i < gtk_combo_box_get_active(GTK_COMBO_BOX(dialog->archive_types_combo)); i++)
-		{
-			_supported_mime_types = g_slist_next(_supported_mime_types);
-		}
-		if(!strcmp(mime_type, "application/x-tar")) suffix = ".tar";
-		if(!strcmp(mime_type, "application/x-compressed-tar")) suffix = ".tar.gz";
-		if(!strcmp(mime_type, "application/x-bzip-compressed-tar")) suffix = ".tar.bz2";
-		if(!strcmp(mime_type, "application/x-tarz")) suffix = ".tar.Z";
-		if(!strcmp(mime_type, "application/x-tzo")) suffix = ".tzo";
-
-		if(!strcmp(mime_type, "application/zip")) suffix = ".zip";
-
-		if(!strcmp(mime_type, "application/x-rar"))  suffix = ".rar";
-
-
-		if(!strcmp(mime_type, "application/x-gzip"))  suffix = ".gz";
-		if(!strcmp(mime_type, "application/x-bzip"))  suffix = ".bz2";
-		if(!strcmp(mime_type, "application/x-lzop"))  suffix = ".lzo";
-		if(!strcmp(mime_type, "application/x-compress"))  suffix = ".Z";
-		*/
-	}
-    return file;
-}
diff --git a/src/new_dialog.h b/src/new_dialog.h
deleted file mode 100644
index 79073ad..0000000
--- a/src/new_dialog.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- *  Copyright (c) 2006 Stephan Arts <stephan at xfce.org>
- *
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_NEW_ARCHIVE_DIALOG_H__
-#define __SQRCHIVER_NEW_ARCHIVE_DIALOG_H__
-G_BEGIN_DECLS
-
-#define SQ_NEW_ARCHIVE_DIALOG(obj)		 ( \
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),	\
-			sq_new_archive_dialog_get_type(),	  \
-			SQNewArchiveDialog))
-
-#define SQ_IS_NEW_ARCHIVE_DIALOG(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			sq_new_archive_dialog_get_type()))
-
-#define SQ_NEW_ARCHIVE_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			sq_new_archive_dialog_get_type(),	  \
-			SQNewArchiveDialogClass))
-
-#define SQ_IS_NEW_ARCHIVE_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			sq_new_archive_dialog_get_type()))
-
-typedef struct _SQNewArchiveDialog SQNewArchiveDialog;
-
-struct _SQNewArchiveDialog
-{
-	GtkFileChooserDialog parent;
-	GtkWidget *archive_types_combo;
-	GtkFileFilter *file_filter; /* HACK -- should just be set inside the constructor */
-	GSList *supported_mime_types;
-};
-
-typedef struct _SQNewArchiveDialogClass SQNewArchiveDialogClass;
-
-struct _SQNewArchiveDialogClass
-{
-	GtkFileChooserDialogClass parent_class;
-};
-
-GType sq_new_archive_dialog_get_type();
-GtkWidget *sq_new_archive_dialog_new();
-GFile *sq_new_archive_dialog_get_file(SQNewArchiveDialog *dialog);
-
-G_END_DECLS
-#endif /* __SQRCHIVER_NEW_ARCHIVE_DIALOG_H__ */
diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c
deleted file mode 100644
index 89515d0..0000000
--- a/src/preferences_dialog.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libsqueeze/libsqueeze.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "button_drag_box.h"
-#include "preferences_dialog.h"
-
-static void
-sq_preferences_dialog_class_init(SQPreferencesDialogClass *archive_class);
-
-static void
-sq_preferences_dialog_init(SQPreferencesDialog *archive);
-
-static void
-cb_sq_preferences_dialog_item_changed(GtkWidget *widget, gpointer user_data);
-
-inline static void
-sq_preferences_dialog_create_support_page(SQPreferencesDialog *dialog);
-/*
-inline static void
-sq_preferences_dialog_create_general_page(SQPreferencesDialog *dialog);
-*/
-static GtkWidget *
-sq_preferences_dialog_create_support_object_page(SQSupportTuple *tuple);
-
-GType
-sq_preferences_dialog_get_type (void)
-{
-	static GType sq_preferences_dialog_type = 0;
-
- 	if (!sq_preferences_dialog_type)
-	{
- 		static const GTypeInfo sq_preferences_dialog_info = 
-		{
-			sizeof (SQPreferencesDialogClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_preferences_dialog_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQPreferencesDialog),
-			0,
-			(GInstanceInitFunc) sq_preferences_dialog_init,
-			NULL
-		};
-
-		sq_preferences_dialog_type = g_type_register_static (GTK_TYPE_DIALOG, "SQPreferencesDialog", &sq_preferences_dialog_info, 0);
-	}
-	return sq_preferences_dialog_type;
-}
-
-static void
-sq_preferences_dialog_class_init(SQPreferencesDialogClass *dialog_class)
-{
-}
-
-static void
-sq_preferences_dialog_init(SQPreferencesDialog *dialog)
-{
-	GtkWidget *box;
-	GtkWidget *label;
-	GtkWidget *frame;
-	dialog->notebook = gtk_notebook_new();
-
-	box = gtk_vbox_new(FALSE, 0);
-	label = gtk_label_new_with_mnemonic(_("_General"));
-	gtk_notebook_append_page(GTK_NOTEBOOK(dialog->notebook), box, label);
-
-	frame  = gtk_frame_new(_("Archive viewer:"));
-	gtk_box_pack_start(GTK_BOX(box), frame,FALSE, FALSE, 0);
-	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
-	gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
-
-	GtkWidget *_vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(frame), _vbox);
-	gtk_container_set_border_width(GTK_CONTAINER(_vbox), 0);
-
-	dialog->general.viewer.show_icons = gtk_check_button_new_with_mnemonic(_("_Show Icons"));
-	gtk_box_pack_start(GTK_BOX(_vbox), dialog->general.viewer.show_icons, FALSE, FALSE, 0);
-
-	dialog->general.viewer.rules_hint = gtk_check_button_new_with_mnemonic(_("_Rules Hint"));
-	gtk_box_pack_start(GTK_BOX(_vbox), dialog->general.viewer.rules_hint, FALSE, FALSE, 0);
-
-	frame  = gtk_frame_new(_("Sorting:"));
-	gtk_box_pack_start(GTK_BOX(_vbox), frame,FALSE, FALSE, 0);
-	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
-	gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
-
-	GtkWidget *sort_vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(frame), sort_vbox);
-	gtk_container_set_border_width(GTK_CONTAINER(sort_vbox), 0);
-
-	dialog->general.viewer.sorting.sort_case = gtk_check_button_new_with_mnemonic(_("Sort _Case Sensitive "));
-	gtk_box_pack_start(GTK_BOX(sort_vbox), dialog->general.viewer.sorting.sort_case, FALSE, FALSE, 0);
-
-	dialog->general.viewer.sorting.sort_folders = gtk_check_button_new_with_mnemonic(_("Sort _Folders First"));
-	gtk_box_pack_start(GTK_BOX(sort_vbox), dialog->general.viewer.sorting.sort_folders, FALSE, FALSE, 0);
-
-	frame  = gtk_frame_new(_("Navigation bar:"));
-	gtk_box_pack_start(GTK_BOX(box), frame,FALSE, FALSE, 0);
-	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
-	gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
-
-	GtkWidget *nav_vbox = gtk_hbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(frame), nav_vbox);
-	gtk_container_set_border_width(GTK_CONTAINER(nav_vbox), 0);
-
-	sq_preferences_dialog_create_support_page(dialog);
-
-	box = gtk_hbox_new(FALSE, 0);
-	label = gtk_label_new_with_mnemonic(_("_Behaviour"));
-	gtk_notebook_append_page(GTK_NOTEBOOK(dialog->notebook), box, label);
-
-	gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), dialog->notebook);
-	gtk_widget_show_all(dialog->notebook);
-	gtk_dialog_add_buttons(GTK_DIALOG(dialog), 
-			GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
-			NULL);
-	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-}
-
-GtkWidget *
-sq_preferences_dialog_new(void)
-{
-	GtkWidget *dialog;
-
-	dialog = g_object_new(sq_preferences_dialog_get_type(),
-			"title", _("Preferences"),
-			NULL);
-
-	return dialog;
-}
-
-/*
-inline static void
-sq_preferences_dialog_create_general_page(SQPreferencesDialog *dialog)
-{
-	box = gtk_vbox_new(FALSE, 0);
-	label = gtk_label_new_with_mnemonic(_("_General"));
-	gtk_notebook_append_page(GTK_NOTEBOOK(dialog->notebook), box, label);
-
-	frame  = gtk_frame_new(_("Archive viewer:"));
-	gtk_box_pack_start(GTK_BOX(box), frame,FALSE, FALSE, 0);
-	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
-	gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
-
-	GtkWidget *_vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(frame), _vbox);
-	gtk_container_set_border_width(GTK_CONTAINER(_vbox), 0);
-
-	dialog->general.viewer.show_icons = gtk_check_button_new_with_mnemonic(_("_Show Icons"));
-	gtk_box_pack_start(GTK_BOX(_vbox), dialog->general.viewer.show_icons, FALSE, FALSE, 0);
-
-	dialog->general.viewer.rules_hint = gtk_check_button_new_with_mnemonic(_("_Rules Hint"));
-	gtk_box_pack_start(GTK_BOX(_vbox), dialog->general.viewer.rules_hint, FALSE, FALSE, 0);
-
-	frame  = gtk_frame_new(_("Sorting:"));
-	gtk_box_pack_start(GTK_BOX(_vbox), frame,FALSE, FALSE, 0);
-	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
-	gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
-
-	GtkWidget *sort_vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(frame), sort_vbox);
-	gtk_container_set_border_width(GTK_CONTAINER(sort_vbox), 0);
-
-	dialog->general.viewer.sorting.sort_case = gtk_check_button_new_with_mnemonic(_("Sort _Case Sensitive "));
-	gtk_box_pack_start(GTK_BOX(sort_vbox), dialog->general.viewer.sorting.sort_case, FALSE, FALSE, 0);
-
-	dialog->general.viewer.sorting.sort_folders = gtk_check_button_new_with_mnemonic(_("Sort _Folders First"));
-	gtk_box_pack_start(GTK_BOX(sort_vbox), dialog->general.viewer.sorting.sort_folders, FALSE, FALSE, 0);
-
-#ifdef SQ_MAIN_ANY_BAR
-  frame = sq_widget_factory_create_property_widget(window->widget_factory, G_OBJECT(window), "navigation-style");
-	gtk_box_pack_start(GTK_BOX(box), frame,FALSE, FALSE, 0);
-#endif
-}
-*/
-
-inline static void
-sq_preferences_dialog_create_support_page(SQPreferencesDialog *dialog)
-{
-	GtkWidget *iconview;
-	GtkWidget *label;
-	GtkWidget *box = gtk_hbox_new(FALSE, 0);
-	label = gtk_label_new_with_mnemonic(_("_Archivers"));
-	gtk_notebook_append_page(GTK_NOTEBOOK(dialog->notebook), box, label);
-
-	GtkTreeModel *store = GTK_TREE_MODEL(gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING));
-	GtkCellRenderer *render = gtk_cell_renderer_pixbuf_new();
-
-	iconview = gtk_icon_view_new_with_model(store);
-	g_signal_connect(G_OBJECT(iconview), "selection-changed", (GCallback)cb_sq_preferences_dialog_item_changed, dialog);
-
-	GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
-	gtk_widget_set_size_request(scroll, 84, 84);
-
-	gtk_container_add(GTK_CONTAINER(scroll), iconview);
-	/* gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), iconview); */
-	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
-	gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll), GTK_CORNER_TOP_RIGHT);
-	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll), GTK_SHADOW_IN);
-
-	render = gtk_cell_renderer_text_new();
-	g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL);
-	gtk_icon_view_set_item_width(GTK_ICON_VIEW(iconview), 48);
-	/* gtk_icon_view_set_orientation(GTK_ICON_VIEW(iconview), GTK_ORIENTATION_HORIZONTAL); */
-	gtk_icon_view_set_columns(GTK_ICON_VIEW(iconview), 1);
-	gtk_icon_view_set_pixbuf_column(GTK_ICON_VIEW(iconview), 0);
-	gtk_icon_view_set_text_column(GTK_ICON_VIEW(iconview), 1);
-
-	dialog->support.notebook = gtk_notebook_new();
-	gtk_notebook_set_show_tabs(GTK_NOTEBOOK(dialog->support.notebook), FALSE);
-	gtk_notebook_set_show_border(GTK_NOTEBOOK(dialog->support.notebook), FALSE);
-
-	dialog->support.support_list = NULL;
-
-	GSList *sup_iter, *support_list = sup_iter = lsq_get_registered_support_list();
-
-	GtkTreeIter iter;
-	LSQArchiveSupport *support;
-	SQSupportTuple *tuple;
-
-	while(sup_iter)
-	{
-		tuple = g_new(SQSupportTuple, 1);
-		tuple->support = support = LSQ_ARCHIVE_SUPPORT(sup_iter->data);
-		gtk_list_store_append(GTK_LIST_STORE(store), &iter);
-		gtk_list_store_set(GTK_LIST_STORE(store), &iter, 1, lsq_archive_support_get_id(support), -1);
-		sup_iter = g_slist_next(sup_iter);
-
-		gtk_notebook_append_page(GTK_NOTEBOOK(dialog->support.notebook), sq_preferences_dialog_create_support_object_page(tuple), NULL);
-
-		dialog->support.support_list = g_slist_prepend(dialog->support.support_list, tuple);
-	}
-
-	g_slist_free(support_list);
-
-	GtkTreePath *path = gtk_tree_path_new_from_indices(0, -1);
-
-	gtk_icon_view_set_cursor(GTK_ICON_VIEW(iconview), path, NULL, FALSE);
-	gtk_icon_view_select_path(GTK_ICON_VIEW(iconview), path);
-
-	gtk_tree_path_free(path);
-
-	gtk_widget_show(iconview);
-
-	gtk_box_pack_start(GTK_BOX(box), scroll, FALSE, FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(box), dialog->support.notebook, TRUE, TRUE, 0);
-	gtk_widget_show_all(box);
-}
-#if 1
-static GtkWidget *
-sq_preferences_dialog_create_support_object_page(SQSupportTuple *tuple)
-{
-	GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
-
-	tuple->box = sq_button_drag_box_new();
-	SQButtonDragBox *button_box = SQ_BUTTON_DRAG_BOX(tuple->box);
-
-	gtk_box_pack_start(GTK_BOX(vbox), tuple->box, FALSE, FALSE, 0);
-
-	sq_button_drag_box_add_fixed_button(button_box, _("Filename"), NULL);
-	sq_button_drag_box_lock_buttons(button_box, 1);
-
-	GSList *iter, *view_props = iter = lsq_archive_support_list_properties(tuple->support, "view");
-	GParamSpec *spec;
-	gboolean visible;
-
-	while(iter)
-	{
-		spec = G_PARAM_SPEC(iter->data);
-		g_object_get(G_OBJECT(tuple->support), g_param_spec_get_name(spec), &visible, NULL);
-		sq_button_drag_box_add_button(button_box, g_param_spec_get_nick(spec), visible, (gpointer)g_param_spec_get_name(spec));
-		iter = g_slist_next(iter);
-	}
-
-	g_slist_free(view_props);
-
-	return vbox;
-}
-#else
-static GtkWidget *
-sq_preferences_dialog_create_support_object_page(SQSupportTuple *tuple)
-{
-	GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
-
-	GtkTreeModel *store = GTK_TREE_MODEL(gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING));
-
-	tuple->box = gtk_tree_view_new_with_model(store);
-	GtkTreeView *tree_view = GTK_TREE_VIEW(tuple->box);
-	gtk_tree_view_set_reorderable(tree_view, TRUE);
-
-	GtkCellRenderer *render = gtk_cell_renderer_text_new();
-	GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes("Column", render, "text", 0, NULL);
-	gtk_tree_view_append_column(tree_view, column);
-
-	GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
-	gtk_widget_set_size_request(scroll, 100, 100);
-
-	gtk_container_add(GTK_CONTAINER(scroll), tuple->box);
-	/* gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), iconview); */
-	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll), GTK_SHADOW_IN);
-
-	render = gtk_cell_renderer_text_new();
-	column = gtk_tree_view_column_new_with_attributes("Discription", render, "text", 1, NULL);
-	gtk_tree_view_append_column(tree_view, column);
-
-	gtk_box_pack_start(GTK_BOX(vbox), scroll, TRUE, TRUE, 0);
-
-	GSList *iter, *view_props = iter = lsq_archive_support_list_properties(tuple->support, "view");
-	GParamSpec *spec;
-	gboolean visible;
-	GtkTreeIter titer;
-
-	while(iter)
-	{
-		spec = G_PARAM_SPEC(iter->data);
-		g_object_get(G_OBJECT(tuple->support), g_param_spec_get_name(spec), &visible, NULL);
-
-		gtk_list_store_append(GTK_LIST_STORE(store), &titer);
-		gtk_list_store_set(GTK_LIST_STORE(store), &titer, 0, g_param_spec_get_nick(spec), 1, g_param_spec_get_blurb(spec), -1);
-
-		iter = g_slist_next(iter);
-	}
-
-	g_slist_free(view_props);
-
-	return vbox;
-}
-#endif
-static void
-cb_sq_preferences_dialog_item_changed(GtkWidget *widget, gpointer user_data)
-{
-	SQPreferencesDialog *dialog = SQ_PREFERENCES_DIALOG(user_data);
-	GtkTreePath *path;
-	gtk_icon_view_get_cursor(GTK_ICON_VIEW(widget), &path, NULL);
-	gtk_notebook_set_current_page(GTK_NOTEBOOK(dialog->support.notebook), gtk_tree_path_get_indices(path)[0]);
-	gtk_tree_path_free(path);
-}
-
diff --git a/src/preferences_dialog.h b/src/preferences_dialog.h
deleted file mode 100644
index 9313f4b..0000000
--- a/src/preferences_dialog.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_PREFERENCES_DIALOG_H__
-#define __SQRCHIVER_PREFERENCES_DIALOG_H__
-G_BEGIN_DECLS
-
-#define SQ_PREFERENCES_DIALOG(obj)		 ( \
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),	\
-			sq_preferences_dialog_get_type(),	  \
-			SQPreferencesDialog))
-
-#define SQ_IS_PREFERENCES_DIALOG(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			sq_preferences_dialog_get_type()))
-
-#define SQ_PREFERENCES_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			sq_preferences_dialog_get_type(),	  \
-			SQPreferencesDialogClass))
-
-#define SQ_IS_PREFERENCES_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			sq_preferences_dialog_get_type()))
-
-typedef struct
-{
-	LSQArchiveSupport *support;
-	GtkWidget *box;
-} SQSupportTuple;
-
-typedef struct _SQPreferencesDialog SQPreferencesDialog;
-
-struct _SQPreferencesDialog
-{
-	GtkDialog parent;
-	GtkWidget *notebook;
-	struct {
-		struct {
-			GtkWidget *show_icons;
-			GtkWidget *rules_hint;
-			struct {
-				GtkWidget *sort_case;
-				GtkWidget *sort_folders;
-			} sorting;
-		} viewer;
-	} general;
-	struct {
-		GtkWidget *notebook;
-		GSList *support_list;
-	} support;
-};
-
-typedef struct _SQPreferencesDialogClass SQPreferencesDialogClass;
-
-struct _SQPreferencesDialogClass
-{
-	GtkDialogClass parent;
-};
-
-GType	  sq_preferences_dialog_get_type ();
-GtkWidget *sq_preferences_dialog_new();
-
-G_END_DECLS
-#endif /* __SQRCHIVER_PREFERENCES_DIALOG_H__ */
diff --git a/src/properties_dialog.c b/src/properties_dialog.c
deleted file mode 100644
index 53a48a5..0000000
--- a/src/properties_dialog.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libsqueeze/libsqueeze.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-
-#include "properties_dialog.h"
-
-static void
-sq_properties_dialog_class_init(SQPropertiesDialogClass *archive_class);
-
-static void
-sq_properties_dialog_init(SQPropertiesDialog *archive);
-
-GType
-sq_properties_dialog_get_type (void)
-{
-	static GType sq_properties_dialog_type = 0;
-
- 	if (!sq_properties_dialog_type)
-	{
- 		static const GTypeInfo sq_properties_dialog_info = 
-		{
-			sizeof (SQPropertiesDialogClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_properties_dialog_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQPropertiesDialog),
-			0,
-			(GInstanceInitFunc) sq_properties_dialog_init,
-			NULL
-		};
-
-		sq_properties_dialog_type = g_type_register_static (GTK_TYPE_DIALOG, "SQPropertiesDialog", &sq_properties_dialog_info, 0);
-	}
-	return sq_properties_dialog_type;
-}
-
-static void
-sq_properties_dialog_class_init(SQPropertiesDialogClass *dialog_class)
-{
-}
-
-static void
-sq_properties_dialog_init(SQPropertiesDialog *dialog)
-{
-	GtkWidget *box;
-	GtkWidget *label;
-
-	dialog->table = (GtkTable *)gtk_table_new(2, 2, FALSE);
-
-	gtk_table_set_col_spacings (dialog->table, 12);
-	gtk_container_set_border_width(GTK_CONTAINER(dialog->table), 6);
-	gtk_container_add(GTK_CONTAINER(((GtkDialog *)dialog)->vbox), GTK_WIDGET(dialog->table));
-	gtk_widget_show (GTK_WIDGET(dialog->table));
-
-	box = gtk_hbox_new(6, FALSE);
-	gtk_table_attach (dialog->table, box, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3);
-	gtk_widget_show (box);
-
-	dialog->icon_image = gtk_image_new();
-	gtk_box_pack_start (GTK_BOX (box), dialog->icon_image, FALSE, TRUE, 0);
-	gtk_widget_show (dialog->icon_image);
-
-	label = gtk_label_new(_("Name:"));
-	gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);
-	gtk_widget_show (label);
-
-	dialog->filename_label = gtk_label_new("");
-	gtk_table_attach (dialog->table, dialog->filename_label, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3);
-	gtk_widget_show(dialog->filename_label);
-
-	dialog->prop_table = (GtkTable *)gtk_table_new(2, 1, TRUE);
-	gtk_table_set_col_spacings (dialog->prop_table, 12);
-	gtk_table_attach (dialog->table, GTK_WIDGET(dialog->prop_table), 0, 2, 1, 2, GTK_FILL, GTK_FILL, 0, 3);
-	gtk_widget_show(GTK_WIDGET(dialog->prop_table));
-
-	label = gtk_label_new(_("Kind:"));
-	gtk_misc_set_alignment(GTK_MISC(label), 1.0f, 0.5f);
-	gtk_table_attach (dialog->prop_table, label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 3);
-	gtk_widget_show (label);
-
-	dialog->mimetype_label = gtk_label_new("");
-	gtk_table_attach (dialog->prop_table, dialog->mimetype_label, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3);
-	gtk_widget_show(dialog->mimetype_label);
-
-
-	gtk_dialog_add_buttons(GTK_DIALOG(dialog),
-		GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
-			NULL);
-}
-
-GtkWidget *
-sq_properties_dialog_new(LSQArchive *archive, GtkIconTheme *icon_theme)
-{
-	GtkWidget *dialog;
-	gchar *filename;
-
-	dialog = g_object_new(sq_properties_dialog_get_type(),
-			"title", _("Properties"),
-			NULL);
-
-	gtk_widget_set_size_request(dialog, 220, 400);
-	gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
-
-	GdkPixbuf *icon = gtk_icon_theme_load_icon(icon_theme, thunar_vfs_mime_info_lookup_icon_name(archive->mime_info, icon_theme), 48, 0, NULL);
-	gtk_image_set_from_pixbuf(GTK_IMAGE(((SQPropertiesDialog *)dialog)->icon_image), icon);
-
-	filename = lsq_archive_get_filename(archive);
-	gtk_label_set_text(GTK_LABEL(((SQPropertiesDialog *)dialog)->filename_label), filename);
-	g_free(filename);
-	gtk_label_set_text(GTK_LABEL(((SQPropertiesDialog *)dialog)->mimetype_label), lsq_archive_get_mimetype(archive));
-
-	return dialog;
-}
diff --git a/src/properties_dialog.h b/src/properties_dialog.h
deleted file mode 100644
index ba19a7c..0000000
--- a/src/properties_dialog.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-/*
- * The archive properties dialog is written to resemble the thunar file-
- * properties dialog  written by Benedict Meurer for the Thunar file manager.
- */
-
-#ifndef __SQ_PROPERTIES_DIALOG_H__
-#define __SQ_PROPERTIES_DIALOG_H__
-G_BEGIN_DECLS
-
-#define SQ_PROPERTIES_DIALOG(obj)		 ( \
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),	\
-			sq_properties_dialog_get_type(),	  \
-			SQPropertiesDialog))
-
-#define SQ_IS_PROPERTIES_DIALOG(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			sq_properties_dialog_get_type()))
-
-#define SQ_PROPERTIES_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			sq_properties_dialog_get_type(),	  \
-			SQPropertiesDialogClass))
-
-#define SQ_IS_PROPERTIES_DIALOG_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			sq_properties_dialog_get_type()))
-
-typedef struct _SQPropertiesDialog SQPropertiesDialog;
-
-struct _SQPropertiesDialog
-{
-	GtkDialog parent;
-	GtkTable  *table;
-	GtkWidget *icon_image;
-	GtkWidget *filename_label;
-	GtkWidget *mimetype_label;
-	GtkTable  *prop_table;
-};
-
-typedef struct _SQPropertiesDialogClass SQPropertiesDialogClass;
-
-struct _SQPropertiesDialogClass
-{
-	GtkDialogClass parent;
-};
-
-GtkWidget *sq_properties_dialog_new(LSQArchive *, GtkIconTheme *);
-void sq_properties_dialog_add_archive_property_str(SQPropertiesDialog *, const gchar *prop_name, const gchar *prop_value);
-
-G_END_DECLS
-#endif /* __SQRCHIVER_PROPERTIES_DIALOG_H__ */
diff --git a/src/settings.c b/src/settings.c
deleted file mode 100644
index 92f1dc2..0000000
--- a/src/settings.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <glib.h>
-#include <glib-object.h>
-
-#ifdef HAVE_LIBXFCE4UTIL
-#include <libxfce4util/libxfce4util.h>
-#endif
-
-#include "settings.h"
-
-static SQSettings *sq_global_settings = NULL;
-static GObjectClass *parent_class = NULL;
-
-static void
-sq_settings_init(SQSettings *);
-static void
-sq_settings_class_init(SQSettingsClass *);
-static GObject *
-sq_settings_singleton_constuctor(GType, guint, GObjectConstructParam *);
-
-GType
-sq_settings_get_type (void)
-{
-	static GType sq_settings_type = 0;
-
-	if (!sq_settings_type)
-	{
-		static const GTypeInfo sq_settings_info = 
-		{
-			sizeof (SQSettingsClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_settings_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQSettings),
-			0,
-			(GInstanceInitFunc) sq_settings_init,
-			NULL
-		};
-
-		sq_settings_type = g_type_register_static (G_TYPE_OBJECT, "SQSettings", &sq_settings_info, 0);
-	}
-	return sq_settings_type;
-}
-
-static void
-sq_settings_init(SQSettings *object)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	object->xfce_rc = (GObject *)xfce_rc_config_open(XFCE_RESOURCE_CONFIG, "squeeze/squeezerc", FALSE);
-#else
-
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-static void
-sq_settings_class_init(SQSettingsClass *object_class)
-{
-	parent_class = g_type_class_peek_parent(object_class);
-	G_OBJECT_CLASS(object_class)->constructor = sq_settings_singleton_constuctor;
-}
-
-SQSettings *
-sq_settings_new(void)
-{
-	sq_global_settings = g_object_new(SQ_TYPE_SETTINGS, NULL);
-
-	return sq_global_settings;
-}
-
-gboolean
-sq_settings_load(SQSettings *settings)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-
-#else
-
-#endif /* HAVE_LIBXFCE4UTIL */
-	return TRUE;
-}
-
-gboolean
-sq_settings_save(SQSettings *settings)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	xfce_rc_flush(XFCE_RC(settings->xfce_rc));
-#else
-
-#endif /* HAVE_LIBXFCE4UTIL */
-	return TRUE;
-}
-
-void
-sq_settings_set_group(SQSettings *settings, const gchar *group)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	xfce_rc_set_group(XFCE_RC(settings->xfce_rc), group);
-#else
-
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-void
-sq_settings_write_entry(SQSettings *settings, const gchar *key, const gchar *value)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	xfce_rc_write_entry(XFCE_RC(settings->xfce_rc), key, value);
-#else
-
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-void
-sq_settings_write_bool_entry(SQSettings *settings, const gchar *key, const gboolean value)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	xfce_rc_write_bool_entry(XFCE_RC(settings->xfce_rc), key, value);
-#else
-
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-void
-sq_settings_write_int_entry(SQSettings *settings, const gchar *key, const gint value)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	xfce_rc_write_int_entry(XFCE_RC(settings->xfce_rc), key, value);
-#else
-
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-const gchar *
-sq_settings_read_entry(SQSettings *settings, const gchar *key, const gchar *fallback)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	return xfce_rc_read_entry(XFCE_RC(settings->xfce_rc), key, fallback);
-#else
-	return g_strdup(fallback);
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-gboolean
-sq_settings_read_bool_entry(SQSettings *settings, const gchar *key, const gboolean fallback)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	return xfce_rc_read_bool_entry(XFCE_RC(settings->xfce_rc), key, fallback);
-#else
-	return fallback;
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-gboolean
-sq_settings_read_int_entry(SQSettings *settings, const gchar *key, const gint fallback)
-{
-#ifdef HAVE_LIBXFCE4UTIL
-	return xfce_rc_read_int_entry(XFCE_RC(settings->xfce_rc), key, fallback);
-#else
-	return fallback;
-#endif /* HAVE_LIBXFCE4UTIL */
-}
-
-static GObject *
-sq_settings_singleton_constuctor(GType type, guint n_construct_params, GObjectConstructParam *construct_params)
-{
-	GObject *object;
-	if(!sq_global_settings)
-	{
-		object = parent_class->constructor(type, n_construct_params, construct_params);
-		sq_global_settings = SQ_SETTINGS(object);
-	}
-	else
-		object = g_object_ref(SQ_SETTINGS(sq_global_settings));
-	return object;
-}
diff --git a/src/settings.h b/src/settings.h
deleted file mode 100644
index fffa9f3..0000000
--- a/src/settings.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#ifndef __SQ_SETTINGS_H__
-#define __SQ_SETTINGS_H__
-G_BEGIN_DECLS
-
-#define SQ_TYPE_SETTINGS sq_settings_get_type()
-
-#define SQ_SETTINGS(obj)		 ( \
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),	\
-			sq_settings_get_type(),	  \
-			SQSettings))
-
-#define SQ_IS_SETTINGS(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			sq_settings_get_type()))
-
-#define SQ_SETTINGS_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			sq_settings_get_type(),	  \
-			SQSettingsClass))
-
-#define SQ_IS_SETTINGS_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			sq_settings_get_type()))
-
-typedef struct _SQSettings SQSettings;
-
-struct _SQSettings
-{
-	GObject parent;
-	gchar *config_file;
-	GObject *xfce_rc;
-};
-
-typedef struct _SQSettingsClass SQSettingsClass;
-
-struct _SQSettingsClass
-{
-	GObjectClass parent;
-};
-
-SQSettings   *sq_settings_new();
-GType		 sq_settings_get_type ();
-
-gboolean	  sq_settings_load(SQSettings *);
-gboolean	  sq_settings_save(SQSettings *);
-
-const gchar  *sq_settings_read_entry(SQSettings *settings, const gchar *key, const gchar *fallback);
-gboolean	  sq_settings_read_bool_entry(SQSettings *settings, const gchar *key, const gboolean fallback);
-gint		  sq_settings_read_int_entry(SQSettings *settings, const gchar *key, const gint fallback);
-
-void		  sq_settings_write_entry(SQSettings *settings, const gchar *key, const gchar *value);
-void		  sq_settings_write_bool_entry(SQSettings *settings, const gchar *key, const gboolean value);
-void		  sq_settings_write_int_entry(SQSettings *settings, const gchar *key, const gint value);
-
-void		  sq_settings_set_group(SQSettings *settings, const gchar *group);
-
-G_END_DECLS
-
-#endif /* __SQ_SETTINGS_H__ */
diff --git a/src/tool_bar.c b/src/tool_bar.c
deleted file mode 100644
index c0f1355..0000000
--- a/src/tool_bar.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <string.h>
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include <gio/gio.h>
-
-#include <libxfce4util/libxfce4util.h>
-#include <libsqueeze/libsqueeze.h>
-#include "archive_store.h"
-#include "navigation_bar.h"
-#include "tool_bar.h"
-
-
-static void
-sq_tool_bar_class_init(SQToolBarClass *archive_class);
-
-static void
-sq_tool_bar_init(SQToolBar *archive);
-
-static void
-sq_tool_bar_size_request(GtkWidget *widget, GtkRequisition *requisition);
-static void
-sq_tool_bar_size_allocate(GtkWidget *widget, GtkAllocation *allocation);
-
-static GType
-sq_tool_bar_child_type(GtkContainer *container);
-static void
-sq_tool_bar_add(GtkContainer *container, GtkWidget *child);
-static void
-sq_tool_bar_remove(GtkContainer *container, GtkWidget *child);
-static void
-sq_tool_bar_forall(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data);
-
-static void
-cb_sq_tool_bar_pwd_changed(SQArchiveStore *store, LSQArchiveIter *, SQNavigationBar *bar);
-static void
-cb_sq_tool_bar_new_archive(SQArchiveStore *store, SQNavigationBar *bar);
-static void
-cb_sq_tool_bar_store_set(SQNavigationBar *bar);
-
-static void
-cb_sq_tool_bar_history_back(GtkWidget *button, SQToolBar *nav_bar);
-static void
-cb_sq_tool_bar_history_forward(GtkWidget *forward_button, SQToolBar *nav_bar);
-
-static void
-cb_sq_tool_bar_up(GtkWidget *, SQToolBar *tool_bar);
-static void
-cb_sq_tool_bar_home(GtkWidget *, SQToolBar *tool_bar);
-static void
-cb_sq_tool_bar_refresh(GtkWidget *, SQToolBar *tool_bar);
-
-static void
-cb_sq_tool_bar_path_field_activated(GtkWidget *entry, SQToolBar *tool_bar);
-
-GType
-sq_tool_bar_get_type (void)
-{
-	static GType sq_tool_bar_type = 0;
-
- 	if (!sq_tool_bar_type)
-	{
- 		static const GTypeInfo sq_tool_bar_info = 
-		{
-			sizeof (SQToolBarClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_tool_bar_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof (SQToolBar),
-			0,
-			(GInstanceInitFunc) sq_tool_bar_init,
-			NULL
-		};
-
-		sq_tool_bar_type = g_type_register_static (SQ_TYPE_NAVIGATION_BAR, "SQToolBar", &sq_tool_bar_info, 0);
-	}
-	return sq_tool_bar_type;
-}
-
-static void
-sq_tool_bar_class_init(SQToolBarClass *tool_bar_class)
-{
-	GtkWidgetClass *widget_class;
-	GtkContainerClass *container_class;
-
-	widget_class = (GtkWidgetClass *)tool_bar_class;
-	container_class = (GtkContainerClass *)tool_bar_class;
-
-	widget_class->size_request = sq_tool_bar_size_request;
-	widget_class->size_allocate = sq_tool_bar_size_allocate;
-
-	container_class->add = sq_tool_bar_add;
-	container_class->remove = sq_tool_bar_remove;
-	container_class->forall = sq_tool_bar_forall;
-	container_class->child_type = sq_tool_bar_child_type;
-}
-
-static void
-sq_tool_bar_init(SQToolBar *tool_bar)
-{
-	GtkToolItem *button = NULL;
-	SQ_NAVIGATION_BAR(tool_bar)->_cb_pwd_changed = cb_sq_tool_bar_pwd_changed;
-	SQ_NAVIGATION_BAR(tool_bar)->_cb_new_archive = cb_sq_tool_bar_new_archive;
-	SQ_NAVIGATION_BAR(tool_bar)->_cb_store_set   = cb_sq_tool_bar_store_set;
-
-	GTK_WIDGET_SET_FLAGS(tool_bar, GTK_NO_WINDOW);
-	gtk_widget_set_redraw_on_allocate(GTK_WIDGET(tool_bar), FALSE);
-
-	tool_bar->bar = GTK_TOOLBAR(gtk_toolbar_new());
-	gtk_toolbar_set_style(GTK_TOOLBAR(tool_bar->bar), GTK_TOOLBAR_ICONS);
-	gtk_container_add(GTK_CONTAINER(tool_bar), GTK_WIDGET(tool_bar->bar));
-	gtk_widget_show(GTK_WIDGET(tool_bar->bar));
-
-	tool_bar->back_button = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), tool_bar->back_button, 0);
-	g_signal_connect(G_OBJECT(tool_bar->back_button), "clicked", (GCallback)cb_sq_tool_bar_history_back, tool_bar);
-	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->back_button), 0);
-
-	tool_bar->forward_button = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), tool_bar->forward_button, 1);
-	g_signal_connect(G_OBJECT(tool_bar->forward_button), "clicked", (GCallback)cb_sq_tool_bar_history_forward, tool_bar);
-	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->forward_button), 0);
-
-	tool_bar->up_button = gtk_tool_button_new_from_stock(GTK_STOCK_GO_UP);
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), tool_bar->up_button, 2);
-	g_signal_connect(G_OBJECT(tool_bar->up_button), "clicked", (GCallback)cb_sq_tool_bar_up, tool_bar);
-	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->up_button), 0);
-
-	tool_bar->refresh_button = gtk_tool_button_new_from_stock(GTK_STOCK_REFRESH);
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), tool_bar->refresh_button, 3);
-	g_signal_connect(G_OBJECT(tool_bar->refresh_button), "clicked", (GCallback)cb_sq_tool_bar_refresh, tool_bar);
-	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->refresh_button), 0);
-
-	button = gtk_separator_tool_item_new();
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), button, 4);
-
-	tool_bar->home_button = gtk_tool_button_new_from_stock(GTK_STOCK_HOME);
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), tool_bar->home_button, 5);
-	g_signal_connect(G_OBJECT(tool_bar->home_button), "clicked", (GCallback)cb_sq_tool_bar_home, tool_bar);
-	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->home_button), 0);
-
-	button = gtk_separator_tool_item_new();
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), button, 6);
-	button = gtk_tool_item_new();
-	tool_bar->path_field = gtk_entry_new();
-	gtk_tool_item_set_expand(button, TRUE);
-	tool_bar->hbox = gtk_hbox_new(FALSE, 0);
-
-	gtk_container_add(GTK_CONTAINER(button), tool_bar->hbox);
-	gtk_box_pack_start(GTK_BOX(tool_bar->hbox), gtk_label_new(_("Location:")), FALSE, FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(tool_bar->hbox), tool_bar->path_field, TRUE, TRUE, 5);
-	g_signal_connect(G_OBJECT(tool_bar->path_field), "activate", (GCallback)cb_sq_tool_bar_path_field_activated, tool_bar);
-	gtk_tool_item_set_visible_horizontal(button, TRUE);
-	gtk_tool_item_set_homogeneous(button, FALSE);
-
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar->bar), button, 7);
-	gtk_widget_show_all(GTK_WIDGET(button));
-	gtk_widget_show(GTK_WIDGET(tool_bar->path_field));
-	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->hbox), 0);
-
-	gtk_widget_show_all(GTK_WIDGET(tool_bar->bar));
-	gtk_widget_ref((GtkWidget *)tool_bar);
-}
-
-SQNavigationBar *
-sq_tool_bar_new(SQArchiveStore *store)
-{
-	SQNavigationBar *bar;
-
-	bar = g_object_new(SQ_TYPE_TOOL_BAR, NULL);
-
-	if(store)
-		sq_navigation_bar_set_store(SQ_NAVIGATION_BAR(bar), store);
-
-	return bar;
-}
-
-static void
-sq_tool_bar_refresh(SQToolBar *tool_bar, LSQArchiveIter *path)
-{
-	if(SQ_NAVIGATION_BAR(tool_bar)->store && path)
-	{
-		gchar *text = lsq_archive_iter_get_path(path);
-		gtk_entry_set_text(GTK_ENTRY(tool_bar->path_field), text);
-		gtk_editable_set_position(GTK_EDITABLE(tool_bar->path_field), -1);
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->hbox), 1);
-		g_free(text);
-
-		if(lsq_archive_iter_has_parent(path))
-		{
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->up_button), 1);
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->home_button), 1);
-		}
-		else
-		{
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->up_button), 0);
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->home_button), 0);
-		}
-		if(sq_archive_store_has_future(SQ_NAVIGATION_BAR(tool_bar)->store))
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->forward_button), 1);
-		else
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->forward_button), 0);
-
-		if(sq_archive_store_has_history(SQ_NAVIGATION_BAR(tool_bar)->store))
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->back_button), 1);
-		else
-			gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->back_button), 0);
-
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->refresh_button), 1);
-	}
-	else
-	{
-		gtk_entry_set_text(GTK_ENTRY(tool_bar->path_field), "");
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->hbox), 0);
-
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->up_button), 0);
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->home_button), 0);
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->back_button), 0);
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->forward_button), 0);
-		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->refresh_button), 0);
-	}
-}
-
-static void
-sq_tool_bar_size_request(GtkWidget *widget, GtkRequisition *requisition)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(widget);
-
-	if(tool_bar->bar && GTK_WIDGET_VISIBLE(tool_bar->bar))
-		gtk_widget_size_request(GTK_WIDGET(tool_bar->bar), requisition);
-
-	if(requisition->width < 400)
-		requisition->width = 400;
-
-	widget->requisition = *requisition;
-}
-
-static void
-sq_tool_bar_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(widget);
-
-	widget->allocation = *allocation;
-
-	if(tool_bar->bar && GTK_WIDGET_VISIBLE(tool_bar->bar))
-		gtk_widget_size_allocate(GTK_WIDGET(tool_bar->bar), allocation);
-}
-
-static GType
-sq_tool_bar_child_type(GtkContainer *container)
-{
-	if(!SQ_TOOL_BAR(container)->bar)
-		return GTK_TYPE_WIDGET;
-	else
-		return G_TYPE_NONE;
-}
-
-static void
-sq_tool_bar_add(GtkContainer *container, GtkWidget *child)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(container);
-
-	g_return_if_fail(GTK_IS_WIDGET(child));
-
-	if(((GtkWidget *)tool_bar->bar) != child)
-	{
-		g_warning("DON'T set another child as toolbar");
-		return;
-	}
-
-	gtk_widget_set_parent(child, GTK_WIDGET(tool_bar));
-}
-
-static void
-sq_tool_bar_remove(GtkContainer *container, GtkWidget *child)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(container);
-	gboolean widget_was_visible;
-
-	g_return_if_fail(GTK_IS_WIDGET(child));
-	g_return_if_fail(((GtkWidget *)tool_bar->bar) == child);
-
-	widget_was_visible = GTK_WIDGET_VISIBLE(child);
-
-	gtk_widget_unparent(child);
-	tool_bar->bar = NULL;
-
-	if(widget_was_visible)
-		gtk_widget_queue_resize(GTK_WIDGET(container));
-}
-
-static void
-sq_tool_bar_forall(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(container);
-
-	g_return_if_fail(callback != NULL);
-
-	if(tool_bar->bar)
-		(* callback)(GTK_WIDGET(tool_bar->bar), callback_data);
-}
-
-static void
-cb_sq_tool_bar_pwd_changed(SQArchiveStore *store, LSQArchiveIter *path, SQNavigationBar *bar)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(bar);
-	sq_tool_bar_refresh(tool_bar, path);
-}
-
-static void
-cb_sq_tool_bar_new_archive(SQArchiveStore *store, SQNavigationBar *bar)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(bar);
-	LSQArchiveIter *path = sq_archive_store_get_pwd(bar->store);
-	sq_tool_bar_refresh(tool_bar, path);
-	lsq_archive_iter_unref(path);
-}
-
-static void
-cb_sq_tool_bar_history_back(GtkWidget *back_button, SQToolBar *tool_bar)
-{
-	sq_archive_store_go_back(SQ_NAVIGATION_BAR(tool_bar)->store);
-}
-
-static void
-cb_sq_tool_bar_history_forward(GtkWidget *forward_button, SQToolBar *tool_bar)
-{
-	sq_archive_store_go_forward(SQ_NAVIGATION_BAR(tool_bar)->store);
-}
-
-static void
-cb_sq_tool_bar_up(GtkWidget *up_button, SQToolBar *tool_bar)
-{
-	sq_archive_store_go_up(SQ_NAVIGATION_BAR(tool_bar)->store);
-}
-
-static void
-cb_sq_tool_bar_home(GtkWidget *home_button, SQToolBar *tool_bar)
-{
-	LSQArchive *archive = sq_archive_store_get_archive(SQ_NAVIGATION_BAR(tool_bar)->store);
-	LSQArchiveIter *path = lsq_archive_get_iter(archive, NULL);
-	sq_archive_store_set_pwd(SQ_NAVIGATION_BAR(tool_bar)->store, path);
-	lsq_archive_iter_unref(path);
-}
-
-static void
-cb_sq_tool_bar_refresh(GtkWidget *refresh_button, SQToolBar *tool_bar)
-{
-	LSQArchive *archive = sq_archive_store_get_archive(SQ_NAVIGATION_BAR(tool_bar)->store);
-    g_object_unref( lsq_archive_operate( archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL, NULL, NULL ) );
-}
-
-static void
-cb_sq_tool_bar_path_field_activated(GtkWidget *entry, SQToolBar *tool_bar)
-{
-	LSQArchive *archive = sq_archive_store_get_archive(SQ_NAVIGATION_BAR(tool_bar)->store);
-	const gchar *path = gtk_entry_get_text(GTK_ENTRY(entry));
-	LSQArchiveIter *iter = lsq_archive_get_iter(archive, path);
-	if(iter)
-	{
-		sq_archive_store_set_pwd(SQ_NAVIGATION_BAR(tool_bar)->store, iter);
-		lsq_archive_iter_unref(iter);
-	}
-}
-
-static void
-cb_sq_tool_bar_store_set(SQNavigationBar *bar)
-{
-	SQToolBar *tool_bar = SQ_TOOL_BAR(bar);
-	if(bar->store)
-	{
-		LSQArchiveIter *path = sq_archive_store_get_pwd(bar->store);
-		sq_tool_bar_refresh(tool_bar, path);
-		lsq_archive_iter_unref(path);
-	}
-	else
-	{
-		sq_tool_bar_refresh(tool_bar, NULL);
-	}
-}
diff --git a/src/tool_bar.h b/src/tool_bar.h
deleted file mode 100644
index 02466a4..0000000
--- a/src/tool_bar.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#ifndef __SQRCHIVER_TOOL_BAR_H__
-#define __SQRCHIVER_TOOL_BAR_H__
-G_BEGIN_DECLS
-
-#define SQ_TYPE_TOOL_BAR sq_tool_bar_get_type()
-
-#define SQ_TOOL_BAR(obj)(				\
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),  \
-			SQ_TYPE_TOOL_BAR,				  \
-			SQToolBar))
-
-#define SQ_IS_TOOL_BAR(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			SQ_TYPE_TOOL_BAR))
-
-#define SQ_TOOL_BAR_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			SQ_TYPE_TOOL_BAR,	  \
-			SQToolBarClass))
-
-#define SQ_IS_TOOL_BAR_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			SQ_TYPE_TOOL_BAR()))	
-
-typedef struct _SQToolBar SQToolBar;
-
-struct _SQToolBar
-{
-	SQNavigationBar parent;
-	GtkToolbar *bar;
-	GtkToolItem *back_button;
-	GtkToolItem *forward_button;
-	GtkToolItem *up_button;
-	GtkToolItem *home_button;
-	GtkToolItem *refresh_button;
-	GtkWidget *path_field;
-	GtkWidget *hbox;
-};
-
-typedef struct _SQToolBarClass SQToolBarClass;
-
-struct _SQToolBarClass
-{
-	SQNavigationBarClass parent_class;
-};
-
-GType			sq_tool_bar_get_type();
-SQNavigationBar *sq_tool_bar_new();
-
-G_END_DECLS
-#endif /* __SQRCHIVER_TOOL_BAR_H__*/
diff --git a/src/widget_factory.c b/src/widget_factory.c
deleted file mode 100644
index 4f8e5c8..0000000
--- a/src/widget_factory.c
+++ /dev/null
@@ -1,1084 +0,0 @@
-/*
- *  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 Library 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.
- */
-
-#include <config.h>
-#include <string.h>
-#include <gtk/gtk.h>
-#include <glib.h>
-#include <glib/gstdio.h>
-#include <glib-object.h> 
-#include <signal.h>
-#include <sys/wait.h>
-#include <sys/types.h>
-#include <gio/gio.h>
-#include <libsqueeze/libsqueeze.h>
-
-#include "widget_factory.h"
-
-#define SQ_PROPERTY_SPEC_DATA "sq-property-spec"
-#define SQ_PROPERTY_VALUE_DATA "sq-property-value"
-#define SQ_ACTION_CUSTOM_DATA "sq-action-custom"
-#define SQ_ACTION_CALLBACK_DATA "sq-action-callback"
-
-static void
-sq_widget_factory_class_init(SQWidgetFactoryClass *factory_class);
-static void
-sq_widget_factory_init(SQWidgetFactory *factory);
-
-static GtkWidget *
-sq_widget_factory_create_boolean_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GtkWidget *
-sq_widget_factory_create_numeric_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GtkWidget *
-sq_widget_factory_create_enum_widget_group(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GtkWidget *
-sq_widget_factory_create_enum_widget_list(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GtkWidget *
-sq_widget_factory_create_flags_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GtkWidget *
-sq_widget_factory_create_string_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-
-static GSList *
-sq_widget_factory_create_boolean_menu(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GSList *
-sq_widget_factory_create_enum_menu_group(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GSList *
-sq_widget_factory_create_enum_menu_list(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GSList *
-sq_widget_factory_create_flags_menu_group(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-static GSList *
-sq_widget_factory_create_flags_menu_list(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value);
-
-static void
-cb_sq_widget_factory_property_changed(GtkWidget *widget, gpointer user_data);
-static void
-cb_sq_widget_factory_property_notify(GObject *obj, GParamSpec *pspec, gpointer user_data);
-static void
-cb_sq_widget_factory_widget_destroyed(GtkObject *obj, gpointer user_data);
-static void
-cb_sq_widget_factory_object_destroyed(GtkObject *obj, gpointer user_data);
-
-/* static void																   */
-/* cb_sq_widget_factory_action_triggered(GtkWidget *widget, gpointer user_data); */
-
-/* static void															  */
-/* sq_widget_factory_notify(LSQCustomAction *action, const gchar *message); */
-
-GType
-sq_widget_factory_get_type(void)
-{
-	static GType sq_widget_factory_type = 0;
-
-	if(!sq_widget_factory_type)
-	{
-		static const GTypeInfo sq_widget_factory_info =
-		{
-			sizeof(SQWidgetFactoryClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) sq_widget_factory_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,
-			sizeof(SQWidgetFactory),
-			0,
-			(GInstanceInitFunc) sq_widget_factory_init,
-			NULL
-		};
-
-		sq_widget_factory_type = g_type_register_static(G_TYPE_OBJECT, "SQWidgetFactory", &sq_widget_factory_info, 0);
-	}
-	return sq_widget_factory_type;
-}
-
-static void
-sq_widget_factory_class_init(SQWidgetFactoryClass *factory_class)
-{
-/*	GObjectClass *object_class = G_OBJECT_CLASS(factory_class);*/
-}
-
-static void
-sq_widget_factory_init(SQWidgetFactory *factory)
-{
-	factory->tips = gtk_tooltips_new();
-	/* factory->custom_callback = g_new(LSQCustomActionCallback, 1);								*/
-	/* factory->custom_callback->notify_func = (LSQCustomActionNotifyFunc)sq_widget_factory_notify; */
-}
-
-SQWidgetFactory *
-sq_widget_factory_new(void)
-{
-	SQWidgetFactory *factory;
-
-	factory = g_object_new(sq_widget_factory_get_type(), NULL);
-
-	return factory;
-}
-
-static GtkWidget *
-sq_widget_factory_create_boolean_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GtkWidget *check = gtk_check_button_new_with_label(g_param_spec_get_nick(pspec));
-	const gchar *large_tip;
-	gchar *small_tip = NULL;
-
-	g_object_set_data(G_OBJECT(check), SQ_PROPERTY_SPEC_DATA, pspec);
-	g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-	g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), check);
-	g_signal_connect(GTK_OBJECT(check), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-	
-	/* FIXME: HACK */
-	if(GTK_IS_WIDGET(obj))
-		g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), check);
-	else
-		g_object_ref(obj);
-
-	large_tip = g_param_spec_get_blurb(pspec);
-	if(strchr(large_tip, '\n'))
-	{
-		small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);
-		large_tip = strchr(large_tip, '\n') + 1;
-	}
-
-	gtk_tooltips_set_tip(factory->tips, check, small_tip?small_tip:large_tip, large_tip);
-
-	g_free(small_tip);
-
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), g_value_get_boolean(value));
-
-	gtk_widget_show(check);
-
-	return check;
-}
-
-static GtkWidget *
-sq_widget_factory_create_numeric_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GtkWidget *box = gtk_hbox_new(FALSE, 3);
-	GtkWidget *label = gtk_label_new(g_param_spec_get_nick(pspec));
-	GValue double_value;
-	gdouble min = 0, max = 0, inc = 0, step = 0;
-	guint digits = 0;
-	GtkAdjustment *adjust;
-	GtkWidget *spin;
-	const gchar *large_tip;
-	gchar *small_tip = NULL;
-
-	memset(&double_value, 0, sizeof(GValue));
-
-	g_value_init(&double_value, G_TYPE_DOUBLE);
-	g_return_val_if_fail(g_value_transform(value, &double_value), NULL);
-
-	switch(pspec->value_type)
-	{
-		/*case G_TYPE_CHAR:
-		break;
-		case G_TYPE_UCHAR:
-		break;*/
-		case G_TYPE_INT:
-			min = G_PARAM_SPEC_INT(pspec)->minimum;
-			max = G_PARAM_SPEC_INT(pspec)->maximum;
-			inc = 1;
-			step = ((max-min)/5)>10?10:(gint)((max-min)/5);
-			digits = 1;
-		break;
-		case G_TYPE_UINT:
-			min = G_PARAM_SPEC_UINT(pspec)->minimum;
-			max = G_PARAM_SPEC_UINT(pspec)->maximum;
-			inc = 1;
-			step = ((max-min)/5)>10?10:(guint)((max-min)/5);
-			digits = 0;
-		break;
-		case G_TYPE_LONG:
-			min = G_PARAM_SPEC_LONG(pspec)->minimum;
-			max = G_PARAM_SPEC_LONG(pspec)->maximum;
-			inc = 1;
-			step = ((max-min)/5)>10?10:(glong)((max-min)/5);
-			digits = 0;
-		break;
-		case G_TYPE_ULONG:
-			min = G_PARAM_SPEC_ULONG(pspec)->minimum;
-			max = G_PARAM_SPEC_ULONG(pspec)->maximum;
-			inc = 1;
-			step = ((max-min)/5)>10?10:(gulong)((max-min)/5);
-			digits = 0;
-		break;
-		case G_TYPE_INT64:
-			min = G_PARAM_SPEC_INT64(pspec)->minimum;
-			max = G_PARAM_SPEC_INT64(pspec)->maximum;
-			inc = 1;
-			step = ((max-min)/5)>10?10:(gint64)((max-min)/5);
-			digits = 0;
-		break;
-		case G_TYPE_UINT64:
-			min = G_PARAM_SPEC_UINT64(pspec)->minimum;
-			max = G_PARAM_SPEC_UINT64(pspec)->maximum;
-			inc = 1;
-			step = ((max-min)/5)>10?10:(guint64)((max-min)/5);
-			digits = 0;
-		break;
-		case G_TYPE_FLOAT:
-			min = G_PARAM_SPEC_FLOAT(pspec)->minimum;
-			max = G_PARAM_SPEC_FLOAT(pspec)->maximum;
-			inc = 0.000001;
-			step = ((max-min)/5)>0.1?0.1:(gfloat)((max-min)/5);
-			digits = 6;
-		break;
-		case G_TYPE_DOUBLE:
-			min = G_PARAM_SPEC_DOUBLE(pspec)->minimum;
-			max = G_PARAM_SPEC_DOUBLE(pspec)->maximum;
-			inc = 0.0000000000000000001;
-			step = ((max-min)/5)>0.01?0.01:((max-min)/5);
-			digits = 20;
-		break;
-	}
-
-	adjust = GTK_ADJUSTMENT(gtk_adjustment_new(g_value_get_double(&double_value), min, max, inc, step, step));
-	spin = gtk_spin_button_new(adjust, step, digits);
-
-	g_object_set_data(G_OBJECT(spin), SQ_PROPERTY_SPEC_DATA, pspec);
-	g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-	g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), spin);
-	g_signal_connect(GTK_OBJECT(spin), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-	/* FIXME: HACK */
-	if(GTK_IS_WIDGET(obj))
-		g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), spin);
-	else
-		g_object_ref(obj);
-
-	gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 3);
-	gtk_box_pack_end(GTK_BOX(box), spin, TRUE, TRUE, 3);
-
-	large_tip = g_param_spec_get_blurb(pspec);
-	if(strchr(large_tip, '\n'))
-	{
-		small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);
-		large_tip = strchr(large_tip, '\n') + 1;
-	}
-
-	gtk_tooltips_set_tip(factory->tips, label, small_tip?small_tip:large_tip, large_tip);
-	gtk_tooltips_set_tip(factory->tips, spin, small_tip?small_tip:large_tip, large_tip);
-
-	g_free(small_tip);
-
-	g_value_unset(&double_value);
-
-	gtk_widget_show_all(box);
-
-	return box;
-}
-
-static GtkWidget *
-sq_widget_factory_create_enum_widget_group(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GtkWidget *frame = gtk_frame_new(g_param_spec_get_nick(pspec));
-	GtkWidget *box = gtk_vbox_new(FALSE, 3);
-	GtkWidget *radio = NULL;
-	guint i, n = G_PARAM_SPEC_ENUM(pspec)->enum_class->n_values;
-	GEnumValue *values = G_PARAM_SPEC_ENUM(pspec)->enum_class->values;
-	const gchar *large_tip;
-	gchar *small_tip = NULL;
-
-	for(i = 0; i < n; ++i)
-	{
-		radio = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radio), values[i].value_nick);
-
-		g_object_set_data(G_OBJECT(radio), SQ_PROPERTY_SPEC_DATA, pspec);
-		g_object_set_data(G_OBJECT(radio), SQ_PROPERTY_VALUE_DATA, GINT_TO_POINTER(values[i].value));
-		g_signal_connect(G_OBJECT(radio), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-		g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), radio);
-		g_signal_connect(GTK_OBJECT(radio), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-		/* FIXME: HACK */
-		if(GTK_IS_WIDGET(obj))
-			g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), radio);
-		else
-			g_object_ref(obj);
-
-		if(g_value_get_enum(value) == values[i].value)
-			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
-		gtk_box_pack_start(GTK_BOX(box), radio, FALSE, FALSE, 5);
-	}
-
-	gtk_container_add(GTK_CONTAINER(frame), box);
-
-	large_tip = g_param_spec_get_blurb(pspec);
-	if(strchr(large_tip, '\n'))
-	{
-		small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);
-		large_tip = strchr(large_tip, '\n') + 1;
-	}
-
-	gtk_tooltips_set_tip(factory->tips, frame, small_tip?small_tip:large_tip, large_tip);
-
-	g_free(small_tip);
-
-	gtk_widget_show_all(frame);
-
-	return frame;
-}
-
-static GtkWidget *
-sq_widget_factory_create_enum_widget_list(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GtkWidget *box = gtk_hbox_new(FALSE, 3);
-	GtkWidget *label = gtk_label_new(g_param_spec_get_nick(pspec));
-	GtkWidget *combo = gtk_combo_box_new_text();
-	guint select_ = 0, i, n = G_PARAM_SPEC_ENUM(pspec)->enum_class->n_values;
-	GEnumValue *values = G_PARAM_SPEC_ENUM(pspec)->enum_class->values;
-	const gchar *large_tip;
-	gchar *small_tip = NULL;
-
-	g_object_set_data(G_OBJECT(combo), SQ_PROPERTY_SPEC_DATA, pspec);
-	g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-	g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), combo);
-	g_signal_connect(GTK_OBJECT(combo), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-	/* FIXME: HACK */
-	if(GTK_IS_WIDGET(obj))
-		g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), combo);
-	else
-		g_object_ref(obj);
-
-	for(i = 0; i < n; ++i)
-	{
-		gtk_combo_box_append_text(GTK_COMBO_BOX(combo), values[i].value_nick);
-
-		if(g_value_get_enum(value) == values[i].value)
-			select_ = i;
-	}
-
-	gtk_combo_box_set_active(GTK_COMBO_BOX(combo), select_);
-
-	gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 3);
-	gtk_box_pack_end(GTK_BOX(box), combo, TRUE, TRUE, 3);
-
-	large_tip = g_param_spec_get_blurb(pspec);
-	if(strchr(large_tip, '\n'))
-	{
-		small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);
-		large_tip = strchr(large_tip, '\n') + 1;
-	}
-
-	gtk_tooltips_set_tip(factory->tips, label, small_tip?small_tip:large_tip, large_tip);
-	gtk_tooltips_set_tip(factory->tips, combo, small_tip?small_tip:large_tip, large_tip);
-
-	g_free(small_tip);
-
-	gtk_widget_show_all(box);
-
-	return box;
-}
-
-static GtkWidget *
-sq_widget_factory_create_flags_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GtkWidget *frame = gtk_frame_new(g_param_spec_get_nick(pspec));
-	GtkWidget *box = gtk_vbox_new(FALSE, 3);
-	GtkWidget *check;
-	guint i, n = G_PARAM_SPEC_FLAGS(pspec)->flags_class->n_values;
-	GFlagsValue *values = G_PARAM_SPEC_FLAGS(pspec)->flags_class->values;
-	const gchar *large_tip;
-	gchar *small_tip = NULL;
-
-	gtk_container_add(GTK_CONTAINER(frame), box);
-
-	for(i = 0; i < n; ++i)
-	{
-		check = gtk_check_button_new_with_label(values[i].value_nick);
-
-		g_object_set_data(G_OBJECT(check), SQ_PROPERTY_SPEC_DATA, pspec);
-		g_object_set_data(G_OBJECT(check), SQ_PROPERTY_VALUE_DATA, GINT_TO_POINTER(values[i].value));
-		g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-		g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), check);
-		g_signal_connect(GTK_OBJECT(check), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-		/* FIXME: HACK */
-		if(GTK_IS_WIDGET(obj))
-			g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), check);
-		else
-			g_object_ref(obj);
-
-		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), g_value_get_enum(value) & values[i].value);
-		gtk_box_pack_start(GTK_BOX(box), check, FALSE, FALSE, 5);
-	}
-
-	large_tip = g_param_spec_get_blurb(pspec);
-	if(strchr(large_tip, '\n'))
-	{
-		small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);
-		large_tip = strchr(large_tip, '\n') + 1;
-	}
-
-	gtk_tooltips_set_tip(factory->tips, frame, small_tip?small_tip:large_tip, large_tip);
-
-	g_free(small_tip);
-
-	gtk_widget_show_all(frame);
-
-	return frame;
-}
-
-static GtkWidget *
-sq_widget_factory_create_string_widget(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GtkWidget *box = gtk_hbox_new(FALSE, 3);
-	GtkWidget *label = gtk_label_new(g_param_spec_get_nick(pspec));
-	GtkWidget *entry = gtk_entry_new();
-	const gchar *large_tip;
-	gchar *small_tip = NULL;
-
-	g_object_set_data(G_OBJECT(entry), SQ_PROPERTY_SPEC_DATA, pspec);
-	g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-	g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), entry);
-	g_signal_connect(GTK_OBJECT(entry), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-	/* FIXME: HACK */
-	if(GTK_IS_WIDGET(obj))
-		g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), entry);
-	else
-		g_object_ref(obj);
-
-	gtk_entry_set_text(GTK_ENTRY(entry), g_value_get_string(value));
-
-	gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 3);
-	gtk_box_pack_end(GTK_BOX(box), entry, TRUE, TRUE, 3);
-
-	large_tip = g_param_spec_get_blurb(pspec);
-	if(strchr(large_tip, '\n'))
-	{
-		small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);
-		large_tip = strchr(large_tip, '\n') + 1;
-	}
-
-	gtk_tooltips_set_tip(factory->tips, label, small_tip?small_tip:large_tip, large_tip);
-	gtk_tooltips_set_tip(factory->tips, entry, small_tip?small_tip:large_tip, large_tip);
-
-	g_free(small_tip);
-
-	gtk_widget_show_all(box);
-
-	return box;
-}
-
-GtkWidget *
-sq_widget_factory_create_property_widget(SQWidgetFactory *factory, GObject *obj, const gchar *prop)
-{
-	GtkWidget *widget = NULL;
-	GParamSpec *pspec = g_object_class_find_property(G_OBJECT_GET_CLASS(obj), prop);
-	GValue value;
-
-	if(!pspec)
-		return NULL;
-
-	memset(&value, 0, sizeof(GValue));
-
-	/* FIXME: object property type string is bugged, in glib? */
-	g_value_init(&value, pspec->value_type);
-	g_object_get_property(obj, prop, &value);
-
-	switch(pspec->value_type)
-	{
-		case G_TYPE_BOOLEAN:
-			widget = sq_widget_factory_create_boolean_widget(factory, obj, pspec, &value);
-		break;
-		/*
-		case G_TYPE_CHAR:
-		case G_TYPE_UCHAR:
-		break;*/
-		case G_TYPE_INT:
-		case G_TYPE_UINT:
-		case G_TYPE_LONG:
-		case G_TYPE_ULONG:
-		case G_TYPE_INT64:
-		case G_TYPE_UINT64:
-		case G_TYPE_FLOAT:
-		case G_TYPE_DOUBLE:
-			widget = sq_widget_factory_create_numeric_widget(factory, obj, pspec, &value);
-		break;
-		case G_TYPE_STRING:
-			widget = sq_widget_factory_create_string_widget(factory, obj, pspec, &value);
-		break;
-		default:
-			if(G_IS_PARAM_SPEC_ENUM(pspec))
-			{
-				widget = sq_widget_factory_create_enum_widget_group(factory, obj, pspec, &value);
-				if(0)
-					sq_widget_factory_create_enum_widget_list(factory, obj, pspec, &value);
-			}
-			if(G_IS_PARAM_SPEC_FLAGS(pspec))
-			{
-				widget = sq_widget_factory_create_flags_widget(factory, obj, pspec, &value);
-			}
-		break;
-	}
-
-	g_value_unset(&value);
-
-	return widget;
-}
-
-static GSList *
-sq_widget_factory_create_boolean_menu(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GSList *menu = NULL;
-	GtkWidget *check = gtk_check_menu_item_new_with_label(g_param_spec_get_nick(pspec));
-
-	g_object_set_data(G_OBJECT(check), SQ_PROPERTY_SPEC_DATA, pspec);
-	g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-	g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), check);
-	g_signal_connect(GTK_OBJECT(check), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-	/* FIXME: HACK */
-	if(GTK_IS_WIDGET(obj))
-		g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), check);
-	else
-		g_object_ref(obj);
-
-	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(check), g_value_get_boolean(value));
-
-	menu = g_slist_append(menu, check);
-
-	gtk_widget_show(check);
-
-	return menu;
-}
-
-static GSList *
-sq_widget_factory_create_enum_menu_group(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GSList *menu = NULL;
-	GtkWidget *radio;
-	guint i, n = G_PARAM_SPEC_ENUM(pspec)->enum_class->n_values;
-	GEnumValue *values = G_PARAM_SPEC_ENUM(pspec)->enum_class->values;
-
-	for(i = 0; i < n; ++i)
-	{
-		radio = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(radio), values[i].value_nick);
-
-		g_object_set_data(G_OBJECT(radio), SQ_PROPERTY_SPEC_DATA, pspec);
-		g_object_set_data(G_OBJECT(radio), SQ_PROPERTY_VALUE_DATA, GINT_TO_POINTER(values[i].value));
-		g_signal_connect(G_OBJECT(radio), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-		g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), radio);
-		g_signal_connect(GTK_OBJECT(radio), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-		/* FIXME: HACK */
-		if(GTK_IS_WIDGET(obj))
-			g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), radio);
-		else
-			g_object_ref(obj);
-
-		if(g_value_get_enum(value) == values[i].value)
-			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(radio), TRUE);
-
-		menu = g_slist_append(menu, radio);
-
-		gtk_widget_show(radio);
-	}
-
-	return menu;
-}
-
-static GSList *
-sq_widget_factory_create_enum_menu_list(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GSList *menu = NULL;
-	GtkWidget *list = gtk_menu_item_new_with_label(g_param_spec_get_nick(pspec));
-	GtkWidget *sub = gtk_menu_new();
-	GtkWidget *radio = NULL;
-	guint i, n = G_PARAM_SPEC_ENUM(pspec)->enum_class->n_values;
-	GEnumValue *values = G_PARAM_SPEC_ENUM(pspec)->enum_class->values;
-
-	for(i = 0; i < n; ++i)
-	{
-		if(radio)
-			radio = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(radio), values[i].value_nick);
-		else
-			radio = gtk_radio_menu_item_new_with_label(NULL, values[i].value_nick);
-
-		g_object_set_data(G_OBJECT(radio), SQ_PROPERTY_SPEC_DATA, pspec);
-		g_object_set_data(G_OBJECT(radio), SQ_PROPERTY_VALUE_DATA, GINT_TO_POINTER(values[i].value));
-		g_signal_connect(G_OBJECT(radio), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-		g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), radio);
-		g_signal_connect(GTK_OBJECT(radio), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-		/* FIXME: HACK */
-		if(GTK_IS_WIDGET(obj))
-			g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), radio);
-		else
-			g_object_ref(obj);
-
-		if(g_value_get_enum(value) == values[i].value)
-			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(radio), TRUE);
-
-		gtk_menu_shell_append(GTK_MENU_SHELL(sub), radio);
-	}
-
-	gtk_menu_item_set_submenu(GTK_MENU_ITEM(list), sub);
-
-	menu = g_slist_append(menu, list);
-
-	gtk_widget_show_all(sub);
-	gtk_widget_show(list);
-
-	return menu;
-}
-
-static GSList *
-sq_widget_factory_create_flags_menu_group(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GSList *menu = NULL;
-	GtkWidget *check;
-	guint i, n = G_PARAM_SPEC_ENUM(pspec)->enum_class->n_values;
-	GFlagsValue *values = G_PARAM_SPEC_FLAGS(pspec)->flags_class->values;
-
-	for(i = 0; i < n; ++i)
-	{
-		check = gtk_check_menu_item_new_with_label(values[i].value_nick);
-
-		g_object_set_data(G_OBJECT(check), SQ_PROPERTY_SPEC_DATA, pspec);
-		g_object_set_data(G_OBJECT(check), SQ_PROPERTY_VALUE_DATA, GINT_TO_POINTER(values[i].value));
-		g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-		g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), check);
-		g_signal_connect(GTK_OBJECT(check), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-		/* FIXME: HACK */
-		if(GTK_IS_WIDGET(obj))
-			g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), check);
-		else
-			g_object_ref(obj);
-
-		gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(check), g_value_get_enum(value) & values[i].value);
-
-		menu = g_slist_append(menu, check);
-
-		gtk_widget_show(check);
-	}
-
-	return menu;
-}
-
-static GSList *
-sq_widget_factory_create_flags_menu_list(SQWidgetFactory *factory, GObject *obj, GParamSpec *pspec, const GValue *value)
-{
-	GSList *menu = NULL;
-	GtkWidget *list = gtk_menu_item_new_with_label(g_param_spec_get_nick(pspec));
-	GtkWidget *sub = gtk_menu_new();
-	GtkWidget *check;
-	guint i, n = G_PARAM_SPEC_ENUM(pspec)->enum_class->n_values;
-	GFlagsValue *values = G_PARAM_SPEC_FLAGS(pspec)->flags_class->values;
-
-	for(i = 0; i < n; ++i)
-	{
-		check = gtk_check_menu_item_new_with_label(values[i].value_nick);
-
-		g_object_set_data(G_OBJECT(check), SQ_PROPERTY_SPEC_DATA, pspec);
-		g_object_set_data(G_OBJECT(check), SQ_PROPERTY_VALUE_DATA, GINT_TO_POINTER(values[i].value));
-		g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
-		g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), check);
-		g_signal_connect(GTK_OBJECT(check), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
-		/* FIXME: HACK */
-		if(GTK_IS_WIDGET(obj))
-			g_signal_connect(obj, "destroy", G_CALLBACK(cb_sq_widget_factory_object_destroyed), check);
-		else
-			g_object_ref(obj);
-
-		gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(check), g_value_get_enum(value) & values[i].value);
-
-		gtk_menu_shell_append(GTK_MENU_SHELL(sub), check);
-	}
-
-	gtk_menu_item_set_submenu(GTK_MENU_ITEM(list), sub);
-
-	menu = g_slist_append(menu, list);
-
-	gtk_widget_show_all(sub);
-	gtk_widget_show(list);
-
-	return menu;
-}
-
-GSList *
-sq_widget_factory_create_property_menu(SQWidgetFactory *factory, GObject *obj, const gchar *prop)
-{
-	GSList *menu = NULL;
-	GParamSpec *pspec = g_object_class_find_property(G_OBJECT_GET_CLASS(obj), prop);
-	GValue value;
-
-	if(!pspec)
-		return NULL;
-
-	memset(&value, 0, sizeof(GValue));
-
-	/* FIXME: object property type string is bugged, in glib? */
-	g_value_init(&value, pspec->value_type);
-	g_object_get_property(obj, prop, &value);
-
-	switch(pspec->value_type)
-	{
-		case G_TYPE_BOOLEAN:
-			menu = sq_widget_factory_create_boolean_menu(factory, obj, pspec, &value);
-		break;
-		/*
-		case G_TYPE_CHAR:
-		case G_TYPE_UCHAR:
-		break;
-		case G_TYPE_INT:
-		case G_TYPE_UINT:
-		case G_TYPE_LONG:
-		case G_TYPE_ULONG:
-		case G_TYPE_INT64:
-		case G_TYPE_UINT64:
-		case G_TYPE_FLOAT:
-		case G_TYPE_DOUBLE:
-		break;
-		case G_TYPE_STRING:
-		break;*/
-		default:
-			if(G_IS_PARAM_SPEC_ENUM(pspec))
-			{
-				menu = sq_widget_factory_create_enum_menu_list(factory, obj, pspec, &value);
-				if(0)
-					sq_widget_factory_create_enum_menu_group(factory, obj, pspec, &value);
-			}
-			if(G_IS_PARAM_SPEC_FLAGS(pspec))
-			{
-				menu = sq_widget_factory_create_flags_menu_list(factory, obj, pspec, &value);
-				if(0)
-					sq_widget_factory_create_flags_menu_group(factory, obj, pspec, &value);
-			}
-		break;
-	}
-
-	g_value_unset(&value);
-
-	return menu;
-}
-
-static void
-cb_sq_widget_factory_property_changed(GtkWidget *widget, gpointer user_data)
-{
-	GParamSpec *pspec = g_object_get_data(G_OBJECT(widget), SQ_PROPERTY_SPEC_DATA);
-	GValue value, other_value;
-	memset(&value, 0, sizeof(GValue));
-	memset(&other_value, 0, sizeof(GValue));
-
-	g_value_init(&value, pspec->value_type);
-
-	switch(pspec->value_type)
-	{
-		case G_TYPE_BOOLEAN:
-			if(GTK_IS_TOGGLE_BUTTON(widget))
-			{
-				g_value_set_boolean(&value, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
-				g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-			}
-			if(GTK_IS_CHECK_MENU_ITEM(widget))
-			{
-				g_value_set_boolean(&value, gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)));
-				g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-			}
-		break;
-		/*
-		case G_TYPE_CHAR:
-		case G_TYPE_UCHAR:
-		break;*/
-		case G_TYPE_INT:
-		case G_TYPE_UINT:
-		case G_TYPE_LONG:
-		case G_TYPE_ULONG:
-		case G_TYPE_INT64:
-		case G_TYPE_UINT64:
-		case G_TYPE_FLOAT:
-		case G_TYPE_DOUBLE:
-			if(GTK_IS_SPIN_BUTTON(widget))
-			{
-				g_value_init(&other_value, G_TYPE_DOUBLE);
-				g_value_set_double(&other_value, gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)));
-				g_value_transform(&other_value, &value);
-				g_value_unset(&other_value);
-				g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-			}
-		break;
-		case G_TYPE_STRING:
-			if(GTK_IS_ENTRY(widget))
-			{
-				g_value_set_string(&value, gtk_entry_get_text(GTK_ENTRY(widget)));
-				g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-			}
-		break;
-		default:
-			if(G_IS_PARAM_SPEC_ENUM(pspec))
-			{
-				if(GTK_IS_RADIO_BUTTON(widget))
-				{
-					if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
-					{
-						g_value_set_enum(&value, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), SQ_PROPERTY_VALUE_DATA)));
-						g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-					}
-				}
-				if(GTK_IS_RADIO_MENU_ITEM(widget))
-				{
-					if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
-					{
-						g_value_set_enum(&value, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), SQ_PROPERTY_VALUE_DATA)));
-						g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-					}
-				}
-			}
-			if(G_IS_PARAM_SPEC_FLAGS(pspec))
-			{
-				if(GTK_IS_CHECK_BUTTON(widget))
-				{
-					g_object_get_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-					/* TODO: sync? */
-					g_value_set_flags(&value, g_value_get_flags(&value) ^ GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), SQ_PROPERTY_VALUE_DATA)));
-					g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-				}
-				if(GTK_IS_CHECK_MENU_ITEM(widget))
-				{
-					g_object_get_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-					/* TODO: sync? */
-					g_value_set_flags(&value, g_value_get_flags(&value) ^ GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), SQ_PROPERTY_VALUE_DATA)));
-					g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec), &value);
-				}
-			}
-		break;
-	}
-
-	g_value_unset(&value);
-}
-
-static void
-cb_sq_widget_factory_property_notify(GObject *obj, GParamSpec *pspec, gpointer user_data)
-{
-	GValue value, other_value;
-
-	if(strcmp(g_param_spec_get_name(pspec), g_param_spec_get_name(g_object_get_data(G_OBJECT(user_data), SQ_PROPERTY_SPEC_DATA))))
-		return;
-
-	memset(&value, 0, sizeof(GValue));
-	memset(&other_value, 0, sizeof(GValue));
-
-	g_value_init(&value, pspec->value_type);
-
-	switch(pspec->value_type)
-	{
-		case G_TYPE_BOOLEAN:
-			if(GTK_IS_TOGGLE_BUTTON(user_data))
-			{
-				g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-				gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user_data), g_value_get_boolean(&value));
-			}
-			if(GTK_IS_CHECK_MENU_ITEM(user_data))
-			{
-				g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-				gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(user_data), g_value_get_boolean(&value));
-			}
-		break;
-		/*
-		case G_TYPE_CHAR:
-		case G_TYPE_UCHAR:
-		break;*/
-		case G_TYPE_INT:
-		case G_TYPE_UINT:
-		case G_TYPE_LONG:
-		case G_TYPE_ULONG:
-		case G_TYPE_INT64:
-		case G_TYPE_UINT64:
-		case G_TYPE_FLOAT:
-		case G_TYPE_DOUBLE:
-			if(GTK_IS_SPIN_BUTTON(user_data))
-			{
-				g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-				g_value_init(&other_value, G_TYPE_DOUBLE);
-				g_value_transform(&value, &other_value);
-				gtk_spin_button_set_value(GTK_SPIN_BUTTON(user_data), g_value_get_double(&other_value));
-				g_value_unset(&other_value);
-			}
-		break;
-		case G_TYPE_STRING:
-			if(GTK_IS_ENTRY(user_data))
-			{
-				g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-				gtk_entry_set_text(GTK_ENTRY(user_data), g_value_get_string(&value));
-			}
-		break;
-		default:
-			if(G_IS_PARAM_SPEC_ENUM(pspec))
-			{
-				if(GTK_IS_RADIO_BUTTON(user_data))
-				{
-					g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-					gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user_data), GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), SQ_PROPERTY_VALUE_DATA))==g_value_get_enum(&value));
-				}
-				if(GTK_IS_RADIO_MENU_ITEM(user_data))
-				{
-					g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-					gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(user_data), GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), SQ_PROPERTY_VALUE_DATA))==g_value_get_enum(&value));
-				}
-			}
-			if(G_IS_PARAM_SPEC_FLAGS(pspec))
-			{
-				if(GTK_IS_CHECK_BUTTON(user_data))
-				{
-					g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-					gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user_data), GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), SQ_PROPERTY_VALUE_DATA)) & g_value_get_enum(&value));
-				}
-				if(GTK_IS_CHECK_MENU_ITEM(user_data))
-				{
-					g_object_get_property(obj, g_param_spec_get_name(pspec), &value);
-					gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(user_data), GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), SQ_PROPERTY_VALUE_DATA)) & g_value_get_enum(&value));
-				}
-			}
-		break;
-	}
-
-	g_value_unset(&value);
-}
-
-/* GtkWidget*																														  */
-/* sq_widget_factory_create_action_widget(SQWidgetFactory *factory, LSQArchiveSupport *support, LSQArchive *archive, const gchar *act) */
-/* {																																   */
-	/* GtkWidget *widget = NULL;																										 */
-	/* LSQCustomAction *action = lsq_archive_support_find_action(support, act);														  */
-
-	/* if(!action)																													   */
-		/* return NULL;																													*/
-
-	/* widget = gtk_button_new_with_label(lsq_custom_action_get_nick(action));														   */
-	/* g_object_set_data(G_OBJECT(widget), SQ_ACTION_CUSTOM_DATA, action);															   */
-	/* g_object_set_data(G_OBJECT(widget), SQ_ACTION_CALLBACK_DATA, factory->custom_callback);										   */
-	/* g_signal_connect(G_OBJECT(widget), "clicked", G_CALLBACK(cb_sq_widget_factory_action_triggered), archive);						*/
-
-	/* const gchar *large_tip = lsq_custom_action_get_blurb(action);																	 */
-	/* gchar *small_tip = NULL;																										  */
-	/* if(strchr(large_tip, '\n'))																									   */
-	/* {																																 */
-		/* small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);														  */
-		/* large_tip = strchr(large_tip, '\n') + 1;																						*/
-	/* }																																 */
-
-	/* gtk_tooltips_set_tip(factory->tips, widget, small_tip?small_tip:large_tip, large_tip);											*/
-
-	/* g_free(small_tip);																												*/
-
-	/* gtk_widget_show(widget);																										  */
-
-	/* return widget;																													*/
-/* }																																   */
-
-/* GtkWidget*																															 */
-/* sq_widget_factory_create_action_menu_item(SQWidgetFactory *factory, LSQArchiveSupport *support, LSQArchive *archive, const gchar *act) */
-/* {																																	  */
-	/* GtkWidget *menu;																													 */
-	/* LSQCustomAction *action = lsq_archive_support_find_action(support, act);															 */
-
-	/* if(!action)																														  */
-		/* return NULL;																													   */
-
-	/* menu = gtk_menu_item_new_with_label(lsq_custom_action_get_nick(action));															 */
-	/* g_object_set_data(G_OBJECT(menu), SQ_ACTION_CUSTOM_DATA, action);																	*/
-	/* g_object_set_data(G_OBJECT(menu), SQ_ACTION_CALLBACK_DATA, factory->custom_callback);												*/
-	/* g_signal_connect(G_OBJECT(menu), "activate", G_CALLBACK(cb_sq_widget_factory_action_triggered), archive);							*/
-	/* gtk_widget_show(menu);																											   */
-
-	/* return menu;																														 */
-/* }																																	  */
-
-/* GtkToolItem*																													 */
-/* sq_widget_factory_create_action_bar(SQWidgetFactory *factory, LSQArchiveSupport *support, LSQArchive *archive, const gchar *act) */
-/* {																																*/
-	/* GtkToolItem *widget;																										   */
-	/* LSQCustomAction *action = lsq_archive_support_find_action(support, act);													   */
-
-	/* if(!action)																													*/
-		/* return NULL;																												 */
-
-	/* widget = gtk_tool_button_new(NULL, lsq_custom_action_get_nick(action));														*/
-	/* g_object_set_data(G_OBJECT(widget), SQ_ACTION_CUSTOM_DATA, action);															*/
-	/* g_object_set_data(G_OBJECT(widget), SQ_ACTION_CALLBACK_DATA, factory->custom_callback);										*/
-	/* g_signal_connect(G_OBJECT(widget), "clicked", G_CALLBACK(cb_sq_widget_factory_action_triggered), archive);					 */
-
-	/* const gchar *large_tip = lsq_custom_action_get_blurb(action);																  */
-	/* gchar *small_tip = NULL;																									   */
-	/* if(strchr(large_tip, '\n'))																									*/
-	/* {																															  */
-		/* small_tip = g_strndup(large_tip, strchr(large_tip, '\n') - large_tip);													   */
-		/* large_tip = strchr(large_tip, '\n') + 1;																					 */
-	/* }																															  */
-
-	/* gtk_tooltips_set_tip(factory->tips, GTK_WIDGET(widget), small_tip?small_tip:large_tip, large_tip);							 */
-
-	/* g_free(small_tip);																											 */
-
-	/* gtk_widget_show(GTK_WIDGET(widget));																						   */
-
-	/* return widget;																												 */
-/* }																																*/
-
-/* GSList*																										 */
-/* sq_widget_factory_create_action_menu(SQWidgetFactory *factory, LSQArchiveSupport *support, LSQArchive *archive) */
-/* {																											   */
-	/* GSList *menu = NULL;																						  */
-	/* GtkWidget *item;																							  */
-	/* guint n_act, i;																							   */
-	/* LSQCustomAction **action = lsq_archive_support_list_actions(support, &n_act);								 */
-
-	/* for(i = 0; i < n_act; ++i)																					*/
-	/* {																											 */
-		/* if(strncmp("menu", lsq_custom_action_get_name(action[i]), 4) == 0)										  */
-		/* {																										   */
-			/* item = gtk_menu_item_new_with_label(lsq_custom_action_get_nick(action[i]));							   */
-			/* g_object_set_data(G_OBJECT(item), SQ_ACTION_CUSTOM_DATA, action[i]);									  */
-			/* g_object_set_data(G_OBJECT(item), SQ_ACTION_CALLBACK_DATA, factory->custom_callback);					 */
-			/* g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(cb_sq_widget_factory_action_triggered), archive); */
-			/* menu = g_slist_append(menu, item);																		*/
-			/* gtk_widget_show(item);																					*/
-		/* }																										   */
-	/* }																											 */
-
-	/* g_free(action);																							   */
-
-	/* return menu;																								  */
-/* }																											   */
-
-/* static void																																					 */
-/* cb_sq_widget_factory_action_triggered(GtkWidget *widget, gpointer user_data)																					*/
-/* {																																							   */
-	/* LSQArchive *archive = LSQ_ARCHIVE(user_data);																												 */
-
-	/* lsq_custom_action_execute(g_object_get_data(G_OBJECT(widget), SQ_ACTION_CUSTOM_DATA), archive, g_object_get_data(G_OBJECT(widget), SQ_ACTION_CALLBACK_DATA)); */
-/* }																																							   */
-
-static void
-cb_sq_widget_factory_widget_destroyed(GtkObject *obj, gpointer user_data)
-{
-	if(user_data)
-	{
-		g_signal_handlers_disconnect_by_func(user_data, cb_sq_widget_factory_property_notify, obj);
-		if(!GTK_IS_WIDGET(user_data))
-			g_object_unref(user_data);
-	}
-}
-
-static void
-cb_sq_widget_factory_object_destroyed(GtkObject *obj, gpointer user_data)
-{
-	if(user_data)
-	{
-		g_signal_handlers_disconnect_by_func(user_data, cb_sq_widget_factory_widget_destroyed, obj);
-	}
-}
-
-/* static void																																					  */
-/* sq_widget_factory_notify(LSQCustomAction *action, const gchar *message)																						  */
-/* {																																								*/
-	/* GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s: %s", action->support->id, message); */
-	/* gtk_dialog_run(GTK_DIALOG(dialog));																															*/
-	/* gtk_widget_destroy(dialog);																																	*/
-/* }																																								*/
diff --git a/src/widget_factory.h b/src/widget_factory.h
deleted file mode 100644
index eea9a98..0000000
--- a/src/widget_factory.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *  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 Library 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.  
- */
-
-#ifndef __SQ_WIDGET_FACTORY_H__
-#define __SQ_WIDGET_FACTORY_H__
-
-G_BEGIN_DECLS
-
-#define SQ_WIDGET_FACTORY(obj)		 ( \
-		G_TYPE_CHECK_INSTANCE_CAST ((obj),	\
-			sq_widget_factory_get_type(),	  \
-			LSQArchive))
-
-#define LSQ_IS_WIDGET_FACTORY(obj)	  ( \
-		G_TYPE_CHECK_INSTANCE_TYPE ((obj),	\
-			sq_widget_factory_get_type()))
-
-#define SQ_WIDGET_FACTORY_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_CAST ((klass),	 \
-			sq_widget_factory_get_type(),	  \
-			LSQArchiveClass))
-
-#define LSQ_IS_WIDGET_FACTORY_CLASS(klass) ( \
-		G_TYPE_CHECK_CLASS_TYPE ((klass),		\
-			sq_widget_factory_get_type()))
-
-typedef struct
-{
-	GObject parent;
-	GtkTooltips *tips;
-	// LSQCustomActionCallback *custom_callback;
-} SQWidgetFactory;
-
-typedef struct
-{
-	GObjectClass parent;
-} SQWidgetFactoryClass;
-
-GType			   sq_widget_factory_get_type(void);
-SQWidgetFactory	*sq_widget_factory_new();
-
-GtkWidget		  *sq_widget_factory_create_property_widget(SQWidgetFactory *, GObject *, const gchar *);
-GSList			 *sq_widget_factory_create_property_menu(SQWidgetFactory *, GObject *, const gchar *);
-// GtkWidget		  *sq_widget_factory_create_action_widget(SQWidgetFactory *, LSQArchiveSupport *, LSQArchive *, const gchar *);
-// GtkWidget		  *sq_widget_factory_create_action_menu_item(SQWidgetFactory *, LSQArchiveSupport *, LSQArchive *, const gchar *);
-// GtkToolItem		*sq_widget_factory_create_action_bar(SQWidgetFactory *, LSQArchiveSupport *, LSQArchive *, const gchar *);
-// GSList			 *sq_widget_factory_create_action_menu(SQWidgetFactory *, LSQArchiveSupport *, LSQArchive *);
-
-#endif /*__SQ_WIDGET_FACTORY_H__*/
-


More information about the Xfce4-commits mailing list