Web lists-archives.com

Re: WHere is the icons




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