Mercurial > hg > xemacs-beta
diff lwlib/xlwmenu.c @ 136:b980b6286996 r20-2b2
Import from CVS: tag r20-2b2
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:31:12 +0200 |
parents | 8619ce7e4c50 |
children | 6b37e6ddd302 |
line wrap: on
line diff
--- a/lwlib/xlwmenu.c Mon Aug 13 09:30:13 2007 +0200 +++ b/lwlib/xlwmenu.c Mon Aug 13 09:31:12 2007 +0200 @@ -69,6 +69,10 @@ #else {XtNfont, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(menu.font), XtRString, "XtDefaultFont"}, +# ifdef USE_XFONTSET + {XtNfontSet, XtCFontSet, XtRFontSet, sizeof(XFontSet), + offset(menu.font_set), XtRString, "XtDefaultFontSet"}, +# endif #endif {XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel), offset(menu.foreground), XtRString, "XtDefaultForeground"}, @@ -328,10 +332,16 @@ XmStringExtent (mw->menu.font_list, s, &width, &height); return width; #else +# ifdef USE_XFONTSET + XRectangle ri, rl; + XmbTextExtents (mw->menu.font_set, s, strlen (s), &ri, &rl); + return rl.width; +# else XCharStruct xcs; int drop; XTextExtents (mw->menu.font, s, strlen (s), &drop, &drop, &drop, &xcs); return xcs.width; +# endif /* USE_XFONTSET */ #endif } @@ -686,8 +696,13 @@ 0, /* ???? layout_direction */ 0); #else +# ifdef USE_XFONTSET + XmbDrawString (XtDisplay (mw), window, mw->menu.font_set, gc, + x, y + mw->menu.font_ascent, string, strlen (string)); +# else XDrawString (XtDisplay (mw), window, gc, x, y + mw->menu.font_ascent, string, strlen (string)); +# endif /* USE_XFONTSET */ #endif } @@ -2660,8 +2675,28 @@ XmFontListFreeFontContext (context); } #else /* Not Motif */ +# ifdef USE_XFONTSET + XFontStruct **fontstruct_list; + char **fontname_list; + XFontStruct *font; + int fontcount = XFontsOfFontSet(mw->menu.font_set, &fontstruct_list, + &fontname_list); + mw->menu.font_ascent = 0; + mw->menu.font_descent = 0; +# if 0 /* nasty, personal debug, Kazz */ + fprintf(stderr, "fontSet count is %d\n", fontcount); +# endif + while (--fontcount >= 0) { + font = fontstruct_list[fontcount]; + if (font->ascent > (int) mw->menu.font_ascent) + mw->menu.font_ascent = font->ascent; + if (font->descent > (int) mw->menu.font_descent) + mw->menu.font_descent = font->descent; + } +# else /* ! USE_XFONTSET */ mw->menu.font_ascent = mw->menu.font->ascent; mw->menu.font_descent = mw->menu.font->descent; +# endif #endif /* NEED_MOTIF */ }