gtkhtml r8759 - branches/mbarnes-composer/components/editor



Author: mbarnes
Date: Fri Feb 29 17:08:15 2008
New Revision: 8759
URL: http://svn.gnome.org/viewvc/gtkhtml?rev=8759&view=rev

Log:
Implement a spell checking dialog widget, modelled after
GnomeSpell (with the Replace All feature).

Other miscellaneous cleanups.


Modified:
   branches/mbarnes-composer/components/editor/Makefile.am
   branches/mbarnes-composer/components/editor/gtkhtml-color-combo.c
   branches/mbarnes-composer/components/editor/gtkhtml-color-palette.c
   branches/mbarnes-composer/components/editor/gtkhtml-color-state.c
   branches/mbarnes-composer/components/editor/gtkhtml-color-swatch.c
   branches/mbarnes-composer/components/editor/gtkhtml-combo-box.c
   branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.c
   branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.h
   branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c
   branches/mbarnes-composer/components/editor/gtkhtml-editor-private.h
   branches/mbarnes-composer/components/editor/gtkhtml-editor.c
   branches/mbarnes-composer/components/editor/gtkhtml-editor.glade
   branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.c
   branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.h
   branches/mbarnes-composer/components/editor/gtkhtml-spell-language.c
   branches/mbarnes-composer/components/editor/gtkhtml-spell-language.h

Modified: branches/mbarnes-composer/components/editor/Makefile.am
==============================================================================
--- branches/mbarnes-composer/components/editor/Makefile.am	(original)
+++ branches/mbarnes-composer/components/editor/Makefile.am	Fri Feb 29 17:08:15 2008
@@ -38,6 +38,8 @@
 	gtkhtml-editor-private.h		\
 	gtkhtml-editor-signals.c		\
 	gtkhtml-editor-signals.h		\
+	gtkhtml-spell-dialog.c			\
+	gtkhtml-spell-dialog.h			\
 	gtkhtml-spell-checker.c			\
 	gtkhtml-spell-language.c
 
@@ -106,6 +108,8 @@
 
 libglade_gtkhtml_editor_la_SOURCES = \
 	gtkhtml-color-combo.c			\
+	gtkhtml-color-palette.c			\
+	gtkhtml-color-state.c			\
 	gtkhtml-color-swatch.c			\
 	gtkhtml-combo-box.c
 

Modified: branches/mbarnes-composer/components/editor/gtkhtml-color-combo.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-color-combo.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-color-combo.c	Fri Feb 29 17:08:15 2008
@@ -66,9 +66,9 @@
 	guint popup_in_progress	: 1;
 };
 
-static gpointer parent_class = NULL;
+static gpointer parent_class;
+static guint signals[LAST_SIGNAL];
 static GdkColor black = { 0, 0, 0, 0 };
