static void gtk_level_bar_buildable_custom_finished (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *tagname, gpointer user_data) { OffsetsParserData *parser_data; GtkLevelBar *self; GtkLevelBarOffset *offset; GList *l; parser_data = user_data; self = parser_data->self; if (strcmp (tagname, "offsets") != 0) goto out; for (l = parser_data->offsets; l != NULL; l = l->next) { offset = l->data; gtk_level_bar_add_offset_value (self, offset->name, offset->value); } out: g_list_free_full (parser_data->offsets, (GDestroyNotify) gtk_level_bar_offset_free); g_slice_free (OffsetsParserData, parser_data); }
static GtkWidget * create_level_bar (void) { GtkWidget *bar; bar = gtk_level_bar_new (); gtk_level_bar_set_min_value (GTK_LEVEL_BAR (bar), 0.0); gtk_level_bar_set_max_value (GTK_LEVEL_BAR (bar), 10.0); gtk_level_bar_add_offset_value (GTK_LEVEL_BAR (bar), GTK_LEVEL_BAR_OFFSET_LOW, 1.0); gtk_level_bar_add_offset_value (GTK_LEVEL_BAR (bar), GTK_LEVEL_BAR_OFFSET_HIGH, 9.0); gtk_level_bar_add_offset_value (GTK_LEVEL_BAR (bar), "full", 10.0); gtk_level_bar_add_offset_value (GTK_LEVEL_BAR (bar), "my-offset", 5.0); return bar; }