genums.inc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // included by glib2.pas
  2. {$IFDEF read_forward_definitions}
  3. {$ENDIF read_forward_definitions}
  4. //------------------------------------------------------------------------------
  5. {$IFDEF read_interface_rest}
  6. { --- enum/flag values & classes --- }
  7. type
  8. PGEnumClass = ^TGEnumClass;
  9. PGEnumValue = ^TGEnumValue;
  10. TGEnumClass = record
  11. g_type_class : TGTypeClass;
  12. minimum : gint;
  13. maximum : gint;
  14. n_values : guint;
  15. values : PGEnumValue;
  16. end;
  17. TGEnumValue = record
  18. value : gint;
  19. value_name : Pgchar;
  20. value_nick : Pgchar;
  21. end;
  22. PGFlagsClass = ^TGFlagsClass;
  23. PGFlagsValue = ^TGFlagsValue;
  24. TGFlagsClass = record
  25. g_type_class : TGTypeClass;
  26. mask : guint;
  27. n_values : guint;
  28. values : PGFlagsValue;
  29. end;
  30. TGFlagsValue = record
  31. value : guint;
  32. value_name : Pgchar;
  33. value_nick : Pgchar;
  34. end;
  35. { --- type macros --- }
  36. function G_TYPE_IS_ENUM(_type : GType) : gboolean;
  37. function G_ENUM_CLASS(_class : pointer) : PGEnumClass;
  38. function G_IS_ENUM_CLASS(_class : pointer) : gboolean;
  39. function G_ENUM_CLASS_TYPE(_class : pointer) : GType;
  40. function G_ENUM_CLASS_TYPE_NAME(_class : pointer) : PGChar;
  41. function G_TYPE_IS_FLAGS(_type : GType) : gboolean;
  42. function G_FLAGS_CLASS(_class : pointer) : PGFlagsClass;
  43. function G_IS_FLAGS_CLASS(_class : pointer) : gboolean;
  44. function G_FLAGS_CLASS_TYPE(_class : pointer) : GType;
  45. function G_FLAGS_CLASS_TYPE_NAME(_class : pointer) : PGChar;
  46. function G_VALUE_HOLDS_ENUM(value : pointer) : gboolean;
  47. function G_VALUE_HOLDS_FLAGS(value : pointer) : gboolean;
  48. { --- prototypes --- }
  49. function g_enum_get_value(enum_class:PGEnumClass; value:gint):PGEnumValue; cdecl; external gliblib;
  50. function g_enum_get_value_by_name(enum_class:PGEnumClass; name:Pgchar):PGEnumValue; cdecl; external gliblib;
  51. function g_enum_get_value_by_nick(enum_class:PGEnumClass; nick:Pgchar):PGEnumValue; cdecl; external gliblib;
  52. function g_flags_get_first_value(flags_class:PGFlagsClass; value:guint):PGFlagsValue; cdecl; external gliblib;
  53. function g_flags_get_value_by_name(flags_class:PGFlagsClass; name:Pgchar):PGFlagsValue; cdecl; external gliblib;
  54. function g_flags_get_value_by_nick(flags_class:PGFlagsClass; nick:Pgchar):PGFlagsValue; cdecl; external gliblib;
  55. procedure g_value_set_enum(value:PGValue; v_enum:gint); cdecl; external gliblib;
  56. function g_value_get_enum(value:PGValue):gint; cdecl; external gliblib;
  57. procedure g_value_set_flags(value:PGValue; v_flags:guint); cdecl; external gliblib;
  58. function g_value_get_flags(value:PGValue):guint; cdecl; external gliblib;
  59. { --- registration functions --- }
  60. { const_static_values is a NULL terminated array of enum/flags
  61. values that is taken over!
  62. }
  63. function g_enum_register_static(name:Pgchar; const_static_values:PGEnumValue):GType; cdecl; external gliblib;
  64. function g_flags_register_static(name:Pgchar; const_static_values:PGFlagsValue):GType; cdecl; external gliblib;
  65. { functions to complete the type information
  66. for enums/flags implemented by plugins
  67. }
  68. procedure g_enum_complete_type_info(g_enum_type:GType; info:PGTypeInfo; const_values:PGEnumValue); cdecl; external gliblib;
  69. procedure g_flags_complete_type_info(g_flags_type:GType; info:PGTypeInfo; const_values:PGFlagsValue); cdecl; external gliblib;
  70. {$ENDIF read_interface_rest}
  71. // included by glib2.pas