-static guint signals[LAST_SIGNAL] = { 0 };
 
 static struct {
 	const gchar *color;
@@ -1096,7 +1096,11 @@
                                GtkhtmlColorState *state)
 {
 	g_return_if_fail (GTKHTML_IS_COLOR_COMBO (combo));
-	g_return_if_fail (GTKHTML_IS_COLOR_STATE (state));
+
+	if (state == NULL)
+		state = gtkhtml_color_state_new ();
+	else
+		g_return_if_fail (GTKHTML_IS_COLOR_STATE (state));
 
 	if (combo->priv->state != NULL) {
 		g_signal_handlers_disconnect_matched (

Modified: branches/mbarnes-composer/components/editor/gtkhtml-color-palette.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-color-palette.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-color-palette.c	Fri Feb 29 17:08:15 2008
@@ -41,8 +41,8 @@
 	GSList *list;
 };
 
-static gpointer parent_class = NULL;
-static guint signals[LAST_SIGNAL] = { 0 };
+static gpointer parent_class;
+static guint signals[LAST_SIGNAL];
 
 static void
 color_palette_finalize (GObject *object)

Modified: branches/mbarnes-composer/components/editor/gtkhtml-color-state.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-color-state.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-color-state.c	Fri Feb 29 17:08:15 2008
@@ -47,9 +47,9 @@
 	gulong palette_handler_id;
 };
 
-static gpointer parent_class = NULL;
+static gpointer parent_class;
+static guint signals[LAST_SIGNAL];
 static GdkColor black = { 0, 0, 0, 0 };
-static guint signals[LAST_SIGNAL] = { 0 };
 
 static void
 color_state_palette_changed_cb (GtkhtmlColorState *state)
@@ -398,7 +398,11 @@
 	gulong handler_id;
 
 	g_return_if_fail (GTKHTML_IS_COLOR_STATE (state));
-	g_return_if_fail (GTKHTML_IS_COLOR_PALETTE (palette));
+
+	if (palette == NULL)
+		palette = gtkhtml_color_palette_new ();
+	else
+		g_return_if_fail (GTKHTML_IS_COLOR_PALETTE (palette));
 
 	if (state->priv->palette != NULL) {
 		g_signal_handler_disconnect (

Modified: branches/mbarnes-composer/components/editor/gtkhtml-color-swatch.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-color-swatch.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-color-swatch.c	Fri Feb 29 17:08:15 2008
@@ -37,7 +37,7 @@
 	GtkWidget *frame;
 };
 
-static gpointer parent_class = NULL;
+static gpointer parent_class;
 
 static gboolean
 color_swatch_expose_cb (GtkWidget *drawing_area,

Modified: branches/mbarnes-composer/components/editor/gtkhtml-combo-box.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-combo-box.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-combo-box.c	Fri Feb 29 17:08:15 2008
@@ -40,7 +40,7 @@
 	guint group_visible_handler_id;		/* action-group::visible */
 };
 
-static gpointer parent_class = NULL;
+static gpointer parent_class;
 
 static void
 combo_box_action_changed_cb (GtkRadioAction *action,

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.c	Fri Feb 29 17:08:15 2008
@@ -747,26 +747,42 @@
 }
 
 static void
-action_language_cb (GtkRadioAction *action,
-                    GtkRadioAction *current,
+action_language_cb (GtkToggleAction *action,
                     GtkhtmlEditor *editor)
 {
+	GtkhtmlSpellChecker *checker;
 	const gchar *language_code;
+	gboolean active;
+	gboolean sensitive;
 
-	if (action != current)
-		return;
+	language_code = gtk_action_get_name (GTK_ACTION (action));
+	active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
 
-	language_code = gtk_action_get_name (GTK_ACTION (current));
-
-	if (editor->priv->spell_checker != NULL)
-		g_object_unref (editor->priv->spell_checker);
-
-	editor->priv->spell_checker = g_hash_table_lookup (
+	checker = g_hash_table_lookup (
 		editor->priv->available_spell_checkers,
 		gtkhtml_spell_language_lookup (language_code));
+	g_return_if_fail (checker != NULL);
 
-	if (editor->priv->spell_checker != NULL)
-		g_object_ref (editor->priv->spell_checker);
+	if (active)
+		editor->priv->active_spell_checkers =
+			g_list_insert_sorted (
+			editor->priv->active_spell_checkers,
+			g_object_ref (checker), (GCompareFunc)
+			gtkhtml_spell_checker_compare);
+	else {
+		GList *link;
+
+		link = g_list_find (
+			editor->priv->active_spell_checkers, checker);
+		g_return_if_fail (link != NULL);
+		editor->priv->active_spell_checkers =
+			g_list_delete_link (
+			editor->priv->active_spell_checkers, link);
+		g_object_unref (checker);
+	}
+
+	sensitive = (editor->priv->active_spell_checkers != NULL);
+	gtk_action_set_sensitive (ACTION (SPELL_CHECK), sensitive);
 }
 
 static void
@@ -1887,34 +1903,29 @@
 {
 	GtkUIManager *manager;
 	GtkActionGroup *action_group;
-	const GSList *available;
-	GSList *group = NULL;
+	const GList *available_languages;
 
 	manager = editor->priv->manager;
 	action_group = editor->priv->language_actions;
-	available = gtkhtml_spell_language_get_available ();
+	available_languages = gtkhtml_spell_language_get_available ();
 
-	while (available != NULL) {
-		GtkhtmlSpellLanguage *language = available->data;
-		GtkRadioAction *action;
+	while (available_languages != NULL) {
+		GtkhtmlSpellLanguage *language = available_languages->data;
+		GtkToggleAction *action;
 
 		g_hash_table_insert (
 			editor->priv->available_spell_checkers,
 			language, gtkhtml_spell_checker_new (language));
 
-		/* The action's name serves as the "value". */
-		action = gtk_radio_action_new (
+		action = gtk_toggle_action_new (
 			gtkhtml_spell_language_get_code (language),
 			gtkhtml_spell_language_get_name (language),
-			NULL, NULL, 0);
+			NULL, NULL);
 
 		g_signal_connect (
-			action, "changed",
+			action, "toggled",
 			G_CALLBACK (action_language_cb), editor);
 
-		gtk_radio_action_set_group (action, group);
-		group = gtk_radio_action_get_group (action);
-
 		gtk_action_group_add_action (
 			action_group, GTK_ACTION (action));
 
@@ -1925,7 +1936,7 @@
 			gtkhtml_spell_language_get_code (language),
 			GTK_UI_MANAGER_AUTO, FALSE);
 
-		available = g_slist_next (available);
+		available_languages = g_list_next (available_languages);
 	}
 }
 

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.h
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.h	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor-actions.h	Fri Feb 29 17:08:15 2008
@@ -114,6 +114,8 @@
 	GTKHTML_EDITOR_ACTION ((editor), "show-replace")
 #define GTKHTML_EDITOR_ACTION_SIZE_PLUS_ZERO(editor) \
 	GTKHTML_EDITOR_ACTION ((editor), "size-plus-zero")
+#define GTKHTML_EDITOR_ACTION_SPELL_CHECK(editor) \
+	GTKHTML_EDITOR_ACTION ((editor), "spell-check")
 #define GTKHTML_EDITOR_ACTION_STRIKETHROUGH(editor) \
 	GTKHTML_EDITOR_ACTION ((editor), "strikethrough")
 #define GTKHTML_EDITOR_ACTION_STYLE_ADDRESS(editor) \

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c	Fri Feb 29 17:08:15 2008
@@ -28,6 +28,91 @@
 #define SEP	"\\x09\\x20\\(\\)<>@,;:\\\\\"/\\[\\]\\?=\\{\\}"
 #define TOKEN	"[^" CTL SEP "]+"
 
+/************************ Begin Spell Dialog Callbacks ***********************/
+
+static void
+editor_set_word (GtkhtmlEditor *editor,
+                 GtkhtmlSpellDialog *dialog)
+{
+	GtkHTML *html;
+	gchar *word;
+
+	html = gtkhtml_editor_get_html (editor);
+
+	html_engine_select_spell_word_editable (html->engine);
+
+	word = html_engine_get_spell_word (html->engine);
+	gtkhtml_spell_dialog_set_word (dialog, word);
+	g_free (word);
+}
+
+static void
+editor_next_word_cb (GtkhtmlEditor *editor,
+                     GtkhtmlSpellDialog *dialog)
+{
+	if (gtkhtml_editor_next_spell_error (editor))
+		editor_set_word (editor, dialog);
+	else
+		gtkhtml_spell_dialog_close (dialog);
+}
+
+static void
+editor_prev_word_cb (GtkhtmlEditor *editor,
+                     GtkhtmlSpellDialog *dialog)
+{
+	if (gtkhtml_editor_prev_spell_error (editor))
+		editor_set_word (editor, dialog);
+	else
+		gtkhtml_spell_dialog_close (dialog);
+}
+
+static void
+editor_replace_cb (GtkhtmlEditor *editor,
+                   const gchar *correction,
+		   GtkhtmlSpellDialog *dialog)
+{
+	GtkHTML *html;
+
+	html = gtkhtml_editor_get_html (editor);
+
+	html_engine_replace_spell_word_with (html->engine, correction);
+	gtkhtml_spell_dialog_next_word (dialog);
+}
+
+static void
+editor_replace_all_cb (GtkhtmlEditor *editor,
+                       const gchar *correction,
+                       GtkhtmlSpellDialog *dialog)
+{
+	GtkHTML *html;
+	gchar *misspelled;
+
+	html = gtkhtml_editor_get_html (editor);
+
+	/* Replace this occurrence. */
+	misspelled = html_engine_get_spell_word (html->engine);
+	html_engine_replace_spell_word_with (html->engine, correction);
+
+	/* Replace all subsequent occurrences. */
+	while (gtkhtml_editor_next_spell_error (editor)) {
+		gchar *word;
+
+		word = html_engine_get_spell_word (html->engine);
+		if (g_str_equal (word, misspelled))
+			html_engine_replace_spell_word_with (
+				html->engine, correction);
+		g_free (word);
+	}
+
+	/* Jump to beginning of document (XXX is this right?) */
+	html_engine_beginning_of_document (html->engine);
+	gtkhtml_spell_dialog_next_word (dialog);
+
+	g_free (misspelled);
+}
+
+/************************* End Spell Dialog Callbacks ************************/
+
 void
 gtkhtml_editor_private_init (GtkhtmlEditor *editor)
 {
@@ -240,7 +325,13 @@
 	DISPOSE (priv->html_painter);
 	DISPOSE (priv->plain_painter);
 
-	DISPOSE (priv->spell_checker);
+	g_hash_table_remove_all (priv->available_spell_checkers);
+
+	g_list_foreach (
+		priv->active_spell_checkers,
+		(GFunc) g_object_unref, NULL);
+	g_list_free (priv->active_spell_checkers);
+	priv->active_spell_checkers = NULL;
 
 	DISPOSE (priv->main_menu);
 	DISPOSE (priv->main_toolbar);
@@ -421,11 +512,39 @@
 	}
 
 	spelling_errors =
-		html_engine_spell_word_is_valid (html->engine) &&
-		!gtkhtml_editor_next_spell_error (editor);
+		!html_engine_spell_word_is_valid (html->engine) ||
+		gtkhtml_editor_next_spell_error (editor);
 
 	if (spelling_errors) {
-		gtk_widget_show (WIDGET (SPELL_WINDOW));
+		GtkWidget *dialog;
+
+		dialog = gtkhtml_spell_dialog_new (GTK_WINDOW (editor));
+
+		gtkhtml_spell_dialog_set_spell_checkers (
+			GTKHTML_SPELL_DIALOG (dialog),
+			editor->priv->active_spell_checkers);
+
+		editor_set_word (editor, GTKHTML_SPELL_DIALOG (dialog));
+
+		g_signal_connect_swapped (
+			dialog, "next-word",
+			G_CALLBACK (editor_next_word_cb), editor);
+
+		g_signal_connect_swapped (
+			dialog, "prev-word",
+			G_CALLBACK (editor_prev_word_cb), editor);
+
+		g_signal_connect_swapped (
+			dialog, "replace",
+			G_CALLBACK (editor_replace_cb), editor);
+
+		g_signal_connect_swapped (
+			dialog, "replace-all",
+			G_CALLBACK (editor_replace_all_cb), editor);
+
+		gtk_dialog_run (GTK_DIALOG (dialog));
+
+		gtk_widget_destroy (dialog);
 	}
 
 	/* XXX Restore original inline spelling value. */
@@ -439,6 +558,8 @@
 
 	html = gtkhtml_editor_get_html (editor);
 
+	html_engine_disable_selection (html->engine);
+
 	while (!found && html_engine_forward_word (html->engine))
 		found = !html_engine_spell_word_is_valid (html->engine);
 

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor-private.h
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor-private.h	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor-private.h	Fri Feb 29 17:08:15 2008
@@ -31,6 +31,7 @@
 #include "gtkhtml-color-palette.h"
 #include "gtkhtml-color-swatch.h"
 #include "gtkhtml-combo-box.h"
+#include "gtkhtml-spell-dialog.h"
 
 /* GtkHTML internals */
 #include "gtkhtml-private.h"
@@ -108,8 +109,8 @@
 
 	/*** Spell Checking ***/
 
-	GtkhtmlSpellChecker *spell_checker;
 	GHashTable *available_spell_checkers;
+	GList *active_spell_checkers;
 
 	/*** Main Window Widgets ***/
 

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor.c	Fri Feb 29 17:08:15 2008
@@ -39,8 +39,8 @@
 	LAST_SIGNAL
 };
 
-static gpointer parent_class = NULL;
-static guint signals[LAST_SIGNAL] = { 0 };
+static gpointer parent_class;
+static guint signals[LAST_SIGNAL];
 
 static void
 editor_alignment_changed_cb (GtkhtmlEditor *editor,
@@ -224,12 +224,19 @@
                           gpointer user_data)
 {
 	GtkhtmlEditor *editor = user_data;
-	GtkhtmlSpellChecker *checker;
+	gboolean correct = TRUE;
+	GList *list;
+
+	list = editor->priv->active_spell_checkers;
+
+	while (list != NULL && correct) {
+		GtkhtmlSpellChecker *checker = list->data;
 
-	checker = editor->priv->spell_checker;
-	g_return_val_if_fail (checker != NULL, FALSE);
+		correct = gtkhtml_spell_checker_check_word (checker, word, -1);
+		list = g_list_next (list);
+	}
 
-	return gtkhtml_spell_checker_check_word (checker, word, -1);
+	return correct;
 }
 
 static void
@@ -244,13 +251,7 @@
                               const gchar *word,
                               gpointer user_data)
 {
-	GtkhtmlEditor *editor = user_data;
-	GtkhtmlSpellChecker *checker;
-
-	checker = editor->priv->spell_checker;
-	g_return_if_fail (checker != NULL);
-
-	gtkhtml_spell_checker_add_word_to_session (checker, word, -1);
+	/* TODO - I guess just add it to the first active spell checker? */
 }
 
 static void
@@ -483,9 +484,6 @@
 		GTK_WINDOW (WIDGET (RULE_PROPERTIES_WINDOW)),
 		GTK_WINDOW (object));
 	gtk_window_set_transient_for (
-		GTK_WINDOW (WIDGET (SPELL_WINDOW)),
-		GTK_WINDOW (object));
-	gtk_window_set_transient_for (
 		GTK_WINDOW (WIDGET (TABLE_PROPERTIES_WINDOW)),
 		GTK_WINDOW (object));
 	gtk_window_set_transient_for (

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor.glade
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor.glade	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor.glade	Fri Feb 29 17:08:15 2008
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.0 on Thu Jan  3 12:44:34 2008 -->
+<!--Generated with glade3 3.4.1 on Tue Feb 26 22:42:32 2008 -->
 <glade-interface>
   <requires lib="gtkhtml-editor"/>
   <widget class="GtkWindow" id="text-properties-window">
@@ -32,56 +32,52 @@
                 <property name="column_spacing">6</property>
                 <property name="row_spacing">6</property>
                 <child>
-                  <widget class="GtkCheckButton" id="text-properties-strikethrough-button">
+                  <widget class="GtkImage" id="text-properties-bold-image">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">_Strikethrough</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="stock">gtk-bold</property>
                   </widget>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
+                    <property name="x_options"></property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkCheckButton" id="text-properties-underline-button">
+                  <widget class="GtkImage" id="text-properties-italic-image">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">_Underline</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="stock">gtk-italic</property>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkImage" id="text-properties-underline-image">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="stock">gtk-underline</property>
                   </widget>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
                     <property name="top_attach">2</property>
                     <property name="bottom_attach">3</property>
+                    <property name="x_options"></property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkCheckButton" id="text-properties-italic-button">
+                  <widget class="GtkImage" id="text-properties-strikethrough-image">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">_Italic</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="stock">gtk-strikethrough</property>
                   </widget>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options"></property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
@@ -102,52 +98,56 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkImage" id="text-properties-strikethrough-image">
+                  <widget class="GtkCheckButton" id="text-properties-italic-button">
                     <property name="visible">True</property>
+                    <property name="can_focus">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="stock">gtk-strikethrough</property>
+                    <property name="label" translatable="yes">_Italic</property>
+                    <property name="use_underline">True</property>
+                    <property name="response_id">0</property>
+                    <property name="draw_indicator">True</property>
                   </widget>
                   <packing>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options"></property>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkImage" id="text-properties-underline-image">
+                  <widget class="GtkCheckButton" id="text-properties-underline-button">
                     <property name="visible">True</property>
+                    <property name="can_focus">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="stock">gtk-underline</property>
+                    <property name="label" translatable="yes">_Underline</property>
+                    <property name="use_underline">True</property>
+                    <property name="response_id">0</property>
+                    <property name="draw_indicator">True</property>
                   </widget>
                   <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
                     <property name="top_attach">2</property>
                     <property name="bottom_attach">3</property>
-                    <property name="x_options"></property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkImage" id="text-properties-italic-image">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="stock">gtk-italic</property>
-                  </widget>
-                  <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options"></property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkImage" id="text-properties-bold-image">
+                  <widget class="GtkCheckButton" id="text-properties-strikethrough-button">
                     <property name="visible">True</property>
+                    <property name="can_focus">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="stock">gtk-bold</property>
+                    <property name="label" translatable="yes">_Strikethrough</property>
+                    <property name="use_underline">True</property>
+                    <property name="response_id">0</property>
+                    <property name="draw_indicator">True</property>
                   </widget>
                   <packing>
-                    <property name="x_options"></property>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
                     <property name="y_options"></property>
                   </packing>
                 </child>
@@ -162,29 +162,30 @@
                 <property name="column_spacing">6</property>
                 <property name="row_spacing">6</property>
                 <child>
-                  <widget class="GtkhtmlColorCombo" id="text-properties-color-combo">
+                  <widget class="GtkhtmlComboBox" id="text-properties-size-combo-box">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="default_label">Automatic</property>
                   </widget>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
-                    <property name="y_options">GTK_FILL</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="text-properties-size-label">
+                  <widget class="GtkAlignment" id="text-properties-alignment">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">Si_ze:</property>
-                    <property name="use_underline">True</property>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </widget>
                   <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
                   </packing>
                 </child>
                 <child>
@@ -200,30 +201,29 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkAlignment" id="text-properties-alignment">
+                  <widget class="GtkLabel" id="text-properties-size-label">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <child>
-                      <placeholder/>
-                    </child>
+                    <property name="label" translatable="yes">Si_ze:</property>
+                    <property name="use_underline">True</property>
                   </widget>
                   <packing>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkhtmlComboBox" id="text-properties-size-combo-box">
+                  <widget class="GtkhtmlColorCombo" id="text-properties-color-combo">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="default_label">Automatic</property>
                   </widget>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="y_options"></property>
+                    <property name="y_options">GTK_FILL</property>
                   </packing>
                 </child>
               </widget>
@@ -635,42 +635,54 @@
             <property name="column_spacing">6</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkEntry" id="replace-with-entry">
+              <widget class="GtkAlignment" id="replace-alignment">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <child>
+                  <placeholder/>
+                </child>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">3</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options"></property>
+                <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="replace-entry">
+              <widget class="GtkCheckButton" id="replace-case-sensitive">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label" translatable="yes">Case _sensitive</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
+                <property name="left_attach">2</property>
                 <property name="right_attach">3</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="replace-with-label">
+              <widget class="GtkCheckButton" id="replace-backwards">
                 <property name="visible">True</property>
+                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="xalign">1</property>
-                <property name="label" translatable="yes">_With:</property>
+                <property name="label" translatable="yes">Search _backwards</property>
                 <property name="use_underline">True</property>
-                <property name="mnemonic_widget">replace-with-entry</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
               </widget>
               <packing>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options"></property>
                 <property name="y_options"></property>
               </packing>
             </child>
@@ -689,55 +701,43 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="replace-backwards">
+              <widget class="GtkLabel" id="replace-with-label">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label" translatable="yes">Search _backwards</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">_With:</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <property name="draw_indicator">True</property>
+                <property name="mnemonic_widget">replace-with-entry</property>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="x_options"></property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="replace-case-sensitive">
+              <widget class="GtkEntry" id="replace-entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label" translatable="yes">Case _sensitive</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-                <property name="draw_indicator">True</property>
               </widget>
               <packing>
-                <property name="left_attach">2</property>
+                <property name="left_attach">1</property>
                 <property name="right_attach">3</property>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="replace-alignment">
+              <widget class="GtkEntry" id="replace-with-entry">
                 <property name="visible">True</property>
+                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <child>
-                  <placeholder/>
-                </child>
               </widget>
               <packing>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="x_options"></property>
-                <property name="y_options"></property>
+                <property name="left_attach">1</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
               </packing>
             </child>
           </widget>
@@ -877,31 +877,33 @@
             <property name="column_spacing">6</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="link-properties-url-label">
+              <widget class="GtkButton" id="link-properties-test-button">
                 <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="xalign">1</property>
-                <property name="label" translatable="yes">_URL:</property>
                 <property name="use_underline">True</property>
-                <property name="mnemonic_widget">link-properties-url-entry</property>
+                <property name="response_id">0</property>
               </widget>
               <packing>
-                <property name="x_options">GTK_FILL</property>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="x_options"></property>
                 <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="link-properties-description-label">
+              <widget class="GtkEntry" id="link-properties-description-entry">
                 <property name="visible">True</property>
+                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label" translatable="yes">_Description:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">link-properties-description-entry</property>
+                <signal name="changed" handler="gtkhtml_editor_link_properties_description_changed_cb" object="link-properties-window"/>
               </widget>
               <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">3</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
             </child>
@@ -919,33 +921,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="link-properties-description-entry">
+              <widget class="GtkLabel" id="link-properties-description-label">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <signal name="changed" handler="gtkhtml_editor_link_properties_description_changed_cb" object="link-properties-window"/>
+                <property name="label" translatable="yes">_Description:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">link-properties-description-entry</property>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">3</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="link-properties-test-button">
+              <widget class="GtkLabel" id="link-properties-url-label">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">_URL:</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
+                <property name="mnemonic_widget">link-properties-url-entry</property>
               </widget>
               <packing>
-                <property name="left_attach">2</property>
-                <property name="right_attach">3</property>
-                <property name="x_options"></property>
+                <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
             </child>
@@ -1043,30 +1043,33 @@
                       <placeholder/>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="rule-properties-width-label">
+                      <widget class="GtkComboBox" id="rule-properties-width-combo-box">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Width:</property>
-                        <property name="use_underline">True</property>
+                        <property name="items" translatable="yes">px
+%</property>
+                        <signal name="changed" handler="gtkhtml_editor_rule_properties_width_changed_cb" object="rule-properties-window"/>
                       </widget>
                       <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
                         <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="rule-properties-width-spin-button">
-                        <property name="width_request">100</property>
+                      <widget class="GtkSpinButton" id="rule-properties-size-spin-button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_rule_properties_width_changed_cb" object="rule-properties-window"/>
+                        <signal name="value_changed" handler="gtkhtml_editor_rule_properties_size_changed_cb" object="rule-properties-window"/>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -1086,32 +1089,29 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="rule-properties-size-spin-button">
+                      <widget class="GtkSpinButton" id="rule-properties-width-spin-button">
+                        <property name="width_request">100</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_rule_properties_size_changed_cb" object="rule-properties-window"/>
+                        <signal name="value_changed" handler="gtkhtml_editor_rule_properties_width_changed_cb" object="rule-properties-window"/>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="rule-properties-width-combo-box">
+                      <widget class="GtkLabel" id="rule-properties-width-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">px
-%</property>
-                        <signal name="changed" handler="gtkhtml_editor_rule_properties_width_changed_cb" object="rule-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Width:</property>
+                        <property name="use_underline">True</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
                         <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
@@ -1157,15 +1157,20 @@
                     <property name="column_spacing">6</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="rule-properties-alignment-label">
+                      <widget class="GtkCheckButton" id="rule-properties-shaded-check-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Alignment:</property>
+                        <property name="label" translatable="yes">S_haded</property>
                         <property name="use_underline">True</property>
+                        <property name="response_id">0</property>
+                        <property name="draw_indicator">True</property>
+                        <signal name="toggled" handler="gtkhtml_editor_rule_properties_shaded_toggled_cb" object="rule-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="x_options"></property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -1185,20 +1190,15 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="rule-properties-shaded-check-button">
+                      <widget class="GtkLabel" id="rule-properties-alignment-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">S_haded</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Alignment:</property>
                         <property name="use_underline">True</property>
-                        <property name="response_id">0</property>
-                        <property name="draw_indicator">True</property>
-                        <signal name="toggled" handler="gtkhtml_editor_rule_properties_shaded_toggled_cb" object="rule-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -1451,110 +1451,113 @@
                       <placeholder/>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-border-units-label">
+                      <widget class="GtkSpinButton" id="table-properties-border-spin-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">px</property>
+                        <property name="adjustment">0 0 32767 1 10 10</property>
+                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_border_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">6</property>
-                        <property name="right_attach">7</property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
-                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-padding-units-label">
+                      <widget class="GtkSpinButton" id="table-properties-padding-spin-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">px</property>
+                        <property name="adjustment">0 0 32767 1 10 10</property>
+                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_padding_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">6</property>
-                        <property name="right_attach">7</property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-spacing-units-label">
+                      <widget class="GtkSpinButton" id="table-properties-spacing-spin-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">px</property>
+                        <property name="adjustment">0 0 32767 1 10 10</property>
+                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_spacing_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">6</property>
-                        <property name="right_attach">7</property>
-                        <property name="x_options"></property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="table-properties-width-combo-box">
+                      <widget class="GtkLabel" id="table-properties-border-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">px
-%</property>
-                        <signal name="changed" handler="gtkhtml_editor_table_properties_width_changed_cb" object="table-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Border:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">table-properties-border-spin-button</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
-                        <property name="x_options"></property>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="table-properties-width-spin-button">
-                        <property name="width_request">100</property>
+                      <widget class="GtkLabel" id="table-properties-padding-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">1 1 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_width_changed_cb" object="table-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Padding:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">table-properties-padding-spin-button</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="table-properties-width-check-button">
+                      <widget class="GtkLabel" id="table-properties-spacing-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">_Width:</property>
-                        <property name="use_underline">True</property>
                         <property name="xalign">1</property>
-                        <property name="response_id">0</property>
-                        <property name="draw_indicator">True</property>
-                        <signal name="toggled" handler="gtkhtml_editor_table_properties_width_changed_cb" object="table-properties-window"/>
+                        <property name="label" translatable="yes">_Spacing:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">table-properties-spacing-spin-button</property>
                       </widget>
                       <packing>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="table-properties-alignment-combo-box">
+                      <widget class="GtkLabel" id="table-properties-alignment-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">Left
-Center
-Right</property>
-                        <signal name="changed" handler="gtkhtml_editor_table_properties_alignment_changed_cb" object="table-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Alignment:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">table-properties-alignment-combo-box</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">3</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
                         <property name="x_options">GTK_FILL</property>
@@ -1562,15 +1565,17 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-alignment-label">
+                      <widget class="GtkComboBox" id="table-properties-alignment-combo-box">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Alignment:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">table-properties-alignment-combo-box</property>
+                        <property name="items" translatable="yes">Left
+Center
+Right</property>
+                        <signal name="changed" handler="gtkhtml_editor_table_properties_alignment_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">3</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
                         <property name="x_options">GTK_FILL</property>
@@ -1578,100 +1583,95 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-spacing-label">
+                      <widget class="GtkCheckButton" id="table-properties-width-check-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Spacing:</property>
+                        <property name="label" translatable="yes">_Width:</property>
                         <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">table-properties-spacing-spin-button</property>
+                        <property name="xalign">1</property>
+                        <property name="response_id">0</property>
+                        <property name="draw_indicator">True</property>
+                        <signal name="toggled" handler="gtkhtml_editor_table_properties_width_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-padding-label">
+                      <widget class="GtkSpinButton" id="table-properties-width-spin-button">
+                        <property name="width_request">100</property>
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Padding:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">table-properties-padding-spin-button</property>
+                        <property name="adjustment">1 1 100 1 10 10</property>
+                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_width_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-border-label">
+                      <widget class="GtkComboBox" id="table-properties-width-combo-box">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Border:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">table-properties-border-spin-button</property>
+                        <property name="items" translatable="yes">px
+%</property>
+                        <signal name="changed" handler="gtkhtml_editor_table_properties_width_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
-                        <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="table-properties-spacing-spin-button">
+                      <widget class="GtkLabel" id="table-properties-spacing-units-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">0 0 32767 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_spacing_changed_cb" object="table-properties-window"/>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">px</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
+                        <property name="left_attach">6</property>
+                        <property name="right_attach">7</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="table-properties-padding-spin-button">
+                      <widget class="GtkLabel" id="table-properties-padding-units-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">0 0 32767 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_padding_changed_cb" object="table-properties-window"/>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">px</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
+                        <property name="left_attach">6</property>
+                        <property name="right_attach">7</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="table-properties-border-spin-button">
+                      <widget class="GtkLabel" id="table-properties-border-units-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">0 0 32767 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_table_properties_border_changed_cb" object="table-properties-window"/>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">px</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
+                        <property name="left_attach">6</property>
+                        <property name="right_attach">7</property>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -1717,58 +1717,58 @@
                     <property name="column_spacing">6</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-color-label">
+                      <widget class="GtkhtmlColorCombo" id="table-properties-color-combo">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">Co_lor:</property>
-                        <property name="use_underline">True</property>
+                        <property name="default_color">#000000000000</property>
+                        <property name="default_label">Transparent</property>
                       </widget>
                       <packing>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="table-properties-image-label">
+                      <widget class="GtkFileChooserButton" id="table-properties-image-button">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Image:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">table-properties-image-button</property>
+                        <signal name="selection_changed" handler="gtkhtml_editor_table_properties_image_changed_cb" object="table-properties-window"/>
                       </widget>
                       <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkFileChooserButton" id="table-properties-image-button">
+                      <widget class="GtkLabel" id="table-properties-image-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <signal name="selection_changed" handler="gtkhtml_editor_table_properties_image_changed_cb" object="table-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Image:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">table-properties-image-button</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkhtmlColorCombo" id="table-properties-color-combo">
+                      <widget class="GtkLabel" id="table-properties-color-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="default_color">#000000000000</property>
-                        <property name="default_label">Transparent</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">Co_lor:</property>
+                        <property name="use_underline">True</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
                       </packing>
                     </child>
                   </widget>
@@ -1877,83 +1877,83 @@
                     <property name="column_spacing">6</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="page-properties-text-label">
+                      <widget class="GtkhtmlColorCombo" id="page-properties-background-color-combo">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Text:</property>
-                        <property name="use_underline">True</property>
+                        <property name="default_color">#000000000000</property>
+                        <property name="default_label">Automatic</property>
                       </widget>
                       <packing>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="page-properties-link-label">
+                      <widget class="GtkhtmlColorCombo" id="page-properties-link-color-combo">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Link:</property>
-                        <property name="use_underline">True</property>
+                        <property name="default_color">#000000000000</property>
+                        <property name="default_label">_Automatic</property>
                       </widget>
                       <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="page-properties-background-label">
+                      <widget class="GtkhtmlColorCombo" id="page-properties-text-color-combo">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Background:</property>
-                        <property name="use_underline">True</property>
+                        <property name="default_color">#000000000000</property>
+                        <property name="default_label">_Automatic</property>
                       </widget>
                       <packing>
-                        <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkhtmlColorCombo" id="page-properties-text-color-combo">
+                      <widget class="GtkLabel" id="page-properties-background-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="default_color">#000000000000</property>
-                        <property name="default_label">_Automatic</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Background:</property>
+                        <property name="use_underline">True</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkhtmlColorCombo" id="page-properties-link-color-combo">
+                      <widget class="GtkLabel" id="page-properties-link-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="default_color">#000000000000</property>
-                        <property name="default_label">_Automatic</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Link:</property>
+                        <property name="use_underline">True</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkhtmlColorCombo" id="page-properties-background-color-combo">
+                      <widget class="GtkLabel" id="page-properties-text-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="default_color">#000000000000</property>
-                        <property name="default_label">Automatic</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Text:</property>
+                        <property name="use_underline">True</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
                       </packing>
                     </child>
                   </widget>
@@ -2001,29 +2001,16 @@
                     <property name="column_spacing">6</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="page-properties-template-label">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">T_emplate:</property>
-                        <property name="use_underline">True</property>
-                      </widget>
-                      <packing>
-                        <property name="x_options">GTK_FILL</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkLabel" id="page-properties-custom-label">
+                      <widget class="GtkFileChooserButton" id="page-properties-custom-file-chooser">
+                        <property name="width_request">200</property>
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">C_ustom:</property>
-                        <property name="use_underline">True</property>
                       </widget>
                       <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
                       </packing>
                     </child>
                     <child>
@@ -2046,16 +2033,29 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkFileChooserButton" id="page-properties-custom-file-chooser">
-                        <property name="width_request">200</property>
+                      <widget class="GtkLabel" id="page-properties-custom-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">C_ustom:</property>
+                        <property name="use_underline">True</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="page-properties-template-label">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">T_emplate:</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
                       </packing>
                     </child>
                   </widget>
@@ -2118,353 +2118,122 @@
       </widget>
     </child>
   </widget>
-  <widget class="GtkWindow" id="spell-window">
+  <widget class="GtkWindow" id="cell-properties-window">
     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <property name="border_width">12</property>
-    <property name="title" translatable="yes">Spell Checker</property>
+    <property name="border_width">1</property>
+    <property name="title" translatable="yes">Cell Properties</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
     <property name="destroy_with_parent">True</property>
     <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
+    <signal name="show" handler="gtkhtml_editor_cell_properties_show_window_cb"/>
     <child>
-      <widget class="GtkVBox" id="spell-vbox">
+      <widget class="GtkVBox" id="cell-properties-vbox">
         <property name="visible">True</property>
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="border_width">12</property>
         <property name="spacing">12</property>
         <child>
-          <widget class="GtkTable" id="spell-table">
+          <widget class="GtkVBox" id="cell-properties-scope-vbox">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="n_rows">4</property>
-            <property name="n_columns">2</property>
-            <property name="column_spacing">6</property>
-            <property name="row_spacing">6</property>
+            <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="spell-suggestion-label">
+              <widget class="GtkLabel" id="cell-properties-scope-header">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="xalign">0</property>
-                <property name="label" translatable="yes">_Suggestions for ...</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">spell-suggestion-tree-view</property>
-              </widget>
-              <packing>
-                <property name="right_attach">2</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkScrolledWindow" id="spell-suggestion-scrolled-window">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-                <child>
-                  <widget class="GtkTreeView" id="spell-suggestion-tree-view">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="headers_visible">False</property>
-                    <property name="headers_clickable">True</property>
-                  </widget>
-                </child>
+                <property name="label" translatable="yes">&lt;b&gt;Scope&lt;/b&gt;</property>
+                <property name="use_markup">True</property>
               </widget>
-              <packing>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-              </packing>
             </child>
             <child>
-              <widget class="GtkVButtonBox" id="spell-suggestion-button-box">
+              <widget class="GtkAlignment" id="cell-properties-scope-alignment">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="spacing">6</property>
-                <property name="layout_style">GTK_BUTTONBOX_START</property>
-                <child>
-                  <widget class="GtkButton" id="spell-replace-button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">_Replace</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                  </widget>
-                </child>
+                <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkButton" id="spell-ignore-button">
+                  <widget class="GtkTable" id="cell-properties-scope-table">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="response_id">0</property>
+                    <property name="n_rows">2</property>
+                    <property name="n_columns">5</property>
+                    <property name="column_spacing">6</property>
+                    <property name="row_spacing">6</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                     <child>
-                      <widget class="GtkHBox" id="spell-ignore-button-hbox">
+                      <widget class="GtkImage" id="cell-properties-cell-image">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="spacing">2</property>
-                        <child>
-                          <widget class="GtkImage" id="spell-ignore-button-image">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="stock">gtk-clear</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="spell-ignore-button-label">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">_Ignore</property>
-                            <property name="use_underline">True</property>
-                          </widget>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
+                        <property name="icon_name">stock_select-cell</property>
                       </widget>
+                      <packing>
+                        <property name="x_options"></property>
+                        <property name="y_options"></property>
+                      </packing>
                     </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkButton" id="spell-forward-button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">gtk-go-forward</property>
-                    <property name="use_stock">True</property>
-                    <property name="xalign">0</property>
-                    <property name="response_id">0</property>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkButton" id="spell-back-button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">gtk-go-back</property>
-                    <property name="use_stock">True</property>
-                    <property name="xalign">0</property>
-                    <property name="response_id">0</property>
-                  </widget>
-                  <packing>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="x_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkAlignment" id="spell-dictionary-alignment">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="top_padding">6</property>
-                <child>
-                  <widget class="GtkLabel" id="spell-dictionary-label">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Add to dictionary</property>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="right_attach">2</property>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkComboBox" id="spell-dictionary-combo-box">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-              </widget>
-              <packing>
-                <property name="top_attach">3</property>
-                <property name="bottom_attach">4</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="spell-add-word-button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="xalign">0</property>
-                <property name="response_id">0</property>
-                <child>
-                  <widget class="GtkHBox" id="spell-add-word-button-hbox">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="spacing">2</property>
                     <child>
-                      <widget class="GtkImage" id="spell-add-word-button-image">
+                      <widget class="GtkImage" id="cell-properties-table-image">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="stock">gtk-add</property>
+                        <property name="icon_name">stock_select-table</property>
                       </widget>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options"></property>
+                        <property name="y_options"></property>
+                      </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="spell-add-word-button-label">
+                      <widget class="GtkImage" id="cell-properties-row-image">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">_Add Word</property>
-                        <property name="use_underline">True</property>
+                        <property name="icon_name">stock_select-row</property>
                       </widget>
                       <packing>
-                        <property name="position">1</property>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                        <property name="x_options"></property>
+                        <property name="y_options"></property>
                       </packing>
                     </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">3</property>
-                <property name="bottom_attach">4</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-          </widget>
-        </child>
-        <child>
-          <widget class="GtkHButtonBox" id="spell-button-box">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <widget class="GtkButton" id="spell-close-button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="label" translatable="yes">gtk-close</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-                <signal name="clicked" handler="gtk_widget_hide" object="spell-window"/>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="GtkWindow" id="cell-properties-window">
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <property name="border_width">1</property>
-    <property name="title" translatable="yes">Cell Properties</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="destroy_with_parent">True</property>
-    <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
-    <signal name="show" handler="gtkhtml_editor_cell_properties_show_window_cb"/>
-    <child>
-      <widget class="GtkVBox" id="cell-properties-vbox">
-        <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="border_width">12</property>
-        <property name="spacing">12</property>
-        <child>
-          <widget class="GtkVBox" id="cell-properties-scope-vbox">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="spacing">6</property>
-            <child>
-              <widget class="GtkLabel" id="cell-properties-scope-header">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">&lt;b&gt;Scope&lt;/b&gt;</property>
-                <property name="use_markup">True</property>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkAlignment" id="cell-properties-scope-alignment">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="left_padding">12</property>
-                <child>
-                  <widget class="GtkTable" id="cell-properties-scope-table">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="n_rows">2</property>
-                    <property name="n_columns">5</property>
-                    <property name="column_spacing">6</property>
-                    <property name="row_spacing">6</property>
-                    <child>
-                      <placeholder/>
-                    </child>
                     <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <widget class="GtkRadioButton" id="cell-properties-column-radio-button">
+                      <widget class="GtkImage" id="cell-properties-column-image">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">Col_umn</property>
-                        <property name="use_underline">True</property>
-                        <property name="response_id">0</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                        <property name="group">cell-properties-cell-radio-button</property>
-                        <signal name="toggled" handler="gtkhtml_editor_cell_properties_scope_toggled_cb" object="cell-properties-window"/>
+                        <property name="icon_name">stock_select-column</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkRadioButton" id="cell-properties-row-radio-button">
+                      <widget class="GtkRadioButton" id="cell-properties-cell-radio-button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">_Row</property>
+                        <property name="label" translatable="yes">C_ell</property>
                         <property name="use_underline">True</property>
                         <property name="response_id">0</property>
                         <property name="active">True</property>
                         <property name="draw_indicator">True</property>
-                        <property name="group">cell-properties-cell-radio-button</property>
                         <signal name="toggled" handler="gtkhtml_editor_cell_properties_scope_toggled_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
@@ -2492,73 +2261,44 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkRadioButton" id="cell-properties-cell-radio-button">
+                      <widget class="GtkRadioButton" id="cell-properties-row-radio-button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">C_ell</property>
+                        <property name="label" translatable="yes">_Row</property>
                         <property name="use_underline">True</property>
                         <property name="response_id">0</property>
                         <property name="active">True</property>
                         <property name="draw_indicator">True</property>
+                        <property name="group">cell-properties-cell-radio-button</property>
                         <signal name="toggled" handler="gtkhtml_editor_cell_properties_scope_toggled_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkImage" id="cell-properties-column-image">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="icon_name">stock_select-column</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">3</property>
-                        <property name="right_attach">4</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options"></property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkImage" id="cell-properties-row-image">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="icon_name">stock_select-row</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">3</property>
-                        <property name="right_attach">4</property>
-                        <property name="x_options"></property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkImage" id="cell-properties-table-image">
+                      <widget class="GtkRadioButton" id="cell-properties-column-radio-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="icon_name">stock_select-table</property>
+                        <property name="label" translatable="yes">Col_umn</property>
+                        <property name="use_underline">True</property>
+                        <property name="response_id">0</property>
+                        <property name="active">True</property>
+                        <property name="draw_indicator">True</property>
+                        <property name="group">cell-properties-cell-radio-button</property>
+                        <signal name="toggled" handler="gtkhtml_editor_cell_properties_scope_toggled_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options"></property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkImage" id="cell-properties-cell-image">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="icon_name">stock_select-cell</property>
-                      </widget>
-                      <packing>
-                        <property name="x_options"></property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -2608,64 +2348,32 @@
                       <placeholder/>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="cell-properties-alignment-hbox">
+                      <widget class="GtkLabel" id="cell-properties-horizontal-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="spacing">12</property>
-                        <child>
-                          <widget class="GtkCheckButton" id="cell-properties-wrap-text-check-button">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">_Wrap Text</property>
-                            <property name="use_underline">True</property>
-                            <property name="response_id">0</property>
-                            <property name="draw_indicator">True</property>
-                            <signal name="toggled" handler="gtkhtml_editor_cell_properties_wrap_text_toggled_cb" object="cell-properties-window"/>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkCheckButton" id="cell-properties-header-style-check-button">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">Hea_der Style</property>
-                            <property name="use_underline">True</property>
-                            <property name="response_id">0</property>
-                            <property name="draw_indicator">True</property>
-                            <signal name="toggled" handler="gtkhtml_editor_cell_properties_header_style_toggled_cb" object="cell-properties-window"/>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Horizontal:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">cell-properties-horizontal-combo-box</property>
                       </widget>
                       <packing>
-                        <property name="right_attach">5</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="cell-properties-vertical-combo-box">
+                      <widget class="GtkLabel" id="cell-properties-vertical-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">Top
-Middle
-Bottom</property>
-                        <signal name="changed" handler="gtkhtml_editor_cell_properties_vertical_changed_cb" object="cell-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Vertical:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">cell-properties-vertical-combo-box</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -2685,31 +2393,63 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="cell-properties-vertical-label">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Vertical:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">cell-properties-vertical-combo-box</property>
+                      <widget class="GtkComboBox" id="cell-properties-vertical-combo-box">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="items" translatable="yes">Top
+Middle
+Bottom</property>
+                        <signal name="changed" handler="gtkhtml_editor_cell_properties_vertical_changed_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">3</property>
-                        <property name="right_attach">4</property>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="cell-properties-horizontal-label">
+                      <widget class="GtkHBox" id="cell-properties-alignment-hbox">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Horizontal:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">cell-properties-horizontal-combo-box</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <widget class="GtkCheckButton" id="cell-properties-wrap-text-check-button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="label" translatable="yes">_Wrap Text</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                            <signal name="toggled" handler="gtkhtml_editor_cell_properties_wrap_text_toggled_cb" object="cell-properties-window"/>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="cell-properties-header-style-check-button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="label" translatable="yes">Hea_der Style</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                            <signal name="toggled" handler="gtkhtml_editor_cell_properties_header_style_toggled_cb" object="cell-properties-window"/>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
                       </widget>
                       <packing>
+                        <property name="right_attach">5</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
@@ -2771,49 +2511,49 @@
                       <placeholder/>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="cell-properties-column-span-spin-button">
+                      <widget class="GtkCheckButton" id="cell-properties-width-check-button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="change_value" handler="gtkhtml_editor_cell_properties_column_span_changed_cb" object="cell-properties-window"/>
+                        <property name="label" translatable="yes">Width:</property>
+                        <property name="use_underline">True</property>
+                        <property name="response_id">0</property>
+                        <property name="draw_indicator">True</property>
+                        <signal name="toggled" handler="gtkhtml_editor_cell_properties_width_changed_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="cell-properties-row-span-spin-button">
+                      <widget class="GtkSpinButton" id="cell-properties-width-spin-button">
+                        <property name="width_request">100</property>
                         <property name="visible">True</property>
+                        <property name="sensitive">False</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="change_value" handler="gtkhtml_editor_cell_properties_row_span_changed_cb" object="cell-properties-window"/>
+                        <signal name="value_changed" handler="gtkhtml_editor_cell_properties_width_changed_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="cell-properties-column-span-label">
+                      <widget class="GtkComboBox" id="cell-properties-width-combo-box">
                         <property name="visible">True</property>
+                        <property name="sensitive">False</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">Column Span:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">cell-properties-column-span-spin-button</property>
+                        <property name="items" translatable="yes">px
+%</property>
+                        <signal name="changed" handler="gtkhtml_editor_cell_properties_width_changed_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">4</property>
-                        <property name="right_attach">5</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
@@ -2835,50 +2575,50 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="cell-properties-width-combo-box">
+                      <widget class="GtkLabel" id="cell-properties-column-span-label">
                         <property name="visible">True</property>
-                        <property name="sensitive">False</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">px
-%</property>
-                        <signal name="changed" handler="gtkhtml_editor_cell_properties_width_changed_cb" object="cell-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">Column Span:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">cell-properties-column-span-spin-button</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
+                        <property name="left_attach">4</property>
+                        <property name="right_attach">5</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="cell-properties-width-spin-button">
-                        <property name="width_request">100</property>
+                      <widget class="GtkSpinButton" id="cell-properties-row-span-spin-button">
                         <property name="visible">True</property>
-                        <property name="sensitive">False</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_cell_properties_width_changed_cb" object="cell-properties-window"/>
+                        <signal name="change_value" handler="gtkhtml_editor_cell_properties_row_span_changed_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="cell-properties-width-check-button">
+                      <widget class="GtkSpinButton" id="cell-properties-column-span-spin-button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">Width:</property>
-                        <property name="use_underline">True</property>
-                        <property name="response_id">0</property>
-                        <property name="draw_indicator">True</property>
-                        <signal name="toggled" handler="gtkhtml_editor_cell_properties_width_changed_cb" object="cell-properties-window"/>
+                        <property name="adjustment">0 0 100 1 10 10</property>
+                        <signal name="change_value" handler="gtkhtml_editor_cell_properties_column_span_changed_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -2924,17 +2664,31 @@
                     <property name="column_spacing">6</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkFileChooserButton" id="cell-properties-image-file-chooser">
+                      <widget class="GtkLabel" id="cell-properties-color-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="title" translatable="yes">Select An Image</property>
-                        <signal name="file_set" handler="gtkhtml_editor_cell_properties_image_file_set_cb" object="cell-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">C_olor:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">cell-properties-color-combo</property>
+                      </widget>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="cell-properties-image-label">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label" translatable="yes">I_mage:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">cell-properties-image-file-chooser</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -2952,31 +2706,17 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="cell-properties-image-label">
+                      <widget class="GtkFileChooserButton" id="cell-properties-image-file-chooser">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">I_mage:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">cell-properties-image-file-chooser</property>
+                        <property name="title" translatable="yes">Select An Image</property>
+                        <signal name="file_set" handler="gtkhtml_editor_cell_properties_image_file_set_cb" object="cell-properties-window"/>
                       </widget>
                       <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkLabel" id="cell-properties-color-label">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">C_olor:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">cell-properties-color-combo</property>
-                      </widget>
-                      <packing>
-                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -3083,58 +2823,58 @@
                     <property name="column_spacing">6</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkEntry" id="image-properties-description-entry">
+                      <widget class="GtkLabel" id="image-properties-source-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <signal name="changed" handler="gtkhtml_editor_image_properties_description_changed_cb" object="image-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Source:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">image-properties-source-file-chooser</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkFileChooserButton" id="image-properties-source-file-chooser">
+                      <widget class="GtkLabel" id="image-properties-description-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <signal name="file_set" handler="gtkhtml_editor_image_properties_source_file_set_cb" object="image-properties-window"/>
+                        <property name="label" translatable="yes">_Description:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">image-properties-description-entry</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-description-label">
+                      <widget class="GtkFileChooserButton" id="image-properties-source-file-chooser">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">_Description:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-description-entry</property>
+                        <signal name="file_set" handler="gtkhtml_editor_image_properties_source_file_set_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-source-label">
+                      <widget class="GtkEntry" id="image-properties-description-entry">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Source:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-source-file-chooser</property>
+                        <signal name="changed" handler="gtkhtml_editor_image_properties_description_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -3177,160 +2917,125 @@
                     <property name="n_rows">3</property>
                     <property name="n_columns">7</property>
                     <property name="column_spacing">6</property>
-                    <property name="row_spacing">6</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <widget class="GtkLabel" id="image-properties-width-label">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Width:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-width-spin-button</property>
-                      </widget>
-                      <packing>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
+                    <property name="row_spacing">6</property>
+                    <child>
+                      <placeholder/>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-height-label">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Height:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-height-spin-button</property>
-                      </widget>
-                      <packing>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
+                      <placeholder/>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-alignment-label">
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <widget class="GtkSpinButton" id="image-properties-border-spin-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Alignment:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-alignment-combo-box</property>
+                        <property name="adjustment">0 0 100 1 10 10</property>
+                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_border_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
-                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="image-properties-width-spin-button">
-                        <property name="width_request">100</property>
+                      <widget class="GtkLabel" id="image-properties-border-units-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">px</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="left_attach">6</property>
+                        <property name="right_attach">7</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="image-properties-height-spin-button">
-                        <property name="width_request">100</property>
+                      <widget class="GtkSpinButton" id="image-properties-y-padding-spin-button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
+                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_padding_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="image-properties-width-combo-box">
+                      <widget class="GtkLabel" id="image-properties-y-padding-units-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">px
-%
-follow</property>
-                        <signal name="changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">px</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
-                        <property name="x_options"></property>
+                        <property name="left_attach">6</property>
+                        <property name="right_attach">7</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="image-properties-height-combo-box">
+                      <widget class="GtkLabel" id="image-properties-x-padding-units-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">px
-%
-follow</property>
-                        <signal name="changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">px</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options"></property>
+                        <property name="left_attach">6</property>
+                        <property name="right_attach">7</property>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="image-properties-alignment-combo-box">
+                      <widget class="GtkSpinButton" id="image-properties-x-padding-spin-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="items" translatable="yes">Top
-Middle
-Bottom</property>
-                        <signal name="changed" handler="gtkhtml_editor_image_properties_alignment_changed_cb" object="image-properties-window"/>
+                        <property name="adjustment">0 0 100 1 10 10</property>
+                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_padding_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
+                        <property name="left_attach">5</property>
+                        <property name="right_attach">6</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-x-padding-label">
+                      <widget class="GtkLabel" id="image-properties-border-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_X-Padding:</property>
+                        <property name="label" translatable="yes">_Border:</property>
                         <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-x-padding-spin-button</property>
+                        <property name="mnemonic_widget">image-properties-border-spin-button</property>
                       </widget>
                       <packing>
                         <property name="left_attach">4</property>
                         <property name="right_attach">5</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
@@ -3354,93 +3059,114 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-border-label">
+                      <widget class="GtkLabel" id="image-properties-x-padding-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_Border:</property>
+                        <property name="label" translatable="yes">_X-Padding:</property>
                         <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-border-spin-button</property>
+                        <property name="mnemonic_widget">image-properties-x-padding-spin-button</property>
                       </widget>
                       <packing>
                         <property name="left_attach">4</property>
                         <property name="right_attach">5</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkComboBox" id="image-properties-alignment-combo-box">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="items" translatable="yes">Top
+Middle
+Bottom</property>
+                        <signal name="changed" handler="gtkhtml_editor_image_properties_alignment_changed_cb" object="image-properties-window"/>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
-                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="image-properties-x-padding-spin-button">
+                      <widget class="GtkComboBox" id="image-properties-height-combo-box">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_padding_changed_cb" object="image-properties-window"/>
+                        <property name="items" translatable="yes">px
+%
+follow</property>
+                        <signal name="changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-x-padding-units-label">
+                      <widget class="GtkComboBox" id="image-properties-width-combo-box">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">px</property>
+                        <property name="items" translatable="yes">px
+%
+follow</property>
+                        <signal name="changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">6</property>
-                        <property name="right_attach">7</property>
-                        <property name="x_options">GTK_FILL</property>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options"></property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-y-padding-units-label">
+                      <widget class="GtkSpinButton" id="image-properties-height-spin-button">
+                        <property name="width_request">100</property>
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">px</property>
+                        <property name="adjustment">0 0 100 1 10 10</property>
+                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">6</property>
-                        <property name="right_attach">7</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="image-properties-y-padding-spin-button">
+                      <widget class="GtkSpinButton" id="image-properties-width-spin-button">
+                        <property name="width_request">100</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_padding_changed_cb" object="image-properties-window"/>
+                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_size_changed_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-border-units-label">
+                      <widget class="GtkLabel" id="image-properties-alignment-label">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">px</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Alignment:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">image-properties-alignment-combo-box</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">6</property>
-                        <property name="right_attach">7</property>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
                         <property name="x_options">GTK_FILL</property>
@@ -3448,18 +3174,32 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkSpinButton" id="image-properties-border-spin-button">
+                      <widget class="GtkLabel" id="image-properties-height-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="adjustment">0 0 100 1 10 10</property>
-                        <signal name="value_changed" handler="gtkhtml_editor_image_properties_border_changed_cb" object="image-properties-window"/>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Height:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">image-properties-height-spin-button</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">5</property>
-                        <property name="right_attach">6</property>
-                        <property name="top_attach">2</property>
-                        <property name="bottom_attach">3</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="image-properties-width-label">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Width:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">image-properties-width-spin-button</property>
+                      </widget>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
@@ -3505,19 +3245,15 @@
                     <property name="column_spacing">6</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkButton" id="image-properties-url-button">
+                      <widget class="GtkLabel" id="image-properties-url-label">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">_Test URL...</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_URL:</property>
                         <property name="use_underline">True</property>
-                        <property name="response_id">0</property>
-                        <signal name="clicked" handler="gtkhtml_editor_image_properties_url_button_clicked_cb" object="image-properties-window"/>
+                        <property name="mnemonic_widget">image-properties-url-entry</property>
                       </widget>
                       <packing>
-                        <property name="left_attach">2</property>
-                        <property name="right_attach">3</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
@@ -3536,15 +3272,19 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="image-properties-url-label">
+                      <widget class="GtkButton" id="image-properties-url-button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">_URL:</property>
+                        <property name="label" translatable="yes">_Test URL...</property>
                         <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">image-properties-url-entry</property>
+                        <property name="response_id">0</property>
+                        <signal name="clicked" handler="gtkhtml_editor_image_properties_url_button_clicked_cb" object="image-properties-window"/>
                       </widget>
                       <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>

Modified: branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.c	Fri Feb 29 17:08:15 2008
@@ -48,8 +48,8 @@
 	const GtkhtmlSpellLanguage *language;
 };
 
-static gpointer parent_class = NULL;
-static guint signals[LAST_SIGNAL] = { 0 };
+static gpointer parent_class;
+static guint signals[LAST_SIGNAL];
 
 static gboolean
 spell_checker_is_digit (const gchar *text,
@@ -203,8 +203,7 @@
 		GtkhtmlSpellCheckerClass, added),
 		NULL, NULL,
 		gtkhtml_spell_marshal_VOID__STRING_INT,
-		G_TYPE_NONE,
-		2,
+		G_TYPE_NONE, 2,
 		G_TYPE_STRING,
 		G_TYPE_INT);
 
