mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-21 04:01:35 +02:00
161 lines
6.8 KiB
PHP
161 lines
6.8 KiB
PHP
// included by glib2.pas
|
|
|
|
{$IFDEF read_forward_definitions}
|
|
{ --- flags --- }
|
|
PGParamFlags = ^TGParamFlags;
|
|
TGParamFlags = longint;
|
|
|
|
{ --- typedefs & structures --- }
|
|
{ class using this property }
|
|
{< private > }
|
|
{ sort-criteria }
|
|
PGParamSpec = ^TGParamSpec;
|
|
PPGParamSpec = ^PGParamSpec;
|
|
TGParamSpec = record
|
|
g_type_instance : TGTypeInstance;
|
|
name : Pgchar;
|
|
flags : TGParamFlags;
|
|
value_type : GType;
|
|
owner_type : GType;
|
|
_nick : Pgchar;
|
|
_blurb : Pgchar;
|
|
qdata : PGData;
|
|
ref_count : guint;
|
|
param_id : guint;
|
|
end;
|
|
|
|
{ GParam methods }
|
|
PGParamSpecClass = ^TGParamSpecClass;
|
|
TGParamSpecClass = record
|
|
g_type_class : TGTypeClass;
|
|
value_type : GType;
|
|
finalize : procedure (pspec:PGParamSpec); cdecl;
|
|
value_set_default : procedure (pspec:PGParamSpec; value:PGValue); cdecl;
|
|
value_validate : function (pspec:PGParamSpec; value:PGValue):gboolean; cdecl;
|
|
values_cmp : function (pspec:PGParamSpec; value1:PGValue; value2:PGValue):gint; cdecl;
|
|
dummy : array[0..3] of gpointer;
|
|
end;
|
|
|
|
{ auxillary structure for _setv() variants }
|
|
PGParameter = ^TGParameter;
|
|
TGParameter = record
|
|
name : Pgchar;
|
|
value : TGValue;
|
|
end;
|
|
{$ENDIF read_forward_definitions}
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
{$IFDEF read_interface_rest}
|
|
|
|
{ --- standard type macros --- }
|
|
|
|
function G_TYPE_IS_PARAM(_type : GType) : boolean;
|
|
function G_PARAM_SPEC(pspec : Pointer) : PGParamSpec;
|
|
function G_IS_PARAM_SPEC(pspec : Pointer) : boolean;
|
|
function G_PARAM_SPEC_CLASS(pclass : Pointer) : PGParamSpecClass;
|
|
function G_IS_PARAM_SPEC_CLASS(pclass : Pointer) : boolean;
|
|
function G_PARAM_SPEC_GET_CLASS(pspec : Pointer) : PGParamSpecClass;
|
|
|
|
{ --- convenience macros --- }
|
|
function G_PARAM_SPEC_TYPE(pspec : Pointer) : GType;
|
|
function G_PARAM_SPEC_TYPE_NAME(pspec : Pointer) : PGChar;
|
|
function G_PARAM_SPEC_VALUE_TYPE(pspec : Pointer) : GType;
|
|
function G_VALUE_HOLDS_PARAM(value : Pointer) : boolean;
|
|
|
|
const
|
|
G_PARAM_READABLE = 1 shl 0;
|
|
G_PARAM_WRITABLE = 1 shl 1;
|
|
G_PARAM_CONSTRUCT = 1 shl 2;
|
|
G_PARAM_CONSTRUCT_ONLY = 1 shl 3;
|
|
G_PARAM_LAX_VALIDATION = 1 shl 4;
|
|
G_PARAM_PRIVATE = 1 shl 5;
|
|
G_PARAM_READWRITE = G_PARAM_READABLE or G_PARAM_WRITABLE;
|
|
G_PARAM_MASK = $000000ff;
|
|
|
|
{ bits in the range 0xffffff00 are reserved for 3rd party usage }
|
|
G_PARAM_USER_SHIFT = 8;
|
|
|
|
|
|
|
|
{ --- prototypes --- }
|
|
|
|
function g_param_spec_ref(pspec:PGParamSpec):PGParamSpec; cdecl; external gliblib;
|
|
procedure g_param_spec_unref(pspec:PGParamSpec); cdecl; external gliblib;
|
|
procedure g_param_spec_sink(pspec:PGParamSpec); cdecl; external gliblib;
|
|
function g_param_spec_get_qdata(pspec:PGParamSpec; quark:TGQuark):gpointer; cdecl; external gliblib;
|
|
procedure g_param_spec_set_qdata(pspec:PGParamSpec; quark:TGQuark; data:gpointer); cdecl; external gliblib;
|
|
procedure g_param_spec_set_qdata_full(pspec:PGParamSpec; quark:TGQuark; data:gpointer; destroy:TGDestroyNotify); cdecl; external gliblib;
|
|
function g_param_spec_steal_qdata(pspec:PGParamSpec; quark:TGQuark):gpointer; cdecl; external gliblib;
|
|
procedure g_param_value_set_default(pspec:PGParamSpec; value:PGValue); cdecl; external gliblib;
|
|
function g_param_value_defaults(pspec:PGParamSpec; value:PGValue):gboolean; cdecl; external gliblib;
|
|
function g_param_value_validate(pspec:PGParamSpec; value:PGValue):gboolean; cdecl; external gliblib;
|
|
function g_param_value_convert(pspec:PGParamSpec; src_value:PGValue; dest_value:PGValue; strict_validation:gboolean):gboolean; cdecl; external gliblib;
|
|
function g_param_values_cmp(pspec:PGParamSpec; value1:PGValue; value2:PGValue):gint; cdecl; external gliblib;
|
|
function g_param_spec_get_name(pspec:PGParamSpec):Pgchar; cdecl; external gliblib;
|
|
function g_param_spec_get_nick(pspec:PGParamSpec):Pgchar; cdecl; external gliblib;
|
|
function g_param_spec_get_blurb(pspec:PGParamSpec):Pgchar; cdecl; external gliblib;
|
|
procedure g_value_set_param(value:PGValue; param:PGParamSpec); cdecl; external gliblib;
|
|
function g_value_get_param(value:PGValue):PGParamSpec; cdecl; external gliblib;
|
|
function g_value_dup_param(value:PGValue):PGParamSpec; cdecl; external gliblib;
|
|
{ --- marshaller specific --- }
|
|
procedure g_value_set_param_take_ownership(value:PGValue; param:PGParamSpec); cdecl; external gliblib;
|
|
{ --- convenience functions --- }
|
|
|
|
|
|
type
|
|
{ type system portion }
|
|
{ obligatory }
|
|
{ optional }
|
|
{ optional }
|
|
{ class portion }
|
|
{ obligatory }
|
|
{ optional }
|
|
{ recommended }
|
|
{ optional }
|
|
{ recommended }
|
|
PGParamSpecTypeInfo = ^TGParamSpecTypeInfo;
|
|
TGParamSpecTypeInfo = record
|
|
instance_size : guint16;
|
|
n_preallocs : guint16;
|
|
instance_init : procedure (pspec:PGParamSpec); cdecl;
|
|
value_type : GType;
|
|
finalize : procedure (pspec:PGParamSpec); cdecl;
|
|
value_set_default : procedure (pspec:PGParamSpec; value:PGValue); cdecl;
|
|
value_validate : function (pspec:PGParamSpec; value:PGValue):gboolean; cdecl;
|
|
values_cmp : function (pspec:PGParamSpec; value1:PGValue; value2:PGValue):gint; cdecl;
|
|
end;
|
|
|
|
|
|
function g_param_type_register_static(name:Pgchar; pspec_info:PGParamSpecTypeInfo):GType; cdecl; external gliblib;
|
|
{ For registering builting types }
|
|
function _g_param_type_register_static_constant(name:Pgchar; pspec_info:PGParamSpecTypeInfo; opt_type:GType):GType; cdecl; external gliblib;
|
|
{ --- protected --- }
|
|
function g_param_spec_internal(param_type:GType; name:Pgchar; nick:Pgchar; blurb:Pgchar; flags:TGParamFlags):gpointer; cdecl; external gliblib;
|
|
function g_param_spec_pool_new(type_prefixing:gboolean):PGParamSpecPool; cdecl; external gliblib;
|
|
procedure g_param_spec_pool_insert(pool:PGParamSpecPool; pspec:PGParamSpec; owner_type:GType); cdecl; external gliblib;
|
|
procedure g_param_spec_pool_remove(pool:PGParamSpecPool; pspec:PGParamSpec); cdecl; external gliblib;
|
|
function g_param_spec_pool_lookup(pool:PGParamSpecPool; param_name:Pgchar; owner_type:GType; walk_ancestors:gboolean):PGParamSpec; cdecl; external gliblib;
|
|
function g_param_spec_pool_list_owned(pool:PGParamSpecPool; owner_type:GType):PGList; cdecl; external gliblib;
|
|
function g_param_spec_pool_list(pool:PGParamSpecPool; owner_type:GType; n_pspecs_p:Pguint):PPGParamSpec; cdecl; external gliblib;
|
|
|
|
{ contracts:
|
|
|
|
gboolean value_validate (GParamSpec pspec,
|
|
GValue value):
|
|
modify value contents in the least destructive way, so
|
|
that it complies with pspec's requirements (i.e.
|
|
according to minimum/maximum ranges etc...). return
|
|
whether modification was necessary.
|
|
|
|
gint values_cmp (GParamSpec pspec,
|
|
const GValue value1,
|
|
const GValue value2):
|
|
return value1 - value2, i.e. (-1) if value1 < value2,
|
|
(+1) if value1 > value2, and (0) otherwise (equality)
|
|
}
|
|
{$ENDIF read_interface_rest}
|
|
|
|
// included by glib2.pas
|
|
|