2012-12-14 3 views
4

Mozilla Firefox 및 Ubuntu Software Center와 같은 응용 프로그램은 제목 표시 줄 그라디언트를 도구 모음 영역으로 확장 할 수 있습니다. 예는 다음과 같습니다Ubuntu Unity에서 확장 된 제목 표시 줄을 얻으려면 어떻게해야합니까?

Screenshot illustrating the extended title bar effect in Ubuntu Unity

어떻게 내 응용 프로그램에서 동일한 효과를 얻을 수 있습니까?

+0

같은 색상의 툴바에서 그라디언트를 만드시겠습니까? – Linuxios

+0

유니티 태그는 Microsoft Unity 용입니다. 오용하지 마십시오. –

답변

3

먼저 언급 한 두 가지 응용 프로그램은 서로 다른 툴킷과 기술을 사용하여 만들어 졌으므로 기꺼이 수행하려는 여러 가지 방법을 사용합니다. Firefox는 XUL/GTK2을 사용하지만 USC는 GTK3을 사용합니다. 두 가지 접근법을 모두 설명하겠습니다.

  1. 우분투 소프트웨어 센터는 GTK3를 사용하여 구축하고, 따라서 도구 모음 구배가 테마 CSS 파일에 정의되어 있습니다. 이를 달성 코드는 사용자의 gtk3 응용 프로그램에서이를 사용하기 위해서는

    /* 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); 
    } 
    

    , 당신은 당신의 도구 모음에 클래스 primary-toolbar를 지정해야합니다. 이에 대한 적절한 문서를 보려면 here을 확인하십시오.

  2. Firefox는 XUL을 사용하여 빌드되고 GTK2를 사용하여 Ubuntu와 같은 GNU/Linux 배포판에서 위젯을 렌더링합니다. Firefox의 tab-bar에 대한 스타일은 해당 테마의 파일 gtkrc에 정의 된대로 모양 정의 menubar에서 비롯됩니다. 기본 테마 주변 환경의 경우, 다른 방법과 다른 툴킷의 효과를 얻을 수있다

    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에서 응용 프로그램을 작성하는 것이 좋습니다 스타일링.

+0

Qt를 사용하고 있습니다. GTK로 호출하여 적절한 색상을 검색 할 수있는 방법이 있습니까? –

+0

Unity와 같은'gtk' 환경에서 실행될 때, Qt는 현재'gtk2' 테마를 사용하여 위젯을 렌더링하는'Qgtkstyle'이라는 테마 렌더러를 사용합니다. 애플리케이션 내에서'GtkStyleContext'를 사용하려고하면 동일한 프로세스 내에서 gtk2와 gtk3를 실행할 수 없다는 오류가 발생합니다. 나는 이것을 발견했다 [link] (http://stackoverflow.com/questions/7903518/gtk3-getting-a-styles-class-property). 비록 그다지 알려주지는 않지만 사용할 수있는 솔루션을 암시하지만, 전체 애플리케이션의 스타일을 수동으로 지정해야합니다. –

+0

이 작업을 수행 할 수도 있습니다. 응용 프로그램의 초기화 전에 자식 프로세스를 생성하고이를 사용하여 GtkStyleContext를 통해 속성을 가져옵니다. 그런 다음이 속성을 사용하여 툴바에 대한 사용자 정의 스타일을 그립니다. Qt에서 실제로이 작업을 수행 할 수 있는지는 알 수 없습니다. 단지 야생 일뿐입니다. –