[gtk+/wip/baedert/gl: 109/111] tests: Add outset shadow drawing test



commit cf8eaeaf963ca8b05abc089cc90da1bbfa4fe9d4
Author: Timm Bäder <mail baedert org>
Date:   Thu Dec 21 17:57:16 2017 +0100

    tests: Add outset shadow drawing test

 tests/meson.build               |    1 +
 tests/testoutsetshadowdrawing.c |  157 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 158 insertions(+), 0 deletions(-)
---
diff --git a/tests/meson.build b/tests/meson.build
index decfb67..911e195 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -128,6 +128,7 @@ gtk_tests = [
   ['testgridbaseline'],
   ['showrendernode'],
   ['testborderdrawing'],
+  ['testoutsetshadowdrawing'],
 ]
 
 if os_linux
diff --git a/tests/testoutsetshadowdrawing.c b/tests/testoutsetshadowdrawing.c
new file mode 100644
index 0000000..c158541
--- /dev/null
+++ b/tests/testoutsetshadowdrawing.c
@@ -0,0 +1,157 @@
+
+#include<gtk/gtk.h>
+
+#define BOX_SHADOW "box-shadow: 10px 20px 5px 40px #0f0;"
+
+#define COLOR " #0f0;"
+/*#define COLOR " red;"*/
+
+static const char *css =
+".one {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  box-shadow: -10px -20px 5px 40px" COLOR
+"}"
+".two {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  box-shadow: -10px -20px 0px 40px" COLOR
+"}"
+".three {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  border-radius: 0px;"
+"  box-shadow: 0px 0px 10px 20px" COLOR
+"}"
+".four {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  box-shadow: 10px 20px 5px 40px" COLOR
+"  border-radius: 30px; "
+"margin-right: 50px;"
+"}"
+".five {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  border-radius: 30px; "
+"  box-shadow: 10px 20px 0px 40px" COLOR
+"}"
+#if 0
+".b1 {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  border-top: 30px solid black;"
+"  border-radius: 0px;"
+"}"
+".b2 {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  border-bottom: 30px solid black;"
+"  border-radius: 0px;"
+"}"
+".b3 {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  border-right: 30px solid blue;"
+"  border-radius: 40px;"
+"}"
+".b4 {"
+"  all: unset;"
+"  min-width: 100px;"
+"  min-height:100px;"
+"  border-bottom: 30px solid blue;"
+"  border-radius: 40px;"
+"}"
+#endif
+;
+
+
+int
+main (int argc, char **argv)
+{
+  GtkWidget *window;
+  GtkWidget *box;
+  GtkWidget *top;
+  GtkWidget *bottom;
+  GtkWidget *w;
+  GtkCssProvider *provider;
+
+  gtk_init ();
+
+  provider = gtk_css_provider_new ();
+  gtk_css_provider_load_from_data (provider, css, -1);
+  gtk_style_context_add_provider_for_display (gdk_display_get_default (),
+                                              GTK_STYLE_PROVIDER (provider),
+                                              GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 120);
+  top = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 120);
+  bottom = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 120);
+  g_object_set (box, "margin", 120, NULL);
+
+  w = gtk_button_new ();
+  gtk_widget_set_valign (w, GTK_ALIGN_CENTER);
+  gtk_style_context_add_class (gtk_widget_get_style_context (w), "one");
+  gtk_container_add (GTK_CONTAINER (top), w);
+
+  w = gtk_button_new ();
+  gtk_widget_set_valign (w, GTK_ALIGN_CENTER);
+  gtk_style_context_add_class (gtk_widget_get_style_context (w), "two");
+  gtk_container_add (GTK_CONTAINER (top), w);
+
+  w = gtk_button_new ();
+  gtk_widget_set_valign (w, GTK_ALIGN_CENTER);
+  gtk_style_context_add_class (gtk_widget_get_style_context (w), "three");
+  gtk_container_add (GTK_CONTAINER (top), w);
+
+  w = gtk_button_new ();
+  gtk_widget_set_valign (w, GTK_ALIGN_CENTER);
+  gtk_style_context_add_class (gtk_widget_get_style_context (w), "four");
+  gtk_container_add (GTK_CONTAINER (top), w);
+
+  w = gtk_button_new ();
+  gtk_widget_set_valign (w, GTK_ALIGN_CENTER);
+  gtk_style_context_add_class (gtk_widget_get_style_context (w), "five");
+  gtk_container_add (GTK_CONTAINER (top), w);
+
+
+  /* Bottom */
+  /*w = gtk_button_new ();*/
+  /*gtk_widget_set_valign (w, GTK_ALIGN_CENTER);*/
+  /*gtk_style_context_add_class (gtk_widget_get_style_context (w), "b1");*/
+  /*gtk_container_add (GTK_CONTAINER (bottom), w);*/
+
+  /*w = gtk_button_new ();*/
+  /*gtk_widget_set_valign (w, GTK_ALIGN_CENTER);*/
+  /*gtk_style_context_add_class (gtk_widget_get_style_context (w), "b2");*/
+  /*gtk_container_add (GTK_CONTAINER (bottom), w);*/
+
+  /*w = gtk_button_new ();*/
+  /*gtk_widget_set_valign (w, GTK_ALIGN_CENTER);*/
+  /*gtk_style_context_add_class (gtk_widget_get_style_context (w), "b3");*/
+  /*gtk_container_add (GTK_CONTAINER (bottom), w);*/
+
+  /*w = gtk_button_new ();*/
+  /*gtk_widget_set_valign (w, GTK_ALIGN_CENTER);*/
+  /*gtk_style_context_add_class (gtk_widget_get_style_context (w), "b4");*/
+  /*gtk_container_add (GTK_CONTAINER (bottom), w);*/
+
+  gtk_container_add (GTK_CONTAINER (box), top);
+  gtk_container_add (GTK_CONTAINER (box), bottom);
+  gtk_container_add (GTK_CONTAINER (window), box);
+  g_signal_connect (window, "delete-event", gtk_main_quit, NULL);
+  gtk_widget_show (window);
+
+  gtk_main ();
+
+  gtk_widget_destroy (window);
+}


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