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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
-*-Indented-Text-*-
These notes describe the format of the .defs files
(import "DEFS-FILE")
(include "DEFS-FILE")
(define-enum ENUM-TYPEDEF-NAME
(LISP-SYM CPP-MACRO)
...)
(define-flags FLAGS-TYPEDEF-NAME
(LISP-SYM CPP-MACRO)
...)
(define-boxed BOXED-TYPEDEF-NAME
ATTR ...)
where each ATTR is one of:
(copy C-COPY-FUN)
(free C-FREE-FUN)
(size "C sizeof expression")
(fields FIELD ...)
where each FIELD is (TYPE-SYM NAME-SYM OPTIONS...)
each OPTION may be `(setter t)' denoting that the field
is settable. Also `(getter FUNCTION-NAME)' defining a custom
method of retrieving the value
(define-object OBJECT-TYPEDEF-NAME (SUPER-CLASS-TYPEDEF)
ATTR ...)
where each ATTR is one of:
(fields FIELD ...) [as above]
(define-func C-FUNC-NAME
RETURN-VALUE [RET-OPTIONS...]
(ARG ...)
OPTIONS...)
where each ARG is (TYPE NAME-SYM [ARG-OPTIONS...)
and each OPTION may be one of:
(scm-name ACTUAL-NAME-STRING)
(protection ARG) ; gc protect callback for life of ARG
(protection t) ; gc protect callback always
(protection *result*) ; gc protect for life of RETURN-VALUE
(undeferred t) ; no scm interrupt protection?
(rest-arg t) ; last arg is &rest
(gerror-arg t) ; last arg is GError arg
and each ARG-OPTION may be one of:
(= "default expression")
(null-ok) ; allow nil
(protect-during)
and each RET-OPTION may be one of:
(copy nil) ; unimplemented?
(options OPTION ...)
where each OPTION can be:
(includes "#include expression")
(init-func "name of C function")
(other-inits "name of C function" ... )
(extra-init-code "code string")
(provide FEATURE)
the `provide' option generates the rep dl stub required to provide
FEATURE and call the init-func when loaded
GTK fundamental types seem to include:
invalid, none, char, bool, int, uint, long, ulong, float,
string, enum, flags, boxed, foreign, callback, args, pointer,
signal, c-callback, object
static_string:
a static string returned from a function
full_callback:
a callback function used by the _full function variants (i.e.
gtk_signal_connect_full).
file-descriptor:
an integer file descriptor
double:
a double-precision float
SCM:
a scheme object
(list TYPE [MODE]):
a glib GList* (doubly-linked)
(slist TYPE [MODE]):
a glib GSList* (singly-linked)
(cvec TYPE [MODE]):
a counted-vector, stored in sgtk_cvec struct, in gtk_ function calls,
it expands ``cvec.data, cvec.len''
(cvecr TYPE [MODE]):
similar to cvec but expands ``cvec.len, cvec.data''
(fvec TYPE LEN [MODE]):
similar to cvec but fixed length
(ret TYPE):
similar to fvec but length is always one. used to mimic the C ``&foo''
idiom of returning multiple values
(tvec TYPE [MODE]):
zero-terminated vector
[ in the above, MODE is one of `in', `out' or `inout'. Defaults to `in' ]
|