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