Mercurial > hg > xemacs-beta
comparison src/glyphs.c @ 48:56c54cf7c5b6 r19-16b90
Import from CVS: tag r19-16b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:56:04 +0200 |
parents | 8d2a9b52c682 |
children | 131b0175ea99 |
comparison
equal
deleted
inserted
replaced
47:11c6df210d7f | 48:56c54cf7c5b6 |
---|---|
477 | 477 |
478 return instantiator; | 478 return instantiator; |
479 } | 479 } |
480 | 480 |
481 static Lisp_Object | 481 static Lisp_Object |
482 instantiate_image_instantiator (Lisp_Object device, Lisp_Object instantiator, | 482 instantiate_image_instantiator (Lisp_Object device, Lisp_Object domain, |
483 Lisp_Object instantiator, | |
483 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 484 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
484 int dest_mask) | 485 int dest_mask) |
485 { | 486 { |
486 Lisp_Object ii; | 487 Lisp_Object ii; |
487 struct gcpro gcpro1; | 488 struct gcpro gcpro1; |
497 if (!HAS_IIFORMAT_METH_P (meths, instantiate)) | 498 if (!HAS_IIFORMAT_METH_P (meths, instantiate)) |
498 signal_simple_error | 499 signal_simple_error |
499 ("Don't know how to instantiate this image instantiator?", | 500 ("Don't know how to instantiate this image instantiator?", |
500 instantiator); | 501 instantiator); |
501 IIFORMAT_METH (meths, instantiate, (ii, instantiator, pointer_fg, | 502 IIFORMAT_METH (meths, instantiate, (ii, instantiator, pointer_fg, |
502 pointer_bg, dest_mask)); | 503 pointer_bg, dest_mask, domain)); |
503 } | 504 } |
504 UNGCPRO; | 505 UNGCPRO; |
505 | 506 |
506 return ii; | 507 return ii; |
507 } | 508 } |
980 make_int (dest_mask)); | 981 make_int (dest_mask)); |
981 GCPRO1 (data); | 982 GCPRO1 (data); |
982 if (VECTORP (data) | 983 if (VECTORP (data) |
983 && EQ (vector_data (XVECTOR (data))[0], Qinherit)) | 984 && EQ (vector_data (XVECTOR (data))[0], Qinherit)) |
984 signal_simple_error ("inheritance not allowed here", data); | 985 signal_simple_error ("inheritance not allowed here", data); |
985 ii = instantiate_image_instantiator (device, data, Qnil, Qnil, dest_mask); | 986 ii = instantiate_image_instantiator (device, device, data, |
987 Qnil, Qnil, dest_mask); | |
986 RETURN_UNGCPRO (ii); | 988 RETURN_UNGCPRO (ii); |
987 } | 989 } |
988 | 990 |
989 DEFUN ("make-image-instance", Fmake_image_instance, 1, 4, 0, /* | 991 DEFUN ("make-image-instance", Fmake_image_instance, 1, 4, 0, /* |
990 Create a new `image-instance' object. | 992 Create a new `image-instance' object. |
1325 } | 1327 } |
1326 | 1328 |
1327 static void | 1329 static void |
1328 nothing_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1330 nothing_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1329 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1331 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1330 int dest_mask) | 1332 int dest_mask, Lisp_Object domain) |
1331 { | 1333 { |
1332 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1334 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1333 | 1335 |
1334 if (dest_mask & IMAGE_NOTHING_MASK) | 1336 if (dest_mask & IMAGE_NOTHING_MASK) |
1335 IMAGE_INSTANCE_TYPE (ii) = IMAGE_NOTHING; | 1337 IMAGE_INSTANCE_TYPE (ii) = IMAGE_NOTHING; |
1367 } | 1369 } |
1368 | 1370 |
1369 static void | 1371 static void |
1370 inherit_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1372 inherit_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1371 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1373 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1372 int dest_mask) | 1374 int dest_mask, Lisp_Object domain) |
1373 { | 1375 { |
1374 /* handled specially in image_instantiate */ | 1376 /* handled specially in image_instantiate */ |
1375 abort (); | 1377 abort (); |
1376 } | 1378 } |
1377 | 1379 |
1394 | 1396 |
1395 /* called from autodetect_instantiate() */ | 1397 /* called from autodetect_instantiate() */ |
1396 void | 1398 void |
1397 string_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1399 string_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1398 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1400 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1399 int dest_mask) | 1401 int dest_mask, Lisp_Object domain) |
1400 { | 1402 { |
1401 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 1403 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
1402 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1404 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1403 | 1405 |
1404 assert (!NILP (data)); | 1406 assert (!NILP (data)); |
1430 | 1432 |
1431 static void | 1433 static void |
1432 formatted_string_instantiate (Lisp_Object image_instance, | 1434 formatted_string_instantiate (Lisp_Object image_instance, |
1433 Lisp_Object instantiator, | 1435 Lisp_Object instantiator, |
1434 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1436 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1435 int dest_mask) | 1437 int dest_mask, Lisp_Object domain) |
1436 { | 1438 { |
1437 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 1439 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
1438 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1440 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1439 | 1441 |
1440 assert (!NILP (data)); | 1442 assert (!NILP (data)); |
1594 car of the locative to the resulting instance, | 1596 car of the locative to the resulting instance, |
1595 which gets recorded instead. */ | 1597 which gets recorded instead. */ |
1596 record_unwind_protect (image_instantiate_cache_result, | 1598 record_unwind_protect (image_instantiate_cache_result, |
1597 locative); | 1599 locative); |
1598 instance = instantiate_image_instantiator (device, | 1600 instance = instantiate_image_instantiator (device, |
1601 domain, | |
1599 instantiator, | 1602 instantiator, |
1600 pointer_fg, pointer_bg, | 1603 pointer_fg, pointer_bg, |
1601 dest_mask); | 1604 dest_mask); |
1602 Fsetcar (locative, instance); | 1605 Fsetcar (locative, instance); |
1603 unbind_to (speccount, Qnil); | 1606 unbind_to (speccount, Qnil); |