|

楼主 |
发表于 2009-4-29 20:11
|
显示全部楼层
icewm主题制作之二 - 程序窗口制作(4)
6. Active 窗口程序边框制作
目前为止,关于程序边框我们只做了一张图片,就是最顶上的frameAT.xpm。
现在我们做其他的部分。
需要的图片有:
左右上角边框:frameATL.xpm, frameATR.xpm
左右边框:frameAL.xpm, frameAR.xpm
左右下角边框:frameABL.xpm, frameABR.xpm
下部边框:frameAB.xpm
总共7张图,不多,也很好做。
(1)左右边框
我们先前已经定义了边框是6个像素,所以左右边框的图最大只能是6像素宽,多了就看不见,少了就会出现透明。
注意,程序窗口的制作和工具条按钮有点不同,如果你做的任何图片出现不透明度低于50的情况,icewm程序直接判定你为全透明,如果不透明度高于50,直接显示完全的不透明。也就是说,全透明是可以的,我在M4主题里的主窗口标题栏就有一些部位是全透明的。所以,想借助程序边框做阴影,让程序窗口凸出桌面是不可能的,因为阴影是需要渐变的透明度的。
回到左右边框,通常左右边框都是用很小的图片,甚至是有用1x1的,因为边框那么几个像素,想做效果很难。
在这个范例,我想做个带小铆钉的边框。铆钉先前我已经用过了多次了,是4x4大小,所以,还有一点点余地。事实上,我一开始用6像素的边框就是算好了的,我事先把小铆钉缩放看看了效果,发现最小也只能是4x4了,所以边框最小也得有6像素。一般的边框我用4像素,精致简约的我甚至用1-2像素,如果不是为了特别的效果,我不太愿意用6像素的粗边框。
先从titleAB.xpm里复制一块30x6的的图片,粘贴为新图像,旋转图像90度,成为6x30的竖条。
左边框:frameAL.xpm
从先前的xcf文件里复制来小铆钉贴入图片成为新图层。
为了让侧边框有立体效果,我新加了两个图层,灌入深浅两种颜色(颜色都是从背景里直接取的)。因为一开始就确定了光是从左上方来的,所有图像都是按照这个预设来做的,所以,这里也应该一样,高光浅色条在左边,暗影深色条在右边:
图三十五
存为:frameAL.xpm
右边框:frameATR.xpm
完全不用重新做,只要从把左边框图片连接过来就行了,光影效果都是对的。
(2)四个边角
因为我选择了比较简单的边角做法,所以,四个角的图片是完全一样的,而且只要直接从左右边框里复制过来就行。
图片的尺寸是6x6,这个我们先前设定好了。
从frameAL.xpm里复制6x6大小的一块图片(包含小铆钉),粘贴为新图像:
图三十六
另存为frameATL.xpm。
用ROX-Filer把frameATL.xpm连接到:frameATR.xpm,frameABL.xpm,和frameABR.xpm。
搞定。
(3)底部边框
就一张图片:frameAB.xpm
通常这张图片会很小,以这个范例的边框宽度,如果不要纹理,1x6就行了。可是,我还是想要纹理,所以就从titleAB.xpm底下整个复制了一条279x6的图片,粘贴为新图像,又在上部和下部各贴了一个1像素高的浅色和深色长条做光影效果,上面的是浅色,下面的是深色,因为光是从上面来的:
图三十七
存为:frameAB.xpm
从上图下部可以看出, Active程序窗口的各个部分已经完整。
7. Inactive程序窗口的制作
原则上来说,制作inactive程序窗口和active一样,应该是从头做一遍的,我很多主题都是使用不同的窗口颜色来区分active和inactive窗口,其实就是做两套完整的窗口图片。不过作为教程就没有什么必要了。而且,大多数主题的inactive窗口和active几乎是一样的,绝大多数图片都是直接从相对应的active程序窗口图片做连接的。
但我还是想把这个主题做得正常一些,所以,我会对inactive窗口作少许改动,以示区别。同时也顺便介绍一下图片文件名,特别是与active窗口不一样的部分。
(1)标题栏和边框
标题栏的背景和顶部边框我不作改动了,所以,只需要直接做连接就可以了,事实上,我所使用的主题模板Perryfa-rusted已经对大部分图片做了连接,我只是检查一下就可以了,标题栏从左到右:
titleAJ.xpm,titleAL.xpm,titleAS.xpm,titleAB.xpm,titleAR.xpm,titleAQ.xpm
这六张图片分别连接到对应的:
titleIJ.xpm,titleIL.xpm,titleIS.xpm,titleIB.xpm,titleIR.xpm,titleIQ.xpm
边框完全采用连接的方式,不用改任何东西:
frameAT.xpm, frameAL.xpm, frameAR.xpm, frameATL.xpm, frameATR.xpm,frameABL.xpm, frameABR.xpm, frameAB.xpm
总共8张图片,连接到各自对应的图片:
frameIT.xpm, frameIL.xpm, frameIR.xpm, frameITL.xpm, frameITR.xpm,frameIBL.xpm, frameIBR.xpm, frameIB.xpm
剩下三张:titleAP.xpm,titleAT.xpm,titleAM.xpm (标题框)我是要改的。
打开先前存下的titleT.xcf,把所有和绿色有关的图层都关了,调整各个图层的显示与关闭,就能得到下面的结果。复制可见、粘贴为新图像、另存为相应的文件名就可以了。
titleIM.xpm:
图三十八
titleIP.xpm
图三十九
titleIT.xpm
图四十
(2)按钮
Inactive窗口的按钮我是要重新做的,不过也相对会比较简单。
Inactive窗口的按钮图片有这些:closeI.xpm, maximizeI.xpm, minimizeI.xpm, restoreI.xpm, rollupI.xpm, rolldownI.xpm, menuButtonI.xpm。一共7张。
与Active窗口按钮不同,Inactive窗口的按钮没有鼠标移上去会出现变化这个功能,所以,类似closeO.xpm这类图片是没有的,只有closeI.xpm。
因为先前我已经存下了button.xcf文件,现在只要打开该文件,简单调整一下图层,加一个不同的按钮、存为不同的文件就行了。一点都不麻烦。
再次打开壁纸素材图片,从壁纸中切下一小块铆钉。虽然之前我们也用过铆钉,但那个已经被压缩成4x4的小图片,而且铆钉的阴影部分也被抹掉了,因为4x4的图片能看出是铆钉已经很不错了,阴影什么的就不能指望了。但用于按钮的铆钉是可以比较大的,高度可以达到13像素,所以就需要重新做。
通常,小图片放大是绝对不提倡的,如果有大一些图片,就一定要用大图片去缩小,4x4的图片放到13x13,那是根本看不清的。
把铆钉复制到button.xcf作为一个新图层,尽量清理一下铆钉周围杂质,上面的缩成13x13,下面的略微放大一点,到18x18,挪放铆钉到合适的位置。再把button.xcf文件里的图层整理一下,只显示我们要的内容。
另存为:closeI.xpm
如图:
图四十一
把closeI.xpm连接到所有带“I”的按钮图像:
maximizeI.xpm, minimizeI.xpm, restoreI.xpm, rollupI.xpm,rolldownI.xpm, menuButtonI.xpm
所有的Inactive窗口的按钮就都完成了。
在这里要强调的是,icewm主题里的图片名字里的每个字母都是需要严格遵守的,大小写都不能错,写错了程序就不认了。正因为这样,我可以随便往目录里保存我要的素材图片、xcf文件,例如button.xcf,只要文件名不和默认的名字重合就不会对主题有任何影响。
8. 标题栏文字在default.theme里的定义
对于程序窗口,我们只剩下一件事情,设置一下标题栏的文字颜色。现在标题栏的图片都做好了,设置文字颜色的工作就可以做了,效果可以随时刷新主题来看。
一般来说,我会做成文字颜色较浅,阴影颜色较深,文字就会有突出表面的感觉。这个主题的Active窗口的标题框做得比较复杂,或者说比较乱,而且已经是很暗的黑绿色,所以,无论怎么设置阴影的颜色,阴影都不会明显了。
# Active程序窗口标题栏文字颜色,白色
ColorActiveTitleBarText="rgb: fa/fa/fa"
# Active程序窗口标题栏阴影色,黑色
ColorActiveTitleBarShadow="rgb:00/00/00"
在Inactive窗口,我通常会把文字做成下陷的效果,好像字是刻在标题栏上的。
做起来很简单,其实只要让文字颜色比标题框深(一般用同色的深色,纯黑色不一定有好效果,除非像我们这个主题一样,背景色已经太深了),而阴影比标题框浅(一般也不要用白色,尤其是暗色背景的标题框,白色太过刺眼效果不好),效果就能出来了。想像一下在地上挖一条沟,阳光照在沟上的感觉,沟底是暗的,沟沿是亮的。
# Inactive程序窗口标题栏文字颜色,黑色
ColorNormalTitleBarText="rgb:00/00/00"
# Inactive程序窗口标题栏阴影色,灰色
ColorNormalTitleBarShadow="rgb:92/8b/85"
还有一些其他定义,但由于我们的图片做得很彻底,都不起作用了:
# Active 程序窗口标题栏颜色
ColorActiveTitleBar="rgb:00/00/00"
# 一般程序窗口标题栏颜色
ColorNormalTitleBar="rgb:00/00/00"
# 一般程序窗口按钮色(没用)
ColorNormalTitleButton="rgb:00/00/00"
# 一般程序窗口按钮文字色
ColorNormalTitleButtonText="rgb:00/00/00"
......
最后,看一下我们的两个程序窗口吧,最复杂的部分做完了,值得庆祝一下:
图四十二
(完)
[ 本帖最后由 perryfa 于 2009-4-30 04:07 编辑 ] |
|