4

Mozilla Firefox や Ubuntu Software Center などのアプリケーションは、タイトル バーのグラデーションをツールバー領域まで拡張できます。例は次のとおりです。

Ubuntu Unity の拡張タイトル バー効果を示すスクリーンショット

アプリケーションで同じ効果を得るにはどうすればよいですか?

4

1 に答える 1

3

まず、あなたが言及した 2 つのアプリケーションは、異なるツールキットとテクノロジを使用して構築されているため、意図したことを実行するために異なる方法を採用しています。Firefox は を使用しますがXUL/GTK2、USC は を使用しGTK3ます。両方のアプローチについて説明します。

  1. Ubuntu Software Center は を使用して構築されて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をツールバーに割り当てる必要があります。これに関する適切なドキュメントについては、こちらをご覧ください

  2. Firefox は XUL を使用して構築され、GTK2 を使用して Ubuntu などの GNU/Linux ディストリビューションでウィジェットをレンダリングします。tab-barFirefoxの のスタイル設定は、関連するテーマmenubarのファイルで定義されている の外観定義から取得されます。gtkrcデフォルトテーマ Ambience の場合は、

    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
      }
    }
    

他のツールキットでもさまざまな方法で効果を実現できますが、ネイティブ スタイルを使用するためにアプリケーションを gtk3 で作成することをお勧めします。

于 2012-12-14T05:47:55.597 に答える