1 /* -*- c-basic-offset:2; tab-width:2; indent-tabs-mode:nil -*- */ 2 3 #ifndef __VT_FONT_H__ 4 #define __VT_FONT_H__ 5 6 #include <mef/ef_charset.h> 7 8 #undef MAX_CHARSET 9 #define MAX_CHARSET 0x1ff 10 #define FONT_CS(font) ((font) & MAX_CHARSET) 11 #define FONT_STYLES (FONT_BOLD | FONT_ITALIC) 12 #define FONT_STYLE_INDEX(font) ((((font) & FONT_STYLES) >> 10) - 1) 13 #define UNICODE_AREA(font) (((font) >> 12) & 0xff) 14 #define NORMAL_FONT_OF(cs) (IS_FULLWIDTH_CS(cs) ? (cs) | FONT_FULLWIDTH : (cs)) 15 #define SIZE_ATTR_FONT(font, size_attr) ((font) | (((int)(size_attr)) << 21)) 16 #define SIZE_ATTR_OF(font) (((font) >> 21) & 0x3) 17 #define NO_SIZE_ATTR(font) ((font) & ~(0x3 << 21)) 18 19 enum { 20 DOUBLE_WIDTH = 0x1, 21 DOUBLE_HEIGHT_TOP = 0x2, 22 DOUBLE_HEIGHT_BOTTOM = 0x3, 23 }; 24 25 typedef enum vt_font { 26 /* 0x00 - MAX_CHARSET(0x1ff) is reserved for ef_charset_t */ 27 28 /* for unicode half or full width tag */ 29 FONT_FULLWIDTH = 0x200u, /* (default) half width */ 30 31 /* for font thickness */ 32 FONT_BOLD = 0x400u, /* (default) medium */ 33 34 /* for font slant */ 35 FONT_ITALIC = 0x800u, /* (default) roman */ 36 37 /* 38 * Note that FONT_ROTATED is defined in fb/ui_font.c as (FONT_ITALIC << 1), 39 * so be careful to add new entries after FONT_ITALIC. 40 */ 41 #if 0 42 /* font width */ 43 FONT_SEMICONDENSED /* (default) normal */ 44 #endif 45 46 /* 47 * 0x1000 - 0xff000 is used for Unicode range mark (see vt_get_unicode_area_font) 48 * 0x200000 - 0x700000 is used for size_attr (see ui_font_manager.c) 49 */ 50 51 } vt_font_t; 52 53 #endif 54