Stefan et al, On Mon, Aug 10, 2015 at 2:23 PM, Stefan Salewski <mail@xxxxxxxxxxxx> wrote: > On Mon, 2015-08-10 at 12:28 -0400, Igor Korot wrote: >> But then how do I set the label for such button? >> It looks like this function can be used for bitmap buttons only (no >> labels). > > Of course you can continue using the deprecated stock item, as long as > that still works... > > My impression is, that recommendation for recent GTK3 is to have only > textual label for buttons and menu items generally, with some > exceptions... > > We can use gtk_button_new() with a container widget argument, which may > contain a label and an image. Some details I found here > > https://developer.gnome.org/gtk3/stable/GtkImageMenuItem.html > > Unfortunately that is some more work now... Here is what I have right now: [code] static GtkWidget *gtk_my_dialog_add_button_to (GtkBox *box, const gchar *label, const gchar *stock, gint response_id) { /* create the button */ GtkWidget *button = gtk_button_new_with_mnemonic (label); gtk_widget_set_can_default(button, true); GtkWidget *image = NULL; #if GTK_CHECK_VERSION( 3, 10, 0 ) if( !gtk_check_version( 3, 10, 0 ) ) { image = gtk_image_new_from_icon_name( stock, GTK_ICON_SIZE_BUTTON ); } else #endif { /* add a stock icon inside it */ wxGCC_WARNING_SUPPRESS(deprecated-declarations); image = gtk_image_new_from_stock (stock, GTK_ICON_SIZE_BUTTON); wxGCC_WARNING_RESTORE() } gtk_button_set_image (GTK_BUTTON (button), image); /* add to the given (container) widget */ if (box) gtk_box_pack_end (box, button, FALSE, TRUE, 8); /* add the button to the dialog's action area */ gtk_dialog_add_action_widget (GTK_DIALOG (dlg), button, response_id); return button; } extern "C" { static void gtk_my_dialog_init(GTypeInstance* instance, void*) { // some code #if GTK_CHECK_VERSION( 3, 10, 0 ) if( !gtk_check_version( 3, 10, 0 ) ) { continuebtn = gtk_assert_dialog_add_button( dlg, "Continue", "yes", GTK_ASSERT_DIALOG_CONTINUE); } else #endif { wxGCC_WARNING_SUPPRESS(deprecated-declarations); continuebtn = gtk_assert_dialog_add_button (dlg, "_Continue", GTK_STOCK_YES, GTK_ASSERT_DIALOG_CONTINUE); wxGCC_WARNING_RESTORE(); } // some more code } [/code] I am running currently KDE-4 on Gentoo Linux (stable). This peice of code works when running against GTK+-2.24, i.e. I see both label and the icon. However, when running against GTK+-3.16.5 all I can see is just a text and no icon. What am I doing wrong? Am I using the right replacements? Do I use it properly? Thank you. > _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx https://mail.gnome.org/mailman/listinfo/gtk-list