如何在Ubuntu Unity中获得扩展标题栏?

时间:2012-12-14 03:53:39

标签: linux ubuntu-unity

Mozilla Firefox和Ubuntu Software Center等应用程序可以将标题栏渐变扩展到其工具栏区域。示例如下:

Screenshot illustrating the extended title bar effect in Ubuntu Unity

如何在我的应用程序中实现相同的效果?

1 个答案:

答案 0 :(得分:3)

首先,您提到的两个应用程序是使用不同的工具包和技术构建的,因此采用不同的方法来执行您愿意执行的操作。虽然Firefox使用XUL/GTK2,但USC使用GTK3。我将解释这两种方法。

  1. Ubuntu软件中心使用GTK3构建,因此它的工具栏渐变在主题css文件中定义。实现这一目标的代码是

    /* primary-toolbar */
    .primary-toolbar,
    .primary-toolbar .toolbar,
    .primary-toolbar.toolbar {
    -GtkWidget-window-dragging: true;
    
    background-image: -gtk-gradient (linear, left top, left bottom,
                                     from (shade (@dark_bg_color, 0.96)),
                                     to (shade (@dark_bg_color, 1.4)));
    border-bottom-color: shade (@dark_bg_color, 1.1);
    border-top-color: shade (@dark_bg_color, 1.09);
    border-style: solid;
    border-width: 1px 0 1px 0;
    
    color: @dark_fg_color;
    text-shadow: 0 -1px shade (@dark_bg_color, 0.7);
    
    box-shadow: inset 0 1px shade (@dark_bg_color, 0.94);
    }
    

    要在gtk3应用程序中使用它,您必须将类primary-toolbar分配给工具栏。有关相关文档,请查看here

  2. Firefox是使用XUL构建的,并使用GTK2在GNU / Linux发行版(如Ubuntu)上呈现小部件。 Firefox tab-bar的样式来自menubar的外观定义,如相关主题的gtkrc文件中所定义。在默认主题氛围的情况下,它是

    style "menubar" = "dark" {
      engine "murrine" {
        textstyle = 2
        text_shade = 0.33
        gradient_shades = {1.0, 1.0, 1.0, 1.0}
        lightborder_shade = 1.0
      }
    }
    
  3. 可以使用不同的方法在其他工具包中实现效果,但建议您在gtk3中编写应用程序以使用本机样式。