diff options
author | Srinivasa Ragavan <sragavan@gnome.org> | 2012-02-29 21:07:54 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2012-03-03 22:02:34 +0800 |
commit | 147687c60f59d6b8a9d484750119102329b6be04 (patch) | |
tree | 69a7a7f9c6c788ef3a0ac182c3c4f473fa99d391 /libevolution-utils | |
parent | 14f82dde3448261b5b01fbf298b5c12a0e25d676 (diff) | |
download | gsoc2013-evolution-147687c60f59d6b8a9d484750119102329b6be04.tar.gz gsoc2013-evolution-147687c60f59d6b8a9d484750119102329b6be04.tar.zst gsoc2013-evolution-147687c60f59d6b8a9d484750119102329b6be04.zip |
Use libevolution-utils all over evolution.
Diffstat (limited to 'libevolution-utils')
-rw-r--r-- | libevolution-utils/Makefile.am | 1 | ||||
-rw-r--r-- | libevolution-utils/evolution-util.c | 66 | ||||
-rw-r--r-- | libevolution-utils/evolution-util.h | 8 |
3 files changed, 74 insertions, 1 deletions
diff --git a/libevolution-utils/Makefile.am b/libevolution-utils/Makefile.am index 82798ad144..617e9e3719 100644 --- a/libevolution-utils/Makefile.am +++ b/libevolution-utils/Makefile.am @@ -7,6 +7,7 @@ libevolution_utils_la_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_builddir) \ -DEVOLUTION_PRIVDATADIR=\""$(privdatadir)"\" \ + -DEVOLUTION_UIDIR=\""$(uidir)"\" \ $(EVOLUTION_DATA_SERVER_CFLAGS) \ $(GNOME_PLATFORM_CFLAGS) \ $(NULL) diff --git a/libevolution-utils/evolution-util.c b/libevolution-utils/evolution-util.c index 23d3b51efa..e6c6e84290 100644 --- a/libevolution-utils/evolution-util.c +++ b/libevolution-utils/evolution-util.c @@ -258,3 +258,69 @@ e_ascii_dtostr (gchar *buffer, return buffer; } +/** + * e_builder_get_widget: + * @builder: a #GtkBuilder + * @widget_name: name of a widget in @builder + * + * Gets the widget named @widget_name. Note that this function does not + * increment the reference count of the returned widget. If @widget_name + * could not be found in the @builder<!-- -->'s object tree, a run-time + * warning is emitted since this usually indicates a programming error. + * + * This is a convenience function to work around the awkwardness of + * #GtkBuilder returning #GObject pointers, when the vast majority of + * the time you want a #GtkWidget pointer. + * + * If you need something from @builder other than a #GtkWidget, or you + * want to test for the existence of some widget name without incurring + * a run-time warning, use gtk_builder_get_object(). + * + * Returns: the widget named @widget_name, or %NULL + **/ +GtkWidget * +e_builder_get_widget (GtkBuilder *builder, + const gchar *widget_name) +{ + GObject *object; + + g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); + g_return_val_if_fail (widget_name != NULL, NULL); + + object = gtk_builder_get_object (builder, widget_name); + if (object == NULL) { + g_warning ("Could not find widget '%s'", widget_name); + return NULL; + } + + return GTK_WIDGET (object); +} + +/** + * 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 (); + } +} diff --git a/libevolution-utils/evolution-util.h b/libevolution-utils/evolution-util.h index 5d1830bfae..9493453ed2 100644 --- a/libevolution-utils/evolution-util.h +++ b/libevolution-utils/evolution-util.h @@ -25,7 +25,7 @@ #include <sys/types.h> #include <glib.h> - +#include <gtk/gtk.h> /* String to/from double conversion functions */ gdouble e_flexible_strtod (const gchar *nptr, gchar **endptr); @@ -39,4 +39,10 @@ gchar * e_ascii_dtostr (gchar *buffer, const gchar *format, gdouble d); +GtkWidget * e_builder_get_widget (GtkBuilder *builder, + const gchar *widget_name); +void e_load_ui_builder_definition (GtkBuilder *builder, + const gchar *basename); + + #endif /* EVOLUTION_UTIL_H */ |