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