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)
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);
/* 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");
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");
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");
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);
}