@@ -216,8 +215,7 @@
 		GtkhtmlSpellCheckerClass, added_to_session),
 		NULL, NULL,
 		gtkhtml_spell_marshal_VOID__STRING_INT,
-		G_TYPE_NONE,
-		2,
+		G_TYPE_NONE, 2,
 		G_TYPE_STRING,
 		G_TYPE_INT);
 
@@ -229,8 +227,7 @@
 		GtkhtmlSpellCheckerClass, session_cleared),
 		NULL, NULL,
 		g_cclosure_marshal_VOID__VOID,
-		G_TYPE_NONE,
-		0);
+		G_TYPE_NONE, 0);
 }
 
 static void
@@ -311,7 +308,7 @@
 	return (result == 0);
 }
 
-GSList *
+GList *
 gtkhtml_spell_checker_get_suggestions (GtkhtmlSpellChecker *checker,
                                        const gchar *word,
                                        gssize length)
@@ -319,22 +316,22 @@
 	EnchantDict *dict;
 	gchar **suggestions;
 	gsize n_suggestions;
-	GSList *list = NULL;
+	GList *list = NULL;
 
 	g_return_val_if_fail (GTKHTML_IS_SPELL_CHECKER (checker), NULL);
 
-	if ((dict = checker->priv->dict) != NULL)
+	if ((dict = checker->priv->dict) == NULL)
 		return NULL;
 
 	suggestions = enchant_dict_suggest (
 		dict, word, length, &n_suggestions);
 
 	while (n_suggestions > 0)
