mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	Add support for all Pango font weight options
This commit is contained in:
		
							parent
							
								
									44295c0c13
								
							
						
					
					
						commit
						6a810ad762
					
				
					 3 changed files with 72 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -12,7 +12,17 @@ enum font_slant {
 | 
			
		|||
 | 
			
		||||
enum font_weight {
 | 
			
		||||
	FONT_WEIGHT_NORMAL = 0,
 | 
			
		||||
	FONT_WEIGHT_BOLD
 | 
			
		||||
	FONT_WEIGHT_THIN,
 | 
			
		||||
	FONT_WEIGHT_ULTRALIGHT,
 | 
			
		||||
	FONT_WEIGHT_LIGHT,
 | 
			
		||||
	FONT_WEIGHT_SEMILIGHT,
 | 
			
		||||
	FONT_WEIGHT_BOOK,
 | 
			
		||||
	FONT_WEIGHT_MEDIUM,
 | 
			
		||||
	FONT_WEIGHT_SEMIBOLD,
 | 
			
		||||
	FONT_WEIGHT_BOLD,
 | 
			
		||||
	FONT_WEIGHT_ULTRABOLD,
 | 
			
		||||
	FONT_WEIGHT_HEAVY,
 | 
			
		||||
	FONT_WEIGHT_ULTRAHEAVY
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct font {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,8 +23,43 @@ font_to_pango_desc(struct font *font)
 | 
			
		|||
	if (font->slant == FONT_SLANT_OBLIQUE) {
 | 
			
		||||
		pango_font_description_set_style(desc, PANGO_STYLE_OBLIQUE);
 | 
			
		||||
	}
 | 
			
		||||
	if (font->weight == FONT_WEIGHT_BOLD) {
 | 
			
		||||
	switch (font->weight) {
 | 
			
		||||
	case FONT_WEIGHT_THIN:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_THIN);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_ULTRALIGHT:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRALIGHT);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_LIGHT:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_SEMILIGHT:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_SEMILIGHT);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_BOOK:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_BOOK);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_NORMAL:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_MEDIUM:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_MEDIUM);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_SEMIBOLD:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_SEMIBOLD);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_BOLD:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_ULTRABOLD:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRABOLD);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_HEAVY:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_HEAVY);
 | 
			
		||||
		break;
 | 
			
		||||
	case FONT_WEIGHT_ULTRAHEAVY:
 | 
			
		||||
		pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRAHEAVY);
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	return desc;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -862,8 +862,31 @@ set_font_attr(struct font *font, const char *nodename, const char *content)
 | 
			
		|||
			font->slant = FONT_SLANT_NORMAL;
 | 
			
		||||
		}
 | 
			
		||||
	} else if (!strcmp(nodename, "weight")) {
 | 
			
		||||
		font->weight = !strcasecmp(content, "bold") ?
 | 
			
		||||
			FONT_WEIGHT_BOLD : FONT_WEIGHT_NORMAL;
 | 
			
		||||
		if (!strcasecmp(content, "thin")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_THIN;
 | 
			
		||||
		} else if (!strcasecmp(content, "ultralight")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_ULTRALIGHT;
 | 
			
		||||
		} else if (!strcasecmp(content, "light")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_LIGHT;
 | 
			
		||||
		} else if (!strcasecmp(content, "semilight")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_SEMILIGHT;
 | 
			
		||||
		} else if (!strcasecmp(content, "book")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_BOOK;
 | 
			
		||||
		} else if (!strcasecmp(content, "medium")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_MEDIUM;
 | 
			
		||||
		} else if (!strcasecmp(content, "semibold")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_SEMIBOLD;
 | 
			
		||||
		} else if (!strcasecmp(content, "bold")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_BOLD;
 | 
			
		||||
		} else if (!strcasecmp(content, "ultrabold")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_ULTRABOLD;
 | 
			
		||||
		} else if (!strcasecmp(content, "heavy")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_HEAVY;
 | 
			
		||||
		} else if (!strcasecmp(content, "ultraheavy")) {
 | 
			
		||||
			font->weight = FONT_WEIGHT_ULTRAHEAVY;
 | 
			
		||||
		} else {
 | 
			
		||||
			font->weight = FONT_WEIGHT_NORMAL;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue