Mercurial > hg > xemacs-beta
comparison src/glyphs-x.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 | 6608ceec7cf8 |
comparison
equal
deleted
inserted
replaced
123:c77884c6318d | 124:9b50b4588a93 |
---|---|
108 | 108 |
109 static void cursor_font_instantiate (Lisp_Object image_instance, | 109 static void cursor_font_instantiate (Lisp_Object image_instance, |
110 Lisp_Object instantiator, | 110 Lisp_Object instantiator, |
111 Lisp_Object pointer_fg, | 111 Lisp_Object pointer_fg, |
112 Lisp_Object pointer_bg, | 112 Lisp_Object pointer_bg, |
113 int dest_mask); | 113 int dest_mask, |
114 Lisp_Object domain); | |
114 | 115 |
115 #include "bitmaps.h" | 116 #include "bitmaps.h" |
116 | 117 |
117 | 118 |
118 /************************************************************************/ | 119 /************************************************************************/ |
1032 /* Instantiate method for XBM's. */ | 1033 /* Instantiate method for XBM's. */ |
1033 | 1034 |
1034 static void | 1035 static void |
1035 xbm_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1036 xbm_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1036 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1037 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1037 int dest_mask) | 1038 int dest_mask, Lisp_Object domain) |
1038 { | 1039 { |
1039 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 1040 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
1040 CONST char *gcc_go_home; | 1041 CONST char *gcc_go_home; |
1041 | 1042 |
1042 assert (!NILP (data)); | 1043 assert (!NILP (data)); |
1268 /* The code in this routine is based on example.c from the JPEG library | 1269 /* The code in this routine is based on example.c from the JPEG library |
1269 source code and from gif_instantiate() */ | 1270 source code and from gif_instantiate() */ |
1270 static void | 1271 static void |
1271 jpeg_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1272 jpeg_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1272 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1273 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1273 int dest_mask) | 1274 int dest_mask, Lisp_Object domain) |
1274 { | 1275 { |
1275 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1276 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1276 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); | 1277 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); |
1277 Display *dpy; | 1278 Display *dpy; |
1278 Screen *scr; | 1279 Screen *scr; |
1745 #endif | 1746 #endif |
1746 | 1747 |
1747 static void | 1748 static void |
1748 gif_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 1749 gif_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
1749 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 1750 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
1750 int dest_mask) | 1751 int dest_mask, Lisp_Object domain) |
1751 { | 1752 { |
1752 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 1753 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
1753 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); | 1754 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); |
1754 Display *dpy; | 1755 Display *dpy; |
1755 Screen *scr; | 1756 Screen *scr; |
2030 #endif | 2031 #endif |
2031 | 2032 |
2032 static void | 2033 static void |
2033 png_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 2034 png_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
2034 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 2035 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
2035 int dest_mask) | 2036 int dest_mask, Lisp_Object domain) |
2036 { | 2037 { |
2037 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 2038 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
2038 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); | 2039 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); |
2039 Display *dpy; | 2040 Display *dpy; |
2040 Screen *scr; | 2041 Screen *scr; |
2324 } | 2325 } |
2325 | 2326 |
2326 static void | 2327 static void |
2327 tiff_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 2328 tiff_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
2328 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 2329 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
2329 int dest_mask) | 2330 int dest_mask, Lisp_Object domain) |
2330 { | 2331 { |
2331 abort (); | 2332 abort (); |
2332 } | 2333 } |
2333 | 2334 |
2334 #endif /* HAVE_TIFF */ | 2335 #endif /* HAVE_TIFF */ |
2554 Upgrade to version 3.2g or better or compile with --with-xpm=no. | 2555 Upgrade to version 3.2g or better or compile with --with-xpm=no. |
2555 #endif /* !XPM_DOES_BUFFERS */ | 2556 #endif /* !XPM_DOES_BUFFERS */ |
2556 | 2557 |
2557 static XpmColorSymbol * | 2558 static XpmColorSymbol * |
2558 extract_xpm_color_names (XpmAttributes *xpmattrs, Lisp_Object device, | 2559 extract_xpm_color_names (XpmAttributes *xpmattrs, Lisp_Object device, |
2560 Lisp_Object domain, | |
2559 Lisp_Object color_symbol_alist) | 2561 Lisp_Object color_symbol_alist) |
2560 { | 2562 { |
2561 /* This function can GC */ | 2563 /* This function can GC */ |
2562 Screen *xs = LISP_DEVICE_TO_X_SCREEN (device); | 2564 Screen *xs = LISP_DEVICE_TO_X_SCREEN (device); |
2563 Display *dpy = DisplayOfScreen (xs); | 2565 Display *dpy = DisplayOfScreen (xs); |
2586 value = | 2588 value = |
2587 Fmake_color_instance | 2589 Fmake_color_instance |
2588 (value, device, encode_error_behavior_flag (ERROR_ME_NOT)); | 2590 (value, device, encode_error_behavior_flag (ERROR_ME_NOT)); |
2589 else | 2591 else |
2590 { | 2592 { |
2591 Lisp_Object frame = DEVICE_SELECTED_FRAME(XDEVICE(device)); | |
2592 Lisp_Object window = FRAME_SELECTED_WINDOW(XFRAME(frame)); | |
2593 assert (COLOR_SPECIFIERP (value)); | 2593 assert (COLOR_SPECIFIERP (value)); |
2594 value = Fspecifier_instance (value, window, Qnil, Qnil); | 2594 value = Fspecifier_instance (value, domain, Qnil, Qnil); |
2595 } | 2595 } |
2596 if (NILP (value)) | 2596 if (NILP (value)) |
2597 continue; | 2597 continue; |
2598 results = noseeum_cons (noseeum_cons (name, value), results); | 2598 results = noseeum_cons (noseeum_cons (name, value), results); |
2599 i++; | 2599 i++; |
2638 } | 2638 } |
2639 | 2639 |
2640 static void | 2640 static void |
2641 xpm_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 2641 xpm_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
2642 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 2642 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
2643 int dest_mask) | 2643 int dest_mask, Lisp_Object domain) |
2644 { | 2644 { |
2645 /* This function can GC */ | 2645 /* This function can GC */ |
2646 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 2646 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
2647 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 2647 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
2648 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); | 2648 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); |
2699 { | 2699 { |
2700 xpmattrs.closeness = 65535; | 2700 xpmattrs.closeness = 65535; |
2701 xpmattrs.valuemask |= XpmCloseness; | 2701 xpmattrs.valuemask |= XpmCloseness; |
2702 } | 2702 } |
2703 | 2703 |
2704 color_symbols = extract_xpm_color_names (&xpmattrs, device, | 2704 color_symbols = extract_xpm_color_names (&xpmattrs, device, domain, |
2705 color_symbol_alist); | 2705 color_symbol_alist); |
2706 | 2706 |
2707 result = XpmCreatePixmapFromBuffer (dpy, | 2707 result = XpmCreatePixmapFromBuffer (dpy, |
2708 RootWindowOfScreen (xs), | 2708 RootWindowOfScreen (xs), |
2709 (char *) XSTRING_DATA (data), | 2709 (char *) XSTRING_DATA (data), |
3050 #undef SYSV32 | 3050 #undef SYSV32 |
3051 | 3051 |
3052 static void | 3052 static void |
3053 xface_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 3053 xface_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
3054 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 3054 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
3055 int dest_mask) | 3055 int dest_mask, Lisp_Object domain) |
3056 { | 3056 { |
3057 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 3057 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
3058 int i, stattis; | 3058 int i, stattis; |
3059 char *p, *bits, *bp; | 3059 char *p, *bits, *bp; |
3060 CONST char * volatile emsg = 0; | 3060 CONST char * volatile emsg = 0; |
3218 static void | 3218 static void |
3219 autodetect_instantiate (Lisp_Object image_instance, | 3219 autodetect_instantiate (Lisp_Object image_instance, |
3220 Lisp_Object instantiator, | 3220 Lisp_Object instantiator, |
3221 Lisp_Object pointer_fg, | 3221 Lisp_Object pointer_fg, |
3222 Lisp_Object pointer_bg, | 3222 Lisp_Object pointer_bg, |
3223 int dest_mask) | 3223 int dest_mask, Lisp_Object domain) |
3224 { | 3224 { |
3225 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 3225 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
3226 struct gcpro gcpro1, gcpro2, gcpro3; | 3226 struct gcpro gcpro1, gcpro2, gcpro3; |
3227 Lisp_Object alist = Qnil; | 3227 Lisp_Object alist = Qnil; |
3228 Lisp_Object result = Qnil; | 3228 Lisp_Object result = Qnil; |
3246 result = alist_to_tagged_vector (Qstring, alist); | 3246 result = alist_to_tagged_vector (Qstring, alist); |
3247 free_alist (alist); | 3247 free_alist (alist); |
3248 | 3248 |
3249 if (is_cursor_font) | 3249 if (is_cursor_font) |
3250 cursor_font_instantiate (image_instance, result, pointer_fg, | 3250 cursor_font_instantiate (image_instance, result, pointer_fg, |
3251 pointer_bg, dest_mask); | 3251 pointer_bg, dest_mask, domain); |
3252 else | 3252 else |
3253 string_instantiate (image_instance, result, pointer_fg, | 3253 string_instantiate (image_instance, result, pointer_fg, |
3254 pointer_bg, dest_mask); | 3254 pointer_bg, dest_mask, domain); |
3255 | 3255 |
3256 UNGCPRO; | 3256 UNGCPRO; |
3257 } | 3257 } |
3258 | 3258 |
3259 | 3259 |
3315 } | 3315 } |
3316 | 3316 |
3317 static void | 3317 static void |
3318 font_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 3318 font_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
3319 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 3319 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
3320 int dest_mask) | 3320 int dest_mask, Lisp_Object domain) |
3321 { | 3321 { |
3322 /* This function can GC */ | 3322 /* This function can GC */ |
3323 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 3323 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
3324 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 3324 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
3325 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); | 3325 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); |
3413 } | 3413 } |
3414 | 3414 |
3415 static void | 3415 static void |
3416 cursor_font_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 3416 cursor_font_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
3417 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 3417 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
3418 int dest_mask) | 3418 int dest_mask, Lisp_Object domain) |
3419 { | 3419 { |
3420 /* This function can GC */ | 3420 /* This function can GC */ |
3421 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); | 3421 Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); |
3422 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); | 3422 struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); |
3423 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); | 3423 Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); |