コード例 #1
0
ファイル: gimpsessioninfo.c プロジェクト: WilfR/Gimp-Matting
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;
}
コード例 #2
0
ファイル: gimpsessioninfo.c プロジェクト: jiapei100/gimp
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;
}