mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-03 17:33:25 +00:00
libgimpbase: add support for arrays of object IDs to gimpprotocol
This commit is contained in:
parent
0fefb7e922
commit
85591eb799
2 changed files with 81 additions and 1 deletions
|
@ -1133,6 +1133,13 @@ _gp_param_def_read (GIOChannel *channel,
|
|||
return FALSE;
|
||||
break;
|
||||
|
||||
case GP_PARAM_DEF_TYPE_ID_ARRAY:
|
||||
if (! _gimp_wire_read_string (channel,
|
||||
¶m_def->meta.m_id_array.type_name, 1,
|
||||
user_data))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
case GP_PARAM_DEF_TYPE_PARAM_DEF:
|
||||
if (! _gimp_wire_read_string (channel,
|
||||
¶m_def->meta.m_param_def.type_name, 1,
|
||||
|
@ -1175,6 +1182,10 @@ _gp_param_def_destroy (GPParamDef *param_def)
|
|||
case GP_PARAM_DEF_TYPE_ID:
|
||||
break;
|
||||
|
||||
case GP_PARAM_DEF_TYPE_ID_ARRAY:
|
||||
g_free (param_def->meta.m_id_array.type_name);
|
||||
break;
|
||||
|
||||
case GP_PARAM_DEF_TYPE_PARAM_DEF:
|
||||
g_free (param_def->meta.m_param_def.type_name);
|
||||
break;
|
||||
|
@ -1411,6 +1422,13 @@ _gp_param_def_write (GIOChannel *channel,
|
|||
return FALSE;
|
||||
break;
|
||||
|
||||
case GP_PARAM_DEF_TYPE_ID_ARRAY:
|
||||
if (! _gimp_wire_write_string (channel,
|
||||
¶m_def->meta.m_id_array.type_name, 1,
|
||||
user_data))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
case GP_PARAM_DEF_TYPE_PARAM_DEF:
|
||||
if (! _gimp_wire_write_string (channel,
|
||||
¶m_def->meta.m_param_def.type_name, 1,
|
||||
|
@ -1704,6 +1722,31 @@ _gp_params_read (GIOChannel *channel,
|
|||
}
|
||||
break;
|
||||
|
||||
case GP_PARAM_TYPE_ID_ARRAY:
|
||||
if (! _gimp_wire_read_string (channel,
|
||||
&(*params)[i].data.d_id_array.type_name, 1,
|
||||
user_data))
|
||||
goto cleanup;
|
||||
|
||||
if (! _gimp_wire_read_int32 (channel,
|
||||
&(*params)[i].data.d_id_array.size, 1,
|
||||
user_data))
|
||||
goto cleanup;
|
||||
|
||||
(*params)[i].data.d_id_array.data = g_new0 (gint32,
|
||||
(*params)[i].data.d_id_array.size);
|
||||
|
||||
if (! _gimp_wire_read_int32 (channel,
|
||||
(guint32 *) (*params)[i].data.d_id_array.data,
|
||||
(*params)[i].data.d_id_array.size,
|
||||
user_data))
|
||||
{
|
||||
g_free ((*params)[i].data.d_id_array.data);
|
||||
(*params)[i].data.d_id_array.data = NULL;
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
|
||||
case GP_PARAM_TYPE_PARASITE:
|
||||
if (! _gimp_wire_read_string (channel,
|
||||
&(*params)[i].data.d_parasite.name, 1,
|
||||
|
@ -1833,6 +1876,20 @@ _gp_params_write (GIOChannel *channel,
|
|||
return;
|
||||
break;
|
||||
|
||||
case GP_PARAM_TYPE_ID_ARRAY:
|
||||
if (! _gimp_wire_write_string (channel,
|
||||
¶ms[i].data.d_id_array.type_name, 1,
|
||||
user_data) ||
|
||||
! _gimp_wire_write_int32 (channel,
|
||||
(const guint32 *) ¶ms[i].data.d_id_array.size, 1,
|
||||
user_data) ||
|
||||
! _gimp_wire_write_int32 (channel,
|
||||
(const guint32 *) params[i].data.d_id_array.data,
|
||||
params[i].data.d_id_array.size,
|
||||
user_data))
|
||||
return;
|
||||
break;
|
||||
|
||||
case GP_PARAM_TYPE_PARASITE:
|
||||
{
|
||||
GimpParasite *p = ¶ms[i].data.d_parasite;
|
||||
|
@ -1909,6 +1966,11 @@ _gp_params_destroy (GPParam *params,
|
|||
}
|
||||
break;
|
||||
|
||||
case GP_PARAM_TYPE_ID_ARRAY:
|
||||
g_free (params[i].data.d_id_array.type_name);
|
||||
g_free (params[i].data.d_id_array.data);
|
||||
break;
|
||||
|
||||
case GP_PARAM_TYPE_PARASITE:
|
||||
if (params[i].data.d_parasite.name)
|
||||
g_free (params[i].data.d_parasite.name);
|
||||
|
|
|
@ -57,6 +57,7 @@ typedef enum
|
|||
GP_PARAM_DEF_TYPE_STRING,
|
||||
GP_PARAM_DEF_TYPE_COLOR,
|
||||
GP_PARAM_DEF_TYPE_ID,
|
||||
GP_PARAM_DEF_TYPE_ID_ARRAY,
|
||||
GP_PARAM_DEF_TYPE_PARAM_DEF
|
||||
} GPParamDefType;
|
||||
|
||||
|
@ -69,6 +70,7 @@ typedef enum
|
|||
GP_PARAM_TYPE_PARASITE,
|
||||
GP_PARAM_TYPE_ARRAY,
|
||||
GP_PARAM_TYPE_STRING_ARRAY,
|
||||
GP_PARAM_TYPE_ID_ARRAY,
|
||||
GP_PARAM_TYPE_PARAM_DEF
|
||||
} GPParamType;
|
||||
|
||||
|
@ -86,10 +88,12 @@ typedef struct _GPParamDefFloat GPParamDefFloat;
|
|||
typedef struct _GPParamDefString GPParamDefString;
|
||||
typedef struct _GPParamDefColor GPParamDefColor;
|
||||
typedef struct _GPParamDefID GPParamDefID;
|
||||
typedef struct _GPParamDefIDArray GPParamDefIDArray;
|
||||
typedef struct _GPParamDefParamDef GPParamDefParamDef;
|
||||
typedef struct _GPParam GPParam;
|
||||
typedef struct _GPParamArray GPParamArray;
|
||||
typedef struct _GPParamStringArray GPParamStringArray;
|
||||
typedef struct _GPParamIDArray GPParamIDArray;
|
||||
typedef struct _GPProcRun GPProcRun;
|
||||
typedef struct _GPProcReturn GPProcReturn;
|
||||
typedef struct _GPProcInstall GPProcInstall;
|
||||
|
@ -175,7 +179,7 @@ struct _GPParamDefFloat
|
|||
|
||||
struct _GPParamDefString
|
||||
{
|
||||
gchar *default_val;
|
||||
gchar *default_val;
|
||||
};
|
||||
|
||||
struct _GPParamDefColor
|
||||
|
@ -189,6 +193,11 @@ struct _GPParamDefID
|
|||
gint32 none_ok;
|
||||
};
|
||||
|
||||
struct _GPParamDefIDArray
|
||||
{
|
||||
gchar *type_name;
|
||||
};
|
||||
|
||||
struct _GPParamDefParamDef
|
||||
{
|
||||
gchar *type_name;
|
||||
|
@ -213,6 +222,7 @@ struct _GPParamDef
|
|||
GPParamDefString m_string;
|
||||
GPParamDefColor m_color;
|
||||
GPParamDefID m_id;
|
||||
GPParamDefIDArray m_id_array;
|
||||
GPParamDefParamDef m_param_def;
|
||||
} meta;
|
||||
};
|
||||
|
@ -229,6 +239,13 @@ struct _GPParamStringArray
|
|||
gchar **data;
|
||||
};
|
||||
|
||||
struct _GPParamIDArray
|
||||
{
|
||||
gchar *type_name;
|
||||
guint32 size;
|
||||
gint32 *data;
|
||||
};
|
||||
|
||||
struct _GPParam
|
||||
{
|
||||
GPParamType param_type;
|
||||
|
@ -243,6 +260,7 @@ struct _GPParam
|
|||
GimpParasite d_parasite;
|
||||
GPParamArray d_array;
|
||||
GPParamStringArray d_string_array;
|
||||
GPParamIDArray d_id_array;
|
||||
GPParamDef d_param_def;
|
||||
} data;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue