[gnumeric] GUI: Use GtkBuilder, not libglade.



commit 115fb4694999b00d84c1b81a159ffb0ffb26c94c
Author: Morten Welinder <terra gnome org>
Date:   Tue Oct 19 15:14:32 2010 -0400

    GUI: Use GtkBuilder, not libglade.

 NEWS                                               |    1 +
 configure.in                                       |    1 -
 po-functions/POTFILES.in                           |  166 +++++++-------
 po-functions/POTFILES.skip                         |   78 -------
 po/POTFILES.in                                     |  244 +++++++-------------
 src/dialogs/Makefile.am                            |  155 ++++++-------
 src/dialogs/dialog-advanced-filter.c               |    2 +-
 src/dialogs/dialog-analysis-tool-chi-squared.c     |    2 +-
 src/dialogs/dialog-analysis-tool-frequency.c       |    2 +-
 src/dialogs/dialog-analysis-tool-kaplan-meier.c    |    2 +-
 src/dialogs/dialog-analysis-tool-normality.c       |    2 +-
 .../dialog-analysis-tool-principal-components.c    |    2 +-
 src/dialogs/dialog-analysis-tool-sign-test.c       |    4 +-
 .../dialog-analysis-tool-wilcoxon-mann-whitney.c   |    2 +-
 src/dialogs/dialog-analysis-tools.c                |   37 ++--
 src/dialogs/dialog-autofilter.c                    |   11 +-
 src/dialogs/dialog-autoformat.c                    |  111 +++++++---
 src/dialogs/dialog-autosave.c                      |   33 +--
 src/dialogs/dialog-cell-comment.c                  |    7 +-
 src/dialogs/dialog-cell-format.c                   |   22 +-
 src/dialogs/dialog-cell-sort.c                     |   11 +-
 src/dialogs/dialog-col-row.c                       |    7 +-
 src/dialogs/dialog-col-width.c                     |   36 +--
 src/dialogs/dialog-consolidate.c                   |   18 +-
 src/dialogs/dialog-data-slicer.c                   |   64 ++++-
 src/dialogs/dialog-data-table.c                    |   27 +--
 src/dialogs/dialog-define-names.c                  |    8 +-
 src/dialogs/dialog-delete-cells.c                  |    7 +-
 src/dialogs/dialog-doc-metadata.c                  |    8 +-
 src/dialogs/dialog-fill-series.c                   |    2 +-
 src/dialogs/dialog-formula-guru.c                  |    7 +-
 src/dialogs/dialog-function-select.c               |    7 +-
 src/dialogs/dialog-goal-seek.c                     |    7 +-
 src/dialogs/dialog-goto-cell.c                     |    7 +-
 src/dialogs/dialog-hyperlink.c                     |    7 +-
 src/dialogs/dialog-insert-cells.c                  |    7 +-
 src/dialogs/dialog-merge.c                         |    7 +-
 src/dialogs/dialog-paste-special.c                 |    7 +-
 src/dialogs/dialog-plugin-manager.c                |    8 +-
 src/dialogs/dialog-preferences.c                   |   18 +-
 src/dialogs/dialog-printer-setup.c                 |   35 ++--
 src/dialogs/dialog-random-generator-cor.c          |    2 +-
 src/dialogs/dialog-random-generator.c              |    2 +-
 src/dialogs/dialog-row-height.c                    |    5 +-
 src/dialogs/dialog-scenarios.c                     |    4 +-
 src/dialogs/dialog-search-replace.c                |   20 +-
 src/dialogs/dialog-sheet-order.c                   |    7 +-
 src/dialogs/dialog-sheetobject-size.c              |    7 +-
 src/dialogs/dialog-shuffle.c                       |    2 +-
 src/dialogs/dialog-simulation.c                    |    2 +-
 src/dialogs/dialog-solver.c                        |    5 +-
 src/dialogs/dialog-stf-csv-page.c                  |    2 +-
 src/dialogs/dialog-stf-export.c                    |    5 +-
 src/dialogs/dialog-stf-fixed-page.c                |    2 +-
 src/dialogs/dialog-stf-format-page.c               |    2 +-
 src/dialogs/dialog-stf-main-page.c                 |    2 +-
 src/dialogs/dialog-stf.c                           |    9 +-
 src/dialogs/dialog-stf.h                           |    8 +-
 src/dialogs/dialog-tabulate.c                      |    7 +-
 src/dialogs/dialog-view.c                          |    7 +-
 src/dialogs/dialog-workbook-attr.c                 |    7 +-
 src/dialogs/dialog-zoom.c                          |    7 +-
 src/dialogs/tool-dialogs.h                         |    3 +-
 src/gui-util.c                                     |   33 +---
 src/gui-util.h                                     |    3 -
 src/libgnumeric.c                                  |    3 -
 src/widgets/gnm-dao.c                              |    4 +-
 src/widgets/widget-font-selector.c                 |    4 +-
 tools/win32/moduleset.in                           |    1 -
 69 files changed, 602 insertions(+), 752 deletions(-)
