/* PIKA - Photo and Image Kooker Application
 * a rebranding of The GNU Image Manipulation Program (created with heckimp)
 * A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio
 *
 * Original copyright, applying to most contents (license remains unchanged): 
 * Copyright (C) 1995 Spencer Kimball and Peter Mattis
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

#ifndef __PAINT_ENUMS_H__
#define __PAINT_ENUMS_H__

#if 0
   This file is parsed by two scripts, enumgen.pl in pdb,
   and pika-mkenums. All enums that are not marked with
   /*< pdb-skip >*/ are exported to libpika and the PDB. Enums that are
   not marked with /*< skip >*/ are registered with the GType system.
   If you want the enum to be skipped by both scripts, you have to use
   /*< pdb-skip, skip >*/.

   The same syntax applies to enum values.
#endif


/*
 * enums that are registered with the type system
 */

#define PIKA_TYPE_BRUSH_APPLICATION_MODE (pika_brush_application_mode_get_type ())

GType pika_brush_application_mode_get_type (void) G_GNUC_CONST;

typedef enum
{
  PIKA_BRUSH_HARD,
  PIKA_BRUSH_SOFT,
  PIKA_BRUSH_PRESSURE  /*< pdb-skip, skip >*/
} PikaBrushApplicationMode;


#define PIKA_TYPE_PERSPECTIVE_CLONE_MODE (pika_perspective_clone_mode_get_type ())

GType pika_perspective_clone_mode_get_type (void) G_GNUC_CONST;

typedef enum  /*< pdb-skip >*/
{
  PIKA_PERSPECTIVE_CLONE_MODE_ADJUST,  /*< desc="Modify Perspective" >*/
  PIKA_PERSPECTIVE_CLONE_MODE_PAINT    /*< desc="Perspective Clone"  >*/
} PikaPerspectiveCloneMode;


#define PIKA_TYPE_SOURCE_ALIGN_MODE (pika_source_align_mode_get_type ())

GType pika_source_align_mode_get_type (void) G_GNUC_CONST;

typedef enum /*< pdb-skip >*/
{
  PIKA_SOURCE_ALIGN_NO,          /*< desc="None"        >*/
  PIKA_SOURCE_ALIGN_YES,         /*< desc="Aligned"     >*/
  PIKA_SOURCE_ALIGN_REGISTERED,  /*< desc="Registered"  >*/
  PIKA_SOURCE_ALIGN_FIXED        /*< desc="Fixed"       >*/
} PikaSourceAlignMode;


/*
 * non-registered enums; register them if needed
 */

typedef enum  /*< skip, pdb-skip >*/
{
  PIKA_PAINT_STATE_INIT,    /*  Setup PaintFunc internals                    */
  PIKA_PAINT_STATE_MOTION,  /*  PaintFunc performs motion-related rendering  */
  PIKA_PAINT_STATE_FINISH   /*  Cleanup and/or reset PaintFunc operation     */
} PikaPaintState;


#endif /* __PAINT_ENUMS_H__ */
