- 论坛徽章:
- 0
|
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 |
|