Implementing italic-bold. This will require an increase of the avgWdth.
This commit is contained in:
		
							parent
							
								
									b156352656
								
							
						
					
					
						commit
						a62789788c
					
				| @ -1,8 +1,9 @@ | |||||||
| 
 | 
 | ||||||
| #define FONT "-*-*-medium-r-*-*-*-120-75-75-*-60-*-*" | #define FONT "-*-*-medium-r-*-*-*-120-75-75-*-70-*-*" | ||||||
| #define BOLDFONT "-*-*-bold-r-*-*-*-120-75-75-*-60-*-*" | #define BOLDFONT "-*-*-bold-r-*-*-*-120-75-75-*-70-*-*" | ||||||
| /* If italic is not availbel, fall back to bold. */ | /* If italic is not availbel, fall back to bold. */ | ||||||
| #define ITALICFONT "-*-*-medium-o-*-*-*-120-75-75-*-60-*-*," BOLDFONT | #define ITALICFONT "-*-*-medium-o-*-*-*-120-75-75-*-70-*-*," BOLDFONT | ||||||
|  | #define ITALICBOLDFONT "-*-*-bold-o-*-*-*-120-75-75-*-70-*-*," BOLDFONT | ||||||
| 
 | 
 | ||||||
| /* Space in pixels around the terminal buffer */ | /* Space in pixels around the terminal buffer */ | ||||||
| #define BORDER 2 | #define BORDER 2 | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								st.c
									
									
									
									
									
								
							| @ -240,7 +240,7 @@ typedef struct { | |||||||
| 		short lbearing; | 		short lbearing; | ||||||
| 		short rbearing; | 		short rbearing; | ||||||
| 		XFontSet set; | 		XFontSet set; | ||||||
| 	} font, bfont, ifont; | 	} font, bfont, ifont, ibfont; | ||||||
| } DC; | } DC; | ||||||
| 
 | 
 | ||||||
| static void die(const char*, ...); | static void die(const char*, ...); | ||||||
| @ -1945,13 +1945,15 @@ xgetfontinfo(XFontSet set, int *ascent, int *descent, short *lbearing, short *rb | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| initfonts(char *fontstr, char *bfontstr, char *ifontstr) { | initfonts(char *fontstr, char *bfontstr, char *ifontstr, char *ibfontstr) { | ||||||
| 	if((dc.font.set = xinitfont(fontstr)) == NULL) | 	if((dc.font.set = xinitfont(fontstr)) == NULL) | ||||||
| 		die("Can't load font %s\n", fontstr); | 		die("Can't load font %s\n", fontstr); | ||||||
| 	if((dc.bfont.set = xinitfont(bfontstr)) == NULL) | 	if((dc.bfont.set = xinitfont(bfontstr)) == NULL) | ||||||
| 		die("Can't load bfont %s\n", bfontstr); | 		die("Can't load bfont %s\n", bfontstr); | ||||||
| 	if((dc.ifont.set = xinitfont(ifontstr)) == NULL) | 	if((dc.ifont.set = xinitfont(ifontstr)) == NULL) | ||||||
| 		die("Can't load ifont %s\n", ifontstr); | 		die("Can't load ifont %s\n", ifontstr); | ||||||
|  | 	if((dc.ibfont.set = xinitfont(ibfontstr)) == NULL) | ||||||
|  | 		die("Can't load ibfont %s\n", ibfontstr); | ||||||
| 
 | 
 | ||||||
| 	xgetfontinfo(dc.font.set, &dc.font.ascent, &dc.font.descent, | 	xgetfontinfo(dc.font.set, &dc.font.ascent, &dc.font.descent, | ||||||
| 	    &dc.font.lbearing, &dc.font.rbearing); | 	    &dc.font.lbearing, &dc.font.rbearing); | ||||||
| @ -1959,6 +1961,8 @@ initfonts(char *fontstr, char *bfontstr, char *ifontstr) { | |||||||
| 	    &dc.bfont.lbearing, &dc.bfont.rbearing); | 	    &dc.bfont.lbearing, &dc.bfont.rbearing); | ||||||
| 	xgetfontinfo(dc.ifont.set, &dc.ifont.ascent, &dc.ifont.descent, | 	xgetfontinfo(dc.ifont.set, &dc.ifont.ascent, &dc.ifont.descent, | ||||||
| 	    &dc.ifont.lbearing, &dc.ifont.rbearing); | 	    &dc.ifont.lbearing, &dc.ifont.rbearing); | ||||||
|  | 	xgetfontinfo(dc.ibfont.set, &dc.ibfont.ascent, &dc.ibfont.descent, | ||||||
|  | 	    &dc.ibfont.lbearing, &dc.ibfont.rbearing); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| @ -1973,7 +1977,7 @@ xinit(void) { | |||||||
| 	xw.scr = XDefaultScreen(xw.dpy); | 	xw.scr = XDefaultScreen(xw.dpy); | ||||||
| 
 | 
 | ||||||
| 	/* font */ | 	/* font */ | ||||||
| 	initfonts(FONT, BOLDFONT, ITALICFONT); | 	initfonts(FONT, BOLDFONT, ITALICFONT, ITALICBOLDFONT); | ||||||
| 
 | 
 | ||||||
| 	/* XXX: Assuming same size for bold font */ | 	/* XXX: Assuming same size for bold font */ | ||||||
| 	xw.cw = dc.font.rbearing - dc.font.lbearing; | 	xw.cw = dc.font.rbearing - dc.font.lbearing; | ||||||
| @ -2068,6 +2072,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | |||||||
| 
 | 
 | ||||||
| 	if(base.mode & ATTR_ITALIC) | 	if(base.mode & ATTR_ITALIC) | ||||||
| 		fontset = dc.ifont.set; | 		fontset = dc.ifont.set; | ||||||
|  | 	if(base.mode & (ATTR_ITALIC|ATTR_ITALIC)) | ||||||
|  | 		fontset = dc.ibfont.set; | ||||||
| 
 | 
 | ||||||
| 	XSetBackground(xw.dpy, dc.gc, dc.col[bg]); | 	XSetBackground(xw.dpy, dc.gc, dc.col[bg]); | ||||||
| 	XSetForeground(xw.dpy, dc.gc, dc.col[fg]); | 	XSetForeground(xw.dpy, dc.gc, dc.col[fg]); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user