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