Tear-off menu有什么不好?
(本来写在blog上的,但还是这里有讨论氛围:-)半年前写过一篇tear-off menu,里面提到gnome2缺省没有打开这个功能,但可以通过一个gconf设置项打开。
但这并不适用与“开始”菜单,因为上述设置只影响gnome_menu_new()创建的菜单(由libgnomeui里面提供),而开始菜单gnome-panel是直接用gtk_menu_new()创建的。
对于这个功能的缺失我一直有点耿耿于怀。今天下载源代码看了看,发现要加这个并不难,效果图见下,尤其是Debian菜单现在用起来方便多了。
但我不明白的是,当初为什么要删除这个功能?
--- gnome-panel/menu.c.orig 2005-06-07 03:08:56.000000000 +0800
+++ gnome-panel/menu.c2005-11-23 00:07:22.000000000 +0800
@@ -257,6 +257,7 @@ GtkWidget *
panel_create_menu (void)
{
GtkWidget *retval;
+ GtkWidget *tearoff;
static gbooleanregistered_icon_theme_changer = FALSE;
if (!registered_icon_theme_changer) {
@@ -267,7 +268,11 @@ panel_create_menu (void)
}
retval = gtk_menu_new ();
-
+
+ tearoff = gtk_tearoff_menu_item_new();
+ gtk_widget_show(tearoff);
+ gtk_menu_prepend(tearoff);
+
panel_gconf_notify_add_while_alive ("/desktop/gnome/interface/menus_have_icons",
(GConfClientNotifyFunc) menus_have_icons_changed,
G_OBJECT (retval));
没看到你的截图,不过在这里搜索到了。
http://blog.linux.org.tw/~jserv/archives/001120.html
确实记得以前有这样的功能。
苹果中的 tear-off menu:
http://developer.apple.com/documentation/mac/HIGuidelines/HIGuidelines-95.html
经验证, gnome 2.12 中仍然有这个选项:
/desktop/gnome/interface/menus_have_tearoff
打开之后 gconf-editor 的菜单就可以漂移了。不过我看了一下 gedit, nautilus 的都不行。 原来楼主就是巴蛮子,赞一个。 :mrgreen::mrgreen:
-
+
+ tearoff = gtk_tearoff_menu_item_new();
+ gtk_widget_show(tearoff);
+ gtk_menu_prepend(tearoff);
+
这样创建的 tearoff 菜单受 gconf 里那个值的控制吗? :?: > 原来楼主就是巴蛮子,赞一个。
原来不是这个id, 刚换的。:-)
> 这样创建的 tearoff 菜单受 gconf 里那个值的控制吗?
不受,除非也写个监视回调,就想libgnomeui里面那样。
问题是诸位觉得这个特性怎么样啊,如果都觉得挺好的话给开发组提一下。 我觉得这个功能挻有用的。
现在大部分程序都用 Gtk 中的 action-based 的工具和菜单,而 libgnome/ui 的东西逐渐被遗弃或者被放到 gtk 中,所以,不能指望开发组的人使用 libgnomeui, 只能是自己调用 gtk_ui_manager_set_add_tearoffs,然后处理 gconf 中的 /desktop/gnome/interface/menus_have_tearoff , 看了下 gconf-editor 就这么搞的。
现在大部分程序都用 Gtk 中的 action-based 的工具和菜单,而 libgnome/ui 的东西逐渐被遗弃或者被放到 gtk 中,所以,不能指望开发组的人使用 libgnomeui, 只能是自己调用 gtk_ui_manager_set_add_tearoffs,然后处理 gconf 中的 /desktop/gnome/interface/menus_have_tearoff , 看了下 gconf-editor 就这么搞的。
翻了一下,发现现在即使是gnome桌面的标准程序,对于这个的处理也是相当混乱啊,gnome-terminal等等都不受这个配置项影响,死活没有这个功能
——按发展的眼光来看,libgnome/libgnomeui会被干掉或者迁移到gtk,但gnome_app_fill_menu这样的函数往何处去呢(因为涉及到一些gconf设置,显然是不应该移到gtk的)? 菜单中的虚线
页:
[1]