The param option just contains an options object, not a separate capabilities. Also even when passing the options object across the wire, the capabilities within this object are not part of the "options". These are actually handled separated by GimpExportProcedure. Therefore the changes are: * GimpExportCapabilities moved to gimpbaseenums.h with a proper GType. * "capabilities" properties are changed to flags param spec with type GimpExportCapabilities. * GimpParamSpecExportOptions doesn't have a capabilities variable anymore. * Consequently gimp_param_spec_export_options() doesn't have a capabilities arg. * Wire protocol updated as we don't need to pass any capabilities neither for the param definition, nor for the argument values. * GimpExportOptionsEditFunc renamed GimpExportGetCapabilitiesFunc and returning GimpExportCapabilities flags, instead of setting the "capabilities" property. I believe it makes it much more obvious what this callback is for and how to use it. * Annotations improved or completed. * Don't make the GimpParamSpecExportOptions public anymore since it is the same as its parent.
205 lines
5.3 KiB
Text
205 lines
5.3 KiB
Text
|
|
typedef GType (* GimpGetTypeFunc) (void);
|
|
|
|
static const GimpGetTypeFunc get_type_funcs[] =
|
|
{
|
|
gegl_distance_metric_get_type,
|
|
gimp_add_mask_type_get_type,
|
|
gimp_brush_application_mode_get_type,
|
|
gimp_brush_generated_shape_get_type,
|
|
gimp_cap_style_get_type,
|
|
gimp_channel_ops_get_type,
|
|
gimp_channel_type_get_type,
|
|
gimp_clone_type_get_type,
|
|
gimp_color_management_mode_get_type,
|
|
gimp_color_rendering_intent_get_type,
|
|
gimp_color_tag_get_type,
|
|
gimp_component_type_get_type,
|
|
gimp_convert_dither_type_get_type,
|
|
gimp_convert_palette_type_get_type,
|
|
gimp_convolve_type_get_type,
|
|
gimp_desaturate_mode_get_type,
|
|
gimp_dodge_burn_type_get_type,
|
|
gimp_export_capabilities_get_type,
|
|
gimp_fill_type_get_type,
|
|
gimp_foreground_extract_mode_get_type,
|
|
gimp_gradient_blend_color_space_get_type,
|
|
gimp_gradient_segment_color_get_type,
|
|
gimp_gradient_segment_type_get_type,
|
|
gimp_gradient_type_get_type,
|
|
gimp_grid_style_get_type,
|
|
gimp_histogram_channel_get_type,
|
|
gimp_hue_range_get_type,
|
|
gimp_icon_type_get_type,
|
|
gimp_image_base_type_get_type,
|
|
gimp_image_type_get_type,
|
|
gimp_ink_blob_type_get_type,
|
|
gimp_interpolation_type_get_type,
|
|
gimp_join_style_get_type,
|
|
gimp_layer_color_space_get_type,
|
|
gimp_layer_composite_mode_get_type,
|
|
gimp_layer_mode_get_type,
|
|
gimp_mask_apply_mode_get_type,
|
|
gimp_merge_type_get_type,
|
|
gimp_message_handler_type_get_type,
|
|
gimp_offset_type_get_type,
|
|
gimp_orientation_type_get_type,
|
|
gimp_pdb_error_handler_get_type,
|
|
gimp_pdb_proc_type_get_type,
|
|
gimp_pdb_status_type_get_type,
|
|
gimp_paint_application_mode_get_type,
|
|
gimp_path_stroke_type_get_type,
|
|
gimp_precision_get_type,
|
|
gimp_progress_command_get_type,
|
|
gimp_repeat_mode_get_type,
|
|
gimp_rotation_type_get_type,
|
|
gimp_run_mode_get_type,
|
|
gimp_select_criterion_get_type,
|
|
gimp_size_type_get_type,
|
|
gimp_stack_trace_mode_get_type,
|
|
gimp_stroke_method_get_type,
|
|
gimp_text_direction_get_type,
|
|
gimp_text_hint_style_get_type,
|
|
gimp_text_justification_get_type,
|
|
gimp_transfer_mode_get_type,
|
|
gimp_transform_direction_get_type,
|
|
gimp_transform_resize_get_type
|
|
};
|
|
|
|
static const gchar * const type_names[] =
|
|
{
|
|
"GeglDistanceMetric",
|
|
"GimpAddMaskType",
|
|
"GimpBrushApplicationMode",
|
|
"GimpBrushGeneratedShape",
|
|
"GimpCapStyle",
|
|
"GimpChannelOps",
|
|
"GimpChannelType",
|
|
"GimpCloneType",
|
|
"GimpColorManagementMode",
|
|
"GimpColorRenderingIntent",
|
|
"GimpColorTag",
|
|
"GimpComponentType",
|
|
"GimpConvertDitherType",
|
|
"GimpConvertPaletteType",
|
|
"GimpConvolveType",
|
|
"GimpDesaturateMode",
|
|
"GimpDodgeBurnType",
|
|
"GimpExportCapabilities",
|
|
"GimpFillType",
|
|
"GimpForegroundExtractMode",
|
|
"GimpGradientBlendColorSpace",
|
|
"GimpGradientSegmentColor",
|
|
"GimpGradientSegmentType",
|
|
"GimpGradientType",
|
|
"GimpGridStyle",
|
|
"GimpHistogramChannel",
|
|
"GimpHueRange",
|
|
"GimpIconType",
|
|
"GimpImageBaseType",
|
|
"GimpImageType",
|
|
"GimpInkBlobType",
|
|
"GimpInterpolationType",
|
|
"GimpJoinStyle",
|
|
"GimpLayerColorSpace",
|
|
"GimpLayerCompositeMode",
|
|
"GimpLayerMode",
|
|
"GimpMaskApplyMode",
|
|
"GimpMergeType",
|
|
"GimpMessageHandlerType",
|
|
"GimpOffsetType",
|
|
"GimpOrientationType",
|
|
"GimpPDBErrorHandler",
|
|
"GimpPDBProcType",
|
|
"GimpPDBStatusType",
|
|
"GimpPaintApplicationMode",
|
|
"GimpPathStrokeType",
|
|
"GimpPrecision",
|
|
"GimpProgressCommand",
|
|
"GimpRepeatMode",
|
|
"GimpRotationType",
|
|
"GimpRunMode",
|
|
"GimpSelectCriterion",
|
|
"GimpSizeType",
|
|
"GimpStackTraceMode",
|
|
"GimpStrokeMethod",
|
|
"GimpTextDirection",
|
|
"GimpTextHintStyle",
|
|
"GimpTextJustification",
|
|
"GimpTransferMode",
|
|
"GimpTransformDirection",
|
|
"GimpTransformResize"
|
|
};
|
|
|
|
static gboolean enums_initialized = FALSE;
|
|
|
|
#if 0
|
|
/* keep around as documentation how to do compat enums */
|
|
GType gimp_convert_dither_type_compat_get_type (void);
|
|
#endif
|
|
|
|
/**
|
|
* gimp_enums_init:
|
|
*
|
|
* This function makes sure all the enum types are registered
|
|
* with the #GType system. This is intended for use by language
|
|
* bindings that need the symbols early, before gimp_main is run.
|
|
* It's not necessary for plug-ins to call this directly, because
|
|
* the normal plug-in initialization code will handle it implicitly.
|
|
*
|
|
* Since: 2.4
|
|
**/
|
|
void
|
|
gimp_enums_init (void)
|
|
{
|
|
const GimpGetTypeFunc *funcs = get_type_funcs;
|
|
#if 0
|
|
GQuark quark;
|
|
#endif
|
|
gint i;
|
|
|
|
if (enums_initialized)
|
|
return;
|
|
|
|
for (i = 0; i < G_N_ELEMENTS (get_type_funcs); i++, funcs++)
|
|
{
|
|
GType type = (*funcs) ();
|
|
|
|
g_type_class_ref (type);
|
|
}
|
|
|
|
#if 0
|
|
/* keep around as documentation how to do compat enums */
|
|
|
|
/* keep compat enum code in sync with app/app.c (app_libs_init) */
|
|
quark = g_quark_from_static_string ("gimp-compat-enum");
|
|
|
|
g_type_set_qdata (GIMP_TYPE_CONVERT_DITHER_TYPE, quark,
|
|
(gpointer) gimp_convert_dither_type_compat_get_type ());
|
|
#endif
|
|
|
|
gimp_base_compat_enums_init ();
|
|
|
|
enums_initialized = TRUE;
|
|
}
|
|
|
|
/**
|
|
* gimp_enums_get_type_names:
|
|
* @n_type_names: (out): return location for the number of names
|
|
*
|
|
* This function gives access to the list of enums registered by libgimp.
|
|
* The returned array is static and must not be modified.
|
|
*
|
|
* Returns: (array length=n_type_names) (transfer none): an array with type names
|
|
*
|
|
* Since: 2.2
|
|
**/
|
|
const gchar **
|
|
gimp_enums_get_type_names (gint *n_type_names)
|
|
{
|
|
g_return_val_if_fail (n_type_names != NULL, NULL);
|
|
|
|
*n_type_names = G_N_ELEMENTS (type_names);
|
|
|
|
return (const gchar **) type_names;
|
|
}
|