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.ru...@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
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to