Re: button background color in gtk3



Hi, I faced the same problem some time ago in gtkmm3.
I asked a question and then replied myself in this post:
http://stackoverflow.com/questions/8952679/gtkmm-3-button-background-color-change
You have to use a CSS file (a working example in my code) and import from
code
to override the gtk3 theme that you are using on your distribution.
Cheers,
Giuseppe.


On Sun, Aug 26, 2012 at 1:44 PM, Rudra Banerjee <bnrj rudra yahoo com>wrote:

I will be grateful if someone please show me the way.
On Sun, 2012-08-26 at 00:20 +0100, Rudra Banerjee wrote:
Friends,
I am putting gtkbuttons inside a grid with modify_bg. I am getting an
odd case that when the window is focused, all buttons are showing white,
not what suggested by modify_bg. The same structure was working fine in
gtk2 (while I was using table instead of grid).
I am posting the complete minimal code(60 line only) for your reference.

I have seen that the gtk_widget_modify_bg is deprecated in gtk 3 so I
tried the suggested method with gtk_widget_override_background_color but
there it seems that declaration of GdkColor colorRed2 = {0x0000, 65535,
29555, 24158} has changed to something like GdkRGBA.
I tried to change to

GdkRGBA colorRed = {1,0,0,1};
yeilding error:

‘const struct GdkRGBA *’ but argument is of type ‘GdkRGBA’

Please Help.
here is the complete code:

#include <gtk/gtk.h>
int main(int argc,
        char *argv[]) {
    GtkWidget *window;
    GtkWidget *grid;
    GtkWidget *menubar;
    GtkWidget *filemenu;
    GtkWidget *quit;
    GtkAccelGroup *accel_group = NULL;

    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "Try Grid");
    gtk_container_set_border_width(GTK_CONTAINER(window), 05);

    grid = gtk_grid_new();
    gtk_container_add(GTK_CONTAINER(window), grid);
 gtk_grid_set_column_homogeneous(GTK_GRID(grid),TRUE);
 gtk_grid_set_row_homogeneous(GTK_GRID(grid),TRUE);
    menubar = gtk_menu_bar_new();
    filemenu = gtk_menu_new();

    accel_group = gtk_accel_group_new();
    gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);

    GtkWidget *file = gtk_menu_item_new_with_mnemonic("_File");
    quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT,
accel_group);

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), quit);
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);

    g_signal_connect(G_OBJECT(quit), "activate",
G_CALLBACK(gtk_main_quit), NULL);

    gtk_grid_attach(GTK_GRID(grid), menubar, 0, 0, 2, 1);


    /* Color Scheme */
    GdkColor colorRed2 = {0x0000, 65535, 29555, 24158};
    GdkColor colorBlue = {0x0000, 3598, 57054, 61937};
    GdkColor colorWht = {0x0000, 65535, 65535, 65535};


    GtkWidget *Abutton = gtk_button_new_with_label("A");
    gtk_grid_attach(GTK_GRID(grid), Abutton, 0, 1, 1, 1);
    gtk_widget_modify_bg(Abutton, GTK_STATE_NORMAL, &colorBlue);
    gtk_widget_modify_bg(Abutton, GTK_STATE_PRELIGHT, &colorWht);

    /* Create second button */
    GtkWidget *Bbutton = gtk_button_new_with_label("B");
    gtk_grid_attach(GTK_GRID(grid), Bbutton, 10, 1, 1, 1);
    gtk_widget_modify_bg(Bbutton, GTK_STATE_NORMAL, &colorRed2);
    gtk_widget_modify_bg(Bbutton, GTK_STATE_PRELIGHT, &colorWht);


    gtk_widget_show_all(window);
    gtk_main();

    return 0;
}


_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]