Mercurial > hg > xemacs-beta
comparison src/ui-gtk.c @ 5117:3742ea8250b5 ben-lisp-object ben-lisp-object-final-ws-year-2005
Checking in final CVS version of workspace 'ben-lisp-object'
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sat, 26 Dec 2009 00:20:27 -0600 |
parents | 1e7cc382eb16 |
children | e0db3c197671 |
comparison
equal
deleted
inserted
replaced
5116:e56f73345619 | 5117:3742ea8250b5 |
---|---|
278 | 278 |
279 /* Foreign function calls */ | 279 /* Foreign function calls */ |
280 static emacs_ffi_data * | 280 static emacs_ffi_data * |
281 allocate_ffi_data (void) | 281 allocate_ffi_data (void) |
282 { | 282 { |
283 emacs_ffi_data *data = ALLOC_LCRECORD_TYPE (emacs_ffi_data, &lrecord_emacs_ffi); | 283 Lisp_Object obj = ALLOC_LISP_OBJECT (emacs_ffi); |
284 emacs_ffi_data *data = XFFI (obj); | |
284 | 285 |
285 data->return_type = GTK_TYPE_NONE; | 286 data->return_type = GTK_TYPE_NONE; |
286 data->n_args = 0; | 287 data->n_args = 0; |
287 data->function_name = Qnil; | 288 data->function_name = Qnil; |
288 data->function_ptr = 0; | 289 data->function_ptr = 0; |
316 if (XFFI (obj)->n_args) | 317 if (XFFI (obj)->n_args) |
317 write_fmt_string (printcharfun, " %d arguments", XFFI (obj)->n_args); | 318 write_fmt_string (printcharfun, " %d arguments", XFFI (obj)->n_args); |
318 write_fmt_string (printcharfun, " %p>", (void *)XFFI (obj)->function_ptr); | 319 write_fmt_string (printcharfun, " %p>", (void *)XFFI (obj)->function_ptr); |
319 } | 320 } |
320 | 321 |
321 DEFINE_LRECORD_IMPLEMENTATION ("ffi", emacs_ffi, | 322 DEFINE_NONDUMPABLE_LISP_OBJECT ("ffi", emacs_ffi, |
322 0, /*dumpable-flag*/ | 323 mark_ffi_data, ffi_object_printer, |
323 mark_ffi_data, ffi_object_printer, | 324 0, 0, 0, |
324 0, 0, 0, | 325 ffi_data_description, emacs_ffi_data); |
325 ffi_data_description, emacs_ffi_data); | |
326 | 326 |
327 #if defined (__cplusplus) | 327 #if defined (__cplusplus) |
328 #define MANY_ARGS ... | 328 #define MANY_ARGS ... |
329 #else | 329 #else |
330 #define MANY_ARGS | 330 #define MANY_ARGS |
925 { | 925 { |
926 gtk_object_unref (data->object); | 926 gtk_object_unref (data->object); |
927 } | 927 } |
928 } | 928 } |
929 | 929 |
930 DEFINE_LRECORD_IMPLEMENTATION_WITH_PROPS ("GtkObject", emacs_gtk_object, | 930 DEFINE_NONDUMPABLE_LISP_OBJECT_WITH_PROPS ("GtkObject", emacs_gtk_object, |
931 0, /*dumpable-flag*/ | 931 mark_gtk_object_data, |
932 mark_gtk_object_data, | 932 emacs_gtk_object_printer, |
933 emacs_gtk_object_printer, | 933 emacs_gtk_object_finalizer, |
934 emacs_gtk_object_finalizer, | 934 0, /* equality */ |
935 0, /* equality */ | 935 0, /* hash */ |
936 0, /* hash */ | 936 gtk_object_data_description, |
937 gtk_object_data_description, | 937 object_getprop, |
938 object_getprop, | 938 object_putprop, |
939 object_putprop, | 939 0, /* rem prop */ |
940 0, /* rem prop */ | 940 0, /* plist */ |
941 0, /* plist */ | 941 emacs_gtk_object_data); |
942 emacs_gtk_object_data); | |
943 | 942 |
944 static emacs_gtk_object_data * | 943 static emacs_gtk_object_data * |
945 allocate_emacs_gtk_object_data (void) | 944 allocate_emacs_gtk_object_data (void) |
946 { | 945 { |
947 emacs_gtk_object_data *data = ALLOC_LCRECORD_TYPE (emacs_gtk_object_data, | 946 Lisp_Object obj = ALLOC_LISP_OBJECT (emacs_gtk_object); |
948 &lrecord_emacs_gtk_object); | 947 emacs_gtk_object_data *data = XGTK_OBJECT (obj); |
949 | 948 |
950 data->object = NULL; | 949 data->object = NULL; |
951 data->alive_p = FALSE; | 950 data->alive_p = FALSE; |
952 data->plist = Qnil; | 951 data->plist = Qnil; |
953 | 952 |
1121 { | 1120 { |
1122 emacs_gtk_boxed_data *data = XGTK_BOXED(obj); | 1121 emacs_gtk_boxed_data *data = XGTK_BOXED(obj); |
1123 return (HASH2 ((Hashcode) data->object, data->object_type)); | 1122 return (HASH2 ((Hashcode) data->object, data->object_type)); |
1124 } | 1123 } |
1125 | 1124 |
1126 DEFINE_LRECORD_IMPLEMENTATION_WITH_PROPS ("GtkBoxed", emacs_gtk_boxed, | 1125 DEFINE_NONDUMPABLE_LISP_OBJECT_WITH_PROPS ("GtkBoxed", emacs_gtk_boxed, |
1127 0, /*dumpable-flag*/ | 1126 0, /* marker function */ |
1128 0, /* marker function */ | 1127 emacs_gtk_boxed_printer, |
1129 emacs_gtk_boxed_printer, | 1128 0, /* nuker */ |
1130 0, /* nuker */ | 1129 emacs_gtk_boxed_equality, |
1131 emacs_gtk_boxed_equality, | 1130 emacs_gtk_boxed_hash, |
1132 emacs_gtk_boxed_hash, | 1131 emacs_gtk_boxed_description, |
1133 emacs_gtk_boxed_description, | 1132 0, /* get prop */ |
1134 0, /* get prop */ | 1133 0, /* put prop */ |
1135 0, /* put prop */ | 1134 0, /* rem prop */ |
1136 0, /* rem prop */ | 1135 0, /* plist */ |
1137 0, /* plist */ | 1136 emacs_gtk_boxed_data); |
1138 emacs_gtk_boxed_data); | |
1139 /* Currently defined GTK_TYPE_BOXED structures are: | 1137 /* Currently defined GTK_TYPE_BOXED structures are: |
1140 | 1138 |
1141 GtkAccelGroup - | 1139 GtkAccelGroup - |
1142 GtkSelectionData - | 1140 GtkSelectionData - |
1143 GtkStyle - | 1141 GtkStyle - |
1151 GdkColor - | 1149 GdkColor - |
1152 */ | 1150 */ |
1153 static emacs_gtk_boxed_data * | 1151 static emacs_gtk_boxed_data * |
1154 allocate_emacs_gtk_boxed_data (void) | 1152 allocate_emacs_gtk_boxed_data (void) |
1155 { | 1153 { |
1156 emacs_gtk_boxed_data *data = ALLOC_LCRECORD_TYPE (emacs_gtk_boxed_data, | 1154 Lisp_Object obj = ALLOC_LISP_OBJECT (emacs_gtk_boxed); |
1157 &lrecord_emacs_gtk_boxed); | 1155 emacs_gtk_boxed_data *data = XGTK_BOXED (obj); |
1158 | 1156 |
1159 data->object = NULL; | 1157 data->object = NULL; |
1160 data->object_type = GTK_TYPE_INVALID; | 1158 data->object_type = GTK_TYPE_INVALID; |
1161 | 1159 |
1162 return (data); | 1160 return (data); |
1338 | 1336 |
1339 | 1337 |
1340 void | 1338 void |
1341 syms_of_ui_gtk (void) | 1339 syms_of_ui_gtk (void) |
1342 { | 1340 { |
1343 INIT_LRECORD_IMPLEMENTATION (emacs_ffi); | 1341 INIT_LISP_OBJECT (emacs_ffi); |
1344 INIT_LRECORD_IMPLEMENTATION (emacs_gtk_object); | 1342 INIT_LISP_OBJECT (emacs_gtk_object); |
1345 INIT_LRECORD_IMPLEMENTATION (emacs_gtk_boxed); | 1343 INIT_LISP_OBJECT (emacs_gtk_boxed); |
1346 DEFSYMBOL_MULTIWORD_PREDICATE (Qemacs_ffip); | 1344 DEFSYMBOL_MULTIWORD_PREDICATE (Qemacs_ffip); |
1347 DEFSYMBOL_MULTIWORD_PREDICATE (Qemacs_gtk_objectp); | 1345 DEFSYMBOL_MULTIWORD_PREDICATE (Qemacs_gtk_objectp); |
1348 DEFSYMBOL_MULTIWORD_PREDICATE (Qemacs_gtk_boxedp); | 1346 DEFSYMBOL_MULTIWORD_PREDICATE (Qemacs_gtk_boxedp); |
1349 DEFSYMBOL (Qvoid); | 1347 DEFSYMBOL (Qvoid); |
1350 DEFSUBR (Fdll_load); | 1348 DEFSUBR (Fdll_load); |