---
diff --git a/NEWS b/NEWS
index 7657123..7c71509 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,7 @@ Andreas:
 
 Jean:
 	* Fixed maximum for col/row number in sheet resize dialog. [#631702]
+	* Eliminate glade usage.  [#631717]
 
 Morten:
 	* Fix crash related to broken xls.  [#632050]
diff --git a/configure.in b/configure.in
index 13bbb9a..5a2a30a 100644
--- a/configure.in
+++ b/configure.in
@@ -159,7 +159,6 @@ gnumeric_reqs="$libspreadsheet_reqs
 	pangocairo		>= 1.10.0
 "
 libspreadsheet_gtk_reqs="
-	libglade-2.0		>= 2.3.6
 	gtk+-2.0		>= 2.12.0
 "
 
diff --git a/po-functions/POTFILES.in b/po-functions/POTFILES.in
index ff3154c..980df0f 100644
--- a/po-functions/POTFILES.in
+++ b/po-functions/POTFILES.in
@@ -8,8 +8,8 @@ plugins/excel/ms-excel-read.c
 plugins/excel/ms-excel-write.c
 plugins/excel/ms-formula-read.c
 plugins/excel/ms-formula-write.c
-plugins/excel/xlsx-read.c
 plugins/excel/xlsx-read-pivot.c
+plugins/excel/xlsx-read.c
 plugins/excelplugins/excelplugins.c
 plugins/fn-christian-date/functions.c
 plugins/fn-complex/functions.c
@@ -110,8 +110,8 @@ src/dialogs/dialog-plugin-manager.c
 src/dialogs/dialog-preferences.c
 src/dialogs/dialog-printer-setup.c
 src/dialogs/dialog-quit.c
-src/dialogs/dialog-random-generator.c
 src/dialogs/dialog-random-generator-cor.c
+src/dialogs/dialog-random-generator.c
 src/dialogs/dialog-recent.c
 src/dialogs/dialog-row-height.c
 src/dialogs/dialog-scenarios.c
@@ -136,7 +136,85 @@ src/dialogs/dialog-tabulate.c
 src/dialogs/dialog-view.c
 src/dialogs/dialog-workbook-attr.c
 src/dialogs/dialog-zoom.c
+[type: gettext/glade]src/dialogs/advanced-filter.ui
+[type: gettext/glade]src/dialogs/anova-one.ui
+[type: gettext/glade]src/dialogs/anova-two.ui
+[type: gettext/glade]src/dialogs/autofilter-expression.ui
+[type: gettext/glade]src/dialogs/autofilter-top10.ui
+[type: gettext/glade]src/dialogs/autoformat.ui
+[type: gettext/glade]src/dialogs/autosave.ui
+[type: gettext/glade]src/dialogs/cell-comment.ui
+[type: gettext/glade]src/dialogs/cell-format.ui
+[type: gettext/glade]src/dialogs/cell-sort.ui
+[type: gettext/glade]src/dialogs/chi-squared.ui
+[type: gettext/glade]src/dialogs/col-width.ui
+[type: gettext/glade]src/dialogs/colrow.ui
+[type: gettext/glade]src/dialogs/consolidate.ui
+[type: gettext/glade]src/dialogs/correlation.ui
+[type: gettext/glade]src/dialogs/covariance.ui
+[type: gettext/glade]src/dialogs/dao.ui
+[type: gettext/glade]src/dialogs/data-slicer.ui
+[type: gettext/glade]src/dialogs/data-table.ui
+[type: gettext/glade]src/dialogs/define-name.ui
+[type: gettext/glade]src/dialogs/delete-cells.ui
+[type: gettext/glade]src/dialogs/descriptive-stats.ui
+[type: gettext/glade]src/dialogs/dialog-stf-export.ui
+[type: gettext/glade]src/dialogs/dialog-stf.ui
+[type: gettext/glade]src/dialogs/dialog-zoom.ui
+[type: gettext/glade]src/dialogs/doc-meta-data.ui
+[type: gettext/glade]src/dialogs/exp-smoothing.ui
+[type: gettext/glade]src/dialogs/fill-series.ui
+[type: gettext/glade]src/dialogs/font-sel.ui
+[type: gettext/glade]src/dialogs/formula-guru.ui
+[type: gettext/glade]src/dialogs/fourier-analysis.ui
+[type: gettext/glade]src/dialogs/frequency.ui
+[type: gettext/glade]src/dialogs/function-select.ui
+[type: gettext/glade]src/dialogs/goalseek.ui
+[type: gettext/glade]src/dialogs/goto.ui
+[type: gettext/glade]src/dialogs/hf-config.ui
+[type: gettext/glade]src/dialogs/hf-dt-format.ui
+[type: gettext/glade]src/dialogs/histogram.ui
+[type: gettext/glade]src/dialogs/hyperlink.ui
+[type: gettext/glade]src/dialogs/insert-cells.ui
+[type: gettext/glade]src/dialogs/kaplan-meier.ui
+[type: gettext/glade]src/dialogs/mean-tests.ui
+[type: gettext/glade]src/dialogs/merge.ui
+[type: gettext/glade]src/dialogs/moving-averages.ui
+[type: gettext/glade]src/dialogs/normality-tests.ui
+[type: gettext/glade]src/dialogs/paste-special.ui
+[type: gettext/glade]src/dialogs/plugin-manager.ui
+[type: gettext/glade]src/dialogs/preferences.ui
+[type: gettext/glade]src/dialogs/principal-components.ui
+[type: gettext/glade]src/dialogs/print.ui
+[type: gettext/glade]src/dialogs/random-generation-cor.ui
+[type: gettext/glade]src/dialogs/random-generation.ui
+[type: gettext/glade]src/dialogs/rank.ui
+[type: gettext/glade]src/dialogs/regression.ui
+[type: gettext/glade]src/dialogs/row-height.ui
+[type: gettext/glade]src/dialogs/sampling.ui
+[type: gettext/glade]src/dialogs/scenario-add.ui
+[type: gettext/glade]src/dialogs/scenario-manager.ui
+[type: gettext/glade]src/dialogs/search-replace.ui
 [type: gettext/glade]src/dialogs/search.ui
+[type: gettext/glade]src/dialogs/sheet-order.ui
+[type: gettext/glade]src/dialogs/sheet-resize.ui
+[type: gettext/glade]src/dialogs/sheetobject-size.ui
+[type: gettext/glade]src/dialogs/shuffle.ui
+[type: gettext/glade]src/dialogs/sign-test-two.ui
+[type: gettext/glade]src/dialogs/sign-test.ui
+[type: gettext/glade]src/dialogs/simulation.ui
+[type: gettext/glade]src/dialogs/so-button.ui
+[type: gettext/glade]src/dialogs/so-checkbox.ui
+[type: gettext/glade]src/dialogs/so-frame.ui
+[type: gettext/glade]src/dialogs/so-list.ui
+[type: gettext/glade]src/dialogs/so-radiobutton.ui
+[type: gettext/glade]src/dialogs/so-scrollbar.ui
+[type: gettext/glade]src/dialogs/solver.ui
+[type: gettext/glade]src/dialogs/tabulate.ui
+[type: gettext/glade]src/dialogs/variance-tests.ui
+[type: gettext/glade]src/dialogs/view.ui
+[type: gettext/glade]src/dialogs/wilcoxon-mann-whitney.ui
+[type: gettext/glade]src/dialogs/workbook-attr.ui
 src/expr-name.c
 src/expr.c
 src/file-autoft.c
@@ -177,13 +255,13 @@ src/session.c
 src/sheet-autofill.c
 src/sheet-control-gui.c
 src/sheet-filter.c
-src/sheet-utils.c
 src/sheet-merge.c
 src/sheet-object-graph.c
 src/sheet-object-image.c
 src/sheet-object-widget.c
 src/sheet-object.c
 src/sheet-style.c
+src/sheet-utils.c
 src/sheet-view.c
 src/sheet.c
 src/ssconvert.c
@@ -212,8 +290,8 @@ src/tools/data-shuffling.c
 src/tools/fill-series.c
 src/tools/filter.c
 src/tools/gnm-solver.c
-src/tools/random-generator.c
 src/tools/random-generator-cor.c
+src/tools/random-generator.c
 src/tools/scenarios.c
 src/tools/simulation.c
 src/tools/tabulate.c
@@ -228,11 +306,11 @@ src/widgets/gnm-cell-combo-view.c
 src/widgets/gnm-dao.c
 src/widgets/gnm-filter-combo-view.c
 src/widgets/gnm-format-sel.c
+src/widgets/gnm-sheet-slicer-combo-view.c
 src/widgets/gnumeric-cell-renderer-expr-entry.c
 src/widgets/gnumeric-cell-renderer-text.c
 src/widgets/gnumeric-cell-renderer-toggle.c
 src/widgets/gnumeric-expr-entry.c
-src/widgets/gnm-sheet-slicer-combo-view.c
 src/widgets/gnumeric-text-view.c
 src/widgets/widget-font-selector.c
 src/workbook-cmd-format.c
@@ -241,81 +319,3 @@ src/workbook-view.c
 src/workbook.c
 src/xml-sax-read.c
 src/xml-sax-write.c
-[type: gettext/glade]src/dialogs/advanced-filter.ui
-[type: gettext/glade]src/dialogs/anova-one.ui
-[type: gettext/glade]src/dialogs/anova-two.ui
-[type: gettext/glade]src/dialogs/autofilter-expression.ui
-[type: gettext/glade]src/dialogs/autofilter-top10.ui
-[type: gettext/glade]src/dialogs/autoformat.ui
-[type: gettext/glade]src/dialogs/autosave.ui
-[type: gettext/glade]src/dialogs/cell-comment.ui
-[type: gettext/glade]src/dialogs/cell-format.ui
-[type: gettext/glade]src/dialogs/cell-sort.ui
-[type: gettext/glade]src/dialogs/chi-squared.ui
-[type: gettext/glade]src/dialogs/col-width.ui
-[type: gettext/glade]src/dialogs/colrow.ui
-[type: gettext/glade]src/dialogs/consolidate.ui
-[type: gettext/glade]src/dialogs/correlation.ui
-[type: gettext/glade]src/dialogs/covariance.ui
-[type: gettext/glade]src/dialogs/dao.ui
-[type: gettext/glade]src/dialogs/data-slicer.ui
-[type: gettext/glade]src/dialogs/data-table.ui
-[type: gettext/glade]src/dialogs/define-name.ui
-[type: gettext/glade]src/dialogs/delete-cells.ui
-[type: gettext/glade]src/dialogs/descriptive-stats.ui
-[type: gettext/glade]src/dialogs/dialog-stf-export.ui
-[type: gettext/glade]src/dialogs/dialog-stf.ui
-[type: gettext/glade]src/dialogs/dialog-zoom.ui
-[type: gettext/glade]src/dialogs/doc-meta-data.ui
-[type: gettext/glade]src/dialogs/exp-smoothing.ui
-[type: gettext/glade]src/dialogs/fill-series.ui
-[type: gettext/glade]src/dialogs/font-sel.ui
-[type: gettext/glade]src/dialogs/formula-guru.ui
-[type: gettext/glade]src/dialogs/fourier-analysis.ui
-[type: gettext/glade]src/dialogs/frequency.ui
-[type: gettext/glade]src/dialogs/function-select.ui
-[type: gettext/glade]src/dialogs/goalseek.ui
-[type: gettext/glade]src/dialogs/goto.ui
-[type: gettext/glade]src/dialogs/hf-config.ui
-[type: gettext/glade]src/dialogs/hf-dt-format.ui
-[type: gettext/glade]src/dialogs/histogram.ui
-[type: gettext/glade]src/dialogs/hyperlink.ui
-[type: gettext/glade]src/dialogs/insert-cells.ui
-[type: gettext/glade]src/dialogs/kaplan-meier.ui
-[type: gettext/glade]src/dialogs/mean-tests.ui
-[type: gettext/glade]src/dialogs/merge.ui
-[type: gettext/glade]src/dialogs/moving-averages.ui
-[type: gettext/glade]src/dialogs/normality-tests.ui
-[type: gettext/glade]src/dialogs/paste-special.ui
-[type: gettext/glade]src/dialogs/plugin-manager.ui
-[type: gettext/glade]src/dialogs/preferences.ui
-[type: gettext/glade]src/dialogs/principal-components.ui
-[type: gettext/glade]src/dialogs/print.ui
-[type: gettext/glade]src/dialogs/random-generation-cor.ui
-[type: gettext/glade]src/dialogs/random-generation.ui
-[type: gettext/glade]src/dialogs/rank.ui
-[type: gettext/glade]src/dialogs/regression.ui
-[type: gettext/glade]src/dialogs/row-height.ui
-[type: gettext/glade]src/dialogs/sampling.ui
-[type: gettext/glade]src/dialogs/scenario-add.ui
-[type: gettext/glade]src/dialogs/scenario-manager.ui
-[type: gettext/glade]src/dialogs/search-replace.ui
-[type: gettext/glade]src/dialogs/sheet-order.ui
-[type: gettext/glade]src/dialogs/sheet-resize.ui
-[type: gettext/glade]src/dialogs/sheetobject-size.ui
-[type: gettext/glade]src/dialogs/shuffle.ui
-[type: gettext/glade]src/dialogs/sign-test-two.ui
-[type: gettext/glade]src/dialogs/sign-test.ui
-[type: gettext/glade]src/dialogs/simulation.ui
-[type: gettext/glade]src/dialogs/so-button.ui
-[type: gettext/glade]src/dialogs/so-checkbox.ui
-[type: gettext/glade]src/dialogs/so-frame.ui
-[type: gettext/glade]src/dialogs/so-list.ui
-[type: gettext/glade]src/dialogs/so-radiobutton.ui
-[type: gettext/glade]src/dialogs/so-scrollbar.ui
-[type: gettext/glade]src/dialogs/solver.ui
-[type: gettext/glade]src/dialogs/tabulate.ui
-[type: gettext/glade]src/dialogs/variance-tests.ui
-[type: gettext/glade]src/dialogs/view.ui
-[type: gettext/glade]src/dialogs/wilcoxon-mann-whitney.ui
-[type: gettext/glade]src/dialogs/workbook-attr.ui
diff --git a/po-functions/POTFILES.skip b/po-functions/POTFILES.skip
index eba4fd4..d8bfe15 100644
--- a/po-functions/POTFILES.skip
+++ b/po-functions/POTFILES.skip
@@ -68,84 +68,6 @@ schemas/gnumeric-general.schemas.in
 schemas/gnumeric-plugins.schemas.in
 src/GNOME_Gnumeric-gtk.xml.in
 src/HILDON_Gnumeric-gtk.xml.in
-src/dialogs/advanced-filter.glade
-src/dialogs/anova-one.glade
-src/dialogs/anova-two.glade
-src/dialogs/autofilter-expression.glade
-src/dialogs/autofilter-top10.glade
-src/dialogs/autoformat.glade
-src/dialogs/autosave.glade
-src/dialogs/cell-comment.glade
-src/dialogs/cell-format.glade
-src/dialogs/cell-sort.glade
-src/dialogs/chi-squared.glade
-src/dialogs/col-width.glade
-src/dialogs/colrow.glade
-src/dialogs/consolidate.glade
-src/dialogs/correlation.glade
-src/dialogs/covariance.glade
-src/dialogs/dao.glade
-src/dialogs/data-slicer.glade
-src/dialogs/data-table.glade
-src/dialogs/define-name.glade
-src/dialogs/delete-cells.glade
-src/dialogs/descriptive-stats.glade
-src/dialogs/dialog-stf-export.glade
-src/dialogs/dialog-stf.glade
-src/dialogs/dialog-zoom.glade
-src/dialogs/doc-meta-data.glade
-src/dialogs/exp-smoothing.glade
-src/dialogs/fill-series.glade
-src/dialogs/font-sel.glade
-src/dialogs/formula-guru.glade
-src/dialogs/fourier-analysis.glade
-src/dialogs/frequency.glade
-src/dialogs/function-select.glade
-src/dialogs/goalseek.glade
-src/dialogs/goto.glade
-src/dialogs/hf-config.glade
-src/dialogs/hf-dt-format.glade
-src/dialogs/histogram.glade
-src/dialogs/hyperlink.glade
-src/dialogs/insert-cells.glade
-src/dialogs/kaplan-meier.glade
-src/dialogs/mean-tests.glade
-src/dialogs/merge.glade
-src/dialogs/moving-averages.glade
-src/dialogs/normality-tests.glade
-src/dialogs/paste-special.glade
-src/dialogs/plugin-manager.glade
-src/dialogs/preferences.glade
-src/dialogs/print.glade
-src/dialogs/principal-components.glade
-src/dialogs/random-generation.glade
-src/dialogs/random-generation-cor.glade
-src/dialogs/rank.glade
-src/dialogs/regression.glade
-src/dialogs/row-height.glade
-src/dialogs/sampling.glade
-src/dialogs/scenario-add.glade
-src/dialogs/scenario-manager.glade
-src/dialogs/search-replace.glade
-src/dialogs/sheet-order.glade
-src/dialogs/sheet-resize.glade
-src/dialogs/sheetobject-size.glade
-src/dialogs/shuffle.glade
-src/dialogs/simulation.glade
-src/dialogs/sign-test.glade
-src/dialogs/sign-test-two.glade
-src/dialogs/so-button.glade
-src/dialogs/so-checkbox.glade
-src/dialogs/so-frame.glade
-src/dialogs/so-list.glade
-src/dialogs/so-radiobutton.glade
-src/dialogs/so-scrollbar.glade
-src/dialogs/solver.glade
-src/dialogs/tabulate.glade
-src/dialogs/variance-tests.glade
-src/dialogs/view.glade
-src/dialogs/wilcoxon-mann-whitney.glade
-src/dialogs/workbook-attr.glade
 templates/autoformat/3D.category.in
 templates/autoformat/Classical.category.in
 templates/autoformat/Colourful.category.in
diff --git a/po/POTFILES.in b/po/POTFILES.in
index ba1bf48..dbde7aa 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -16,8 +16,8 @@ plugins/excel/ms-excel-write.c
 plugins/excel/ms-formula-read.c
 plugins/excel/ms-formula-write.c
 plugins/excel/plugin.xml.in
-plugins/excel/xlsx-read.c
 plugins/excel/xlsx-read-pivot.c
+plugins/excel/xlsx-read.c
 plugins/excelplugins/excelplugins.c
 plugins/excelplugins/plugin.xml.in
 plugins/fn-christian-date/functions.c
@@ -132,29 +132,7 @@ src/command-context.c
 src/commands.c
 src/consolidate.c
 src/dependent.c
-src/dialogs/advanced-filter.glade
-src/dialogs/anova-one.glade
-src/dialogs/anova-two.glade
-src/dialogs/autofilter-expression.glade
-src/dialogs/autofilter-top10.glade
-src/dialogs/autoformat.glade
-src/dialogs/autosave.glade
-src/dialogs/cell-comment.glade
-src/dialogs/cell-format.glade
-src/dialogs/cell-sort.glade
-src/dialogs/chi-squared.glade
-src/dialogs/col-width.glade
-src/dialogs/colrow.glade
-src/dialogs/consolidate.glade
-src/dialogs/correlation.glade
-src/dialogs/covariance.glade
 src/dialogs/dao-gui-utils.c
-src/dialogs/dao.glade
-src/dialogs/data-slicer.glade
-src/dialogs/data-table.glade
-src/dialogs/define-name.glade
-src/dialogs/delete-cells.glade
-src/dialogs/descriptive-stats.glade
 src/dialogs/dialog-about.c
 src/dialogs/dialog-advanced-filter.c
 src/dialogs/dialog-analysis-tool-chi-squared.c
@@ -192,8 +170,8 @@ src/dialogs/dialog-plugin-manager.c
 src/dialogs/dialog-preferences.c
 src/dialogs/dialog-printer-setup.c
 src/dialogs/dialog-quit.c
-src/dialogs/dialog-random-generator.c
 src/dialogs/dialog-random-generator-cor.c
+src/dialogs/dialog-random-generator.c
 src/dialogs/dialog-recent.c
 src/dialogs/dialog-row-height.c
 src/dialogs/dialog-scenarios.c
@@ -208,73 +186,95 @@ src/dialogs/dialog-so-styled.c
 src/dialogs/dialog-solver.c
 src/dialogs/dialog-stf-csv-page.c
 src/dialogs/dialog-stf-export.c
-src/dialogs/dialog-stf-export.glade
 src/dialogs/dialog-stf-fixed-page.c
 src/dialogs/dialog-stf-format-page.c
 src/dialogs/dialog-stf-main-page.c
 src/dialogs/dialog-stf-preview.c
 src/dialogs/dialog-stf-preview.h
 src/dialogs/dialog-stf.c
-src/dialogs/dialog-stf.glade
 src/dialogs/dialog-tabulate.c
 src/dialogs/dialog-view.c
 src/dialogs/dialog-workbook-attr.c
 src/dialogs/dialog-zoom.c
-src/dialogs/dialog-zoom.glade
-src/dialogs/doc-meta-data.glade
-src/dialogs/exp-smoothing.glade
-src/dialogs/fill-series.glade
-src/dialogs/font-sel.glade
-src/dialogs/formula-guru.glade
-src/dialogs/fourier-analysis.glade
-src/dialogs/frequency.glade
-src/dialogs/function-select.glade
-src/dialogs/goalseek.glade
-src/dialogs/goto.glade
-src/dialogs/hf-config.glade
-src/dialogs/hf-dt-format.glade
-src/dialogs/histogram.glade
-src/dialogs/hyperlink.glade
-src/dialogs/insert-cells.glade
-src/dialogs/kaplan-meier.glade
-src/dialogs/mean-tests.glade
-src/dialogs/merge.glade
-src/dialogs/moving-averages.glade
-src/dialogs/normality-tests.glade
-src/dialogs/paste-special.glade
-src/dialogs/plugin-manager.glade
-src/dialogs/preferences.glade
-src/dialogs/print.glade
-src/dialogs/principal-components.glade
-src/dialogs/random-generation.glade
-src/dialogs/random-generation-cor.glade
-src/dialogs/rank.glade
-src/dialogs/regression.glade
-src/dialogs/row-height.glade
-src/dialogs/sampling.glade
-src/dialogs/scenario-add.glade
-src/dialogs/scenario-manager.glade
-src/dialogs/search-replace.glade
+[type: gettext/glade]src/dialogs/advanced-filter.ui
+[type: gettext/glade]src/dialogs/anova-one.ui
+[type: gettext/glade]src/dialogs/anova-two.ui
+[type: gettext/glade]src/dialogs/autofilter-expression.ui
+[type: gettext/glade]src/dialogs/autofilter-top10.ui
+[type: gettext/glade]src/dialogs/autoformat.ui
+[type: gettext/glade]src/dialogs/autosave.ui
+[type: gettext/glade]src/dialogs/cell-comment.ui
+[type: gettext/glade]src/dialogs/cell-format.ui
+[type: gettext/glade]src/dialogs/cell-sort.ui
+[type: gettext/glade]src/dialogs/chi-squared.ui
+[type: gettext/glade]src/dialogs/col-width.ui
+[type: gettext/glade]src/dialogs/colrow.ui
+[type: gettext/glade]src/dialogs/consolidate.ui
+[type: gettext/glade]src/dialogs/correlation.ui
+[type: gettext/glade]src/dialogs/covariance.ui
+[type: gettext/glade]src/dialogs/dao.ui
+[type: gettext/glade]src/dialogs/data-slicer.ui
+[type: gettext/glade]src/dialogs/data-table.ui
+[type: gettext/glade]src/dialogs/define-name.ui
+[type: gettext/glade]src/dialogs/delete-cells.ui
+[type: gettext/glade]src/dialogs/descriptive-stats.ui
+[type: gettext/glade]src/dialogs/dialog-stf-export.ui
+[type: gettext/glade]src/dialogs/dialog-stf.ui
+[type: gettext/glade]src/dialogs/dialog-zoom.ui
+[type: gettext/glade]src/dialogs/doc-meta-data.ui
+[type: gettext/glade]src/dialogs/exp-smoothing.ui
+[type: gettext/glade]src/dialogs/fill-series.ui
+[type: gettext/glade]src/dialogs/font-sel.ui
+[type: gettext/glade]src/dialogs/formula-guru.ui
+[type: gettext/glade]src/dialogs/fourier-analysis.ui
+[type: gettext/glade]src/dialogs/frequency.ui
+[type: gettext/glade]src/dialogs/function-select.ui
+[type: gettext/glade]src/dialogs/goalseek.ui
+[type: gettext/glade]src/dialogs/goto.ui
+[type: gettext/glade]src/dialogs/hf-config.ui
+[type: gettext/glade]src/dialogs/hf-dt-format.ui
+[type: gettext/glade]src/dialogs/histogram.ui
+[type: gettext/glade]src/dialogs/hyperlink.ui
+[type: gettext/glade]src/dialogs/insert-cells.ui
+[type: gettext/glade]src/dialogs/kaplan-meier.ui
+[type: gettext/glade]src/dialogs/mean-tests.ui
+[type: gettext/glade]src/dialogs/merge.ui
+[type: gettext/glade]src/dialogs/moving-averages.ui
+[type: gettext/glade]src/dialogs/normality-tests.ui
+[type: gettext/glade]src/dialogs/paste-special.ui
+[type: gettext/glade]src/dialogs/plugin-manager.ui
+[type: gettext/glade]src/dialogs/preferences.ui
+[type: gettext/glade]src/dialogs/principal-components.ui
+[type: gettext/glade]src/dialogs/print.ui
+[type: gettext/glade]src/dialogs/random-generation-cor.ui
+[type: gettext/glade]src/dialogs/random-generation.ui
+[type: gettext/glade]src/dialogs/rank.ui
+[type: gettext/glade]src/dialogs/regression.ui
+[type: gettext/glade]src/dialogs/row-height.ui
+[type: gettext/glade]src/dialogs/sampling.ui
+[type: gettext/glade]src/dialogs/scenario-add.ui
+[type: gettext/glade]src/dialogs/scenario-manager.ui
+[type: gettext/glade]src/dialogs/search-replace.ui
 [type: gettext/glade]src/dialogs/search.ui
-src/dialogs/sheet-order.glade
-src/dialogs/sheet-resize.glade
-src/dialogs/sheetobject-size.glade
-src/dialogs/shuffle.glade
-src/dialogs/simulation.glade
-src/dialogs/sign-test.glade
-src/dialogs/sign-test-two.glade
-src/dialogs/so-button.glade
-src/dialogs/so-checkbox.glade
-src/dialogs/so-frame.glade
-src/dialogs/so-list.glade
-src/dialogs/so-radiobutton.glade
-src/dialogs/so-scrollbar.glade
-src/dialogs/solver.glade
-src/dialogs/tabulate.glade
-src/dialogs/variance-tests.glade
-src/dialogs/view.glade
-src/dialogs/wilcoxon-mann-whitney.glade
-src/dialogs/workbook-attr.glade
+[type: gettext/glade]src/dialogs/sheet-order.ui
+[type: gettext/glade]src/dialogs/sheet-resize.ui
+[type: gettext/glade]src/dialogs/sheetobject-size.ui
+[type: gettext/glade]src/dialogs/shuffle.ui
+[type: gettext/glade]src/dialogs/sign-test-two.ui
+[type: gettext/glade]src/dialogs/sign-test.ui
+[type: gettext/glade]src/dialogs/simulation.ui
+[type: gettext/glade]src/dialogs/so-button.ui
+[type: gettext/glade]src/dialogs/so-checkbox.ui
+[type: gettext/glade]src/dialogs/so-frame.ui
+[type: gettext/glade]src/dialogs/so-list.ui
+[type: gettext/glade]src/dialogs/so-radiobutton.ui
+[type: gettext/glade]src/dialogs/so-scrollbar.ui
+[type: gettext/glade]src/dialogs/solver.ui
+[type: gettext/glade]src/dialogs/tabulate.ui
+[type: gettext/glade]src/dialogs/variance-tests.ui
+[type: gettext/glade]src/dialogs/view.ui
+[type: gettext/glade]src/dialogs/wilcoxon-mann-whitney.ui
+[type: gettext/glade]src/dialogs/workbook-attr.ui
 src/expr-name.c
 src/expr.c
 src/file-autoft.c
@@ -315,13 +315,13 @@ src/session.c
 src/sheet-autofill.c
 src/sheet-control-gui.c
 src/sheet-filter.c
-src/sheet-utils.c
 src/sheet-merge.c
 src/sheet-object-graph.c
 src/sheet-object-image.c
 src/sheet-object-widget.c
 src/sheet-object.c
 src/sheet-style.c
+src/sheet-utils.c
 src/sheet-view.c
 src/sheet.c
 src/ssconvert.c
@@ -350,8 +350,8 @@ src/tools/data-shuffling.c
 src/tools/fill-series.c
 src/tools/filter.c
 src/tools/gnm-solver.c
-src/tools/random-generator.c
 src/tools/random-generator-cor.c
+src/tools/random-generator.c
 src/tools/scenarios.c
 src/tools/simulation.c
 src/tools/tabulate.c
@@ -366,11 +366,11 @@ src/widgets/gnm-cell-combo-view.c
 src/widgets/gnm-dao.c
 src/widgets/gnm-filter-combo-view.c
 src/widgets/gnm-format-sel.c
+src/widgets/gnm-sheet-slicer-combo-view.c
 src/widgets/gnumeric-cell-renderer-expr-entry.c
 src/widgets/gnumeric-cell-renderer-text.c
 src/widgets/gnumeric-cell-renderer-toggle.c
 src/widgets/gnumeric-expr-entry.c
-src/widgets/gnm-sheet-slicer-combo-view.c
 src/widgets/gnumeric-text-view.c
 src/widgets/widget-font-selector.c
 src/workbook-cmd-format.c
@@ -408,81 +408,3 @@ templates/autoformat/autoformat.List.basic.xml.in
 templates/autoformat/autoformat.List.green.xml.in
 templates/autoformat/autoformat.List.lila.xml.in
 templates/autoformat/autoformat.List.simple.xml.in
-[type: gettext/glade]src/dialogs/advanced-filter.ui
-[type: gettext/glade]src/dialogs/anova-one.ui
-[type: gettext/glade]src/dialogs/anova-two.ui
-[type: gettext/glade]src/dialogs/autofilter-expression.ui
-[type: gettext/glade]src/dialogs/autofilter-top10.ui
-[type: gettext/glade]src/dialogs/autoformat.ui
-[type: gettext/glade]src/dialogs/autosave.ui
-[type: gettext/glade]src/dialogs/cell-comment.ui
-[type: gettext/glade]src/dialogs/cell-format.ui
-[type: gettext/glade]src/dialogs/cell-sort.ui
-[type: gettext/glade]src/dialogs/chi-squared.ui
-[type: gettext/glade]src/dialogs/col-width.ui
-[type: gettext/glade]src/dialogs/colrow.ui
-[type: gettext/glade]src/dialogs/consolidate.ui
-[type: gettext/glade]src/dialogs/correlation.ui
-[type: gettext/glade]src/dialogs/covariance.ui
-[type: gettext/glade]src/dialogs/dao.ui
-[type: gettext/glade]src/dialogs/data-slicer.ui
-[type: gettext/glade]src/dialogs/data-table.ui
-[type: gettext/glade]src/dialogs/define-name.ui
-[type: gettext/glade]src/dialogs/delete-cells.ui
-[type: gettext/glade]src/dialogs/descriptive-stats.ui
-[type: gettext/glade]src/dialogs/dialog-stf-export.ui
-[type: gettext/glade]src/dialogs/dialog-stf.ui
-[type: gettext/glade]src/dialogs/dialog-zoom.ui
-[type: gettext/glade]src/dialogs/doc-meta-data.ui
-[type: gettext/glade]src/dialogs/exp-smoothing.ui
-[type: gettext/glade]src/dialogs/fill-series.ui
-[type: gettext/glade]src/dialogs/font-sel.ui
-[type: gettext/glade]src/dialogs/formula-guru.ui
-[type: gettext/glade]src/dialogs/fourier-analysis.ui
-[type: gettext/glade]src/dialogs/frequency.ui
-[type: gettext/glade]src/dialogs/function-select.ui
-[type: gettext/glade]src/dialogs/goalseek.ui
-[type: gettext/glade]src/dialogs/goto.ui
-[type: gettext/glade]src/dialogs/hf-config.ui
-[type: gettext/glade]src/dialogs/hf-dt-format.ui
-[type: gettext/glade]src/dialogs/histogram.ui
-[type: gettext/glade]src/dialogs/hyperlink.ui
-[type: gettext/glade]src/dialogs/insert-cells.ui
-[type: gettext/glade]src/dialogs/kaplan-meier.ui
-[type: gettext/glade]src/dialogs/mean-tests.ui
-[type: gettext/glade]src/dialogs/merge.ui
-[type: gettext/glade]src/dialogs/moving-averages.ui
-[type: gettext/glade]src/dialogs/normality-tests.ui
-[type: gettext/glade]src/dialogs/paste-special.ui
-[type: gettext/glade]src/dialogs/plugin-manager.ui
-[type: gettext/glade]src/dialogs/preferences.ui
-[type: gettext/glade]src/dialogs/principal-components.ui
-[type: gettext/glade]src/dialogs/print.ui
-[type: gettext/glade]src/dialogs/random-generation-cor.ui
-[type: gettext/glade]src/dialogs/random-generation.ui
-[type: gettext/glade]src/dialogs/rank.ui
-[type: gettext/glade]src/dialogs/regression.ui
-[type: gettext/glade]src/dialogs/row-height.ui
-[type: gettext/glade]src/dialogs/sampling.ui
-[type: gettext/glade]src/dialogs/scenario-add.ui
-[type: gettext/glade]src/dialogs/scenario-manager.ui
-[type: gettext/glade]src/dialogs/search-replace.ui
-[type: gettext/glade]src/dialogs/sheet-order.ui
-[type: gettext/glade]src/dialogs/sheet-resize.ui
-[type: gettext/glade]src/dialogs/sheetobject-size.ui
-[type: gettext/glade]src/dialogs/shuffle.ui
-[type: gettext/glade]src/dialogs/sign-test-two.ui
-[type: gettext/glade]src/dialogs/sign-test.ui
-[type: gettext/glade]src/dialogs/simulation.ui
-[type: gettext/glade]src/dialogs/so-button.ui
-[type: gettext/glade]src/dialogs/so-checkbox.ui
-[type: gettext/glade]src/dialogs/so-frame.ui
-[type: gettext/glade]src/dialogs/so-list.ui
-[type: gettext/glade]src/dialogs/so-radiobutton.ui
-[type: gettext/glade]src/dialogs/so-scrollbar.ui
-[type: gettext/glade]src/dialogs/solver.ui
-[type: gettext/glade]src/dialogs/tabulate.ui
-[type: gettext/glade]src/dialogs/variance-tests.ui
-[type: gettext/glade]src/dialogs/view.ui
-[type: gettext/glade]src/dialogs/wilcoxon-mann-whitney.ui
-[type: gettext/glade]src/dialogs/workbook-attr.ui
diff --git a/src/dialogs/Makefile.am b/src/dialogs/Makefile.am
index 6ec727b..c225105 100644
--- a/src/dialogs/Makefile.am
+++ b/src/dialogs/Makefile.am
@@ -92,89 +92,86 @@ base_files =					\
 	tool-dialogs.h				\
 	dialog-printer-setup.c
 
-gladedir   = $(gnumeric_datadir)/glade
-glade_DATA = 				\
-	advanced-filter.glade		\
-	anova-one.glade			\
-	anova-two.glade			\
-	autofilter-expression.glade	\
-	autofilter-top10.glade       	\
-	autoformat.glade		\
-	autosave.glade			\
-	cell-comment.glade		\
-	cell-format.glade		\
-	cell-sort.glade			\
-	chi-squared.glade		\
-	col-width.glade			\
-	colrow.glade			\
-	consolidate.glade		\
-	correlation.glade		\
-	covariance.glade		\
-	dao.glade			\
-	data-slicer.glade		\
-	data-table.glade		\
-	define-name.glade		\
-	delete-cells.glade		\
-	descriptive-stats.glade		\
-	dialog-stf-export.glade		\
-	dialog-stf.glade		\
-	dialog-zoom.glade		\
-	doc-meta-data.glade		\
-	exp-smoothing.glade		\
-	fill-series.glade		\
-	font-sel.glade			\
-	formula-guru.glade		\
-	fourier-analysis.glade		\
-	frequency.glade			\
-	function-select.glade 		\
-	goalseek.glade			\
-	goto.glade			\
-	hf-config.glade			\
-	hf-dt-format.glade		\
-	histogram.glade			\
-	hyperlink.glade			\
-	insert-cells.glade		\
-	kaplan-meier.glade		\
-	mean-tests.glade		\
-	merge.glade			\
-	moving-averages.glade		\
-	normality-tests.glade		\
-	paste-special.glade		\
-	plugin-manager.glade		\
-	preferences.glade 		\
-	principal-components.glade	\
-	rank.glade			\
-	random-generation.glade		\
-	random-generation-cor.glade	\
-	regression.glade		\
-	row-height.glade		\
-	sampling.glade			\
-	scenario-add.glade		\
-	scenario-manager.glade		\
-	search-replace.glade		\
-	sheet-order.glade		\
-	sheetobject-size.glade          \
-	shuffle.glade			\
-	sign-test.glade			\
-	sign-test-two.glade		\
-	simulation.glade		\
-	solver.glade			\
-	tabulate.glade			\
-	variance-tests.glade		\
-	view.glade			\
-	wilcoxon-mann-whitney.glade	\
-	workbook-attr.glade		\
-	print.glade
-
 uidir   = $(gnumeric_datadir)/ui
 ui_DATA = 				\
+	advanced-filter.ui		\
+	anova-one.ui			\
+	anova-two.ui			\
+	autofilter-expression.ui	\
+	autofilter-top10.ui		\
+	autoformat.ui			\
+	autosave.ui			\
+	cell-comment.ui			\
+	cell-format.ui			\
+	cell-sort.ui			\
+	chi-squared.ui			\
+	col-width.ui			\
+	colrow.ui			\
+	consolidate.ui			\
+	correlation.ui			\
+	covariance.ui			\
+	dao.ui				\
+	data-slicer.ui			\
+	data-table.ui			\
+	define-name.ui			\
+	delete-cells.ui			\
+	descriptive-stats.ui		\
+	dialog-stf-export.ui		\
+	dialog-stf.ui			\
+	dialog-zoom.ui			\
+	doc-meta-data.ui		\
+	exp-smoothing.ui		\
+	fill-series.ui			\
+	font-sel.ui			\
+	formula-guru.ui			\
+	fourier-analysis.ui		\
+	frequency.ui			\
+	function-select.ui		\
+	goalseek.ui			\
+	goto.ui				\
+	hf-config.ui			\
+	hf-dt-format.ui			\
+	histogram.ui			\
+	hyperlink.ui			\
+	insert-cells.ui			\
+	kaplan-meier.ui			\
+	mean-tests.ui			\
+	merge.ui			\
+	moving-averages.ui		\
+	normality-tests.ui		\
+	paste-special.ui		\
+	plugin-manager.ui		\
+	preferences.ui			\
+	principal-components.ui		\
+	print.ui			\
+	random-generation-cor.ui	\
+	random-generation.ui		\
+	rank.ui				\
+	regression.ui			\
+	row-height.ui			\
+	sampling.ui			\
+	scenario-add.ui			\
+	scenario-manager.ui		\
+	search-replace.ui		\
 	search.ui			\
+	sheet-order.ui			\
 	sheet-resize.ui			\
+	sheetobject-size.ui		\
+	shuffle.ui			\
+	sign-test-two.ui		\
+	sign-test.ui			\
+	simulation.ui			\
 	so-button.ui			\
-	so-radiobutton.ui		\
-	so-checkbox.ui		\
+	so-checkbox.ui			\
 	so-frame.ui			\
-	so-list.ui		\
-	so-scrollbar.ui
+	so-list.ui			\
+	so-radiobutton.ui		\
+	so-scrollbar.ui			\
+	solver.ui			\
+	tabulate.ui			\
+	variance-tests.ui		\
+	view.ui				\
+	wilcoxon-mann-whitney.ui	\
+	workbook-attr.ui
 
-EXTRA_DIST = $(glade_DATA) $(ui_DATA)
+EXTRA_DIST = $(ui_DATA)
diff --git a/src/dialogs/dialog-advanced-filter.c b/src/dialogs/dialog-advanced-filter.c
index 1271392..6e10feb 100644
--- a/src/dialogs/dialog-advanced-filter.c
+++ b/src/dialogs/dialog-advanced-filter.c
@@ -206,7 +206,7 @@ dialog_advanced_filter (WBCGtk *wbcg)
 
 	if (dialog_tool_init (state, wbcg, wb_control_cur_sheet (wbc),
 			      GNUMERIC_HELP_LINK_ADVANCED_FILTER,
-			      "advanced-filter.glade", "Filter",
+			      "advanced-filter.ui", "Filter",
 			      _("Could not create the Advanced Filter dialog."),
 			      ADVANCED_FILTER_KEY,
 			      G_CALLBACK (advanced_filter_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-analysis-tool-chi-squared.c b/src/dialogs/dialog-analysis-tool-chi-squared.c
index 13b75b7..f60633a 100644
--- a/src/dialogs/dialog-analysis-tool-chi-squared.c
+++ b/src/dialogs/dialog-analysis-tool-chi-squared.c
@@ -213,7 +213,7 @@ dialog_chi_square_tool (WBCGtk *wbcg, Sheet *sheet, gboolean independence)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_CHI_SQUARED,
-			      "chi-squared.glade", "Chi-Squared Tests",
+			      "chi-squared.ui", "Chi-Squared Tests",
 			      _("Could not create the Chi Squared Tests "
 				"tool dialog."),
 			      CHI_SQUARED_I_KEY,
diff --git a/src/dialogs/dialog-analysis-tool-frequency.c b/src/dialogs/dialog-analysis-tool-frequency.c
index 8a81882..93826bf 100644
--- a/src/dialogs/dialog-analysis-tool-frequency.c
+++ b/src/dialogs/dialog-analysis-tool-frequency.c
@@ -253,7 +253,7 @@ dialog_frequency_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_FREQUENCY,
-			      "frequency.glade", "Frequency",
+			      "frequency.ui", "Frequency",
 			      _("Could not create the Frequency Tool dialog."),
 			      FREQUENCY_KEY,
 			      G_CALLBACK (frequency_tool_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-analysis-tool-kaplan-meier.c b/src/dialogs/dialog-analysis-tool-kaplan-meier.c
index 3761dd0..243ae0f 100644
--- a/src/dialogs/dialog-analysis-tool-kaplan-meier.c
+++ b/src/dialogs/dialog-analysis-tool-kaplan-meier.c
@@ -615,7 +615,7 @@ dialog_kaplan_meier_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_KAPLAN_MEIER,
-			      "kaplan-meier.glade", "KaplanMeier",
+			      "kaplan-meier.ui", "KaplanMeier",
 			      _("Could not create the Kaplan Meier Tool dialog."),
 			      KAPLAN_MEIER_KEY,
 			      G_CALLBACK (kaplan_meier_tool_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-analysis-tool-normality.c b/src/dialogs/dialog-analysis-tool-normality.c
index 48b71ef..8168e8c 100644
--- a/src/dialogs/dialog-analysis-tool-normality.c
+++ b/src/dialogs/dialog-analysis-tool-normality.c
@@ -196,7 +196,7 @@ dialog_normality_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_NORMALITY,
-			      "normality-tests.glade", "Normality-Tests",
+			      "normality-tests.ui", "Normality-Tests",
 			      _("Could not create the Normality Test Tool dialog."),
 			      NORMALITY_KEY,
 			      G_CALLBACK (normality_tool_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-analysis-tool-principal-components.c b/src/dialogs/dialog-analysis-tool-principal-components.c
index 1f7a336..e237dac 100644
--- a/src/dialogs/dialog-analysis-tool-principal-components.c
+++ b/src/dialogs/dialog-analysis-tool-principal-components.c
@@ -169,7 +169,7 @@ dialog_principal_components_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_PRINCIPAL_COMPONENTS,
-			      "principal-components.glade", "PrincipalComponents",
+			      "principal-components.ui", "PrincipalComponents",
 			      _("Could not create the Principal Components Analysis Tool dialog."),
 			      PRINCIPAL_COMPONENTS_KEY,
 			      G_CALLBACK (principal_components_tool_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-analysis-tool-sign-test.c b/src/dialogs/dialog-analysis-tool-sign-test.c
index 5c124c5..0bf43aa 100644
--- a/src/dialogs/dialog-analysis-tool-sign-test.c
+++ b/src/dialogs/dialog-analysis-tool-sign-test.c
@@ -255,7 +255,7 @@ dialog_sign_test_two_tool (WBCGtk *wbcg, Sheet *sheet, signtest_type type)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_SIGN_TEST,
-			      "sign-test-two.glade", "Sign-Test",
+			      "sign-test-two.ui", "Sign-Test",
 			      _("Could not create the Sign Test Tool dialog."),
 			      SIGN_TEST_KEY_TWO, 
 			      G_CALLBACK (sign_test_two_tool_ok_clicked_cb), 
@@ -400,7 +400,7 @@ dialog_sign_test_tool (WBCGtk *wbcg, Sheet *sheet, signtest_type type)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_SIGN_TEST,
-			      "sign-test.glade", "Sign-Test",
+			      "sign-test.ui", "Sign-Test",
 			      _("Could not create the Sign Test Tool dialog."),
 			      SIGN_TEST_KEY_ONE, 
 			      G_CALLBACK (sign_test_tool_ok_clicked_cb), 
diff --git a/src/dialogs/dialog-analysis-tool-wilcoxon-mann-whitney.c b/src/dialogs/dialog-analysis-tool-wilcoxon-mann-whitney.c
index c2a92df..25828d0 100644
--- a/src/dialogs/dialog-analysis-tool-wilcoxon-mann-whitney.c
+++ b/src/dialogs/dialog-analysis-tool-wilcoxon-mann-whitney.c
@@ -189,7 +189,7 @@ dialog_wilcoxon_m_w_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_WILCOXON_MANN_WHITNEY,
-			      "wilcoxon-mann-whitney.glade", "WilcoxonMannWhitney",
+			      "wilcoxon-mann-whitney.ui", "WilcoxonMannWhitney",
 			      _("Could not create the Wilcoxon-Mann-Whitney Analysis Tool dialog."),
 			      WILCOXON_MANN_WHITNEY_KEY,
 			      G_CALLBACK (wilcoxon_mann_whitney_tool_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-analysis-tools.c b/src/dialogs/dialog-analysis-tools.c
index 624993b..9c4e207 100644
--- a/src/dialogs/dialog-analysis-tools.c
+++ b/src/dialogs/dialog-analysis-tools.c
@@ -395,8 +395,7 @@ dialog_tool_init (GenericToolState *state,
 	state->help_link      = help_file;
 	state->state_destroy = NULL;
 
-	state->gui = gnm_glade_xml_new (GO_CMD_CONTEXT (state->wbcg),
-		gui_name, NULL, NULL);
+	state->gui = gnm_gtk_builder_new (gui_name, NULL, GO_CMD_CONTEXT (wbcg));
         if (state->gui == NULL)
 		goto dialog_tool_init_error;
 
@@ -709,7 +708,7 @@ dialog_correlation_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_CORRELATION,
-			      "correlation.glade", "Correlation",
+			      "correlation.ui", "Correlation",
 			      _("Could not create the Correlation Tool dialog."),
 			      CORRELATION_KEY,
 			      G_CALLBACK (corr_tool_ok_clicked_cb), NULL,
@@ -829,7 +828,7 @@ dialog_covariance_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_COVARIANCE,
-			      "covariance.glade", "Covariance",
+			      "covariance.ui", "Covariance",
 			      _("Could not create the Covariance Tool dialog."),
 			      COVARIANCE_KEY,
 			      G_CALLBACK (cov_tool_ok_clicked_cb), NULL,
@@ -921,7 +920,7 @@ dialog_ranking_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_RANKING,
-			      "rank.glade", "RankPercentile",
+			      "rank.ui", "RankPercentile",
 			      _("Could not create the Rank and Percentile "
 				"Tools dialog."),
 			      RANK_PERCENTILE_KEY,
@@ -1014,7 +1013,7 @@ dialog_fourier_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_FOURIER_ANALYSIS,
-			      "fourier-analysis.glade", "FourierAnalysis",
+			      "fourier-analysis.ui", "FourierAnalysis",
 			      _("Could not create the Fourier Analysis Tool "
 				"dialog."),
 			      FOURIER_KEY,
@@ -1227,7 +1226,7 @@ dialog_descriptive_stat_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_DESCRIPTIVE_STATS,
-			      "descriptive-stats.glade", "DescStats",
+			      "descriptive-stats.ui", "DescStats",
 			      _("Could not create the Descriptive Statistics "
 				"Tool dialog."),
 			      DESCRIPTIVE_STATS_KEY,
@@ -1602,7 +1601,7 @@ dialog_ttest_tool (WBCGtk *wbcg, Sheet *sheet, ttest_type test)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_MEAN_TESTS,
-			      "mean-tests.glade", "MeanTests",
+			      "mean-tests.ui", "MeanTests",
 			      _("Could not create the Mean Tests Tool dialog."),
 			      TTEST_KEY,
 			      G_CALLBACK (ttest_tool_ok_clicked_cb), NULL,
@@ -1790,7 +1789,7 @@ dialog_ftest_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_F_TEST_TWO_SAMPLE,
-			      "variance-tests.glade", "VarianceTests",
+			      "variance-tests.ui", "VarianceTests",
 			      _("Could not create the FTest Tool dialog."),
 			      FTEST_KEY,
 			      G_CALLBACK (ftest_tool_ok_clicked_cb), NULL,
@@ -2040,7 +2039,7 @@ dialog_sampling_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_SAMPLING,
-			      "sampling.glade", "Sampling",
+			      "sampling.ui", "Sampling",
 			      _("Could not create the Sampling Tool dialog."),
 			      SAMPLING_KEY,
 			      G_CALLBACK (sampling_tool_ok_clicked_cb), NULL,
@@ -2338,10 +2337,8 @@ regression_tool_regression_check_toggled_cb (G_GNUC_UNUSED
 {
 	GtkWidget *w1, *w2;
 
-	w1 = gnm_xml_get_widget 
-		(state->base.gui, "var1-label");
-	w2 = gnm_xml_get_widget 
-		(state->base.gui, "var2-label");
+	w1 = gnm_xml_get_widget (state->base.gui, "var1-label");
+	w2 = gnm_xml_get_widget (state->base.gui, "var2-label");
 
 	if (gtk_toggle_button_get_active 
 	    (GTK_TOGGLE_BUTTON (state->switch_variables_check))) {
@@ -2394,7 +2391,7 @@ dialog_regression_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_REGRESSION,
-			      "regression.glade", "Regression",
+			      "regression.ui", "Regression",
 			      _("Could not create the Regression Tool dialog."),
 			      REGRESSION_KEY,
 			      G_CALLBACK (regression_tool_ok_clicked_cb), NULL,
@@ -2694,7 +2691,7 @@ dialog_exp_smoothing_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_EXP_SMOOTHING,
-			      "exp-smoothing.glade",
+			      "exp-smoothing.ui",
 			      "ExpSmoothing",
 			      _("Could not create the Exponential Smoothing "
 				"Tool dialog."),
@@ -3062,7 +3059,7 @@ dialog_average_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_MOVING_AVERAGES,
-			      "moving-averages.glade",
+			      "moving-averages.ui",
 			      "MovAverages",
 			      _("Could not create the Moving Average Tool "
 				"dialog."),
@@ -3329,7 +3326,7 @@ dialog_histogram_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_HISTOGRAM,
-			      "histogram.glade", "Histogram",
+			      "histogram.ui", "Histogram",
 			      _("Could not create the Histogram Tool dialog."),
 			      HISTOGRAM_KEY,
 			      G_CALLBACK (histogram_tool_ok_clicked_cb), NULL,
@@ -3506,7 +3503,7 @@ dialog_anova_single_factor_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_ANOVA_SINGLE_FACTOR,
-			      "anova-one.glade", "ANOVA",
+			      "anova-one.ui", "ANOVA",
 			      _("Could not create the ANOVA (single factor) "
 				"tool dialog."),
 			      ANOVA_SINGLE_KEY,
@@ -3736,7 +3733,7 @@ dialog_anova_two_factor_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_ANOVA_TWO_FACTOR,
-			      "anova-two.glade", "ANOVA",
+			      "anova-two.ui", "ANOVA",
 			      _("Could not create the ANOVA (two factor) "
 				"tool dialog."),
 			      ANOVA_TWO_FACTOR_KEY,
diff --git a/src/dialogs/dialog-autofilter.c b/src/dialogs/dialog-autofilter.c
index 399dbc8..1451152 100644
--- a/src/dialogs/dialog-autofilter.c
+++ b/src/dialogs/dialog-autofilter.c
@@ -41,7 +41,7 @@
 #include <string.h>
 
 typedef struct {
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 	WBCGtk *wbcg;
 	GtkWidget          *dialog;
 	GnmFilter	   *filter;
@@ -232,7 +232,7 @@ dialog_auto_filter (WBCGtk *wbcg,
 {
 	AutoFilterState *state;
 	GtkWidget *w;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	int col;
 	gchar *label;
 	GnmCell *cell;
@@ -243,9 +243,8 @@ dialog_auto_filter (WBCGtk *wbcg,
 	if (gnumeric_dialog_raise_if_exists 
 	    (wbcg, is_expr ? DIALOG_KEY_EXPRESSION : DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-			(is_expr ? "autofilter-expression.glade" : "autofilter-top10.glade"),
-			NULL, NULL);
+	gui = gnm_gtk_builder_new ((is_expr ? "autofilter-expression.ui" : "autofilter-top10.ui"),
+				   NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
@@ -313,7 +312,7 @@ dialog_auto_filter (WBCGtk *wbcg,
 						   cond->count);
 		}
 	} else {
-		/* initialize the combo boxes (not done by libglade) */
+		/* initialize the combo boxes (not done by li.ui) */
 		if (is_expr) {
 			w = gnm_xml_get_widget (state->gui, "op0");
 			gtk_combo_box_set_active (GTK_COMBO_BOX (w), 0);
diff --git a/src/dialogs/dialog-autoformat.c b/src/dialogs/dialog-autoformat.c
index 5ee476d..34a3e79 100644
--- a/src/dialogs/dialog-autoformat.c
+++ b/src/dialogs/dialog-autoformat.c
@@ -78,7 +78,6 @@ demotable[PREVIEW_ROWS][PREVIEW_COLS] = {
 typedef struct {
 	Workbook           *wb;                              /* Workbook we are working on */
 	WBCGtk *wbcg;
-	GladeXML	   *gui;
 	GocItem		   *grid[NUM_PREVIEWS];              /* Previewgrid's */
 	GocItem		   *selrect;                         /* Selection rectangle */
 	GSList             *templates;                       /* List of GnmFormatTemplate's */
@@ -381,8 +380,6 @@ cb_autoformat_destroy (AutoFormatState *state)
 {
 	templates_free (state);
 	category_group_list_free (state->category_groups);
-	g_object_unref (G_OBJECT (state->gui));
-	state->gui = NULL;
 	g_free (state);
 }
 
@@ -496,15 +493,57 @@ cb_gridlines_item_toggled (G_GNUC_UNUSED GtkCheckMenuItem *item,
  * MAIN
  ********************************************************************************/
 
-static GtkCheckMenuItem *
-setup_check_item (GladeXML *gui, AutoFormatState *state, char const *name)
-{
-	GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM (gnm_xml_get_widget (gui, name));
-	g_signal_connect (G_OBJECT (item),
-		"toggled",
-		G_CALLBACK (cb_check_item_toggled), state);
-	return item;
-}
+/*      Menus   */
+static GtkActionEntry entries[] = {
+	{ "settings", NULL, N_("_Settings"), NULL, NULL, NULL },
+		{ "edges", NULL, N_("_Edges"), NULL, NULL, NULL }
+};
+
+/* Toggle items */
+static GtkToggleActionEntry toggle_entries[] = {
+	{ "number", NULL, N_("Apply _Number Formats"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE},
+	{ "border", NULL, N_("Apply _Borders"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "font", NULL, N_("Apply _Fonts"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "patterns", NULL, N_("Apply _Patterns"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "alignment", NULL, N_("Apply _Alignment"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "left", NULL, N_("_Left"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "right", NULL, N_("_Right"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "top", NULL, N_("_Top"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "bottom", NULL, N_("_Bottom"), NULL,
+		NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
+	{ "gridlines", NULL, N_("_Show Gridlines"), NULL,
+		NULL, G_CALLBACK (cb_gridlines_item_toggled), FALSE }
+};
+
+static const char *ui_description =
+"<ui>"
+"  <menubar name='bar'>"
+"    <menu action='settings'>"
+"      <menuitem action='number'/>"
+"      <menuitem action='border'/>"
+"      <menuitem action='font'/>"
+"      <menuitem action='patterns'/>"
+"      <menuitem action='alignment'/>"
+"      <separator name='settings-sep1'/>"
+"      <menu action='edges'>"
+"        <menuitem action='left'/>"
+"        <menuitem action='right'/>"
+"        <menuitem action='top'/>"
+"        <menuitem action='bottom'/>"
+"      </menu>"
+"      <separator name='settings-sep2'/>"
+"      <menuitem action='gridlines'/>"
+"    </menu>"
+"  </menubar>"
+"</ui>";
 
 static gboolean
 cb_canvas_focus (GtkWidget *canvas, GtkDirectionType direction,
@@ -529,19 +568,19 @@ cb_canvas_focus (GtkWidget *canvas, GtkDirectionType direction,
 void
 dialog_autoformat (WBCGtk *wbcg)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	AutoFormatState *state;
 	int i;
+	GtkUIManager *ui_manager;
+	GtkActionGroup *action_group;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"autoformat.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("autoformat.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
 	state = g_new0 (AutoFormatState, 1);
 	state->wb              = wb_control_get_workbook (WORKBOOK_CONTROL (wbcg));
 	state->wbcg            = wbcg;
-	state->gui             = gui;
 	state->templates       = NULL;
 	state->category_groups = NULL;
 	state->selrect         = NULL;
@@ -568,17 +607,31 @@ dialog_autoformat (WBCGtk *wbcg)
 	state->ok     = GTK_BUTTON (gnm_xml_get_widget (gui, "format_ok"));
 	state->cancel = GTK_BUTTON (gnm_xml_get_widget (gui, "format_cancel"));
 
-	state->number      = setup_check_item (gui, state, "format_number");
-	state->border      = setup_check_item (gui, state, "format_border");
-	state->font        = setup_check_item (gui, state, "format_font");
-	state->patterns    = setup_check_item (gui, state, "format_patterns");
-	state->alignment   = setup_check_item (gui, state, "format_alignment");
-
-	state->edges.left   = setup_check_item (gui, state, "format_edges_left");
-	state->edges.right  = setup_check_item (gui, state, "format_edges_right");
-	state->edges.top    = setup_check_item (gui, state, "format_edges_top");
-	state->edges.bottom = setup_check_item (gui, state, "format_edges_bottom");
-
+	action_group = gtk_action_group_new ("settings-actions");
+	gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+	gtk_action_group_add_actions (action_group, entries, G_N_ELEMENTS (entries), state);
+	gtk_action_group_add_toggle_actions (action_group, toggle_entries, G_N_ELEMENTS (toggle_entries), state);
+
+	ui_manager = gtk_ui_manager_new ();
+	gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
+	g_object_unref (action_group);
+	gtk_ui_manager_add_ui_from_string (ui_manager, ui_description, -1, NULL);
+	state->number      = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/number"));
+	state->border      = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/border"));
+	state->font        = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/font"));
+	state->patterns    = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/patterns"));
+	state->alignment   = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/alignment"));
+
+	state->edges.left   = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/edges/left"));
+	state->edges.right  = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/edges/right"));
+	state->edges.top    = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/edges/top"));
+	state->edges.bottom = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/edges/bottom"));
+
+	state->gridlines  = GTK_CHECK_MENU_ITEM  (gtk_ui_manager_get_widget (ui_manager, "/bar/settings/gridlines"));
+
+	gtk_box_pack_start (GTK_BOX (gnm_xml_get_widget (gui, "category-box")),
+	                    gtk_ui_manager_get_widget (ui_manager, "/bar"),
+	                    FALSE, TRUE, 0);
 	for (i = 0; i < NUM_PREVIEWS; i++) {
 		char *name;
 
@@ -656,7 +709,7 @@ dialog_autoformat (WBCGtk *wbcg)
 	}
 
 	gnumeric_init_help_button (
-		gnm_xml_get_widget (state->gui, "help_button"),
+		gnm_xml_get_widget (gui, "help_button"),
 		GNUMERIC_HELP_LINK_AUTOFORMAT);
 
 	gtk_dialog_set_default_response (state->dialog, GTK_RESPONSE_OK);
@@ -670,4 +723,6 @@ dialog_autoformat (WBCGtk *wbcg)
 
 	/* not show all or the scrollbars will appear */
 	gtk_widget_show (GTK_WIDGET (state->dialog));
+	g_object_unref (gui);
+	g_object_unref (ui_manager);
 }
diff --git a/src/dialogs/dialog-autosave.c b/src/dialogs/dialog-autosave.c
index 0337158..ab353ba 100644
--- a/src/dialogs/dialog-autosave.c
+++ b/src/dialogs/dialog-autosave.c
@@ -37,7 +37,6 @@
 #include <gtk/gtk.h>
 
 typedef struct {
-	GladeXML  *gui;
 	GtkWidget *dialog;
         GtkWidget *minutes_entry;
         GtkWidget *prompt_cb;
@@ -84,14 +83,6 @@ dialog_autosave_prompt (WBCGtk *wbcg)
 }
 
 static void
-cb_dialog_autosave_destroy (autosave_t  *state)
-{
-	if (state->gui != NULL)
-		g_object_unref (G_OBJECT (state->gui));
-	g_free (state);
-}
-
-static void
 cb_autosave_cancel (G_GNUC_UNUSED GtkWidget *button,
 		    autosave_t *state)
 {
@@ -124,7 +115,7 @@ cb_autosave_ok (G_GNUC_UNUSED GtkWidget *button, autosave_t *state)
 void
 dialog_autosave (WBCGtk *wbcg)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	autosave_t *state;
 	int secs;
 	gboolean prompt;
@@ -133,8 +124,7 @@ dialog_autosave (WBCGtk *wbcg)
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, AUTOSAVE_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"autosave.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("autosave.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
@@ -146,14 +136,13 @@ dialog_autosave (WBCGtk *wbcg)
 	state = g_new (autosave_t, 1);
 	state->wbcg = wbcg;
 	state->wb   = wb_control_get_workbook (WORKBOOK_CONTROL (wbcg));
-	state->gui  = gui;
 
-	state->dialog = gnm_xml_get_widget (state->gui, "AutoSave");
-	state->minutes_entry = gnm_xml_get_widget (state->gui, "minutes");
-	state->prompt_cb = gnm_xml_get_widget (state->gui, "prompt_on_off");
-	state->autosave_on_off = gnm_xml_get_widget (state->gui, "autosave_on_off");
-	state->ok_button = gnm_xml_get_widget (state->gui, "button1");
-	state->cancel_button = gnm_xml_get_widget (state->gui, "button2");
+	state->dialog = gnm_xml_get_widget (gui, "AutoSave");
+	state->minutes_entry = gnm_xml_get_widget (gui, "minutes");
+	state->prompt_cb = gnm_xml_get_widget (gui, "prompt_on_off");
+	state->autosave_on_off = gnm_xml_get_widget (gui, "autosave_on_off");
+	state->ok_button = gnm_xml_get_widget (gui, "button1");
+	state->cancel_button = gnm_xml_get_widget (gui, "button2");
 
 	if (!state->dialog || !state->minutes_entry || !state->prompt_cb ||
 	    !state->autosave_on_off) {
@@ -183,9 +172,9 @@ dialog_autosave (WBCGtk *wbcg)
 		G_CALLBACK (cb_autosave_cancel), state);
 
 	g_object_set_data_full (G_OBJECT (state->dialog),
-		"state", state, (GDestroyNotify) cb_dialog_autosave_destroy);
+		"state", state, (GDestroyNotify)g_free);
 	gnumeric_init_help_button (
-		gnm_xml_get_widget (state->gui, "button3"),
+		gnm_xml_get_widget (gui, "button3"),
 		GNUMERIC_HELP_LINK_AUTOSAVE);
 
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (state->autosave_on_off),
@@ -197,4 +186,6 @@ dialog_autosave (WBCGtk *wbcg)
 	gnumeric_keyed_dialog (state->wbcg, GTK_WINDOW (state->dialog),
 			       AUTOSAVE_KEY);
 	gtk_widget_show (state->dialog);
+
+	g_object_unref (gui);
 }
diff --git a/src/dialogs/dialog-cell-comment.c b/src/dialogs/dialog-cell-comment.c
index e80fe27..e7a3f9f 100644
--- a/src/dialogs/dialog-cell-comment.c
+++ b/src/dialogs/dialog-cell-comment.c
@@ -43,7 +43,7 @@ typedef struct {
 	GtkWidget          *ok_button;
 	GtkWidget          *cancel_button;
 	GnmTextView        *gtv;
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 } CommentState;
 
 static void
@@ -95,7 +95,7 @@ dialog_cell_comment (WBCGtk *wbcg, Sheet *sheet, GnmCellPos const *pos)
 	CommentState	*state;
 	GtkWidget	*box, *check, *old_author, *new_author;
 	GnmComment	*comment;
-	GladeXML	*gui;
+	GtkBuilder	*gui;
 	char *title, *cell_name;
 	char const*real_user;
 	GnmCellRef ref;
@@ -108,8 +108,7 @@ dialog_cell_comment (WBCGtk *wbcg, Sheet *sheet, GnmCellPos const *pos)
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, COMMENT_DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"cell-comment.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("cell-comment.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-cell-format.c b/src/dialogs/dialog-cell-format.c
index 0867c3b..8271721 100644
--- a/src/dialogs/dialog-cell-format.c
+++ b/src/dialogs/dialog-cell-format.c
@@ -122,7 +122,7 @@ typedef struct {
 } ExprEntry;
 
 typedef struct _FormatState {
-	GladeXML	*gui;
+	GtkBuilder	*gui;
 	WBCGtk	*wbcg;
 	GtkDialog	*dialog;
 	GtkNotebook	*notebook;
@@ -307,7 +307,7 @@ cb_toggle_changed (GtkToggleButton *button, PatternPicker *picker)
  */
 static void
 setup_pattern_button (GdkScreen *screen,
-		      GladeXML  *gui,
+		      GtkBuilder  *gui,
 		      char const *const name,
 		      PatternPicker *picker,
 		      gboolean const flag,
@@ -348,7 +348,7 @@ setup_pattern_button (GdkScreen *screen,
 						      TRUE);
 		}
 	} else
-		g_warning ("CellFormat: Unexpected missing glade widget");
+		g_warning ("CellFormat: Unexpected missing widget");
 }
 
 static void
@@ -432,7 +432,7 @@ setup_color_pickers (FormatState *state,
  * button of the same name.
  */
 static GtkWidget *
-init_button_image (GladeXML *gui, char const *name)
+init_button_image (GtkBuilder *gui, char const *name)
 {
 	GtkWidget *tmp = gnm_xml_get_widget (gui, name);
 	if (tmp != NULL) {
@@ -688,8 +688,9 @@ fmt_dialog_init_align_page (FormatState *state)
 			r -= 360;
 	} else
 		r = 0;
-	state->align.rotation = (GORotationSel *)
-		gnm_xml_get_widget (state->gui, "rotation_selector");
+	state->align.rotation = (GORotationSel *) go_rotation_sel_new ();
+	gtk_box_pack_start (GTK_BOX (gnm_xml_get_widget (state->gui, "alignment_box")),
+	                    GTK_WIDGET (state->align.rotation), TRUE, TRUE, 0);
 	go_rotation_sel_set_rotation (state->align.rotation, r);
 	g_signal_connect (G_OBJECT (state->align.rotation), "rotation-changed",
 		G_CALLBACK (cb_rotation_changed), state);
@@ -811,7 +812,7 @@ fmt_dialog_init_font_page (FormatState *state)
 	GtkWidget *tmp = font_selector_new ();
 	FontSelector *font_widget = FONT_SELECTOR (tmp);
 	GtkWidget *container = gnm_xml_get_widget (state->gui, "font_box");
-	GtkWidget *uline = gnm_xml_get_widget (state->gui, "underline_combo");
+	GtkWidget *uline = go_combo_text_new_default ();
 	char const *uline_str;
 	GtkWidget *strike = gnm_xml_get_widget (state->gui, "strikethrough_button");
 	gboolean   strikethrough = FALSE;
@@ -860,6 +861,8 @@ fmt_dialog_init_font_page (FormatState *state)
 		"entry_changed",
 		G_CALLBACK (cb_font_underline_changed), state);
 	gtk_widget_show_all (uline);
+	gtk_box_pack_start (GTK_BOX (gnm_xml_get_widget (state->gui, "underline-box")),
+	                    uline, TRUE, TRUE, 0);
 
 	tmp = gnm_xml_get_widget (state->gui, "underline_label");
 	gtk_label_set_mnemonic_widget (GTK_LABEL (tmp), uline);
@@ -2729,14 +2732,13 @@ fmt_dialog_selection_type (SheetView *sv,
 void
 dialog_cell_format (WBCGtk *wbcg, FormatDialogPosition_t pageno)
 {
-	GladeXML     *gui;
+	GtkBuilder     *gui;
 	GnmCell	     *edit_cell;
 	FormatState  *state;
 
 	g_return_if_fail (wbcg != NULL);
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"cell-format.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("cell-format.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-cell-sort.c b/src/dialogs/dialog-cell-sort.c
index 967344d..77ad555 100644
--- a/src/dialogs/dialog-cell-sort.c
+++ b/src/dialogs/dialog-cell-sort.c
@@ -61,7 +61,7 @@ typedef struct {
 	SheetView *sv;
 	Sheet     *sheet;
 
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GtkWidget *warning_dialog;
 	GtkWidget *cancel_button;
@@ -1152,17 +1152,16 @@ void
 dialog_cell_sort (WBCGtk *wbcg)
 {
 	SortFlowState *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	g_return_if_fail (wbcg != NULL);
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, CELL_SORT_KEY))
 		return;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-				 "cell-sort.glade", NULL, NULL);
-        if (gui == NULL)
-                return;
+	gui = gnm_gtk_builder_new ("cell-sort.ui", NULL, GO_CMD_CONTEXT (wbcg));
+    if (gui == NULL)
+            return;
 
 	state = g_new (SortFlowState, 1);
 	state->wbcg  = wbcg;
diff --git a/src/dialogs/dialog-col-row.c b/src/dialogs/dialog-col-row.c
index 917dde1..14d672e 100644
--- a/src/dialogs/dialog-col-row.c
+++ b/src/dialogs/dialog-col-row.c
@@ -37,7 +37,7 @@
 #define COL_ROW_DIALOG_KEY "col-row-dialog"
 
 typedef struct {
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 	GtkWidget          *dialog;
 	GtkWidget          *ok_button;
 	GtkWidget          *cancel_button;
@@ -80,15 +80,14 @@ dialog_col_row (WBCGtk *wbcg,  char const *operation,
 		ColRowCallback_t callback,
 		gpointer data)
 {
-	GladeXML	*gui;
+	GtkBuilder	*gui;
 	ColRowState	*state;
 
 	g_return_if_fail (wbcg != NULL);
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, COL_ROW_DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"colrow.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("colrow.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-col-width.c b/src/dialogs/dialog-col-width.c
index f63c9db..f49fc47 100644
--- a/src/dialogs/dialog-col-width.c
+++ b/src/dialogs/dialog-col-width.c
@@ -42,7 +42,6 @@
 #define COL_WIDTH_DIALOG_KEY "col-width-dialog"
 
 typedef struct {
-	GladeXML           *gui;
 	WBCGtk *wbcg;
 	Sheet              *sheet;
 	SheetView	   *sv;
@@ -99,14 +98,6 @@ dialog_col_width_button_sensitivity (ColWidthState *state)
 }
 
 static void
-cb_dialog_col_width_destroy (ColWidthState *state)
-{
-	if (state->gui != NULL)
-		g_object_unref (G_OBJECT (state->gui));
-	g_free (state);
-}
-
-static void
 cb_dialog_col_width_cancel_clicked (G_GNUC_UNUSED GtkWidget *button,
 				    ColWidthState *state)
 {
@@ -248,15 +239,14 @@ dialog_col_width_set_mode (gboolean set_default, ColWidthState *state)
 void
 dialog_col_width (WBCGtk *wbcg, gboolean use_default)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	ColWidthState *state;
 
 	g_return_if_fail (wbcg != NULL);
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, COL_WIDTH_DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"col-width.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("col-width.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
@@ -265,40 +255,39 @@ dialog_col_width (WBCGtk *wbcg, gboolean use_default)
 	state->sv = wb_control_cur_sheet_view (WORKBOOK_CONTROL (wbcg));
 	state->sheet = sv_sheet (state->sv);
 	state->adjusting = FALSE;
-	state->gui    = gui;
-	state->dialog = gnm_xml_get_widget (state->gui, "dialog");
+	state->dialog = gnm_xml_get_widget (gui, "dialog");
 
-	state->description = GTK_WIDGET (gnm_xml_get_widget (state->gui, "description"));
-	state->points = GTK_WIDGET (gnm_xml_get_widget (state->gui, "pts-label"));
+	state->description = GTK_WIDGET (gnm_xml_get_widget (gui, "description"));
+	state->points = GTK_WIDGET (gnm_xml_get_widget (gui, "pts-label"));
 
-	state->spin  = GTK_SPIN_BUTTON (gnm_xml_get_widget (state->gui, "spin"));
+	state->spin  = GTK_SPIN_BUTTON (gnm_xml_get_widget (gui, "spin"));
 	gtk_spin_button_get_adjustment (state->spin)->lower =
 		GNM_COL_MARGIN + GNM_COL_MARGIN;
 	g_signal_connect (G_OBJECT (state->spin),
 		"value-changed",
 		G_CALLBACK (cb_dialog_col_width_value_changed), state);
 
-	state->default_check  = GTK_WIDGET (gnm_xml_get_widget (state->gui, "default_check"));
+	state->default_check  = GTK_WIDGET (gnm_xml_get_widget (gui, "default_check"));
 	g_signal_connect (G_OBJECT (state->default_check),
 		"clicked",
 		G_CALLBACK (cb_dialog_col_width_default_check_toggled), state);
 
-	state->ok_button = gnm_xml_get_widget (state->gui, "ok_button");
+	state->ok_button = gnm_xml_get_widget (gui, "ok_button");
 	g_signal_connect (G_OBJECT (state->ok_button),
 		"clicked",
 		G_CALLBACK (cb_dialog_col_width_ok_clicked), state);
-	state->apply_button = gnm_xml_get_widget (state->gui, "apply_button");
+	state->apply_button = gnm_xml_get_widget (gui, "apply_button");
 	g_signal_connect (G_OBJECT (state->apply_button),
 		"clicked",
 		G_CALLBACK (cb_dialog_col_width_apply_clicked), state);
 
-	state->cancel_button = gnm_xml_get_widget (state->gui, "cancel_button");
+	state->cancel_button = gnm_xml_get_widget (gui, "cancel_button");
 	g_signal_connect (G_OBJECT (state->cancel_button),
 		"clicked",
 		G_CALLBACK (cb_dialog_col_width_cancel_clicked), state);
 
 	gnumeric_init_help_button (
-		gnm_xml_get_widget (state->gui, "help_button"),
+		gnm_xml_get_widget (gui, "help_button"),
 		GNUMERIC_HELP_LINK_COL_WIDTH);
 
 	gnm_dialog_setup_destroy_handlers (GTK_DIALOG (state->dialog),
@@ -309,9 +298,10 @@ dialog_col_width (WBCGtk *wbcg, gboolean use_default)
 
 	wbc_gtk_attach_guru (state->wbcg, state->dialog);
 	g_object_set_data_full (G_OBJECT (state->dialog),
-		"state", state, (GDestroyNotify) cb_dialog_col_width_destroy);
+				"state", state, (GDestroyNotify)g_free);
 
 	gnumeric_keyed_dialog (wbcg, GTK_WINDOW (state->dialog),
 			       COL_WIDTH_DIALOG_KEY);
 	gtk_widget_show (state->dialog);
+	g_object_unref (gui);
 }
diff --git a/src/dialogs/dialog-consolidate.c b/src/dialogs/dialog-consolidate.c
index 422cd40..9628670 100644
--- a/src/dialogs/dialog-consolidate.c
+++ b/src/dialogs/dialog-consolidate.c
@@ -399,18 +399,18 @@ connect_signal_labels_toggled (ConsolidateState *state, GtkCheckButton *button)
 }
 
 static void
-setup_widgets (ConsolidateState *state, GladeXML *glade_gui)
+setup_widgets (ConsolidateState *state, GtkBuilder *gui)
 {
 	GtkTreeViewColumn *column;
 	GtkTreeSelection  *selection;
 	GtkCellRenderer *renderer;
 
-	state->function    = GTK_COMBO_BOX     (gnm_xml_get_widget (glade_gui, "function"));
+	state->function    = go_gtk_builder_combo_box_init_text (gui, "function");
 	gtk_combo_box_set_active (state->function, 0);
 
 /* Begin: Source Areas View*/
 	state->source_view = GTK_TREE_VIEW (gnm_xml_get_widget
-						(glade_gui,
+						(gui,
 						 "source_treeview"));
 	state->source_areas = GTK_TREE_MODEL(gtk_list_store_new
 						 (NUM_COLMNS,
@@ -442,12 +442,12 @@ setup_widgets (ConsolidateState *state, GladeXML *glade_gui)
 	gtk_tree_view_append_column (state->source_view, column);
 /* End: Source Areas View*/
 
-	state->clear       = GTK_BUTTON          (gnm_xml_get_widget (glade_gui, "clear"));
-	state->delete      = GTK_BUTTON          (gnm_xml_get_widget (glade_gui, "delete"));
+	state->clear       = GTK_BUTTON          (gnm_xml_get_widget (gui, "clear"));
+	state->delete      = GTK_BUTTON          (gnm_xml_get_widget (gui, "delete"));
 
-	state->labels_row  = GTK_CHECK_BUTTON (gnm_xml_get_widget (glade_gui, "labels_row"));
-	state->labels_col  = GTK_CHECK_BUTTON (gnm_xml_get_widget (glade_gui, "labels_col"));
-	state->labels_copy = GTK_CHECK_BUTTON (gnm_xml_get_widget (glade_gui, "labels_copy"));
+	state->labels_row  = GTK_CHECK_BUTTON (gnm_xml_get_widget (gui, "labels_row"));
+	state->labels_col  = GTK_CHECK_BUTTON (gnm_xml_get_widget (gui, "labels_col"));
+	state->labels_copy = GTK_CHECK_BUTTON (gnm_xml_get_widget (gui, "labels_copy"));
 
 	cb_selection_changed (NULL, state);
 	g_signal_connect (selection,
@@ -545,7 +545,7 @@ dialog_consolidate (WBCGtk *wbcg)
 
 	if (dialog_tool_init ((GenericToolState *)state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_CONSOLIDATE,
-			      "consolidate.glade", "Consolidate",
+			      "consolidate.ui", "Consolidate",
 			      _("Could not create the Consolidate dialog."),
 			      CONSOLIDATE_KEY,
 			      G_CALLBACK (cb_consolidate_ok_clicked),
diff --git a/src/dialogs/dialog-data-slicer.c b/src/dialogs/dialog-data-slicer.c
index f1f318f..5daec19 100644
--- a/src/dialogs/dialog-data-slicer.c
+++ b/src/dialogs/dialog-data-slicer.c
@@ -36,10 +36,8 @@
 #include <go-data-slicer-field.h>
 #include <go-data-cache.h>
 
-
 typedef struct {
 	GtkWidget		*dialog;
-	GladeXML		*gui;
 	WBCGtk			*wbcg;
 	SheetView		*sv;
 
@@ -66,7 +64,6 @@ enum {
 static void
 cb_dialog_data_slicer_destroy (DialogDataSlicer *state)
 {
-	if (NULL != state->gui)		{ g_object_unref (G_OBJECT (state->gui));	state->gui = NULL; }
 	if (NULL != state->slicer)	{ g_object_unref (G_OBJECT (state->slicer));	state->slicer = NULL; }
 	if (NULL != state->cache)	{ g_object_unref (G_OBJECT (state->cache));	state->cache = NULL; }
 	if (NULL != state->source)	{ g_object_unref (G_OBJECT (state->source));	state->source = NULL; }
@@ -211,6 +208,32 @@ cb_source_expr_changed (DialogDataSlicer *state)
 		(GNM_EXPR_ENTRY (state->source_expr), sv_sheet (state->sv));
 }
 
+/*      Menus   */
+static GtkActionEntry entries[] = {
+	{ "format", NULL, N_("_Format"), NULL, NULL, NULL },
+		{ "style", NULL, N_("_Style"), NULL, NULL, NULL },
+		{ "aggregation", NULL, N_("_Aggregation"), NULL, NULL, NULL },
+	{ "layout", NULL, N_("_Layout"), NULL, NULL, NULL },
+		{ "up", GTK_STOCK_GO_UP, N_("_Up"), NULL, NULL, NULL },
+		{ "down", GTK_STOCK_GO_DOWN, N_("_Down"), NULL, NULL, NULL },
+		{ "remove", GTK_STOCK_REMOVE, N_("_Remove"), NULL, NULL, NULL }
+};
+
+static const char *ui_description =
+"<ui>"
+"  <menubar name='bar'>"
+"    <menu action='format'>"
+"      <menuitem action='style'/>"
+"      <menuitem action='aggregation'/>"
+"    </menu>"
+"    <menu action='layout'>"
+"      <menuitem action='up'/>"
+"      <menuitem action='down'/>"
+"      <menuitem action='remove'/>"
+"    </menu>"
+"  </menubar>"
+"</ui>";
+
 void
 dialog_data_slicer (WBCGtk *wbcg, gboolean create)
 {
@@ -218,25 +241,26 @@ dialog_data_slicer (WBCGtk *wbcg, gboolean create)
 		{ (char *)"GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_APP, 0 }
 	};
 	DialogDataSlicer *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkWidget *w;
+	GtkUIManager *ui_manager;
+	GtkActionGroup *action_group;
 
 	g_return_if_fail (wbcg != NULL);
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, DIALOG_KEY))
 		return;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg), "data-slicer.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("data-slicer.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (NULL == gui)
 		return;
 
 	state = g_new0 (DialogDataSlicer, 1);
 	state->wbcg	= wbcg;
 	state->sv	= wb_control_cur_sheet_view (WORKBOOK_CONTROL (wbcg));
-	state->gui	= gui;
 
-	state->dialog	= gnm_xml_get_widget (state->gui, "dialog_data_slicer");
-	state->notebook = gnm_xml_get_widget (state->gui, "notebook");
+	state->dialog	= gnm_xml_get_widget (gui, "dialog_data_slicer");
+	state->notebook = gnm_xml_get_widget (gui, "notebook");
 	state->slicer	= create ? NULL : sv_editpos_in_slicer (state->sv);
 	state->cache	= NULL;
 	state->source	= NULL;
@@ -256,18 +280,18 @@ dialog_data_slicer (WBCGtk *wbcg, gboolean create)
 		GNM_EE_SINGLE_RANGE, GNM_EE_MASK);
 	g_signal_connect_swapped (G_OBJECT (state->source_expr),
 		"changed", G_CALLBACK (cb_source_expr_changed), state);
-	w = gnm_xml_get_widget (state->gui, "source_vbox");
+	w = gnm_xml_get_widget (gui, "source_vbox");
 	gtk_box_pack_start (GTK_BOX (w), GTK_WIDGET (state->source_expr), FALSE, FALSE, 0);
 	gtk_widget_show (GTK_WIDGET (state->source_expr));
 
-	w = gnm_xml_get_widget (state->gui, "ok_button");
+	w = gnm_xml_get_widget (gui, "ok_button");
 	g_signal_connect (G_OBJECT (w), "clicked",
 		G_CALLBACK (cb_dialog_data_slicer_ok), state);
-	w = gnm_xml_get_widget (state->gui, "cancel_button");
+	w = gnm_xml_get_widget (gui, "cancel_button");
 	g_signal_connect (G_OBJECT (w), "clicked",
 		G_CALLBACK (cb_dialog_data_slicer_cancel), state);
 
-	state->treeview = GTK_TREE_VIEW (gnm_xml_get_widget (state->gui, "field_tree"));
+	state->treeview = GTK_TREE_VIEW (gnm_xml_get_widget (gui, "field_tree"));
 	gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW (state->treeview), GDK_BUTTON1_MASK,
 		row_targets, G_N_ELEMENTS (row_targets), GDK_ACTION_MOVE);
 	gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW (state->treeview),
@@ -286,13 +310,27 @@ dialog_data_slicer (WBCGtk *wbcg, gboolean create)
 
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (state->notebook), create ? 0 : 1);
 
+	/* menus */
+	action_group = gtk_action_group_new ("settings-actions");
+	gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+	gtk_action_group_add_actions (action_group, entries, G_N_ELEMENTS (entries), state);
+	ui_manager = gtk_ui_manager_new ();
+	gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
+	g_object_unref (action_group);
+	gtk_ui_manager_add_ui_from_string (ui_manager, ui_description, -1, NULL);
+	gtk_box_pack_start (GTK_BOX (gnm_xml_get_widget (gui, "format-box")),
+	                    gtk_ui_manager_get_widget (ui_manager, "/bar"),
+	                    FALSE, TRUE, 0);
+
 	/* a candidate for merging into attach guru */
-	gnumeric_init_help_button (gnm_xml_get_widget (state->gui, "help_button"),
+	gnumeric_init_help_button (gnm_xml_get_widget (gui, "help_button"),
 		GNUMERIC_HELP_LINK_DATA_SLICER);
 	g_object_set_data_full (G_OBJECT (state->dialog),
 		"state", state, (GDestroyNotify)cb_dialog_data_slicer_destroy);
 	wbc_gtk_attach_guru (state->wbcg, state->dialog);
 	gnumeric_keyed_dialog (wbcg, GTK_WINDOW (state->dialog), DIALOG_KEY);
 	gtk_widget_show (state->dialog);
+	g_object_unref (gui);
+	g_object_unref (ui_manager);
 }
 
diff --git a/src/dialogs/dialog-data-table.c b/src/dialogs/dialog-data-table.c
index f6e122f..165ad14 100644
--- a/src/dialogs/dialog-data-table.c
+++ b/src/dialogs/dialog-data-table.c
@@ -42,7 +42,7 @@
 #define DIALOG_DATA_TABLE_KEY "dialog-data-table"
 
 typedef struct {
-	GladeXML	*gui;
+	GtkBuilder	*gui;
 	GtkWidget	*dialog;
 	GnmExprEntry	*row_entry, *col_entry;
 
@@ -60,20 +60,20 @@ cb_data_table_destroy (GnmDialogDataTable *state)
 }
 
 static GnmExprEntry *
-init_entry (GnmDialogDataTable *state, char const *name)
+init_entry (GnmDialogDataTable *state, int row)
 {
-	GtkWidget *w = gnm_xml_get_widget (state->gui, name);
+	GnmExprEntry *gee = gnm_expr_entry_new (state->wbcg, TRUE);
+	GtkWidget *table = gnm_xml_get_widget (state->gui, "table");
 
-	g_return_val_if_fail (w != NULL, NULL);
+	g_return_val_if_fail (table != NULL, NULL);
 
-	gnm_expr_entry_set_flags (GNM_EXPR_ENTRY (w),
+	gnm_expr_entry_set_flags (gee,
 		GNM_EE_SINGLE_RANGE | GNM_EE_SHEET_OPTIONAL | GNM_EE_FORCE_REL_REF,
 		GNM_EE_MASK);
-	g_object_set (G_OBJECT (w),
-		"scg", wbcg_cur_scg (state->wbcg),
-		"with-icon", TRUE,
-		NULL);
-	return GNM_EXPR_ENTRY (w);
+	g_object_set (G_OBJECT (gee), "with-icon", TRUE, NULL);
+	gtk_table_attach (GTK_TABLE (table), GTK_WIDGET (gee), 1, 2,
+	                  row, row + 1, GTK_FILL, GTK_FILL, 0, 0);
+	return gee;
 }
 
 static void
@@ -94,16 +94,15 @@ data_table_init (GnmDialogDataTable *state, WBCGtk *wbcg)
 {
 	GtkTable *table;
 
-	state->gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"data-table.glade", NULL, NULL);
+	state->gui = gnm_gtk_builder_new ("data-table.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (state->gui == NULL)
                 return TRUE;
 
 	state->dialog = gnm_xml_get_widget (state->gui, "DataTable");
 	table = GTK_TABLE (gnm_xml_get_widget (state->gui, "table"));
 
-	state->row_entry = init_entry (state, "row-entry");
-	state->col_entry = init_entry (state, "col-entry");
+	state->row_entry = init_entry (state, 0);
+	state->col_entry = init_entry (state, 1);
 
 	g_signal_connect (G_OBJECT (state->dialog), "response",
 		G_CALLBACK (cb_data_table_response), state);
diff --git a/src/dialogs/dialog-define-names.c b/src/dialogs/dialog-define-names.c
index c4f5973..8142613 100644
--- a/src/dialogs/dialog-define-names.c
+++ b/src/dialogs/dialog-define-names.c
@@ -53,7 +53,7 @@
 #define PASTE_NAMES_KEY "paste-names-dialog"
 
 typedef struct {
-	GladeXML		*gui;
+	GtkBuilder		*gui;
 	GtkWidget		*dialog;
 	GtkWidget		*treeview;
 	GtkTreeStore		*model;
@@ -1065,8 +1065,8 @@ name_guru_init (NameGuruState *state, WBCGtk *wbcg, gboolean is_paste_dialog)
 	state->is_paste_dialog = is_paste_dialog;
 	state->has_pasted = FALSE;
 
-	state->gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"define-name.glade", NULL, NULL);
+	state->gui = gnm_gtk_builder_new ("define-name.ui", NULL,
+	                                  GO_CMD_CONTEXT (wbcg));
         if (state->gui == NULL)
                 return TRUE;
 
@@ -1221,7 +1221,7 @@ name_guru_init (NameGuruState *state, WBCGtk *wbcg, gboolean is_paste_dialog)
 			 "Gnumeric-Define-Names-Dialog");
 	}
 
-	state->search_entry = gnm_xml_get_widget (state->gui, 
+	state->search_entry = gnm_xml_get_widget (state->gui,
 						    "search_entry");
 #ifdef HAVE_GTK_ENTRY_SET_ICON_FROM_STOCK
 
diff --git a/src/dialogs/dialog-delete-cells.c b/src/dialogs/dialog-delete-cells.c
index 4aaddf2..e38793e 100644
--- a/src/dialogs/dialog-delete-cells.c
+++ b/src/dialogs/dialog-delete-cells.c
@@ -47,7 +47,7 @@ typedef struct {
 	GtkWidget          *cancel_button;
 	GnmRange const     *sel;
 	Sheet              *sheet;
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 } DeleteCellState;
 
 static void
@@ -115,7 +115,7 @@ dialog_delete_cells (WBCGtk *wbcg)
 	SheetView	*sv  = wb_control_cur_sheet_view (wbc);
 	Sheet *sheet = sv_sheet (sv);
 	GnmRange const *sel;
-	GladeXML    *gui;
+	GtkBuilder *gui;
 	GtkWidget   *w;
 	int  cols, rows;
 
@@ -137,8 +137,7 @@ dialog_delete_cells (WBCGtk *wbcg)
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, DELETE_CELL_DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"delete-cells.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("delete-cells.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-doc-metadata.c b/src/dialogs/dialog-doc-metadata.c
index fe0eec0..b3dd70b 100644
--- a/src/dialogs/dialog-doc-metadata.c
+++ b/src/dialogs/dialog-doc-metadata.c
@@ -58,7 +58,7 @@ enum {
 };
 
 typedef struct {
-	GladeXML		*gui;
+	GtkBuilder		*gui;
 	GtkWidget		*dialog;
 
 	/*pointer to the document metadata*/
@@ -1673,10 +1673,8 @@ dialog_doc_metadata_init (DialogDocMetaData *state,
 
 	g_return_val_if_fail (state->metadata  != NULL, TRUE);
 
-	state->gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-					"doc-meta-data.glade",
-					NULL,
-					NULL);
+	state->gui = gnm_gtk_builder_new ("doc-meta-data.ui", NULL,
+	                                  GO_CMD_CONTEXT (wbcg));
 
         if (state->gui == NULL)
                 return TRUE;
diff --git a/src/dialogs/dialog-fill-series.c b/src/dialogs/dialog-fill-series.c
index a03f07e..cb81746 100644
--- a/src/dialogs/dialog-fill-series.c
+++ b/src/dialogs/dialog-fill-series.c
@@ -250,7 +250,7 @@ dialog_fill_series (WBCGtk *wbcg)
 
 	if (dialog_tool_init ((GenericToolState *)state, wbcg, sv_sheet (sv),
 			      GNUMERIC_HELP_LINK_FILL_SERIES,
-			      "fill-series.glade", "Fill_series",
+			      "fill-series.ui", "Fill_series",
 			      _("Could not create the Fill Series dialog."),
 			      FILL_SERIES_KEY,
 			      G_CALLBACK (cb_fill_series_ok_clicked), NULL,
diff --git a/src/dialogs/dialog-formula-guru.c b/src/dialogs/dialog-formula-guru.c
index 2eab837..823b005 100644
--- a/src/dialogs/dialog-formula-guru.c
+++ b/src/dialogs/dialog-formula-guru.c
@@ -61,7 +61,7 @@ typedef struct
 	WBCGtk  *wbcg;
 	Workbook  *wb;
 
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GtkWidget *ok_button;
 	GtkWidget *selector_button;
@@ -1002,7 +1002,7 @@ void
 dialog_formula_guru (WBCGtk *wbcg, GnmFunc *fd)
 {
 	SheetView *sv;
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GnmCell	  *cell;
 	GtkWidget *dialog;
 	FormulaGuruState *state;
@@ -1040,8 +1040,7 @@ dialog_formula_guru (WBCGtk *wbcg, GnmFunc *fd)
 	}
 
 	/* Get the dialog and check for errors */
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"formula-guru.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("formula-guru.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-function-select.c b/src/dialogs/dialog-function-select.c
index a5e32b4..b62a7a0 100644
--- a/src/dialogs/dialog-function-select.c
+++ b/src/dialogs/dialog-function-select.c
@@ -65,7 +65,7 @@ typedef struct {
 	Workbook *wb;
 	Sheet *sheet;
 
-	GladeXML  *gui;
+	GtkBuilder  *gui;
 	GtkWidget *dialog;
 	GtkWidget *ok_button;
 	GtkWidget *paste_button;
@@ -1336,14 +1336,13 @@ dialog_function_select_full (WBCGtk *wbcg, char const *guru_key,
 			     char const *key, DialogMode mode, gint from, gint to)
 {
 	FunctionSelectState* state;
-	GladeXML  *gui;
+	GtkBuilder *gui;
 
 	g_return_if_fail (wbcg != NULL);
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, key))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"function-select.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("function-select.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-goal-seek.c b/src/dialogs/dialog-goal-seek.c
index 0bd28ca..5467bfc 100644
--- a/src/dialogs/dialog-goal-seek.c
+++ b/src/dialogs/dialog-goal-seek.c
@@ -58,7 +58,7 @@ static const gnm_float max_range_val = GNM_const(1e24);
 #define GOALSEEK_KEY            "goal-seek-dialog"
 
 typedef struct {
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GnmExprEntry *set_cell_entry;
 	GnmExprEntry *change_cell_entry;
@@ -651,7 +651,7 @@ void
 dialog_goal_seek (WBCGtk *wbcg, Sheet *sheet)
 {
         GoalSeekState *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	g_return_if_fail (IS_SHEET (sheet));
 
@@ -680,8 +680,7 @@ dialog_goal_seek (WBCGtk *wbcg, Sheet *sheet)
 	/* Only pop up one copy per workbook */
 	if (gnumeric_dialog_raise_if_exists (wbcg, GOALSEEK_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"goalseek.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("goalseek.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-goto-cell.c b/src/dialogs/dialog-goto-cell.c
index 31f8d64..0e5af38 100644
--- a/src/dialogs/dialog-goto-cell.c
+++ b/src/dialogs/dialog-goto-cell.c
@@ -47,7 +47,7 @@ typedef struct {
 	WBCGtk  *wbcg;
 	Workbook  *wb;
 
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GtkWidget *close_button;
 	GtkWidget *go_button;
@@ -339,14 +339,13 @@ void
 dialog_goto_cell (WBCGtk *wbcg)
 {
 	GotoState* state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	g_return_if_fail (wbcg != NULL);
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, GOTO_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"goto.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("goto.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-hyperlink.c b/src/dialogs/dialog-hyperlink.c
index 2a300bd..f2ec281 100644
--- a/src/dialogs/dialog-hyperlink.c
+++ b/src/dialogs/dialog-hyperlink.c
@@ -49,7 +49,7 @@ typedef struct {
 	Workbook  *wb;
 	SheetControl *sc;
 
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 
 	GtkImage  *type_image;
@@ -562,7 +562,7 @@ dhl_init (HyperlinkState *state)
 void
 dialog_hyperlink (WBCGtk *wbcg, SheetControl *sc)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	HyperlinkState* state;
 	GnmHLink	*link = NULL;
 	Sheet		*sheet;
@@ -573,8 +573,7 @@ dialog_hyperlink (WBCGtk *wbcg, SheetControl *sc)
 	if (gnumeric_dialog_raise_if_exists (wbcg, DIALOG_KEY))
 		return;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"hyperlink.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("hyperlink.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-insert-cells.c b/src/dialogs/dialog-insert-cells.c
index 32ebbf5..798b5d2 100644
--- a/src/dialogs/dialog-insert-cells.c
+++ b/src/dialogs/dialog-insert-cells.c
@@ -47,7 +47,7 @@ typedef struct {
 	GtkWidget          *cancel_button;
 	GnmRange const     *sel;
 	Sheet              *sheet;
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 } InsertCellState;
 
 static void
@@ -112,7 +112,7 @@ cb_insert_cell_cancel_clicked (G_GNUC_UNUSED GtkWidget *button,
 void
 dialog_insert_cells (WBCGtk *wbcg)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	InsertCellState *state;
 	WorkbookControl *wbc = WORKBOOK_CONTROL (wbcg);
 	SheetView       *sv = wb_control_cur_sheet_view (wbc);
@@ -139,8 +139,7 @@ dialog_insert_cells (WBCGtk *wbcg)
 	if (gnumeric_dialog_raise_if_exists (wbcg, INSERT_CELL_DIALOG_KEY))
 		return;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"insert-cells.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("insert-cells.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-merge.c b/src/dialogs/dialog-merge.c
index b6815f0..ad43aa5 100644
--- a/src/dialogs/dialog-merge.c
+++ b/src/dialogs/dialog-merge.c
@@ -47,7 +47,7 @@
 typedef struct {
 	WBCGtk  *wbcg;
 	Sheet *sheet;
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GtkWidget *warning_dialog;
 	GtkTreeView *list;
@@ -311,7 +311,7 @@ void
 dialog_merge (WBCGtk *wbcg)
 {
 	MergeState *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkTable *table;
 	GtkWidget *scrolled;
 	GtkTreeViewColumn *column;
@@ -322,8 +322,7 @@ dialog_merge (WBCGtk *wbcg)
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, MERGE_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"merge.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("merge.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-paste-special.c b/src/dialogs/dialog-paste-special.c
index 2731461..f8f5a16 100644
--- a/src/dialogs/dialog-paste-special.c
+++ b/src/dialogs/dialog-paste-special.c
@@ -86,7 +86,7 @@ static struct {
 };
 
 typedef struct {
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GtkWidget *ok_button;
 	GtkWidget *cancel_button;
@@ -235,13 +235,12 @@ void
 dialog_paste_special (WBCGtk *wbcg)
 {
 	PasteSpecialState *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	char const * const *group;
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, GNM_PASTE_SPECIAL_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"paste-special.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("paste-special.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-plugin-manager.c b/src/dialogs/dialog-plugin-manager.c
index edebf67..9d63a61 100644
--- a/src/dialogs/dialog-plugin-manager.c
+++ b/src/dialogs/dialog-plugin-manager.c
@@ -48,7 +48,7 @@
 typedef struct {
 	GOCmdContext	*cc;
 	GtkWindow	*parent_window;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkDialog *dialog_pm;
 	GtkNotebook *gnotebook;
 	GtkListStore  *model_plugins;
@@ -641,7 +641,7 @@ void
 dialog_plugin_manager (WBCGtk *wbcg)
 {
 	PluginManagerGUI *pm_gui;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkWidget *scrolled;
 	GtkWidget *scrolled_directories;
 	GtkWidget *hbox;
@@ -655,7 +655,7 @@ dialog_plugin_manager (WBCGtk *wbcg)
 	if (gnumeric_dialog_raise_if_exists (wbcg, PLUGIN_MANAGER_DIALOG_KEY))
 		return;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg), "plugin-manager.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("plugin-manager.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
@@ -669,7 +669,7 @@ dialog_plugin_manager (WBCGtk *wbcg)
 
 	pm_gui->button_activate_all =
 		GTK_BUTTON (gnm_xml_get_widget (gui, "button_activate_all"));
-	/* If we add the following image in glade it does */
+	/* If we add the following image in.ui it does */
         /* not obey gtk-button-images = 0 */
 	image = g_object_ref (gtk_image_new_from_stock (GTK_STOCK_EXECUTE,
 							GTK_ICON_SIZE_BUTTON));
diff --git a/src/dialogs/dialog-preferences.c b/src/dialogs/dialog-preferences.c
index e95476f..1330802 100644
--- a/src/dialogs/dialog-preferences.c
+++ b/src/dialogs/dialog-preferences.c
@@ -56,7 +56,7 @@ enum {
 };
 
 typedef struct {
-	GladeXML	*gui;
+	GtkBuilder	*gui;
 	GtkWidget	*dialog;
 	GtkNotebook	*notebook;
 	GtkTreeStore    *store;
@@ -1248,7 +1248,7 @@ cb_preferences_destroy (PrefState *state)
 		state->store = NULL;
 	}
 	if (state->gui != NULL) {
-		g_object_unref (G_OBJECT (state->gui));
+		g_object_unref (state->gui);
 		state->gui = NULL;
 	}
 	if (state->app_wb_removed_sig) {
@@ -1257,6 +1257,8 @@ cb_preferences_destroy (PrefState *state)
 		state->app_wb_removed_sig = 0;
 	}
 	g_object_set_data (gnm_app_get_app (), PREF_DIALOG_KEY, NULL);
+
+	g_free (state);
 }
 
 static void
@@ -1272,12 +1274,11 @@ cb_workbook_removed (PrefState *state)
 		cb_close_clicked (state);
 }
 
-
 void
 dialog_preferences (WBCGtk *wbcg, gint page)
 {
 	PrefState *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkWidget *w;
 	gint i;
 	GtkTreeViewColumn *column;
@@ -1290,8 +1291,7 @@ dialog_preferences (WBCGtk *wbcg, gint page)
 		return;
 	}
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"preferences.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("preferences.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
@@ -1332,11 +1332,9 @@ dialog_preferences (WBCGtk *wbcg, gint page)
 	gnumeric_init_help_button (
 		gnm_xml_get_widget (state->gui, "help_button"),
 		GNUMERIC_HELP_LINK_PREFERENCES);
-	g_signal_connect_swapped (G_OBJECT (state->dialog), "destroy",
-				  G_CALLBACK (cb_preferences_destroy),
-				  state);
 	g_object_set_data_full (G_OBJECT (state->dialog),
-				"state", state,	(GDestroyNotify)g_free);
+				"state", state,
+				(GDestroyNotify)cb_preferences_destroy);
 
 	g_object_set_data (gnm_app_get_app (), PREF_DIALOG_KEY, state->dialog);
 
diff --git a/src/dialogs/dialog-printer-setup.c b/src/dialogs/dialog-printer-setup.c
index df295f3..5901641 100644
--- a/src/dialogs/dialog-printer-setup.c
+++ b/src/dialogs/dialog-printer-setup.c
@@ -108,7 +108,7 @@ typedef struct {
 struct _PrinterSetupState {
 	WBCGtk  *wbcg;
 	Sheet            *sheet;
-	GladeXML         *gui;
+	GtkBuilder       *gui;
 	PrintInformation *pi;
 	GtkWidget        *dialog;
 	GtkWidget        *sheet_selector;
@@ -162,7 +162,7 @@ typedef struct _HFCustomizeState HFCustomizeState;
 typedef struct _HFDTFormatState HFDTFormatState;
 struct _HFDTFormatState {
 	GtkWidget        *dialog;
-	GladeXML         *gui;
+	GtkBuilder       *gui;
 	HFCustomizeState *hf_state;
 	char             *format_string;
 	GtkWidget        *format_sel;
@@ -170,7 +170,7 @@ struct _HFDTFormatState {
 
 struct _HFCustomizeState {
 	GtkWidget        *dialog;
-	GladeXML         *gui;
+	GtkBuilder       *gui;
 	PrinterSetupState *printer_setup_state;
 	PrintHF          **hf;
 	gboolean         is_header;
@@ -1414,7 +1414,7 @@ hf_customize_ok (HFCustomizeState *hf_state)
 }
 
 static gboolean
-cb_hf_changed (GladeXML *gui)
+cb_hf_changed (GtkBuilder *gui)
 {
 	gtk_widget_set_sensitive (gnm_xml_get_widget (gui, "apply_button"), TRUE);
 	gtk_widget_set_sensitive (gnm_xml_get_widget (gui, "ok_button"), TRUE);
@@ -1671,7 +1671,7 @@ hf_attach_insert_cell_menu (GtkMenuToolButton *button, HFCustomizeState* hf_stat
 static void
 do_hf_customize (gboolean header, PrinterSetupState *state)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkTextView *left, *middle, *right;
 	GtkTextBuffer *left_buffer, *middle_buffer, *right_buffer;
 
@@ -1691,8 +1691,7 @@ do_hf_customize (gboolean header, PrinterSetupState *state)
 		return;
 	}
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (state->wbcg),
-		"hf-config.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("hf-config.ui", NULL, GO_CMD_CONTEXT (state->wbcg));
         if (gui == NULL)
                 return;
 
@@ -1827,6 +1826,7 @@ do_hf_customize (gboolean header, PrinterSetupState *state)
 
 
 	gtk_widget_show_all (dialog);
+	g_object_unref (gui);
 }
 
 /*************  Header Footer Customization *********** End *************/
@@ -1844,15 +1844,15 @@ hf_dt_customize_ok (HFDTFormatState *hf_dt_state)
 static char *
 do_hf_dt_format_customize (gboolean date, HFCustomizeState *hf_state)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	GtkWidget *dialog, *format_sel, *table;
 	HFDTFormatState* hf_dt_state;
 	gint result;
 	char *result_string = NULL;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (hf_state->printer_setup_state->wbcg),
-		"hf-dt-format.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("hf-dt-format.ui", NULL,
+	                         GO_CMD_CONTEXT (hf_state->printer_setup_state->wbcg));
         if (gui == NULL)
                 return NULL;
 
@@ -1904,6 +1904,8 @@ do_hf_dt_format_customize (gboolean date, HFCustomizeState *hf_state)
 		return NULL;
 	}
 	gtk_widget_destroy (dialog);
+	g_object_unref (hf_dt_state->gui);
+	hf_dt_state->gui = NULL;
 	return result_string;
 }
 
@@ -2267,7 +2269,7 @@ static void
 do_update_page (PrinterSetupState *state)
 {
 	PrintInformation *pi = state->pi;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	double top, bottom;
 	double left, right;
 	double edge_to_below_header, edge_to_above_footer;
@@ -2372,7 +2374,7 @@ orientation_changed_cb (PrinterSetupState *state)
 static void
 do_setup_page (PrinterSetupState *state)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	gui = state->gui;
 
@@ -2463,7 +2465,7 @@ do_setup_scale (PrinterSetupState *state)
 {
 	PrintInformation *pi = state->pi;
 	GtkWidget *scale_percent_spin, *scale_width_spin, *scale_height_spin;
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	gui = state->gui;
 
@@ -2704,10 +2706,9 @@ static PrinterSetupState *
 printer_setup_state_new (WBCGtk *wbcg, Sheet *sheet)
 {
 	PrinterSetupState *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"print.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("print.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return NULL;
 
@@ -2756,7 +2757,7 @@ static void
 do_fetch_scale (PrinterSetupState *state)
 {
 	GtkWidget *w;
-	GladeXML *gui = state->gui;
+	GtkBuilder *gui = state->gui;
 
 	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (state->scale_no_radio))) {
 		state->pi->scaling.percentage.x = state->pi->scaling.percentage.y = 100.;
diff --git a/src/dialogs/dialog-random-generator-cor.c b/src/dialogs/dialog-random-generator-cor.c
index cbb23a7..acc1c54 100644
--- a/src/dialogs/dialog-random-generator-cor.c
+++ b/src/dialogs/dialog-random-generator-cor.c
@@ -217,7 +217,7 @@ dialog_random_cor_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init ((GenericToolState *)state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_RANDOM_GENERATOR_COR,
-			      "random-generation-cor.glade", "CorRandom",
+			      "random-generation-cor.ui", "CorRandom",
 			      _("Could not create the Correlated Random Tool dialog."),
 			      RANDOM_COR_KEY,
 			      G_CALLBACK (random_cor_tool_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-random-generator.c b/src/dialogs/dialog-random-generator.c
index 019b2d2..a056c4e 100644
--- a/src/dialogs/dialog-random-generator.c
+++ b/src/dialogs/dialog-random-generator.c
@@ -839,7 +839,7 @@ dialog_random_tool (WBCGtk *wbcg, Sheet *sheet)
 
 	if (dialog_tool_init ((GenericToolState *)state, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_RANDOM_GENERATOR,
-			      "random-generation.glade", "Random",
+			      "random-generation.ui", "Random",
 			      _("Could not create the Random Tool dialog."),
 			      RANDOM_KEY,
 			      G_CALLBACK (random_tool_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-row-height.c b/src/dialogs/dialog-row-height.c
index 361cdcd..286ad4e 100644
--- a/src/dialogs/dialog-row-height.c
+++ b/src/dialogs/dialog-row-height.c
@@ -42,7 +42,7 @@
 #define ROW_HEIGHT_DIALOG_KEY "row-height-dialog"
 
 typedef struct {
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 	WBCGtk *wbcg;
 	Sheet              *sheet;
 	SheetView	   *sv;
@@ -255,8 +255,7 @@ dialog_row_height (WBCGtk *wbcg, gboolean use_default)
 	state->sv = wb_control_cur_sheet_view (WORKBOOK_CONTROL (wbcg));
 	state->sheet = sv_sheet (state->sv);
 	state->adjusting = FALSE;
-	state->gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"row-height.glade", NULL, NULL);
+	state->gui = gnm_gtk_builder_new ("row-height.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	g_return_if_fail (state->gui != NULL);
 
 	state->dialog = gnm_xml_get_widget (state->gui, "dialog");
diff --git a/src/dialogs/dialog-scenarios.c b/src/dialogs/dialog-scenarios.c
index dfba9a9..228cda5 100644
--- a/src/dialogs/dialog-scenarios.c
+++ b/src/dialogs/dialog-scenarios.c
@@ -390,7 +390,7 @@ dialog_scenario_add (WBCGtk *wbcg)
 
 	if (dialog_tool_init (&state->base, wbcg, wb_control_cur_sheet (wbc),
 			      GNUMERIC_HELP_LINK_SCENARIOS_ADD,
-			      "scenario-add.glade", "ScenarioAdd",
+			      "scenario-add.ui", "ScenarioAdd",
 			      error_str,
 			      "ScenarioAdd",
 			      G_CALLBACK (scenario_add_ok_clicked_cb), NULL,
@@ -789,7 +789,7 @@ dialog_scenarios (WBCGtk *wbcg)
 
 	if (dialog_tool_init (&state->base, wbcg, sheet,
 			      GNUMERIC_HELP_LINK_SCENARIOS_VIEW,
-			      "scenario-manager.glade", "Scenarios",
+			      "scenario-manager.ui", "Scenarios",
 			      error_str, "Scenarios",
 			      G_CALLBACK (scenarios_ok_clicked_cb),
 			      G_CALLBACK (scenarios_cancel_clicked_cb),
diff --git a/src/dialogs/dialog-search-replace.c b/src/dialogs/dialog-search-replace.c
index af413d0..c9fd66a 100644
--- a/src/dialogs/dialog-search-replace.c
+++ b/src/dialogs/dialog-search-replace.c
@@ -43,7 +43,7 @@
 
 typedef struct {
 	WBCGtk *wbcg;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkDialog *dialog;
 	GtkEntry *search_text;
 	GtkEntry *replace_text;
@@ -80,14 +80,14 @@ static const char * const direction_group[] = {
 };
 
 static gboolean
-is_checked (GladeXML *gui, const char *name)
+is_checked (GtkBuilder *gui, const char *name)
 {
 	GtkWidget *w = gnm_xml_get_widget (gui, name);
 	return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
 }
 
 static void
-set_checked (GladeXML *gui, const char *name, gboolean checked)
+set_checked (GtkBuilder *gui, const char *name, gboolean checked)
 {
 	GtkWidget *w = gnm_xml_get_widget (gui, name);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), checked);
@@ -96,7 +96,7 @@ set_checked (GladeXML *gui, const char *name, gboolean checked)
 static void
 dialog_search_replace_save_in_prefs (DialogState *dd)
 {
-	GladeXML *gui = dd->gui;
+	GtkBuilder *gui = dd->gui;
 
 #define SETW(w,f) f (is_checked (gui, w));
 	SETW("search_expr", gnm_conf_set_searchreplace_change_cell_expressions);
@@ -122,7 +122,7 @@ dialog_search_replace_save_in_prefs (DialogState *dd)
 static void
 apply_clicked (G_GNUC_UNUSED GtkWidget *widget, DialogState *dd)
 {
-	GladeXML *gui = dd->gui;
+	GtkBuilder *gui = dd->gui;
 	GtkDialog *dialog = dd->dialog;
 	WBCGtk *wbcg = dd->wbcg;
 	SearchDialogCallback cb = dd->cb;
@@ -241,7 +241,7 @@ void
 dialog_search_replace (WBCGtk *wbcg,
 		       SearchDialogCallback cb)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkDialog *dialog;
 	DialogState *dd;
 	GtkTable *table;
@@ -256,8 +256,7 @@ dialog_search_replace (WBCGtk *wbcg,
 	if (gnumeric_dialog_raise_if_exists (wbcg, SEARCH_REPLACE_KEY))
 		return;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"search-replace.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("search-replace.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
@@ -370,14 +369,13 @@ dialog_search_replace_query (WBCGtk *wbcg,
 			     const char *old_text,
 			     const char *new_text)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkDialog *dialog;
 	int res;
 
 	g_return_val_if_fail (wbcg != NULL, 0);
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"search-replace.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("search-replace.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return 0;
 
diff --git a/src/dialogs/dialog-sheet-order.c b/src/dialogs/dialog-sheet-order.c
index 6c3b7e9..bcbe1c3 100644
--- a/src/dialogs/dialog-sheet-order.c
+++ b/src/dialogs/dialog-sheet-order.c
@@ -54,7 +54,7 @@
 typedef struct {
 	WBCGtk  *wbcg;
 
-	GladeXML  *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GtkTreeView *sheet_list;
 	GtkListStore *model;
@@ -1418,15 +1418,14 @@ void
 dialog_sheet_order (WBCGtk *wbcg)
 {
 	SheetManager *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkTable *table;
 	GOColorGroup *cg;
 	Workbook *wb;
 
 	g_return_if_fail (wbcg != NULL);
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"sheet-order.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("sheet-order.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-sheetobject-size.c b/src/dialogs/dialog-sheetobject-size.c
index dfc2bbb..62a2c8a 100644
--- a/src/dialogs/dialog-sheetobject-size.c
+++ b/src/dialogs/dialog-sheetobject-size.c
@@ -47,7 +47,7 @@
 #define SO_SIZE_DIALOG_KEY "so-size-dialog"
 
 typedef struct {
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 	WBCGtk *wbcg;
 	Sheet              *sheet;
 	SheetView	   *sv;
@@ -306,7 +306,7 @@ cb_dialog_so_size_print_check_toggled (GtkToggleButton *togglebutton,
 void
 dialog_so_size (WBCGtk *wbcg, GObject *so)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	SOSizeState *state;
 	int width, height;
 
@@ -314,8 +314,7 @@ dialog_so_size (WBCGtk *wbcg, GObject *so)
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, SO_SIZE_DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"sheetobject-size.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("sheetobject-size.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-shuffle.c b/src/dialogs/dialog-shuffle.c
index 5a307fe..d7a8c9f 100644
--- a/src/dialogs/dialog-shuffle.c
+++ b/src/dialogs/dialog-shuffle.c
@@ -145,7 +145,7 @@ dialog_shuffle (WBCGtk *wbcg)
 
 	if (dialog_tool_init (state, wbcg, wb_control_cur_sheet (wbc),
 			      GNUMERIC_HELP_LINK_DATA_SHUFFLE,
-			      "shuffle.glade", "Shuffling",
+			      "shuffle.ui", "Shuffling",
 			      _("Could not create the Data Shuffling dialog."),
 			      SHUFFLE_KEY,
 			      G_CALLBACK (shuffle_ok_clicked_cb), NULL,
diff --git a/src/dialogs/dialog-simulation.c b/src/dialogs/dialog-simulation.c
index 7c389a7..76706b3 100644
--- a/src/dialogs/dialog-simulation.c
+++ b/src/dialogs/dialog-simulation.c
@@ -418,7 +418,7 @@ dialog_simulation (WBCGtk *wbcg, G_GNUC_UNUSED Sheet *sheet)
 	state = g_new (SimulationState, 1);
 	if (dialog_tool_init (state, wbcg, wb_control_cur_sheet (wbc),
 			      GNUMERIC_HELP_LINK_SIMULATION,
-			      "simulation.glade", "Simulation",
+			      "simulation.ui", "Simulation",
 			      _("Could not create the Simulation dialog."),
 			      SIMULATION_KEY,
 			      G_CALLBACK (simulation_ok_clicked_cb),
diff --git a/src/dialogs/dialog-solver.c b/src/dialogs/dialog-solver.c
index 1e69eab..db81ed6 100644
--- a/src/dialogs/dialog-solver.c
+++ b/src/dialogs/dialog-solver.c
@@ -55,7 +55,7 @@
 #define SOLVER_KEY            "solver-dialog"
 
 typedef struct {
-	GladeXML            *gui;
+	GtkBuilder          *gui;
 	GtkWidget           *dialog;
 	GnmExprEntry	    *target_entry;
 	GnmExprEntry	    *change_cell_entry;
@@ -911,8 +911,7 @@ dialog_init (SolverState *state)
 
 	param = state->sheet->solver_parameters;
 
-	state->gui = gnm_glade_xml_new (GO_CMD_CONTEXT (state->wbcg),
-		"solver.glade", NULL, NULL);
+	state->gui = gnm_gtk_builder_new ("solver.ui", NULL, GO_CMD_CONTEXT (state->wbcg));
         if (state->gui == NULL)
                 return TRUE;
 
diff --git a/src/dialogs/dialog-stf-csv-page.c b/src/dialogs/dialog-stf-csv-page.c
index bc71490..b678e78 100644
--- a/src/dialogs/dialog-stf-csv-page.c
+++ b/src/dialogs/dialog-stf-csv-page.c
@@ -221,7 +221,7 @@ stf_dialog_csv_page_cleanup (StfDialogData *pagedata)
 }
 
 void
-stf_dialog_csv_page_init (GladeXML *gui, StfDialogData *pagedata)
+stf_dialog_csv_page_init (GtkBuilder *gui, StfDialogData *pagedata)
 {
 	g_return_if_fail (gui != NULL);
 	g_return_if_fail (pagedata != NULL);
diff --git a/src/dialogs/dialog-stf-export.c b/src/dialogs/dialog-stf-export.c
index 6cfb4d0..02b9b04 100644
--- a/src/dialogs/dialog-stf-export.c
+++ b/src/dialogs/dialog-stf-export.c
@@ -52,7 +52,7 @@ enum {
 typedef struct {
 	Workbook		*wb;
 
-	GladeXML		*gui;
+	GtkBuilder		*gui;
 	WBCGtk	*wbcg;
 	GtkWindow		*window;
 	GtkWidget		*notebook;
@@ -718,8 +718,7 @@ stf_export_dialog (WBCGtk *wbcg, GnmStfExport *stfe, Workbook *wb)
 	g_return_val_if_fail (IS_WORKBOOK (wb), TRUE);
 	g_return_val_if_fail (IS_GNM_STF_EXPORT (stfe), TRUE);
 
-	state.gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"dialog-stf-export.glade", NULL, NULL);
+	state.gui = gnm_gtk_builder_new ("dialog-stf-export.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (state.gui == NULL)
 		return TRUE;
 
diff --git a/src/dialogs/dialog-stf-fixed-page.c b/src/dialogs/dialog-stf-fixed-page.c
index 685ad87..4894533 100644
--- a/src/dialogs/dialog-stf-fixed-page.c
+++ b/src/dialogs/dialog-stf-fixed-page.c
@@ -566,7 +566,7 @@ stf_dialog_fixed_page_cleanup (StfDialogData *pagedata)
 }
 
 void
-stf_dialog_fixed_page_init (GladeXML *gui, StfDialogData *pagedata)
+stf_dialog_fixed_page_init (GtkBuilder *gui, StfDialogData *pagedata)
 {
 	RenderData_t *renderdata;
 
diff --git a/src/dialogs/dialog-stf-format-page.c b/src/dialogs/dialog-stf-format-page.c
index 6581bcc..2db6edf 100644
--- a/src/dialogs/dialog-stf-format-page.c
+++ b/src/dialogs/dialog-stf-format-page.c
@@ -733,7 +733,7 @@ stf_dialog_format_page_cleanup (StfDialogData *pagedata)
 }
 
 void
-stf_dialog_format_page_init (GladeXML *gui, StfDialogData *pagedata)
+stf_dialog_format_page_init (GtkBuilder *gui, StfDialogData *pagedata)
 {
 /* 	GtkWidget * format_hbox; */
 
diff --git a/src/dialogs/dialog-stf-main-page.c b/src/dialogs/dialog-stf-main-page.c
index dfd4bda..916a573 100644
--- a/src/dialogs/dialog-stf-main-page.c
+++ b/src/dialogs/dialog-stf-main-page.c
@@ -339,7 +339,7 @@ stf_dialog_main_page_cleanup (StfDialogData *pagedata)
 }
 
 void
-stf_dialog_main_page_init (GladeXML *gui, StfDialogData *pagedata)
+stf_dialog_main_page_init (GtkBuilder *gui, StfDialogData *pagedata)
 {
 	RenderData_t *renderdata;
 	GtkTreeViewColumn *column;
diff --git a/src/dialogs/dialog-stf.c b/src/dialogs/dialog-stf.c
index 5947ba5..a196ad0 100644
--- a/src/dialogs/dialog-stf.c
+++ b/src/dialogs/dialog-stf.c
@@ -175,7 +175,7 @@ back_clicked (G_GNUC_UNUSED GtkWidget *widget, StfDialogData *data)
 
 /**
  * stf_dialog_attach_page_signals
- * @gui: the glade gui of the dialog
+ * @gui: the GtkBuilder gui of the dialog
  * @pagedata: mother struct
  *
  * Connects all signals to all pages and fills the mother struct
@@ -187,7 +187,7 @@ back_clicked (G_GNUC_UNUSED GtkWidget *widget, StfDialogData *data)
  * returns: nothing
  **/
 static void
-stf_dialog_attach_page_signals (GladeXML *gui, StfDialogData *pagedata)
+stf_dialog_attach_page_signals (GtkBuilder *gui, StfDialogData *pagedata)
 {
 	frob_buttons (pagedata);
 	/* Signals for individual pages */
@@ -255,7 +255,7 @@ stf_dialog (WBCGtk *wbcg,
 	    const char *data,
 	    int data_len)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	DialogStfResult_t *dialogresult;
 	StfDialogData pagedata;
 	GtkResponseType resp;
@@ -265,8 +265,7 @@ stf_dialog (WBCGtk *wbcg,
 	g_return_val_if_fail (source != NULL, NULL);
 	g_return_val_if_fail (data != NULL, NULL);
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"dialog-stf.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("dialog-stf.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return NULL;
 
diff --git a/src/dialogs/dialog-stf.h b/src/dialogs/dialog-stf.h
index 66c7e54..554debf 100644
--- a/src/dialogs/dialog-stf.h
+++ b/src/dialogs/dialog-stf.h
@@ -149,10 +149,10 @@ void    stf_dialog_result_attach_formats_to_cr (DialogStfResult_t *dialogresult,
  * each page the opportunity to connect signal handlers and set the contents
  * of their Info_t record
  */
-void    stf_dialog_main_page_init                       (GladeXML *gui, StfDialogData *pagedata);
-void    stf_dialog_csv_page_init                        (GladeXML *gui, StfDialogData *pagedata);
-void    stf_dialog_fixed_page_init                      (GladeXML *gui, StfDialogData *pagedata);
-void    stf_dialog_format_page_init                     (GladeXML *gui, StfDialogData *pagedata);
+void    stf_dialog_main_page_init                       (GtkBuilder *gui, StfDialogData *pagedata);
+void    stf_dialog_csv_page_init                        (GtkBuilder *gui, StfDialogData *pagedata);
+void    stf_dialog_fixed_page_init                      (GtkBuilder *gui, StfDialogData *pagedata);
+void    stf_dialog_format_page_init                     (GtkBuilder *gui, StfDialogData *pagedata);
 
 /* CLEANUP functions
  *
diff --git a/src/dialogs/dialog-tabulate.c b/src/dialogs/dialog-tabulate.c
index 2952995..809f02a 100644
--- a/src/dialogs/dialog-tabulate.c
+++ b/src/dialogs/dialog-tabulate.c
@@ -65,7 +65,7 @@ typedef struct {
 	WBCGtk *wbcg;
 	Sheet *sheet;
 
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkDialog *dialog;
 
 	GtkTable *source_table;
@@ -307,7 +307,7 @@ tabulate_ok_clicked (G_GNUC_UNUSED GtkWidget *widget, DialogState *dd)
 void
 dialog_tabulate (WBCGtk *wbcg, Sheet *sheet)
 {
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkDialog *dialog;
 	DialogState *dd;
 	int i;
@@ -320,8 +320,7 @@ dialog_tabulate (WBCGtk *wbcg, Sheet *sheet)
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, TABULATE_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"tabulate.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("tabulate.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-view.c b/src/dialogs/dialog-view.c
index 2dbd5f9..8dd4281 100644
--- a/src/dialogs/dialog-view.c
+++ b/src/dialogs/dialog-view.c
@@ -35,7 +35,7 @@
 typedef struct {
 	WBCGtk *wbcg;
 	GtkWidget          *dialog;
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 	GtkRadioButton     *location_elsewhere;
 	GtkEntry           *location_display_name;
 } ViewState;
@@ -125,12 +125,11 @@ void
 dialog_new_view (WBCGtk *wbcg)
 {
 	ViewState *state;
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, VIEW_DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-				 "view.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("view.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/dialog-workbook-attr.c b/src/dialogs/dialog-workbook-attr.c
index 34d41f6..1a63d75 100644
--- a/src/dialogs/dialog-workbook-attr.c
+++ b/src/dialogs/dialog-workbook-attr.c
@@ -42,7 +42,7 @@ enum {
 };
 
 typedef struct {
-	GladeXML	*gui;
+	GtkBuilder	*gui;
 	GtkWidget	*dialog;
 	GtkWidget	*notebook;
 	GtkWidget	*ok_button;
@@ -323,7 +323,7 @@ attr_dialog_impl (AttrState *state)
 void
 dialog_workbook_attr (WBCGtk *wbcg)
 {
-	GladeXML     *gui;
+	GtkBuilder   *gui;
 	AttrState    *state;
 
 	g_return_if_fail (wbcg != NULL);
@@ -331,8 +331,7 @@ dialog_workbook_attr (WBCGtk *wbcg)
 	if (gnumeric_dialog_raise_if_exists (wbcg, WORKBOOK_ATTRIBUTE_KEY))
 		return;
 
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"workbook-attr.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("workbook-attr.ui", NULL, GO_CMD_CONTEXT (wbcg));
         if (gui == NULL)
                 return;
 
diff --git a/src/dialogs/dialog-zoom.c b/src/dialogs/dialog-zoom.c
index 6a257bb..09f7e85 100644
--- a/src/dialogs/dialog-zoom.c
+++ b/src/dialogs/dialog-zoom.c
@@ -49,7 +49,7 @@ typedef struct {
 	GtkWidget          *ok_button;
 	GtkWidget          *cancel_button;
 	GtkRadioButton     *custom;
-	GladeXML           *gui;
+	GtkBuilder         *gui;
 
 	GtkSpinButton  *zoom;
 	GtkTreeView        *sheet_list;
@@ -160,7 +160,7 @@ dialog_zoom (WBCGtk *wbcg, Sheet *sheet)
 	gboolean is_custom = TRUE;
 	GtkRadioButton *radio;
 	GtkWidget *focus_target;
-	GladeXML     *gui;
+	GtkBuilder *gui;
 	GtkTreeViewColumn *column;
 
 	g_return_if_fail (wbcg != NULL);
@@ -168,8 +168,7 @@ dialog_zoom (WBCGtk *wbcg, Sheet *sheet)
 
 	if (gnumeric_dialog_raise_if_exists (wbcg, ZOOM_DIALOG_KEY))
 		return;
-	gui = gnm_glade_xml_new (GO_CMD_CONTEXT (wbcg),
-		"dialog-zoom.glade", NULL, NULL);
+	gui = gnm_gtk_builder_new ("dialog-zoom.ui", NULL, GO_CMD_CONTEXT (wbcg));
 	if (gui == NULL)
 		return;
 
diff --git a/src/dialogs/tool-dialogs.h b/src/dialogs/tool-dialogs.h
index 53c5baa..5d6706d 100644
--- a/src/dialogs/tool-dialogs.h
+++ b/src/dialogs/tool-dialogs.h
@@ -20,7 +20,6 @@
 #include "gnumeric.h"
 #include "numbers.h"
 #include "widgets/gnumeric-expr-entry.h"
-#include <glade/glade-xml.h>
 
 typedef struct _scenario_state scenario_state_t;
 
@@ -28,7 +27,7 @@ typedef struct _GenericToolState GenericToolState;
 typedef void (*state_destroy_t) (GenericToolState *state);
 
 struct _GenericToolState {
-	GladeXML  *gui;
+	GtkBuilder  *gui;
 	GtkWidget *dialog;
 	GnmExprEntry *input_entry;
 	GnmExprEntry *input_entry_2;
diff --git a/src/gui-util.c b/src/gui-util.c
index 4c1b406..1692e98 100644
--- a/src/gui-util.c
+++ b/src/gui-util.c
@@ -552,37 +552,12 @@ gnumeric_position_tooltip (GtkWidget *tip, int px, int py, gboolean horizontal)
 }
 
 /**
- * gnm_glade_xml_new :
+ * gnm_gtk_builder_new :
  * @cc : #GOCmdContext
- * @gladefile :
+ * @uifile :
  *
- * Simple utility to open glade files
+ * Simple utility to open ui files
  **/
-GladeXML *
-gnm_glade_xml_new (GOCmdContext *cc, char const *gladefile,
-		   char const *root, char const *domain)
-{
-	GladeXML *gui;
-	char *f;
-
-	g_return_val_if_fail (gladefile != NULL, NULL);
-
-	if (g_path_is_absolute (gladefile))
-		f = g_strdup (gladefile);
-	else
-		f = g_build_filename (gnm_sys_data_dir (), "glade", gladefile, NULL);
-
-	gui = glade_xml_new (f, root, domain);
-	if (gui == NULL && cc != NULL) {
-		char *msg = g_strdup_printf (_("Unable to open file '%s'"), f);
-		go_cmd_context_error_system (cc, msg);
-		g_free (msg);
-	}
-	g_free (f);
-
-	return gui;
-}
-
 GtkBuilder *
 gnm_gtk_builder_new (char const *uifile, char const *domain, GOCmdContext *cc)
 {
@@ -603,8 +578,6 @@ gnm_xml_get_widget (gpointer gui, char const *widget_name)
 {
 	if (GTK_IS_BUILDER (gui))
 		return go_gtk_builder_get_widget (gui, widget_name);
-	if (GLADE_IS_XML (gui))
-		return glade_xml_get_widget (gui, widget_name);
 	abort ();
 }
 
diff --git a/src/gui-util.h b/src/gui-util.h
index 1a9f41f..50a55df 100644
--- a/src/gui-util.h
+++ b/src/gui-util.h
@@ -9,7 +9,6 @@
 #include <goffice/goffice.h>
 #include "numbers.h"
 #include <gtk/gtk.h>
-#include <glade/glade-xml.h>
 
 G_BEGIN_DECLS
 
@@ -48,8 +47,6 @@ GtkRcStyle *gnumeric_create_tooltip_rc_style (void);
 GtkWidget  *gnumeric_create_tooltip_widget (void);
 GtkWidget  *gnumeric_create_tooltip (GtkWidget *ref_widget);
 
-GladeXML   *gnm_glade_xml_new (GOCmdContext *cc, char const *gladefile,
-			       char const *root, char const *domain);
 GtkBuilder *gnm_gtk_builder_new (char const *uifile, char const *domain,
 				 GOCmdContext *cc);
 
diff --git a/src/libgnumeric.c b/src/libgnumeric.c
index 6948542..126eb0a 100644
--- a/src/libgnumeric.c
+++ b/src/libgnumeric.c
@@ -56,7 +56,6 @@
 #include "hlink.h"
 #include "wbc-gtk-impl.h"
 #include <goffice/goffice.h>
-#include <glade/glade.h>
 
 #ifdef HAVE_SYS_RESOURCE_H
 #include <sys/resource.h>
@@ -295,8 +294,6 @@ gnm_init (void)
 	gnm_xml_sax_read_init ();
 	gnm_xml_sax_write_init ();
 	stf_init ();
-
-	glade_init ();
 }
 
 /**
diff --git a/src/widgets/gnm-dao.c b/src/widgets/gnm-dao.c
index 6a21b26..85c0c58 100644
--- a/src/widgets/gnm-dao.c
+++ b/src/widgets/gnm-dao.c
@@ -32,7 +32,7 @@
 
 struct  _GnmDao {
 	GtkHBox		box;
-	GladeXML	*gui;
+	GtkBuilder      *gui;
 
 	GtkWidget *new_sheet;
 	GtkWidget *new_workbook;
@@ -71,7 +71,7 @@ gnm_dao_init (GnmDao *gdao)
 	GtkWidget *toplevel;
 	GtkWidget *old_parent;
 
-	gdao->gui = gnm_glade_xml_new (NULL, "dao.glade", NULL, NULL);
+	gdao->gui = gnm_gtk_builder_new ("dao.ui", NULL, NULL);
 	if (gdao->gui == NULL)
 		return;
 
diff --git a/src/widgets/widget-font-selector.c b/src/widgets/widget-font-selector.c
index fd15ae0..83f53fd 100644
--- a/src/widgets/widget-font-selector.c
+++ b/src/widgets/widget-font-selector.c
@@ -31,7 +31,7 @@
 
 struct _FontSelector {
 	GtkHBox box;
-	GladeXML *gui;
+	GtkBuilder *gui;
 
 	GtkWidget *font_name_entry;
 	GtkWidget *font_style_entry;
@@ -366,7 +366,7 @@ fs_init (FontSelector *fs)
 {
 	GtkWidget *w;
 
-	fs->gui = gnm_glade_xml_new (NULL, "font-sel.glade", "toplevel-table", NULL);
+	fs->gui = gnm_gtk_builder_new ("font-sel.ui", "toplevel-table", NULL);
 	if (fs->gui == NULL)
                 return;
 
diff --git a/tools/win32/moduleset.in b/tools/win32/moduleset.in
index ec6edf0..af4d898 100644
--- a/tools/win32/moduleset.in
+++ b/tools/win32/moduleset.in
@@ -367,7 +367,6 @@
 	<branch/>
 	<dependencies>
 	    <dep package="goffice"/>
-	    <dep package="libglade"/>
 	</dependencies>
 	<suggests>
 	    <!-- <dep package="libgda"/> -->



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