static void eel_wrap_table_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { EelWrapTable *wrap_table; g_assert (EEL_IS_WRAP_TABLE (object)); wrap_table = EEL_WRAP_TABLE (object); switch (property_id) { case PROP_X_SPACING: eel_wrap_table_set_x_spacing (wrap_table, g_value_get_uint (value)); break; case PROP_Y_SPACING: eel_wrap_table_set_y_spacing (wrap_table, g_value_get_uint (value)); break; case PROP_X_JUSTIFICATION: eel_wrap_table_set_x_justification (wrap_table, g_value_get_enum (value)); break; case PROP_Y_JUSTIFICATION: eel_wrap_table_set_y_justification (wrap_table, g_value_get_enum (value)); break; case PROP_HOMOGENEOUS: eel_wrap_table_set_homogeneous (wrap_table, g_value_get_boolean (value)); break; default: g_assert_not_reached (); } }
static GtkWidget * image_table_new_scrolled (void) { GtkWidget *scrolled; GtkWidget *viewport; GtkWidget *window; GtkWidget *image_table; int i; window = test_window_new ("Image Table Test", 10); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); /* Scrolled window */ scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), scrolled); /* Viewport */ viewport = gtk_viewport_new (NULL, NULL); gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_OUT); gtk_container_add (GTK_CONTAINER (scrolled), viewport); image_table = eel_image_table_new (FALSE); if (0) g_signal_connect (image_table, "size_allocate", G_CALLBACK (image_table_size_allocate), window); eel_wrap_table_set_x_justification (EEL_WRAP_TABLE (image_table), EEL_JUSTIFICATION_MIDDLE); eel_wrap_table_set_y_justification (EEL_WRAP_TABLE (image_table), EEL_JUSTIFICATION_END); gtk_container_add (GTK_CONTAINER (viewport), image_table); g_signal_connect (image_table, "child_enter", G_CALLBACK (image_table_child_enter_callback), NULL); g_signal_connect (image_table, "child_leave", G_CALLBACK (image_table_child_leave_callback), NULL); g_signal_connect (image_table, "child_pressed", G_CALLBACK (image_table_child_pressed_callback), NULL); g_signal_connect (image_table, "child_released", G_CALLBACK (image_table_child_released_callback), NULL); g_signal_connect (image_table, "child_clicked", G_CALLBACK (image_table_child_clicked_callback), NULL); eel_gtk_widget_set_background_color (viewport, BG_COLOR_SPEC); for (i = 0; i < 100; i++) { char *text; GtkWidget *image; text = g_strdup_printf ("%s %d", names[random () % G_N_ELEMENTS (names)], i); image = labeled_image_new (text, pixbuf_name); g_free (text); gtk_container_add (GTK_CONTAINER (image_table), image); gtk_widget_show (image); } gtk_widget_show (viewport); gtk_widget_show (scrolled); gtk_widget_show (image_table); return window; }