diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-09-25 06:04:36 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-11-17 08:33:32 +0800 |
commit | 054c0881696a85f537e93b4950a28f505a3dc0f7 (patch) | |
tree | e63cfece426e2de5898c926eb6737cff229bb38b /e-util | |
parent | 6348266ee635db59a12d75497f980dd85d0fcf58 (diff) | |
download | gsoc2013-evolution-054c0881696a85f537e93b4950a28f505a3dc0f7.tar.gz gsoc2013-evolution-054c0881696a85f537e93b4950a28f505a3dc0f7.tar.zst gsoc2013-evolution-054c0881696a85f537e93b4950a28f505a3dc0f7.zip |
BugĀ 589153 - Use GtkBuilder instead of libglade
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/Makefile.am | 6 | ||||
-rw-r--r-- | e-util/e-util-private.h | 4 | ||||
-rw-r--r-- | e-util/e-util.c | 59 | ||||
-rw-r--r-- | e-util/e-util.h | 12 | ||||
-rw-r--r-- | e-util/e-win32-reloc.c | 2 |
5 files changed, 72 insertions, 11 deletions
diff --git a/e-util/Makefile.am b/e-util/Makefile.am index 3014458f28..c0b12d63c1 100644 --- a/e-util/Makefile.am +++ b/e-util/Makefile.am @@ -63,7 +63,6 @@ libeutil_la_CPPFLAGS = \ -DEVOLUTION_ECPSDIR=\""$(ecpsdir)"\" \ -DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\" \ -DEVOLUTION_GALVIEWSDIR=\""$(viewsdir)"\" \ - -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ -DEVOLUTION_HELPDIR=\""$(evolutionhelpdir)"\" \ -DEVOLUTION_ICONSDIR=\""$(imagesdir)"\" \ -DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\" \ @@ -76,7 +75,7 @@ libeutil_la_CPPFLAGS = \ -DEVOLUTION_SOUNDDIR=\""$(soundsdir)"\" \ -DEVOLUTION_SYSCONFDIR=\""$(sysconfdir)"\" \ -DEVOLUTION_TOOLSDIR=\""$(privlibexecdir)"\" \ - -DEVOLUTION_UIDIR=\""$(evolutionuidir)"\" \ + -DEVOLUTION_UIDIR=\""$(uidir)"\" \ -DSEARCH_RULE_DIR=\"$(ruledir)\" \ -DG_LOG_DOMAIN=\"e-utils\" \ $(GNOME_PILOT_CFLAGS) \ @@ -166,7 +165,6 @@ libeconduit_la_CPPFLAGS = \ -DEVOLUTION_ECPSDIR=\""$(ecpsdir)"\" \ -DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\" \ -DEVOLUTION_GALVIEWSDIR=\""$(viewsdir)"\" \ - -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ -DEVOLUTION_HELPDIR=\""$(evolutionhelpdir)"\" \ -DEVOLUTION_ICONSDIR=\""$(imagesdir)"\" \ -DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\" \ @@ -179,7 +177,7 @@ libeconduit_la_CPPFLAGS = \ -DEVOLUTION_SOUNDDIR=\""$(soundsdir)"\" \ -DEVOLUTION_SYSCONFDIR=\""$(sysconfdir)"\" \ -DEVOLUTION_TOOLSDIR=\""$(privlibexecdir)"\" \ - -DEVOLUTION_UIDIR=\""$(evolutionuidir)"\" \ + -DEVOLUTION_UIDIR=\""$(uidir)"\" \ -DSEARCH_RULE_DIR=\"$(ruledir)\" \ -DG_LOG_DOMAIN=\"e-utils\" \ $(GNOME_PILOT_CFLAGS) \ diff --git a/e-util/e-util-private.h b/e-util/e-util-private.h index 7c77f12d27..775895eba7 100644 --- a/e-util/e-util-private.h +++ b/e-util/e-util-private.h @@ -86,8 +86,8 @@ const gchar *_e_get_uidir (void) G_GNUC_CONST; #undef EVOLUTION_GALVIEWSDIR #define EVOLUTION_GALVIEWSDIR _e_get_galviewsdir () -#undef EVOLUTION_GLADEDIR -#define EVOLUTION_GLADEDIR _e_get_gladedir () +#undef EVOLUTION_UIDIR +#define EVOLUTION_UIDIR _e_get_gladedir () #undef EVOLUTION_HELPDIR #define EVOLUTION_HELPDIR _e_get_helpdir () diff --git a/e-util/e-util.c b/e-util/e-util.c index 6a9ad6d780..800974577c 100644 --- a/e-util/e-util.c +++ b/e-util/e-util.c @@ -47,6 +47,7 @@ #include <libedataserver/e-data-server-util.h> #include <libedataserver/e-categories.h> +#include <libedataserver/e-source-list.h> #include "filter/e-filter-option.h" @@ -281,7 +282,36 @@ e_lookup_action_group (GtkUIManager *ui_manager, } /** - * e_load_ui_definition: + * e_load_ui_builder_definition: + * @builder: a #GtkBuilder + * @basename: basename of the UI definition file + * + * Loads a UI definition into @builder from Evolution's UI directory. + * Failure here is fatal, since the application can't function without + * its UI definitions. + **/ +void +e_load_ui_builder_definition (GtkBuilder *builder, + const gchar *basename) +{ + gchar *filename; + GError *error = NULL; + + g_return_if_fail (GTK_IS_BUILDER (builder)); + g_return_if_fail (basename != NULL); + + filename = g_build_filename (EVOLUTION_UIDIR, basename, NULL); + gtk_builder_add_from_file (builder, filename, &error); + g_free (filename); + + if (error != NULL) { + g_error ("%s: %s", basename, error->message); + g_assert_not_reached (); + } +} + +/** + * e_load_ui_manager_definition: * @ui_manager: a #GtkUIManager * @basename: basename of the UI definition file * @@ -293,8 +323,8 @@ e_lookup_action_group (GtkUIManager *ui_manager, * unmerge the UI with gtk_ui_manager_remove_ui(). **/ guint -e_load_ui_definition (GtkUIManager *ui_manager, - const gchar *basename) +e_load_ui_manager_definition (GtkUIManager *ui_manager, + const gchar *basename) { gchar *filename; guint merge_id; @@ -1490,6 +1520,29 @@ e_util_get_category_filter_options (void) return g_slist_reverse (res); } +/** + * e_util_set_source_combo_box_list: + * @source_combo_box: an #ESourceComboBox + * @source_gconf_path: GConf path with sources to use in an #ESourceList + * + * Sets an #ESourceList of a given GConf path to an #ESourceComboBox. + **/ +void +e_util_set_source_combo_box_list (GtkWidget *source_combo_box, const gchar *source_gconf_path) +{ + ESourceList *source_list; + GConfClient *gconf_client; + + g_return_if_fail (source_combo_box != NULL); + g_return_if_fail (source_gconf_path != NULL); + + gconf_client = gconf_client_get_default (); + source_list = e_source_list_new_for_gconf (gconf_client, source_gconf_path); + g_object_set (G_OBJECT (source_combo_box), "source-list", source_list, NULL); + g_object_unref (source_list); + g_object_unref (gconf_client); +} + static gpointer e_camel_object_copy (gpointer camel_object) { diff --git a/e-util/e-util.h b/e-util/e-util.h index d673cfe91a..7c4be25bd4 100644 --- a/e-util/e-util.h +++ b/e-util/e-util.h @@ -37,6 +37,11 @@ #include <e-util/e-marshal.h> +/* Convenience macro to help migrate from libglade to GtkBuilder. + * Use it as a direct replacement for glade_xml_get_widget(). */ +#define e_builder_get_widget(builder, name) \ + GTK_WIDGET (gtk_builder_get_object ((builder), (name))) + G_BEGIN_DECLS typedef enum { @@ -58,7 +63,9 @@ GtkAction * e_lookup_action (GtkUIManager *ui_manager, const gchar *action_name); GtkActionGroup *e_lookup_action_group (GtkUIManager *ui_manager, const gchar *group_name); -guint e_load_ui_definition (GtkUIManager *ui_manager, +void e_load_ui_builder_definition (GtkBuilder *builder, + const gchar *basename); +guint e_load_ui_manager_definition (GtkUIManager *ui_manager, const gchar *basename); gint e_action_compare_by_label (GtkAction *action1, GtkAction *action2); @@ -144,6 +151,9 @@ gboolean e_util_read_file (const gchar *filename, GSList * e_util_get_category_filter_options (void); +void e_util_set_source_combo_box_list(GtkWidget *source_combo_box, + const gchar *source_gconf_path); + /* Camel uses its own object system, so we have to box * CamelObjects to safely use them as GObject properties. */ #define E_TYPE_CAMEL_OBJECT (e_camel_object_get_type ()) diff --git a/e-util/e-win32-reloc.c b/e-util/e-win32-reloc.c index 3ad8bbf5a4..2f31d647ac 100644 --- a/e-util/e-win32-reloc.c +++ b/e-util/e-win32-reloc.c @@ -120,7 +120,7 @@ setup (void) ecpsdir = replace_prefix (full_prefix, EVOLUTION_ECPSDIR); etspecdir = replace_prefix (full_prefix, EVOLUTION_ETSPECDIR); galviewsdir = replace_prefix (full_prefix, EVOLUTION_GALVIEWSDIR); - gladedir = replace_prefix (full_prefix, EVOLUTION_GLADEDIR); + gladedir = replace_prefix (full_prefix, EVOLUTION_UIDIR); helpdir = replace_prefix (full_prefix, EVOLUTION_HELPDIR); if (g_getenv ("EVOLUTION_ICONSDIR") && g_file_test (g_getenv ("EVOLUTION_ICONSDIR"), G_FILE_TEST_IS_DIR)) |