-		list = g_slist_prepend (list, suggestions[--n_suggestions]);
+		list = g_list_prepend (list, suggestions[--n_suggestions]);
 
 	g_free (suggestions);
 
-	return list;
+	return g_list_sort (list, (GCompareFunc) g_utf8_collate);
 }
 
 void
@@ -418,3 +415,16 @@
 
 	g_signal_emit (G_OBJECT (checker), signals[SESSION_CLEARED], 0);
 }
+
+gint
+gtkhtml_spell_checker_compare (GtkhtmlSpellChecker *checker_a,
+                               GtkhtmlSpellChecker *checker_b)
+{
+	const GtkhtmlSpellLanguage *language_a;
+	const GtkhtmlSpellLanguage *language_b;
+
+	language_a = gtkhtml_spell_checker_get_language (checker_a);
+	language_b = gtkhtml_spell_checker_get_language (checker_b);
+
+	return gtkhtml_spell_language_compare (language_a, language_b);
+}

Modified: branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.h
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.h	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-spell-checker.h	Fri Feb 29 17:08:15 2008
@@ -79,7 +79,7 @@
 					(GtkhtmlSpellChecker *checker,
 					 const gchar *word,
 					 gssize length);
-GSList *	gtkhtml_spell_checker_get_suggestions
+GList *		gtkhtml_spell_checker_get_suggestions
 					(GtkhtmlSpellChecker *checker,
 					 const gchar *word,
 					 gssize length);
