Mercurial > hg > xemacs-beta
comparison src/glyphs.c @ 124:9b50b4588a93 r20-1b15
Import from CVS: tag r20-1b15
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:26:39 +0200 |
parents | d2f30a177268 |
children | 15872534500d |
comparison
equal
deleted
inserted
replaced
123:c77884c6318d | 124:9b50b4588a93 |
---|---|
480 | 480 |
481 return instantiator; | 481 return instantiator; |
482 } | 482 } |
483 | 483 |
484 static Lisp_Object | 484 static Lisp_Object |
485 instantiate_image_instantiator (Lisp_Object device, Lisp_Object instantiator, | 485 instantiate_image_instantiator (Lisp_Object device, Lisp_Object domain, |
486 Lisp_Object instantiator, | |
486 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 487 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
487 int dest_mask) | 488 int dest_mask) |
488 { | 489 { |
489 Lisp_Object ii; | 490 Lisp_Object ii; |
490 struct gcpro gcpro1; | 491 struct gcpro gcpro1; |
500 if (!HAS_IIFORMAT_METH_P (meths, instantiate)) | 501 if (!HAS_IIFORMAT_METH_P (meths, instantiate)) |
501 signal_simple_error | 502 signal_simple_error |
502 ("Don't know how to instantiate this image instantiator?", | 503 ("Don't know how to instantiate this image instantiator?", |
503 instantiator); | 504 instantiator); |
504 IIFORMAT_METH (meths, instantiate, (ii, instantiator, pointer_fg, | 505 IIFORMAT_METH (meths, instantiate, (ii, instantiator, pointer_fg, |
505 pointer_bg, dest_mask)); | 506 pointer_bg, dest_mask, domain)); |
506 } | 507 } |
507 UNGCPRO; | 508 UNGCPRO; |
508 | 509 |
509 return ii; | 510 return ii; |
510 } | 511 } |
983 make_int (dest_mask)); | 984 make_int (dest_mask)); |
984 GCPRO1 (data); | 985 GCPRO1 (data); |
985 if (VECTORP (data) | 986 if (VECTORP (data) |
986 && EQ (vector_data (XVECTOR (data))[0], Qinherit)) | 987 && EQ (vector_data (XVECTOR (data))[0], Qinherit)) |
987 signal_simple_error ("inheritance not allowed here", data); | 988 signal_simple_error ("inheritance not allowed here", data); |
988 ii = instantiate_image_instantiator (device, data, Qnil, Qnil, dest_mask); | 989 ii = instantiate_image_instantiator (device, device, data, |
990 Qnil, Qnil, dest_mask); | |
989 RETURN_UNGCPRO (ii); | 991 RETURN_UNGCPRO (ii); |
990 } | 992 } |
991 | 993 |
992 DEFUN ("make-image-instance", Fmake_image_instance, 1, 4, 0, /* | 994 DEFUN ("make-image-instance", Fmake_image_instance, 1, 4, 0, /* |
993 Create a new `image-instance' object. | 995 Create a new `image-instance' object. |
1328 } | 1330 } |
1329 | 1331 |
1330 static void | 1332 static void |
1331 nothing_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1333 nothing_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1332 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1334 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1333 int dest_mask) | 1335 int dest_mask, Lisp_Object domain) |
1334 { | 1336 { |
1335 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1337 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1336 | 1338 |
1337 if (dest_mask & IMAGE_NOTHING_MASK) | 1339 if (dest_mask & IMAGE_NOTHING_MASK) |
1338 IMAGE_INSTANCE_TYPE (ii) = IMAGE_NOTHING; | 1340 IMAGE_INSTANCE_TYPE (ii) = IMAGE_NOTHING; |
1370 } | 1372 } |
1371 | 1373 |
1372 static void | 1374 static void |
1373 inherit_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1375 inherit_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1374 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1376 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1375 int dest_mask) | 1377 int dest_mask, Lisp_Object domain) |
1376 { | 1378 { |
1377 /* handled specially in image_instantiate */ | 1379 /* handled specially in image_instantiate */ |
1378 abort (); | 1380 abort (); |
1379 } | 1381 } |
1380 | 1382 |
1397 | 1399 |
1398 /* called from autodetect_instantiate() */ | 1400 /* called from autodetect_instantiate() */ |
1399 void | 1401 void |
1400 string_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1402 string_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1401 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1403 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1402 int dest_mask) | 1404 int dest_mask, Lisp_Object domain) |
1403 { | 1405 { |
1404 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 1406 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
1405 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1407 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1406 | 1408 |
1407 assert (!NILP (data)); | 1409 assert (!NILP (data)); |
1433 | 1435 |
1434 static void | 1436 static void |
1435 formatted_string_instantiate (Lisp_Object image_instance, | 1437 formatted_string_instantiate (Lisp_Object image_instance, |
1436 Lisp_Object instantiator, | 1438 Lisp_Object instantiator, |
1437 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1439 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1438 int dest_mask) | 1440 int dest_mask, Lisp_Object domain) |
1439 { | 1441 { |
1440 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 1442 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
1441 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1443 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1442 | 1444 |
1443 assert (!NILP (data)); | 1445 assert (!NILP (data)); |
1597 car of the locative to the resulting instance, | 1599 car of the locative to the resulting instance, |
1598 which gets recorded instead. */ | 1600 which gets recorded instead. */ |
1599 record_unwind_protect (image_instantiate_cache_result, | 1601 record_unwind_protect (image_instantiate_cache_result, |
1600 locative); | 1602 locative); |
1601 instance = instantiate_image_instantiator (device, | 1603 instance = instantiate_image_instantiator (device, |
1604 domain, | |
1602 instantiator, | 1605 instantiator, |
1603 pointer_fg, pointer_bg, | 1606 pointer_fg, pointer_bg, |
1604 dest_mask); | 1607 dest_mask); |
1605 Fsetcar (locative, instance); | 1608 Fsetcar (locative, instance); |
1606 unbind_to (speccount, Qnil); | 1609 unbind_to (speccount, Qnil); |