static gboolean gimp_session_info_serialize (GimpConfig *config, GimpConfigWriter *writer, gpointer data) { GimpSessionInfo *info = GIMP_SESSION_INFO (config); GimpSessionInfoClass *klass = GIMP_SESSION_INFO_GET_CLASS (info); GList *iter = NULL; gint x_to_write; gint y_to_write; gint w_to_write; gint h_to_write; if (info->p->factory_entry && info->p->factory_entry->identifier) { gimp_config_writer_open (writer, "factory-entry"); gimp_config_writer_string (writer, info->p->factory_entry->identifier); gimp_config_writer_close (writer); } x_to_write = gimp_session_info_class_apply_position_accuracy (klass, info->p->x); y_to_write = gimp_session_info_class_apply_position_accuracy (klass, info->p->y); w_to_write = gimp_session_info_class_apply_position_accuracy (klass, info->p->width); h_to_write = gimp_session_info_class_apply_position_accuracy (klass, info->p->height); gimp_config_writer_open (writer, "position"); gimp_config_writer_printf (writer, "%d %d", x_to_write, y_to_write); gimp_config_writer_close (writer); if (info->p->width > 0 && info->p->height > 0) { gimp_config_writer_open (writer, "size"); gimp_config_writer_printf (writer, "%d %d", w_to_write, h_to_write); gimp_config_writer_close (writer); } if (info->p->open) { gimp_config_writer_open (writer, "open-on-exit"); if (info->p->screen != DEFAULT_SCREEN) gimp_config_writer_printf (writer, "%d", info->p->screen); gimp_config_writer_close (writer); } if (info->p->aux_info) gimp_session_info_aux_serialize (writer, info->p->aux_info); for (iter = info->p->docks; iter; iter = g_list_next (iter)) gimp_session_info_dock_serialize (writer, iter->data); return TRUE; }
static gboolean gimp_session_info_serialize (GimpConfig *config, GimpConfigWriter *writer, gpointer data) { GimpSessionInfo *info = GIMP_SESSION_INFO (config); GList *iter = NULL; gint x; gint y; gint width; gint height; if (info->p->factory_entry && info->p->factory_entry->identifier) { gimp_config_writer_open (writer, "factory-entry"); gimp_config_writer_string (writer, info->p->factory_entry->identifier); gimp_config_writer_close (writer); } x = gimp_session_info_apply_position_accuracy (info->p->x); y = gimp_session_info_apply_position_accuracy (info->p->y); width = gimp_session_info_apply_position_accuracy (info->p->width); height = gimp_session_info_apply_position_accuracy (info->p->height); gimp_config_writer_open (writer, "position"); gimp_config_writer_printf (writer, "%d %d", x, y); gimp_config_writer_close (writer); if (info->p->width > 0 && info->p->height > 0) { gimp_config_writer_open (writer, "size"); gimp_config_writer_printf (writer, "%d %d", width, height); gimp_config_writer_close (writer); } if (info->p->monitor != DEFAULT_MONITOR) { gimp_config_writer_open (writer, "monitor"); gimp_config_writer_printf (writer, "%d", monitor_number (info->p->monitor)); gimp_config_writer_close (writer); } if (info->p->open) { gimp_config_writer_open (writer, "open-on-exit"); gimp_config_writer_close (writer); } if (info->p->aux_info) gimp_session_info_aux_serialize (writer, info->p->aux_info); for (iter = info->p->docks; iter; iter = g_list_next (iter)) gimp_session_info_dock_serialize (writer, iter->data); return TRUE; }