Mercurial > hg > xemacs-beta
comparison src/glyphs.h @ 187:b405438285a2 r20-3b20
Import from CVS: tag r20-3b20
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:56:28 +0200 |
parents | 3d6bfa290dbd |
children | 8efd647ea9ca |
comparison
equal
deleted
inserted
replaced
186:24ac94803b48 | 187:b405438285a2 |
---|---|
268 extern Lisp_Object Qcolor_pixmap_image_instance_p; | 268 extern Lisp_Object Qcolor_pixmap_image_instance_p; |
269 extern Lisp_Object Qpointer_image_instance_p; | 269 extern Lisp_Object Qpointer_image_instance_p; |
270 extern Lisp_Object Qsubwindow_image_instance_p; | 270 extern Lisp_Object Qsubwindow_image_instance_p; |
271 | 271 |
272 #define IMAGE_INSTANCE_TYPE_P(ii, type) \ | 272 #define IMAGE_INSTANCE_TYPE_P(ii, type) \ |
273 (IMAGE_INSTANCEP (ii) && XIMAGE_INSTANCE_TYPE (ii) == type) | 273 (IMAGE_INSTANCEP (ii) && XIMAGE_INSTANCE_TYPE (ii) == type) |
274 | 274 |
275 #define NOTHING_IMAGE_INSTANCEP(ii) IMAGE_INSTANCE_TYPE_P (ii, IMAGE_NOTHING) | 275 #define NOTHING_IMAGE_INSTANCEP(ii) \ |
276 #define TEXT_IMAGE_INSTANCEP(ii) IMAGE_INSTANCE_TYPE_P (ii, IMAGE_TEXT) | 276 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_NOTHING) |
277 #define TEXT_IMAGE_INSTANCEP(ii) \ | |
278 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_TEXT) | |
277 #define MONO_PIXMAP_IMAGE_INSTANCEP(ii) \ | 279 #define MONO_PIXMAP_IMAGE_INSTANCEP(ii) \ |
278 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_MONO_PIXMAP) | 280 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_MONO_PIXMAP) |
279 #define COLOR_PIXMAP_IMAGE_INSTANCEP(ii) \ | 281 #define COLOR_PIXMAP_IMAGE_INSTANCEP(ii) \ |
280 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_COLOR_PIXMAP) | 282 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_COLOR_PIXMAP) |
281 #define POINTER_IMAGE_INSTANCEP(ii) IMAGE_INSTANCE_TYPE_P (ii, IMAGE_POINTER) | 283 #define POINTER_IMAGE_INSTANCEP(ii) \ |
284 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_POINTER) | |
282 #define SUBWINDOW_IMAGE_INSTANCEP(ii) \ | 285 #define SUBWINDOW_IMAGE_INSTANCEP(ii) \ |
283 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_SUBWINDOW) | 286 IMAGE_INSTANCE_TYPE_P (ii, IMAGE_SUBWINDOW) |
284 | 287 |
285 #define CHECK_NOTHING_IMAGE_INSTANCE(x) \ | 288 #define CHECK_NOTHING_IMAGE_INSTANCE(x) do { \ |
286 do { CHECK_IMAGE_INSTANCE (x); \ | 289 CHECK_IMAGE_INSTANCE (x); \ |
287 if (!NOTHING_IMAGE_INSTANCEP (x)) \ | 290 if (!NOTHING_IMAGE_INSTANCEP (x)) \ |
288 x = wrong_type_argument (Qnothing_image_instance_p, (x)); \ | 291 x = wrong_type_argument (Qnothing_image_instance_p, (x)); \ |
289 } while (0) | 292 } while (0) |
290 | 293 |
291 #define CHECK_TEXT_IMAGE_INSTANCE(x) \ | 294 #define CHECK_TEXT_IMAGE_INSTANCE(x) do { \ |
292 do { CHECK_IMAGE_INSTANCE (x); \ | 295 CHECK_IMAGE_INSTANCE (x); \ |
293 if (!TEXT_IMAGE_INSTANCEP (x)) \ | 296 if (!TEXT_IMAGE_INSTANCEP (x)) \ |
294 x = wrong_type_argument (Qtext_image_instance_p, (x)); \ | 297 x = wrong_type_argument (Qtext_image_instance_p, (x)); \ |
295 } while (0) | 298 } while (0) |
296 | 299 |
297 #define CHECK_MONO_PIXMAP_IMAGE_INSTANCE(x) \ | 300 #define CHECK_MONO_PIXMAP_IMAGE_INSTANCE(x) do { \ |
298 do { CHECK_IMAGE_INSTANCE (x); \ | 301 CHECK_IMAGE_INSTANCE (x); \ |
299 if (!MONO_PIXMAP_IMAGE_INSTANCEP (x)) \ | 302 if (!MONO_PIXMAP_IMAGE_INSTANCEP (x)) \ |
300 x = wrong_type_argument (Qmono_pixmap_image_instance_p, (x)); \ | 303 x = wrong_type_argument (Qmono_pixmap_image_instance_p, (x)); \ |
301 } while (0) | 304 } while (0) |
302 | 305 |
303 #define CHECK_COLOR_PIXMAP_IMAGE_INSTANCE(x) \ | 306 #define CHECK_COLOR_PIXMAP_IMAGE_INSTANCE(x) do { \ |
304 do { CHECK_IMAGE_INSTANCE (x); \ | 307 CHECK_IMAGE_INSTANCE (x); \ |
305 if (!COLOR_PIXMAP_IMAGE_INSTANCEP (x)) \ | 308 if (!COLOR_PIXMAP_IMAGE_INSTANCEP (x)) \ |
306 x = wrong_type_argument (Qcolor_pixmap_image_instance_p, (x)); \ | 309 x = wrong_type_argument (Qcolor_pixmap_image_instance_p, (x)); \ |
307 } while (0) | 310 } while (0) |
308 | 311 |
309 #define CHECK_POINTER_IMAGE_INSTANCE(x) \ | 312 #define CHECK_POINTER_IMAGE_INSTANCE(x) do { \ |
310 do { CHECK_IMAGE_INSTANCE (x); \ | 313 CHECK_IMAGE_INSTANCE (x); \ |
311 if (!POINTER_IMAGE_INSTANCEP (x)) \ | 314 if (!POINTER_IMAGE_INSTANCEP (x)) \ |
312 x = wrong_type_argument (Qpointer_image_instance_p, (x)); \ | 315 x = wrong_type_argument (Qpointer_image_instance_p, (x)); \ |
313 } while (0) | 316 } while (0) |
314 | 317 |
315 #define CHECK_SUBWINDOW_IMAGE_INSTANCE(x) \ | 318 #define CHECK_SUBWINDOW_IMAGE_INSTANCE(x) do { \ |
316 do { CHECK_IMAGE_INSTANCE (x); \ | 319 CHECK_IMAGE_INSTANCE (x); \ |
317 if (!SUBWINDOW_IMAGE_INSTANCEP (x)) \ | 320 if (!SUBWINDOW_IMAGE_INSTANCEP (x)) \ |
318 x = wrong_type_argument (Qsubwindow_image_instance_p, (x)); \ | 321 x = wrong_type_argument (Qsubwindow_image_instance_p, (x)); \ |
319 } while (0) | 322 } while (0) |
320 | 323 |
321 struct Lisp_Image_Instance | 324 struct Lisp_Image_Instance |
322 { | 325 { |
323 struct lcrecord_header header; | 326 struct lcrecord_header header; |
324 Lisp_Object device; | 327 Lisp_Object device; |
325 Lisp_Object name; | 328 Lisp_Object name; |
326 enum image_instance_type type; | 329 enum image_instance_type type; |
327 union | 330 union |
331 { | |
332 struct | |
328 { | 333 { |
329 struct | 334 Lisp_Object string; |
330 { | 335 } text; |
331 Lisp_Object string; | 336 struct |
332 } text; | 337 { |
333 struct | 338 int width, height, depth; |
334 { | 339 Lisp_Object hotspot_x, hotspot_y; /* integer or Qnil */ |
335 int width, height, depth; | 340 Lisp_Object filename; /* string or Qnil */ |
336 Lisp_Object hotspot_x, hotspot_y; /* integer or Qnil */ | 341 Lisp_Object mask_filename; /* string or Qnil */ |
337 Lisp_Object filename; /* string or Qnil */ | 342 Lisp_Object fg, bg; /* foreground and background colors, |
338 Lisp_Object mask_filename; /* string or Qnil */ | 343 if this is a colorized mono-pixmap |
339 Lisp_Object fg, bg; /* foreground and background colors, | 344 or a pointer */ |
340 if this is a colorized mono-pixmap | 345 } pixmap; /* used for pointers as well */ |
341 or a pointer */ | 346 struct |
342 } pixmap; /* used for pointers as well */ | 347 { |
343 struct | 348 int dummy; /* #### fill in this structure */ |
344 { | 349 } subwindow; |
345 int dummy; /* #### fill in this structure */ | 350 } u; |
346 } subwindow; | |
347 } u; | |
348 | 351 |
349 /* console-type- and image-type-specific data */ | 352 /* console-type- and image-type-specific data */ |
350 void *data; | 353 void *data; |
351 }; | 354 }; |
352 | 355 |
436 #define CHECK_GLYPH(x) CHECK_RECORD (x, glyph) | 439 #define CHECK_GLYPH(x) CHECK_RECORD (x, glyph) |
437 #define CONCHECK_GLYPH(x) CONCHECK_RECORD (x, glyph) | 440 #define CONCHECK_GLYPH(x) CONCHECK_RECORD (x, glyph) |
438 | 441 |
439 extern Lisp_Object Qbuffer_glyph_p, Qpointer_glyph_p, Qicon_glyph_p; | 442 extern Lisp_Object Qbuffer_glyph_p, Qpointer_glyph_p, Qicon_glyph_p; |
440 | 443 |
441 #define CHECK_BUFFER_GLYPH(x) \ | 444 #define CHECK_BUFFER_GLYPH(x) do { \ |
442 do { CHECK_GLYPH (x); \ | 445 CHECK_GLYPH (x); \ |
443 if (XGLYPH (x)->type != GLYPH_BUFFER) \ | 446 if (XGLYPH (x)->type != GLYPH_BUFFER) \ |
444 x = wrong_type_argument (Qbuffer_glyph_p, (x)); \ | 447 x = wrong_type_argument (Qbuffer_glyph_p, (x)); \ |
445 } while (0) | 448 } while (0) |
446 | 449 |
447 #define CHECK_POINTER_GLYPH(x) \ | 450 #define CHECK_POINTER_GLYPH(x) do { \ |
448 do { CHECK_GLYPH (x); \ | 451 CHECK_GLYPH (x); \ |
449 if (XGLYPH (x)->type != GLYPH_POINTER) \ | 452 if (XGLYPH (x)->type != GLYPH_POINTER) \ |
450 x = wrong_type_argument (Qpointer_glyph_p, (x)); \ | 453 x = wrong_type_argument (Qpointer_glyph_p, (x)); \ |
451 } while (0) | 454 } while (0) |
452 | 455 |
453 #define CHECK_ICON_GLYPH(x) \ | 456 #define CHECK_ICON_GLYPH(x) do { \ |
454 do { CHECK_GLYPH (x); \ | 457 CHECK_GLYPH (x); \ |
455 if (XGLYPH (x)->type != GLYPH_ICON) \ | 458 if (XGLYPH (x)->type != GLYPH_ICON) \ |
456 x = wrong_type_argument (Qicon_glyph_p, (x)); \ | 459 x = wrong_type_argument (Qicon_glyph_p, (x)); \ |
457 } while (0) | 460 } while (0) |
458 | 461 |
459 #define GLYPH_TYPE(g) ((g)->type) | 462 #define GLYPH_TYPE(g) ((g)->type) |
460 #define GLYPH_IMAGE(g) ((g)->image) | 463 #define GLYPH_IMAGE(g) ((g)->image) |
461 #define GLYPH_CONTRIB_P(g) ((g)->contrib_p) | 464 #define GLYPH_CONTRIB_P(g) ((g)->contrib_p) |
462 #define GLYPH_BASELINE(g) ((g)->baseline) | 465 #define GLYPH_BASELINE(g) ((g)->baseline) |