FMADataDef, FMADataGroup: <span class="productname">FileManager-Actions</span>™ Reference Manual

## FMADataDef, FMADataGroup FMADataDef, FMADataGroup — The Data Factory Structure Definitions |

## Functions

const FMADataDef * | fma_data_def_get_data_def ()

## Types and Values

| FMADataDef
| FMADataGroup

## Includes

    #include <filemanager-actions/fma-data-def.h>

## Description

FMADataDef and FMADataGroup are structures which handle the list of elementary datas for each and every FMAObjectItem which happens to implement the FMAIFactoryObject interface.

## Functions

### fma_data_def_get_data_def ()

    const FMADataDef *
    fma_data_def_get_data_def (const FMADataGroup *group,
                               const gchar *group_name,
                               const gchar *name);

#### Parameters

group | a FMADataGroup structure array. |
group_name | the searched group name. |
name | the searched data name. |

#### Returns

a pointer to the FMADataDef structure, or `NULL` if not found.

Since: 2.30

## Types and Values

### FMADataDef

    typedef struct {
    	gchar     *name;
    	gboolean   readable;
    	gboolean   writable;
    	gboolean   has_property;
    	gchar     *short_label;
    	gchar     *long_label;
    	guint      type;
    	gchar     *default_value;
    	gboolean   write_if_default;
    	gboolean   copyable;
    	gboolean   comparable;
    	gboolean   mandatory;
    	gboolean   localizable;
    	gchar     *gconf_entry;
    	gchar     *desktop_entry;
    	gchar      option_short;
    	gchar     *option_long;
    	gint       option_flags;
    	GOptionArg option_arg;
    	gchar     *option_label;
    	gchar     *option_arg_label;
    } FMADataDef;

This structure fully describes an elementary factory data. Each FMAIFactoryObject item definition may include several groups of this structure.

#### Members

gchar *`name`; | both the id and the canonical name. Used when getting/setting properties. Is defined in fma-ifactory-object-data.h and must be globally unique. Must be an invariant as it is known from plugin extensions. |
gboolean `readable`; | whether the data should be read on unserialization operations. If FALSE, then no attempt will be made to read it and the data will have to be set dynamically. When a data has been written once (see below), and unless special cases (see e.g. type), it should remain readable even if it has becomen obsolete (for backward compatibility). |
gboolean `writable`; | whether the data is to be written on serialization operations. If FALSE, then no attempt will be made to write it. Mainly set to FALSE for dynamically set variables and obsoleted ones. |
gboolean `has_property`; | whether a property should be set for this variable ? Set to FALSE for obsolete variables. |
gchar *`short_label`; | short localizable descriptive name. Used in GParamSpec and in schemas. |
gchar *`long_label`; | long, if not complete, localizable description. Used in GParamSpec and in schemas? |
guint `type`; | the elementary FMA_DATA_TYPE_xxx data type. |
gchar *`default_value`; | the default to assign when creating a new object. This default is also displayed in command-line help of filemanager-actions-new utility. |
gboolean `write_if_default`; | write this value even if it is the default value ? Should default to FALSE. |
gboolean `copyable`; | whether this data should be automatically copied when we are duplicating an object to another ? In all cases, the implementation is always triggered by the `copy()` interface method. |
gboolean `comparable`; | whether this data should be compared when we are testing two objects for equality. |
gboolean `mandatory`; | whether this data must be not null and not empty when we are testing for validity of an object. |
gboolean `localizable`; | whether this is a localizable data when serializing or exporting. |
gchar *`gconf_entry`; | same entry is also used for GConf-based XML docs. |
gchar *`desktop_entry`; | entry in .desktop files. |
gchar `option_short`; | the short version of a command-line parameter in filemanager-actions-new, or 0. |
gchar *`option_long`; | the long version of the same command-line parameter in filemanager-actions-new, or NULL. |
gint `option_flags`; | GOptionFlags for the command-line parameter, or 0. |
GOptionArg `option_arg`; | the type of the option, or 0. |
gchar *`option_label`; | the localizable description for the variable in filemanager-actions-new. Defaults to `short_label` if NULL. |
gchar *`option_arg_label`; | the localizable description for the argument. |

### FMADataGroup

    typedef struct {
    	gchar      *group;
    	FMADataDef *def;
    } FMADataGroup;

This structure fully describes a logical group of data. Each FMAIFactoryObject item definition is built from a list of these groups.

#### Members

gchar *`group`; | the name of the group, as defined in fma-ifactory-object-data.h. |
FMADataDef *`def`; | the list of the corresponding data structures. |