Chinaunix首页 | 论坛 | 博客
  • 博客访问: 596196
  • 博文数量: 95
  • 博客积分: 1573
  • 博客等级: 上尉
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-23 10:46
个人简介

hello world!

文章分类

全部博文(95)

文章存档

2014年(1)

2013年(44)

2012年(50)

分类: LINUX

2012-07-17 12:22:11


主题设计

Metacity 主题配置文件基于 XML 格式。

配置文件

创建文件和目录:

$PREFIX/share/themes/[theme_name]/metacity-1/


$HOME/.themes/[theme_name]/metacity-1/

比如 Moblin 的主题 Moblin-Netbook ,以后都以这个主题为例。

/usr/share/themes/Moblin-Netbook/metacity-1/metacity-theme-1.xml基本概念支持的 Window 类型

Metacity 有 6 中窗口类型:

  1. normal

    a normal top-level window

  2. dialog

    a dialog window

  3. modal_dialog

    a dialog window that has modal state ie. intervention required by user before they can interact with it's parent window

  4. menu

    a pinnable menu window ie. tearoff menu

  5. utility

    a small persistant utility window ie. paletde or toolbox

  6. border

    a window that should not show any decorations typically ie. full screen window

Styles

对于每种 Window 类型,都需要为之设置一个 "style set" (或者称 window decoration )。 一个 "style set" 是几中不同的 "frame states" 的组合 styles 。"frame states" 有以下几种声明:

  • window 是聚焦还是没聚焦 (focused or un-focused)
  • window 是 maximized or shaded [or both]
  • window 能否被 vertically, horizontally, vertically and horizontally resized

一个 "frame state" 对于一个 "frame style" (都没有s,指单个)。"frame style" 化分为两部分: frame 'pieces' 和 window 'buttons'。这样分开更容 易定制 Metacity 主题。

Frame pieces

Metacity 有以下几种 frame pieces :

entire_backgroundthe whole frame of the window which is drawn first
titlebar程序窗口的上面(俗称:标题栏)
titlebar_middle标题栏的中间,不包括任何 "edge"
left_titlebar_edge标题栏左边边缘
right_titlebar_edge标题栏右边边缘
top_titlebar_edge标题栏顶部边缘
bottom_titlebar_edge标题栏底部边缘
title包含标题的部分
left_edgeframe 的左边边缘
right_edgeframe 的右边边缘
bottom_edgeframe 的底部边缘
overlaysame as entire_background, only that it is drawn last
Window Buttons

Metacity 有以下几种 Window Buttons :

close关闭按钮
maximize最大化按钮
minimize最小化
menu菜单按钮

Buttons 可以有下面几种位置:

left_left_background左边第一个按钮的背景
left_middle_background左边第二个按钮的背景
left_right_background左边第三个按钮的背景
right_left_background右边第一个按钮的背景
right_middle_background右边第二个按钮的背景
right_right_background右边第三个按钮的背景

对于窗口上的每个按钮,需要设置一个在给出一个 "button state" 时的怎么样 显示。 Metacity 的按钮状态有:

normal常规显示
pressed鼠标点击 (clicked) 后的显示
prelight聚焦时候显示
Window menus

通常是在标题栏点击右键弹出 menu ,或者标题栏设置一个 menu icons,点击这 个 menu icons 弹出菜单。菜单的上通常有下列列表:

close关闭
maximize最大化
minimize最小化
unmaximize取消最大化

而且可以设置在下面几种情况下,对于的 GtkStateType :

normalmenu icon 常规显示
prelightmenu icon 列表中的项目被聚焦后怎样显示
active激活后又怎么显示
selected选择后又怎么显示
insensitive灰色状态(此时不可用)如何显示
测试 Themes

当然可以直接安装主题测试了,不过这有点傻。可以使用 metacity-theme-viewer 工具查看一个主题的面貌。不带参数的时候,显示当前 主题,后接一个主题名字作为参数,可以显示这个主题的面貌,这样很方便。注 意:主题名字是 /usr/share/themes 下的目录名,或者其他地方。

应用主题

使用 gconftool-2 或者使用 GUI 程序可以应用一个主题。

gconftool-2 --type=string --set /apps/metacity/general/theme 主题名

再次提醒:主题通常放在 /usr/share/themes 下。

查看当前主题,可以使用 gconf-editor 工具,也可以使用 :

gconftool-2 --dump /apps/metacity/general



http://developer.gnome.org/doc/tutorials/metacity/metacity-themes.html
阅读(1426) | 评论(0) | 转发(0) |
0

上一篇:网址

下一篇:linux远程开机(wake on lan)

给主人留下些什么吧!~~