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);