免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1243 | 回复: 0
打印 上一主题 下一主题

KDE桌面字体阴影设置参数分析 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-22 18:38 |只看该作者 |倒序浏览

                    KDE默认桌面字体的阴影效果很是不好,默认的阴影看起来很硬有点不太舒服,总想设法设置一下却一直没来得及。先到网上搜了搜,方法是找到了。就是在桌面的配置文件里写上一个参数,不过对这几个参数的意思就不太明白了。对这种糊里糊涂的事情感觉很是不好,于是乎想仔细分析一下桌面字体阴影这个东西。
    配置文件位置: $HOME/.kde/share/config/kdesktoprc    修改内容为:在[FMSettings]段添加如下内容(OSX的桌面阴影显示模式)    ShadowParameters=0,1,16.0,192.0,2,4,0
    找了KDE3.5.6 的源码包kdebase 和 kdelibs,最后在/kdebase-3.5.6/kdesktop/这个文件夹下找到了一些有用的信息。这里面有几个与桌面阴影相关的几个文件。 分别是:
       kdesktopshadowsettings.h
        kdesktopshadowsettings.cpp
        kshadowsettings.h
        kshadowsettings.cpp
        kshadowengine.h
        kshadowengine.cpp
        kdesktop.kcfg
    前面六个是程序文件,最后一个kdesktop.kcfg是配置文件。
    先看了一下配置文件,找到了与设置阴影相关的部分如下:
      
       //这里就是桌面“右键-->配置桌面...-->高级选项-->'启用阴影'”        //如果选中“启用阴影”,则在KDE的桌面配置文件里会多出一个配置选项        // "ShadowEnabled = true ",这样桌面字体才能够启用阴影。
        true
        Enable text shadow
        Check here to enable a shadow outline around the desktop font.
                 This also improves the readability of the desktop text against
                 backgrounds of a similar color.
        
   
   
       // ShadowParameters是用来设置字体阴影的参数项,它来负责字体的阴影以什么样子来显示。        // 默认情况下,这个参数是 '0,0,4.0,120.0,2,1,1,0,0,0' ,也就是KDE默认的阴影样式。        // KDE默认的阴影看起来很硬,所以要设置阴影的显示,就需要从这几个数字上下手。
        0,0,4.0,120.0,2,1,1,0,0,0
        
        
        
        readEntry(SHADOW_CONFIG_ENTRY)); -->
        // 上面两个注释说明在文件 kdesktopshadowsettings.cpp中的第84行中,程序读取配置文件中       // ShadowParameters的值。
   
    看过了上面配置文件的说明,虽然知道了字体阴影如何配置,但还是不懂那一串数字到底是什么意思,还需要继续看程序代码。在kdesktopshadowsettings.cpp中找到了83,84行,如下:
    if (config->hasKey(SHADOW_CONFIG_ENTRY))
        fromString(config->readEntry(SHADOW_CONFIG_ENTRY));
    这里并没有说明那些数字的意思,继续找之。在kdesktopshadowsettings.h中找到如下说明:
     /**
     * This implementation of FxData will read a the default configuration
     * file. The values used for shadow are frouped under "FX".
     * // 呵呵,frouped这个词是作者把grouped打错了,frouped不懂是什么意思。:)
     * The values are:
     *  Shadow.Algorithm:      the algorithm used for making the sahdow
     *  Shadow.Scale       the normailsation factor for veraging the sum
     *  Shadow.MaxOpacity       the maximum allowable opacity (255 = 100%opaque)
     *  Shadow.OffsetX       the X-coordinate offset (0 centered)
     *  Shadow.OffsetY         the Y-coordinate offset (0 centered)
     *  Shadow.Thickness       the shadow thickness (usually 3-5 px)
     *  Shadow.SelectionType   the selection type - inverse video or use
     *               the selection colours.
     *
     * 06-Feb-03: Added simple UID algorithm
     *
     */
   
    参数中Shadow.MaxOpacity定义阴影的透明度;Shadow.OffsetX, Shadow.OffsetY分别定义了阴影在X,Y坐标的偏移量;Shadow.Thickness定义了阴影的密度;Shadow.SelectionType定义了字体在选中的情况下显示类型,有反白显示和按选择颜色显示两种情况。这里Shadow.OffsetX,Shadow.OffsetY和Shadow.Thickness所对应的值单位为像素(px)。
   
    后面又参考了一下kshadowsettings.h,其中有一段代码字义了参数的顺序。如下:
   
         /**
         * Specifies the order of the options.
         * @see fromString
         */
        enum ConfigurationOrder
        {
            OFFSET_X = 0,
            OFFSET_Y = OFFSET_X + 1,
            MULTIPLICATION_FACTOR = OFFSET_Y + 1,
            MAX_OPACITY = MULTIPLICATION_FACTOR + 1,
            THICKNESS = MAX_OPACITY + 1,
            ALGORITHM = THICKNESS + 1,
            SELECTION_TYPE = ALGORITHM + 1
        };
    这说明,那一串数字按顺序依次为:
    OFFSET_X //X坐标偏移量
    OFFSET_Y //Y坐标偏移量
    MULTIPLICATION_FACTOR //阴影的繁殖系数
    MAX_OPACITY //透明度 0-255 之间,255是完全不透明
    THICKNESS //阴影的密度
    ALGORITHM //阴影显示所采用的算法
    SELECTION_TYPE //选择后阴影的显示方式
    同样在kshadowsettings.h中下面两段代码说明了可供选择的阴影算法和字体选中时显示方式。
         /**
         * The algorithm used.
         */
        enum Algorithm
        {
            DefaultDecay = 1,   ///0,0,4.0,120.0,2,1,1,0,0,0 的最后三个0不知道是干什么用的,留着以后再研究了...
    后来又在KDE-apps上找到一个老外写的程序,通过图形界面来配置字体阴影的显示。
    http://kde-apps.org/content/show.php?content=53118
    按照OS X的阴影样式设置ShadowParameters=0,1,16.0,192.0,2,4,0 ;效果如下:
   

   
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17395/showart_283819.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP