aboutsummaryrefslogtreecommitdiffstats
path: root/libevolution-utils
diff options
context:
space:
mode:
authorSrinivasa Ragavan <sragavan@gnome.org>2012-02-29 21:07:54 +0800
committerMatthew Barnes <mbarnes@redhat.com>2012-03-03 22:02:34 +0800
commit147687c60f59d6b8a9d484750119102329b6be04 (patch)
tree69a7a7f9c6c788ef3a0ac182c3c4f473fa99d391 /libevolution-utils
parent14f82dde3448261b5b01fbf298b5c12a0e25d676 (diff)
downloadgsoc2013-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.am1
-rw-r--r--libevolution-utils/evolution-util.c66
-rw-r--r--libevolution-utils/evolution-util.h8
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 */