1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
/* GIMP - The GNU Image Manipulation Program
* 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 __SCRIPT_FU_TYPES_H__
#define __SCRIPT_FU_TYPES_H__
#include "script-fu-enums.h"
#include "script-fu-color.h"
#include "script-fu-resource.h"
typedef struct
{
gdouble value;
gdouble lower;
gdouble upper;
gdouble step;
gdouble page;
gint digits;
SFAdjustmentType type;
} SFAdjustment;
typedef struct
{
gchar *filename;
} SFFilename;
typedef struct
{
GSList *list;
gint history;
} SFOption;
typedef struct
{
gchar *type_name;
gint history;
} SFEnum;
typedef union
{
gint32 sfa_image;
gint32 sfa_drawable;
gint32 sfa_layer;
gint32 sfa_channel;
gint32 sfa_vectors;
gint32 sfa_display;
SFColorType sfa_color;
gint32 sfa_toggle;
gchar *sfa_value;
SFAdjustment sfa_adjustment;
SFFilename sfa_file;
SFResourceType sfa_resource;
SFOption sfa_option;
SFEnum sfa_enum;
} SFArgValue;
typedef struct
{
SFArgType type;
gchar *label; /* label on widget in dialog. Not unique. */
gchar *property_name; /* name of property of Procedure. Unique. */
SFArgValue default_value;
SFArgValue value;
} SFArg;
typedef struct
{
gchar *name;
gchar *menu_label;
gchar *blurb;
gchar *author;
gchar *copyright;
gchar *date;
gchar *image_types;
gchar *i18n_domain_name;
gchar *i18n_catalog_relative_path;
gint n_args;
SFArg *args;
SFDrawableArity drawable_arity;
GType proc_class; /* GimpProcedure or GimpImageProcedure. */
/* is declared using script-fu-register and dialog is old-style. */
gboolean is_old_style;
} SFScript;
/* ScriptFu keeps array of SFArg, it's private arg specs.
* Scripts declare args except run_mode (SF hides it.)
* A GimpConfig has two extra leading properties, for procedure and run_mode.
* A set of GParamSpecs is derived from a config and also has two extra.
* This defines the difference in length between SF's arg spec array and a config.
*/
#define SF_ARG_TO_CONFIG_OFFSET 2
typedef struct
{
SFScript *script; /* script which defined this menu path and label */
gchar *menu_path;
} SFMenu;
/* Declared here and defined in script-fu-color.c because use SFArg. */
gboolean sf_color_arg_set_default_by_name (SFArg *arg,
gchar *name_of_default);
void sf_color_arg_set_default_by_color (SFArg *arg,
GeglColor *color);
GeglColor* sf_color_arg_get_default_color (SFArg *arg);
/* defined in script-fu-resource. c */
void sf_resource_arg_set_name_default (SFArg *arg,
GType resource_type,
gchar *name_of_default);
gchar *sf_resource_arg_get_name_default (SFArg *arg);
GimpResource *sf_resource_arg_get_default (SFArg *arg);
GimpResource *sf_resource_arg_get_value (SFArg *arg);
void sf_resource_arg_set (SFArg *arg,
gint32 ID);
void sf_resource_arg_free (SFArg *arg);
void sf_resource_arg_reset (SFArg *arg);
gchar *sf_resource_arg_get_repr (SFArg *arg);
void sf_resource_arg_init_current_value (SFArg *arg);
#endif /* __SCRIPT_FU_TYPES__ */
|