2011-09-17 17 views
0

gtk3.0.12を使用していて、cssを使用してタブの背景色が異なるノートブックを作成しようとしています。私は背景以外のすべてのものに対して異なるプロパティを設定することができます。これはどうすればいいですか?gtk3 css with GtkNotebook

/* Compile with: 
* gcc -Wall -o notebook1 `pkg-config --cflags --libs gtk+-3.0` notebook1.c 
*/ 
#include <gtk/gtk.h> 

int main(int argc, char *argv[]) 
{ 
    GtkWidget *window; 
    GtkWidget *mynotebook; 
    GtkWidget *grid; 

gtk_init (&argc, &argv); 

GtkCssProvider *provider = gtk_css_provider_new(); 
GdkDisplay *display = gdk_display_get_default(); 
GdkScreen *screen = gdk_display_get_default_screen (display); 
gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER  
     (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); 

gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider), 
           " GtkNotebook {\n" // or " .notebook {\n" 
           " -GtkWidget-focus-line-width: 0;\n" 
           "}\n" 
           " .notebook tab {\n" // or " * tab {\n" 
           " padding: 10 20 10 20;\n" 
           " border-radius: 8;\n" 
           " background-color: blue;\n" 
           "}\n" 
           " GtkNotebook tab GtkLabel#settings_tab {\n" 
           " color: white;\n" 
           " font: Serif 12;\n" 
           "}\n" 
           " .notebook tab GtkLabel#report_tab {\n" 
           " color: red;\n" 
           " font: Sans 12;\n" 
           "}\n", -1, NULL); 

g_object_unref (provider); 

window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
gtk_window_set_default_size(GTK_WINDOW(window), 800, 480); 
g_signal_connect (GTK_WIDGET (window), "destroy", 
        G_CALLBACK (gtk_main_quit), NULL); 
mynotebook = gtk_notebook_new(); 
gtk_widget_set_name (GTK_WIDGET(mynotebook), "notebook"); 
gtk_notebook_set_tab_pos (GTK_NOTEBOOK (mynotebook), GTK_POS_TOP); 

grid = gtk_grid_new(); 
GtkWidget *report_label = gtk_label_new ("Report"); 
gtk_widget_set_name (GTK_WIDGET(report_label), "report_tab"); 

gtk_container_add(GTK_CONTAINER(window),mynotebook); 
gtk_container_add(GTK_CONTAINER(mynotebook),grid); 
gtk_notebook_set_tab_label(GTK_NOTEBOOK(mynotebook), grid, report_label); 

GtkWidget *grid2 = gtk_grid_new(); 
GtkWidget *settings_label = gtk_label_new ("Settings"); 
gtk_widget_set_name (GTK_WIDGET(settings_label), "settings_tab"); 

gtk_notebook_insert_page (GTK_NOTEBOOK(mynotebook), GTK_WIDGET(grid2), 
      GTK_WIDGET(settings_label), -1); 

gtk_widget_show_all(window); 
gtk_main(); 
return(0); 
} 

答えて

1

よう にタブを持ついくつかの困難を持つイムは、あなたが何かをしようとしなかった:私はgtk3見つかりだけの情報がここに http://developer.gnome.org/gtk3/3.3/GtkCssProvider.html

ある

background-color: shade (#000000, 0.90); 

または

background-image: -gtk-gradient (linear, left top, left bottom, 
            from (shade (#000000, 1.30)), 
            to (shade (#ffffff, 1.05)));