[gtk+] Added template test case to builder test.
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Added template test case to builder test.
- Date: Tue, 29 Apr 2014 15:31:50 +0000 (UTC)
commit 9753f9f55fd953912ff0a3f596bd5c525aef23fe
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date: Mon Apr 28 18:10:39 2014 -0300
Added template test case to builder test.
testsuite/gtk/builder.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
---
diff --git a/testsuite/gtk/builder.c b/testsuite/gtk/builder.c
index c6a974f..74da1b3 100644
--- a/testsuite/gtk/builder.c
+++ b/testsuite/gtk/builder.c
@@ -2833,6 +2833,77 @@ test_property_bindings (void)
g_object_unref (builder);
}
+#define MY_GTK_GRID_TEMPLATE "\
+<interface>\n\
+ <template class=\"MyGtkGrid\" parent=\"GtkGrid\">\n\
+ <property name=\"visible\">True</property>\n\
+ <child>\n\
+ <object class=\"GtkLabel\" id=\"label\">\n\
+ <property name=\"visible\">True</property>\n\
+ </object>\n\
+ </child>\n\
+ </template>\n\
+</interface>\n"
+
+#define MY_TYPE_GTK_GRID (my_gtk_grid_get_type ())
+#define MY_IS_GTK_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_GTK_GRID))
+
+typedef struct
+{
+ GtkGridClass parent_class;
+} MyGtkGridClass;
+
+typedef struct
+{
+ GtkLabel *label;
+} MyGtkGridPrivate;
+
+typedef struct
+{
+ GtkGrid parent_instance;
+ GtkLabel *label;
+ MyGtkGridPrivate *priv;
+} MyGtkGrid;
+
+G_DEFINE_TYPE_WITH_PRIVATE (MyGtkGrid, my_gtk_grid, GTK_TYPE_GRID);
+
+static void
+my_gtk_grid_init (MyGtkGrid *grid)
+{
+ grid->priv = my_gtk_grid_get_instance_private (grid);
+ gtk_widget_init_template (GTK_WIDGET (grid));
+}
+
+static void
+my_gtk_grid_class_init (MyGtkGridClass *klass)
+{
+ GBytes *template = g_bytes_new_static (MY_GTK_GRID_TEMPLATE, strlen (MY_GTK_GRID_TEMPLATE));
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+ gtk_widget_class_set_template (widget_class, template);
+ gtk_widget_class_bind_template_child (widget_class, MyGtkGrid, label);
+ gtk_widget_class_bind_template_child_private (widget_class, MyGtkGrid, label);
+}
+
+static void
+test_template ()
+{
+ MyGtkGrid *my_gtk_grid;
+
+ /* make sure the type we are trying to register does not exist */
+ g_assert (!g_type_from_name ("MyGtkGrid"));
+
+ /* create the template object */
+ my_gtk_grid = g_object_new (MY_TYPE_GTK_GRID, NULL);
+
+ /* Check everything is fine */
+ g_assert (g_type_from_name ("MyGtkGrid"));
+ g_assert (MY_IS_GTK_GRID (my_gtk_grid));
+ g_assert (my_gtk_grid->label == my_gtk_grid->priv->label);
+ g_assert (GTK_IS_LABEL (my_gtk_grid->label));
+ g_assert (GTK_IS_LABEL (my_gtk_grid->priv->label));
+}
+
int
main (int argc, char **argv)
{
@@ -2882,6 +2953,7 @@ main (int argc, char **argv)
g_test_add_func ("/Builder/GMenu", test_gmenu);
g_test_add_func ("/Builder/LevelBar", test_level_bar);
g_test_add_func ("/Builder/Expose Object", test_expose_object);
+ g_test_add_func ("/Builder/Template", test_template);
g_test_add_func ("/Builder/No IDs", test_no_ids);
g_test_add_func ("/Builder/Property Bindings", test_property_bindings);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]