summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/gtk2/src/glib/genums.inc
blob: 03646214bcd95501b39e11f0b27280502a0907be (plain)
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
// included by glib2.pas

{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}

//------------------------------------------------------------------------------

{$IFDEF read_interface_types}
   PGEnumClass = ^TGEnumClass;
   PGEnumValue = ^TGEnumValue;

   TGEnumClass = record
        g_type_class : TGTypeClass;
        minimum : gint;
        maximum : gint;
        n_values : guint;
        values : PGEnumValue;
     end;

   TGEnumValue = record
        value : gint;
        value_name : Pgchar;
        value_nick : Pgchar;
     end;

   PGFlagsClass = ^TGFlagsClass;
   PGFlagsValue = ^TGFlagsValue;

   TGFlagsClass = record
        g_type_class : TGTypeClass;
        mask : guint;
        n_values : guint;
        values : PGFlagsValue;
     end;

   TGFlagsValue = record
        value : guint;
        value_name : Pgchar;
        value_nick : Pgchar;
     end;
{$ENDIF read_interface_types}

//------------------------------------------------------------------------------

{$IFDEF read_interface_rest}
{ --- type macros ---  }
function G_TYPE_IS_ENUM(_type : GType) : gboolean;
function G_ENUM_CLASS(_class : pointer) : PGEnumClass;
function G_IS_ENUM_CLASS(_class : pointer) : gboolean;
function G_ENUM_CLASS_TYPE(_class : pointer) : GType;
function G_ENUM_CLASS_TYPE_NAME(_class : pointer) : PGChar;
function G_TYPE_IS_FLAGS(_type : GType) : gboolean;
function G_FLAGS_CLASS(_class : pointer) : PGFlagsClass;
function G_IS_FLAGS_CLASS(_class : pointer) : gboolean;
function G_FLAGS_CLASS_TYPE(_class : pointer) : GType;
function G_FLAGS_CLASS_TYPE_NAME(_class : pointer) : PGChar;
function G_VALUE_HOLDS_ENUM(value : pointer) : gboolean;
function G_VALUE_HOLDS_FLAGS(value : pointer) : gboolean;


{ --- prototypes ---  }

function g_enum_get_value(enum_class:PGEnumClass; value:gint):PGEnumValue; cdecl; external gliblib;
function g_enum_get_value_by_name(enum_class:PGEnumClass; name:Pgchar):PGEnumValue; cdecl; external gliblib;
function g_enum_get_value_by_nick(enum_class:PGEnumClass; nick:Pgchar):PGEnumValue; cdecl; external gliblib;
function g_flags_get_first_value(flags_class:PGFlagsClass; value:guint):PGFlagsValue; cdecl; external gliblib;
function g_flags_get_value_by_name(flags_class:PGFlagsClass; name:Pgchar):PGFlagsValue; cdecl; external gliblib;
function g_flags_get_value_by_nick(flags_class:PGFlagsClass; nick:Pgchar):PGFlagsValue; cdecl; external gliblib;
procedure g_value_set_enum(value:PGValue; v_enum:gint); cdecl; external gliblib;
function g_value_get_enum(value:PGValue):gint; cdecl; external gliblib;
procedure g_value_set_flags(value:PGValue; v_flags:guint); cdecl; external gliblib;
function g_value_get_flags(value:PGValue):guint; cdecl; external gliblib;
{ --- registration functions ---  }
{ const_static_values is a NULL terminated array of enum/flags
   values that is taken over!
  }
function g_enum_register_static(name:Pgchar; const_static_values:PGEnumValue):GType; cdecl; external gliblib;
function g_flags_register_static(name:Pgchar; const_static_values:PGFlagsValue):GType; cdecl; external gliblib;
{ functions to complete the type information
   for enums/flags implemented by plugins
  }
procedure g_enum_complete_type_info(g_enum_type:GType; info:PGTypeInfo; const_values:PGEnumValue); cdecl; external gliblib;
procedure g_flags_complete_type_info(g_flags_type:GType; info:PGTypeInfo; const_values:PGFlagsValue); cdecl; external gliblib;

{$ENDIF read_interface_rest}

// included by glib2.pas