コード例 #1
0
ファイル: gimpinkundo.c プロジェクト: AdamGrzonkowski/gimp-1
static void
gimp_ink_undo_constructed (GObject *object)
{
  GimpInkUndo *ink_undo = GIMP_INK_UNDO (object);
  GimpInk     *ink;

  G_OBJECT_CLASS (parent_class)->constructed (object);

  g_assert (GIMP_IS_INK (GIMP_PAINT_CORE_UNDO (ink_undo)->paint_core));

  ink = GIMP_INK (GIMP_PAINT_CORE_UNDO (ink_undo)->paint_core);

  if (ink->start_blobs)
    {
      gint      i;
      GimpBlob *blob;

      for (i = 0; i < g_list_length (ink->start_blobs); i++)
        {
          blob = g_list_nth_data (ink->start_blobs, i);

          ink_undo->last_blobs = g_list_prepend (ink_undo->last_blobs,
                                                 gimp_blob_duplicate (blob));
        }
      ink_undo->last_blobs = g_list_reverse (ink_undo->last_blobs);
    }
}
コード例 #2
0
ファイル: gimpinkundo.c プロジェクト: AdamGrzonkowski/gimp-1
static void
gimp_ink_undo_free (GimpUndo     *undo,
                    GimpUndoMode  undo_mode)
{
  GimpInkUndo *ink_undo = GIMP_INK_UNDO (undo);

  if (ink_undo->last_blobs)
    {
      g_list_free_full (ink_undo->last_blobs, g_free);
      ink_undo->last_blobs = NULL;
    }

  GIMP_UNDO_CLASS (parent_class)->free (undo, undo_mode);
}
コード例 #3
0
ファイル: gimpinkundo.c プロジェクト: ChristianBusch/gimp
static void
gimp_ink_undo_constructed (GObject *object)
{
  GimpInkUndo *ink_undo = GIMP_INK_UNDO (object);
  GimpInk     *ink;

  G_OBJECT_CLASS (parent_class)->constructed (object);

  g_assert (GIMP_IS_INK (GIMP_PAINT_CORE_UNDO (ink_undo)->paint_core));

  ink = GIMP_INK (GIMP_PAINT_CORE_UNDO (ink_undo)->paint_core);

  if (ink->start_blob)
    ink_undo->last_blob = gimp_blob_duplicate (ink->start_blob);
}
コード例 #4
0
ファイル: gimpinkundo.c プロジェクト: AdamGrzonkowski/gimp-1
static void
gimp_ink_undo_pop (GimpUndo              *undo,
                   GimpUndoMode           undo_mode,
                   GimpUndoAccumulator   *accum)
{
  GimpInkUndo *ink_undo = GIMP_INK_UNDO (undo);

  GIMP_UNDO_CLASS (parent_class)->pop (undo, undo_mode, accum);

  if (GIMP_PAINT_CORE_UNDO (ink_undo)->paint_core)
    {
      GimpInk  *ink = GIMP_INK (GIMP_PAINT_CORE_UNDO (ink_undo)->paint_core);
      GList    *tmp_blobs;

      tmp_blobs = ink->last_blobs;
      ink->last_blobs = ink_undo->last_blobs;
      ink_undo->last_blobs = tmp_blobs;
    }
}