wall_john 发表于 2005-9-10 21:46:41

e16中的字体处理非e17

默认的e16字体处理有两种方式:
1、使用imlib读取ttf字体文件然后通过该库实现字体画字。
在配置文件中这样设置:
/usr/local/share/e16/themes/winter/fonts.cfg中
(也可能在/usr/share/e16/themes/winter/fonts.cfg):

#include <definitions>
__E_CFG_VERSION 1
__FONTS __BGN

font-border                "VeraBd/7"      /* VeraBd指明字体文件名,7表示字体大小 */
          /* /usr/local/share/e16/themes/winter/ttfonts 中有:VeraBd.ttf,Vera.ttf就是与这里对应的*/
font-coords                "VeraBd/7"

font-dialog                "Vera/7"
font-dialog-hilite        "Vera/8"        /* ??? */

font-epplet                "Vera/6"
font-epplet-small        "Vera/6"
font-epplet-medium        "Vera/8"
font-epplet-large        "Vera/10"

font-focus        "VeraBd/7"

font-iconbox        "VeraBd/7"

font-init        "VeraBd/8"

font-menu        "Vera/7"

font-pager        "VeraBd/7"

font-tooltip        "VeraBd/7"

__END

2、使用xlibs中的缺省字体处理例程函数处理字体。
在配置文件中这样设置:
/usr/local/share/e16/themes/winter/fonts.cfg中
(也可能在/usr/share/e16/themes/winter/fonts.cfg):

#include <definitions>
__E_CFG_VERSION 1
__FONTS __BGN

font-border                "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"   /* 通过X字体表示符设定字体,参见xfontsel程序 */

font-coords                "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

font-dialog                "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"
font-dialog-hilite        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"        /* ??? */

font-epplet                "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"
font-epplet-small        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"
font-epplet-medium        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"
font-epplet-large        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

font-focus        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

font-iconbox        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

font-init        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

font-menu        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

font-pager        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

font-tooltip        "-misc-simsun-medium-r-normal--12-*-*-*-*-*-*-*"

__END

通过打附件中我提交的补丁后,可以调用xlibs中XFT函数例程设置字体,XFT能
很好的处理中文斜体粗体等问题,以上的配置文件可以改成:
#include <definitions>
__E_CFG_VERSION 1
__FONTS __BGN

font-border                "Simsun/7/1"    /* Simsun为字体的名称,7表示大小,后面为字体风格:1粗体 2斜体 3粗斜体 */

font-coords                "Simsun/7/1"

font-dialog                "Simsun/7"
font-dialog-hilite        "Simsun/8"        /* ??? */

font-epplet                "Simsun/6"
font-epplet-small        "Simsun/6"
font-epplet-medium        "VSimsun/8"
font-epplet-large        "Simsun/10"

font-focus        "Simsun/7/1"

font-iconbox        "Simsun/7/1"

font-init        "Simsun/8/1"

font-menu        "Simsun/7"

font-pager        "Simsun/7/1"

font-tooltip        "Simsun/7/1"

__END


关于补丁的说明:
本补丁只对enlightenment DR 0.16 (即通常说的e16)有效,对DR 0.17 (e17)无用,E17中的
字体处理方法完全跟e16不一样,它是用EFL中的evas库中处理的,请别试图对E17使用该补丁。

将该补丁拷到e16代码目录
patch -p0 < e16-xft-wj.patch #从cvs check出来的code里面自带了autogen.sh,可能会有错误提示跳过就是。
sh autogen.sh
./configure
make
make install
页: [1]
查看完整版本: e16中的字体处理非e17