]> Pileus Git - ~andy/gtk/blobdiff - tests/testscrolledwindow.c
stylecontext: Do invalidation on first resize container
[~andy/gtk] / tests / testscrolledwindow.c
index 0b00f2566c39b285b4f8909fdb8b456e4feb991e..f0cc9c01572664f289bdc9b4e690091c5be3f8b8 100644 (file)
@@ -31,6 +31,37 @@ label_flip_changed (GtkComboBox *combo_box,
     gtk_label_set_angle (label, 90.0);
 }
 
+static void
+content_width_changed (GtkSpinButton *spin_button,
+                       gpointer       data)
+{
+  GtkScrolledWindow *swindow = data;
+  gdouble value;
+
+  value = gtk_spin_button_get_value (spin_button);
+  gtk_scrolled_window_set_min_content_width (swindow, (gint)value);
+}
+
+static void
+content_height_changed (GtkSpinButton *spin_button,
+                        gpointer       data)
+{
+  GtkScrolledWindow *swindow = data;
+  gdouble value;
+
+  value = gtk_spin_button_get_value (spin_button);
+  gtk_scrolled_window_set_min_content_height (swindow, (gint)value);
+}
+
+static void
+kinetic_scrolling_changed (GtkToggleButton *toggle_button,
+                           gpointer         data)
+{
+  GtkScrolledWindow *swindow = data;
+  gboolean enabled = gtk_toggle_button_get_active (toggle_button);
+
+  gtk_scrolled_window_set_kinetic_scrolling (swindow, enabled);
+}
 
 static void
 scrollable_policy (void)
@@ -39,8 +70,8 @@ scrollable_policy (void)
   GtkWidget *viewport, *label, *expander, *widget;
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  hbox   = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 2);
-  vbox   = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 6);
+  hbox   = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
+  vbox   = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
 
   gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 
@@ -81,14 +112,14 @@ scrollable_policy (void)
   /* Add controls here */
   expander = gtk_expander_new ("Controls");
   gtk_expander_set_expanded (GTK_EXPANDER (expander), TRUE);
-  cntl = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 2);
+  cntl = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
   gtk_widget_show (cntl);
   gtk_widget_show (expander);
   gtk_container_add (GTK_CONTAINER (expander), cntl);
   gtk_box_pack_start (GTK_BOX (vbox), expander, FALSE, FALSE, 0);
 
   /* Add Horizontal policy control here */
-  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 2);
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
   gtk_widget_show (hbox);
 
   widget = gtk_label_new ("hscroll-policy");
@@ -108,7 +139,7 @@ scrollable_policy (void)
                     G_CALLBACK (horizontal_policy_changed), viewport);
 
   /* Add Vertical policy control here */
-  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 2);
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
   gtk_widget_show (hbox);
 
   widget = gtk_label_new ("vscroll-policy");
@@ -127,9 +158,39 @@ scrollable_policy (void)
   g_signal_connect (G_OBJECT (widget), "changed",
                     G_CALLBACK (vertical_policy_changed), viewport);
 
+  /* Content size controls */
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
+
+  widget = gtk_label_new ("min-content-width");
+  gtk_widget_show (widget);
+  gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
+
+  widget = gtk_spin_button_new_with_range (100.0, 1000.0, 10.0);
+  gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (cntl), hbox, FALSE, FALSE, 0);
+  gtk_widget_show (widget);
+  gtk_widget_show (hbox);
+
+  g_signal_connect (G_OBJECT (widget), "value-changed",
+                    G_CALLBACK (content_width_changed), swindow);
+
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
+
+  widget = gtk_label_new ("min-content-height");
+  gtk_widget_show (widget);
+  gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
+
+  widget = gtk_spin_button_new_with_range (100.0, 1000.0, 10.0);
+  gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (cntl), hbox, FALSE, FALSE, 0);
+  gtk_widget_show (widget);
+  gtk_widget_show (hbox);
+
+  g_signal_connect (G_OBJECT (widget), "value-changed",
+                    G_CALLBACK (content_height_changed), swindow);
 
   /* Add Label orientation control here */
-  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 2);
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
   gtk_widget_show (hbox);
 
   widget = gtk_label_new ("label-flip");
@@ -148,6 +209,13 @@ scrollable_policy (void)
   g_signal_connect (G_OBJECT (widget), "changed",
                     G_CALLBACK (label_flip_changed), label);
 
+  /* Add Kinetic scrolling control here */
+  widget = gtk_check_button_new_with_label ("Kinetic scrolling");
+  gtk_widget_show (widget);
+  gtk_box_pack_start (GTK_BOX (cntl), widget, TRUE, TRUE, 0);
+  g_signal_connect (G_OBJECT (widget), "toggled",
+                    G_CALLBACK (kinetic_scrolling_changed), swindow);
+
   gtk_widget_show (window);
 }