@@ -99,6 +99,9 @@
 					 gssize length);
 void		gtkhtml_spell_checker_clear_session
 					(GtkhtmlSpellChecker *checker);
+gint		gtkhtml_spell_checker_compare
+					(GtkhtmlSpellChecker *checker_a,
+					 GtkhtmlSpellChecker *checker_b);
 
 G_END_DECLS
 

Modified: branches/mbarnes-composer/components/editor/gtkhtml-spell-language.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-spell-language.c	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-spell-language.c	Fri Feb 29 17:08:15 2008
@@ -30,6 +30,7 @@
 struct _GtkhtmlSpellLanguage {
 	gchar *code;
 	gchar *name;
+	gchar *ckey;
 };
 
 static GHashTable *iso_639_table = NULL;
@@ -234,15 +235,16 @@
 static gboolean
 spell_language_traverse_cb (const gchar *code,
                             const gchar *name,
-                            GSList **available_languages)
+                            GList **available_languages)
 {
 	GtkhtmlSpellLanguage *language;
 
 	language = g_slice_new (GtkhtmlSpellLanguage);
 	language->code = g_strdup (code);
 	language->name = g_strdup (name);
+	language->ckey = g_utf8_collate_key (name, -1);
 
-	*available_languages = g_slist_insert_sorted (
+	*available_languages = g_list_insert_sorted (
 		*available_languages, language,
 		(GCompareFunc) spell_language_compare);
 
@@ -263,11 +265,11 @@
 	return type;
 }
 
-const GSList *
+const GList *
 gtkhtml_spell_language_get_available (void)
 {
 	static gboolean initialized = FALSE;
-	static GSList *available_languages = NULL;
+	static GList *available_languages = NULL;
 	EnchantBroker *broker;
 	GTree *tree;
 
@@ -324,14 +326,14 @@
 gtkhtml_spell_language_lookup (const gchar *language_code)
 {
 	const GtkhtmlSpellLanguage *closest_match = NULL;
-	const GSList *available;
+	const GList *available_languages;
 
 	g_return_val_if_fail (language_code != NULL, NULL);
 
-	available = gtkhtml_spell_language_get_available ();
+	available_languages = gtkhtml_spell_language_get_available ();
 
-	while (available != NULL) {
-		GtkhtmlSpellLanguage *language = available->data;
+	while (available_languages != NULL) {
+		GtkhtmlSpellLanguage *language = available_languages->data;
 		const gchar *code = language->code;
 		gsize length = strlen (code);
 
@@ -341,7 +343,7 @@
 		if (g_ascii_strncasecmp (language_code, code, length) == 0)
 			closest_match = language;
 
-		available = g_slist_next (available);
+		available_languages = g_list_next (available_languages);
 	}
 
 	return closest_match;
@@ -368,3 +370,10 @@
 
 	return language->name;
 }
+
+gint
+gtkhtml_spell_language_compare (const GtkhtmlSpellLanguage *language_a,
+                                const GtkhtmlSpellLanguage *language_b)
+{
+	return strcmp (language_a->ckey, language_b->ckey);
+}

Modified: branches/mbarnes-composer/components/editor/gtkhtml-spell-language.h
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-spell-language.h	(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-spell-language.h	Fri Feb 29 17:08:15 2008
@@ -33,7 +33,7 @@
 	(gtkhtml_spell_language_get_type ())
 
 GType		gtkhtml_spell_language_get_type		(void);
-const GSList *	gtkhtml_spell_language_get_available	(void);
+const GList *	gtkhtml_spell_language_get_available	(void);
 
 const GtkhtmlSpellLanguage *
 		gtkhtml_spell_language_lookup
@@ -42,6 +42,9 @@
 					(const GtkhtmlSpellLanguage *language);
 const gchar *	gtkhtml_spell_language_get_name
 					(const GtkhtmlSpellLanguage *language);
+gint		gtkhtml_spell_language_compare
+					(const GtkhtmlSpellLanguage *language_a,
+					 const GtkhtmlSpellLanguage *language_b);
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]