char * mnp_utils_get_display_from_location (ClutterModel *store, GWeatherLocation *location) { struct _pass_data pdata = { NULL, NULL}; pdata.location = location; clutter_model_foreach (store, (ClutterModelForeachFunc)search_locations_display_in_model, &pdata); return pdata.key; }
const GWeatherLocation * mnp_utils_get_location_from_display (ClutterModel *store, const char *display) { struct _pass_data pdata = { NULL, NULL}; pdata.key = (char *)display; clutter_model_foreach (store, (ClutterModelForeachFunc)search_locations_in_model, &pdata); return pdata.location; }
static gboolean populate_model (ClutterModel *model) { gint i; for (i = 0; i < 10; i++) { gchar *string = g_strdup_printf ("String %d", i); clutter_model_append (model, COLUMN_FOO, i, COLUMN_BAR, string, -1); g_free (string); } clutter_model_foreach (model, foreach_func, NULL); iterate (model); return FALSE; }
static void filter_model (ClutterModel *model) { ClutterModelIter *iter; g_print ("\n* Filter function: even rows\n"); clutter_model_set_filter (model, filter_func, NULL, NULL); iter = clutter_model_get_first_iter (model); while (!clutter_model_iter_is_last (iter)) { print_iter (iter, "Filtered Forward Iteration"); iter = clutter_model_iter_next (iter); } g_object_unref (iter); g_print ("\n* Sorting function: reverse alpha\n"); clutter_model_set_sort (model, COLUMN_BAR, sort_func, NULL, NULL); g_signal_connect (model, "row-changed", G_CALLBACK (on_row_changed), NULL); iter = clutter_model_get_iter_at_row (model, 0); clutter_model_iter_set (iter, COLUMN_BAR, "Changed string of 0th row, " "automatically gets sorted", -1); g_object_unref (iter); clutter_model_foreach (model, foreach_func, NULL); g_print ("\n* Unset filter\n"); clutter_model_set_filter (model, NULL, NULL, NULL); while (clutter_model_get_n_rows (model)) clutter_model_remove (model, 0); clutter_main_quit (); }
static void on_sort_changed (ClutterModel *model) { g_print ("*** Sort Changed ***\n\n"); clutter_model_foreach (model, foreach_func, NULL); }