[libgd/wip/ernestask/gtk4: 7/23] Add test for GdTwoLinesRenderer



commit 2d05382415efca17cbdb0fc658412648836ea8ba
Author: Ernestas Kulik <ernestask gnome org>
Date:   Sun Mar 4 20:51:46 2018 +0200

    Add test for GdTwoLinesRenderer

 tests/meson.build               |    6 ++-
 tests/test-two-lines-renderer.c |   89 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 93 insertions(+), 2 deletions(-)
---
diff --git a/tests/meson.build b/tests/meson.build
index 15981cb..e26c1d3 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -7,7 +7,9 @@ endif
 if (get_option('with-main-icon-view') or
     get_option('with-main-list-view') or
     get_option('with-main-view'))
-  executable('test-styled-text-renderer',
-    'test-styled-text-renderer.c',
+  foreach t : ['test-styled-text-renderer', 'test-two-lines-renderer']
+    executable(t, t + '.c', dependencies: libgd_dep)
+  endforeach
+endif
     dependencies: libgd_dep)
 endif
diff --git a/tests/test-two-lines-renderer.c b/tests/test-two-lines-renderer.c
new file mode 100644
index 0000000..cfb9423
--- /dev/null
+++ b/tests/test-two-lines-renderer.c
@@ -0,0 +1,89 @@
+#include <stdlib.h>
+
+#include <gtk/gtk.h>
+
+#include <libgd/gd-two-lines-renderer.h>
+
+static const gchar *test_data = "Lorem ipsum dolor sit amet, consectetur "
+                                "adipiscing elit, sed do eiusmod tempor "
+                                "incididunt ut labore et dolore magna aliqua. "
+                                "Ut enim ad minim veniam, quis nostrud "
+                                "exercitation ullamco laboris nisi ut aliquip "
+                                "ex ea commodo consequat. Duis aute irure "
+                                "dolor in reprehenderit in voluptate velit "
+                                "esse cillum dolore eu fugiat nulla pariatur. "
+                                "Excepteur sint occaecat cupidatat non "
+                                "proident, sunt in culpa qui officia deserunt "
+                                "mollit anim id est laborum.";
+
+static void
+populate_model (GtkListStore *list_store)
+{
+  g_auto (GStrv) data = NULL;
+
+  data = g_strsplit (test_data, " ", -1);
+
+  for (int i = 0; data[i] != NULL; i++)
+    {
+      GtkTreeIter iter;
+
+      gtk_list_store_append (list_store, &iter);
+
+      gtk_list_store_set (list_store, &iter, 0, data[i], -1);
+
+      if (data[i + 1] != NULL)
+        {
+          i++;
+
+          gtk_list_store_set (list_store, &iter, 1, data[i], -1);
+        }
+    }
+}
+
+static void
+on_destroy (GtkWidget *widget,
+            gpointer   user_data)
+{
+  gtk_main_quit ();
+}
+
+gint
+main (gint  argc,
+      GStrv argv)
+{
+  GtkCellRenderer *cell_renderer;
+  GtkTreeViewColumn *column;
+  g_autoptr (GtkListStore) list_store = NULL;
+  GtkWidget *tree_view;
+  GtkWidget *scrolled_window;
+  GtkWidget *window;
+
+  gtk_init ();
+
+  cell_renderer = gd_two_lines_renderer_new ();
+
+  column = gtk_tree_view_column_new_with_attributes ("Text", cell_renderer,
+                                                     "text", 0,
+                                                     "line-two", 1,
+                                                     NULL);
+
+  list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
+  populate_model (list_store);
+
+  tree_view = gtk_tree_view_new ();
+  gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+  gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (list_store));
+
+  scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+  gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  g_signal_connect (window, "destroy", G_CALLBACK (on_destroy), NULL);
+  gtk_container_add (GTK_CONTAINER (window), scrolled_window);
+  gtk_widget_set_size_request (window, 640, 480);
+  gtk_widget_show (window);
+
+  gtk_main ();
+
+  return EXIT_SUCCESS;
+}


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