GError.def 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. DEFINITION MODULE FOR "C" GError ;
  2. (*
  3. m2-GTK4 - GError: the GLib error value. Mapped onto
  4. <glib/gerror.h>.
  5. The C struct is public, so it is modelled directly. Most C APIs
  6. take a GError ** out-parameter; in Modula-2 declare a VAR of type
  7. GError and pass its address:
  8. VAR err: GError;
  9. ...
  10. err := NIL;
  11. ok := g_file_delete(file, NIL, ADR(err));
  12. IF err # NIL THEN ... END;
  13. Use GtkUtils.ErrorMessage() to read the message and
  14. GtkUtils.ClearError() (or g_error_free) to release it.
  15. *)
  16. FROM SYSTEM IMPORT ADDRESS;
  17. EXPORT UNQUALIFIED
  18. GError, GErrorRec,
  19. g_error_free, g_error_copy, g_error_matches, g_clear_error;
  20. TYPE
  21. GError = POINTER TO GErrorRec;
  22. (* struct _GError { GQuark domain; gint code; gchar *message; }; *)
  23. GErrorRec = RECORD
  24. domain: CARDINAL;
  25. code: INTEGER;
  26. message: ADDRESS;
  27. END;
  28. (* void g_error_free(GError *error) *)
  29. PROCEDURE g_error_free (error: GError);
  30. (* GError *g_error_copy(const GError *error) *)
  31. PROCEDURE g_error_copy (error: GError) : GError;
  32. (* gboolean g_error_matches(const GError *error, GQuark domain, gint code) *)
  33. PROCEDURE g_error_matches (error: GError; domain: CARDINAL;
  34. code: INTEGER) : [ INTEGER ];
  35. (* void g_clear_error(GError **err) *)
  36. PROCEDURE g_clear_error (VAR err: GError);
  37. END GError.