Mercurial > hg > xemacs-beta
comparison src/glyphs-x.c @ 3094:ad2f4ae9895b
[xemacs-hg @ 2005-11-26 11:45:47 by stephent]
Xft merge. <87k6ev4p8q.fsf@tleepslib.sk.tsukuba.ac.jp>
author | stephent |
---|---|
date | Sat, 26 Nov 2005 11:46:25 +0000 |
parents | 4eb2a8c07cb3 |
children | 9b4442ac18c7 |
comparison
equal
deleted
inserted
replaced
3093:769dc945b085 | 3094:ad2f4ae9895b |
---|---|
237 | 237 |
238 color.red = qtable->rm[i] ? qtable->rm[i] << 8 : 0; | 238 color.red = qtable->rm[i] ? qtable->rm[i] << 8 : 0; |
239 color.green = qtable->gm[i] ? qtable->gm[i] << 8 : 0; | 239 color.green = qtable->gm[i] ? qtable->gm[i] << 8 : 0; |
240 color.blue = qtable->bm[i] ? qtable->bm[i] << 8 : 0; | 240 color.blue = qtable->bm[i] ? qtable->bm[i] << 8 : 0; |
241 color.flags = DoRed | DoGreen | DoBlue; | 241 color.flags = DoRed | DoGreen | DoBlue; |
242 res = allocate_nearest_color (dpy, cmap, vis, &color); | 242 res = x_allocate_nearest_color (dpy, cmap, vis, &color); |
243 if (res > 0 && res < 3) | 243 if (res > 0 && res < 3) |
244 { | 244 { |
245 DO_REALLOC(*pixtbl, pixcount, n+1, unsigned long); | 245 DO_REALLOC(*pixtbl, pixcount, n+1, unsigned long); |
246 (*pixtbl)[n] = color.pixel; | 246 (*pixtbl)[n] = color.pixel; |
247 n++; | 247 n++; |
2362 pixel = FACE_BACKGROUND (IMAGE_INSTANCE_WIDGET_FACE (ii), | 2362 pixel = FACE_BACKGROUND (IMAGE_INSTANCE_WIDGET_FACE (ii), |
2363 domain); | 2363 domain); |
2364 bcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); | 2364 bcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); |
2365 lw_add_widget_value_arg (wv, XtNbackground, bcolor.pixel); | 2365 lw_add_widget_value_arg (wv, XtNbackground, bcolor.pixel); |
2366 | 2366 |
2367 { | |
2368 Lisp_Object face = IMAGE_INSTANCE_WIDGET_FACE (ii); | |
2369 Lisp_Font_Instance *fi = | |
2370 XFONT_INSTANCE (query_string_font (IMAGE_INSTANCE_WIDGET_TEXT (ii), | |
2371 face, | |
2372 domain)); | |
2373 XFontStruct *fs = FONT_INSTANCE_X_FONT (fi); | |
2374 #ifdef USE_XFT | |
2375 XftFont *rf = FONT_INSTANCE_X_XFTFONT (fi); | |
2376 | |
2377 if (rf) | |
2378 { | |
2379 /* #### What to do about Motif? */ | |
2380 lw_add_widget_value_arg (wv, XtNxftFont, (XtArgVal) rf); | |
2381 } | |
2382 #endif | |
2383 | |
2384 if (fs) | |
2385 { | |
2367 #ifdef LWLIB_WIDGETS_MOTIF | 2386 #ifdef LWLIB_WIDGETS_MOTIF |
2368 fontList = XmFontListCreate | 2387 fontList = XmFontListCreate (fs, XmSTRING_DEFAULT_CHARSET); |
2369 (FONT_INSTANCE_X_FONT | 2388 lw_add_widget_value_arg (wv, XmNfontList, (XtArgVal) fontList); |
2370 (XFONT_INSTANCE (query_string_font | 2389 #endif |
2371 (IMAGE_INSTANCE_WIDGET_TEXT (ii), | 2390 lw_add_widget_value_arg (wv, XtNfont, (XtArgVal) fs); |
2372 IMAGE_INSTANCE_WIDGET_FACE (ii), | 2391 } |
2373 domain))), XmSTRING_DEFAULT_CHARSET); | 2392 |
2374 lw_add_widget_value_arg (wv, XmNfontList, (XtArgVal)fontList); | 2393 #ifdef USE_XFT |
2375 #endif | 2394 /* #### sanity check, should wrap in appropriate ERROR_CHECK macro */ |
2376 lw_add_widget_value_arg | 2395 if (!rf && !fs) |
2377 (wv, XtNfont, (XtArgVal)FONT_INSTANCE_X_FONT | 2396 warn_when_safe_lispobj |
2378 (XFONT_INSTANCE (query_string_font | 2397 (intern ("xft"), Qdebug, |
2379 (IMAGE_INSTANCE_WIDGET_TEXT (ii), | 2398 Fcons (build_string ("missing font in update_widget_face"), |
2380 IMAGE_INSTANCE_WIDGET_FACE (ii), | 2399 Fface_name (face))); |
2381 domain)))); | 2400 #endif |
2401 } | |
2382 wv->change = VISIBLE_CHANGE; | 2402 wv->change = VISIBLE_CHANGE; |
2383 /* #### Megahack - but its just getting too complicated to do this | 2403 /* #### Megahack - but its just getting too complicated to do this |
2384 in the right place. */ | 2404 in the right place. */ |
2385 if (EQ (IMAGE_INSTANCE_WIDGET_TYPE (ii), Qtab_control)) | 2405 if (EQ (IMAGE_INSTANCE_WIDGET_TYPE (ii), Qtab_control)) |
2386 update_tab_widget_face (wv, ii, domain); | 2406 update_tab_widget_face (wv, ii, domain); |