static void keyword_tree_node_write_config(GtkTreeModel *keyword_tree, GtkTreeIter *iter_ptr, GString *outstr, gint indent) { GtkTreeIter iter = *iter_ptr; while (TRUE) { GtkTreeIter children; gchar *name; gchar *mark_str; WRITE_NL(); WRITE_STRING("<keyword "); name = keyword_get_name(keyword_tree, &iter); write_char_option(outstr, indent, "name", name); g_free(name); write_bool_option(outstr, indent, "kw", keyword_get_is_keyword(keyword_tree, &iter)); mark_str = keyword_get_mark(keyword_tree, &iter); if (mark_str && mark_str[0]) { write_char_option(outstr, indent, "mark", mark_str); } if (gtk_tree_model_iter_children(keyword_tree, &children, &iter)) { WRITE_STRING(">"); indent++; keyword_tree_node_write_config(keyword_tree, &children, outstr, indent); indent--; WRITE_NL(); WRITE_STRING("</keyword>"); } else { WRITE_STRING("/>"); } if (!gtk_tree_model_iter_next(keyword_tree, &iter)) return; } }
static void write_color_profile(GString *outstr, gint indent) { gint i; #ifndef HAVE_LCMS g_string_append_printf(outstr, "<!-- NOTICE: %s was not built with support for color profiles,\n" " color profile options will have no effect.\n-->\n", GQ_APPNAME); #endif WRITE_NL(); WRITE_STRING("<color_profiles "); WRITE_CHAR(options->color_profile, screen_file); WRITE_BOOL(options->color_profile, enabled); WRITE_BOOL(options->color_profile, use_image); WRITE_INT(options->color_profile, input_type); WRITE_BOOL(options->color_profile, use_x11_screen_profile); WRITE_INT(options->color_profile, render_intent); WRITE_STRING(">"); indent++; for (i = 0; i < COLOR_PROFILE_INPUTS; i++) { WRITE_NL(); WRITE_STRING("<profile "); write_char_option(outstr, indent, "input_file", options->color_profile.input_file[i]); write_char_option(outstr, indent, "input_name", options->color_profile.input_name[i]); WRITE_STRING("/>"); } indent--; WRITE_NL(); WRITE_STRING("</color_profiles>"); }
static void bar_pane_exif_write_config(GtkWidget *pane, GString *outstr, gint indent) { PaneExifData *ped; GList *work, *list; ped = g_object_get_data(G_OBJECT(pane), "pane_data"); if (!ped) return; WRITE_NL(); WRITE_STRING("<pane_exif "); write_char_option(outstr, indent, "id", ped->pane.id); write_char_option(outstr, indent, "title", gtk_label_get_text(GTK_LABEL(ped->pane.title))); WRITE_BOOL(ped->pane, expanded); WRITE_BOOL(*ped, show_all); WRITE_STRING(">"); indent++; list = gtk_container_get_children(GTK_CONTAINER(ped->vbox)); work = list; while (work) { GtkWidget *entry = work->data; work = work->next; bar_pane_exif_entry_write_config(entry, outstr, indent); } g_list_free(list); indent--; WRITE_NL(); WRITE_STRING("</pane_exif>"); }
void write_color_option(GString *str, gint indent, gchar *label, GdkColor *color) { if (color) { gchar *colorstring = color_to_string(color); write_char_option(str, indent, label, colorstring); g_free(colorstring); } else write_char_option(str, indent, label, ""); }
static void bar_pane_keywords_write_config(GtkWidget *pane, GString *outstr, gint indent) { PaneKeywordsData *pkd; pkd = g_object_get_data(G_OBJECT(pane), "pane_data"); if (!pkd) return; WRITE_NL(); WRITE_STRING("<pane_keywords "); write_char_option(outstr, indent, "id", pkd->pane.id); write_char_option(outstr, indent, "title", gtk_label_get_text(GTK_LABEL(pkd->pane.title))); WRITE_BOOL(pkd->pane, expanded); WRITE_CHAR(*pkd, key); WRITE_STRING("/>"); }
static void bar_pane_comment_write_config(GtkWidget *pane, GString *outstr, gint indent) { PaneCommentData *pcd; pcd = g_object_get_data(G_OBJECT(pane), "pane_data"); if (!pcd) return; WRITE_NL(); WRITE_STRING("<pane_comment "); write_char_option(outstr, indent, "id", pcd->pane.id); write_char_option(outstr, indent, "title", gtk_label_get_text(GTK_LABEL(pcd->pane.title))); WRITE_BOOL(pcd->pane, expanded); WRITE_CHAR(*pcd, key); WRITE_INT(*pcd, height); WRITE_STRING("/>"); }
static void bar_pane_gps_write_config(GtkWidget *pane, GString *outstr, gint indent) { PaneGPSData *pgd; gint zoom; ChamplainMapSource *mapsource; const gchar *map_id; gchar *str = NULL; GString *buffer = g_string_new(str); gdouble position; gint int_position; pgd = g_object_get_data(G_OBJECT(pane), "pane_data"); if (!pgd) return; WRITE_NL(); WRITE_STRING("<pane_gps "); write_char_option(outstr, indent, "id", pgd->pane.id); write_char_option(outstr, indent, "title", gtk_label_get_text(GTK_LABEL(pgd->pane.title))); WRITE_BOOL(pgd->pane, expanded); WRITE_INT(*pgd, height); indent++; g_object_get(G_OBJECT(pgd->gps_view), "map-source", &mapsource, NULL); map_id = champlain_map_source_get_id(mapsource); WRITE_NL(); write_char_option(outstr, indent, "map-id", map_id); g_object_get(G_OBJECT(pgd->gps_view), "zoom-level", &zoom, NULL); g_string_printf(buffer, "%d", zoom); WRITE_NL(); write_char_option(outstr, indent, "zoom-level", buffer->str); g_object_get(G_OBJECT(pgd->gps_view), "latitude", &position, NULL); int_position = position * 1000000; g_string_printf(buffer, "%i", int_position); WRITE_NL(); write_char_option(outstr, indent, "latitude", buffer->str); g_object_get(G_OBJECT(pgd->gps_view), "longitude", &position, NULL); int_position = position * 1000000; g_string_printf(buffer, "%i", int_position); WRITE_NL(); write_char_option(outstr, indent, "longitude", buffer->str); indent--; WRITE_NL(); WRITE_STRING("/>"); g_object_unref(mapsource); }