[Users] [GTK3] What to do about GtkStock and GTK_STOCK_YES?
rob at hoelz.ro
Tue Jan 9 14:49:06 CET 2018
On Mon, 8 Jan 2018 17:22:52 +0100
Andrej Kacian <ticho at claws-mail.org> wrote:
> On Sun, 7 Jan 2018 16:05:57 -0600
> Rob Hoelz <rob at hoelz.ro> wrote:
> > Hi claws-mail devs,
> > When I was working on getting Claws Mail 3.16 to compile against
> > GTK3, one of the most common errors I found was with code like this:
> > > "+" GTK_STOCK_YES
> > It appears that pre-GTK3, GTK_STOCK_YES and co. were simply string
> > constants, so this would just prepend a plus character to that
> > string, which Claws Mail uses in alertpane_create to set up some
> > custom behavior for the corresponding labels.
> > In GTK3, however, those constants are GtkStock* (just casted from
> > string constants, but this still makes the compiler unhappy). In
> > my patch, I just expanded GTK_STOCK_YES and co. to the underlying
> > string constant where needed to get claws to compile. Obviously
> > this isn't really viable going forward, so I was wondering how this
> > change should be made instead. Should we set up our own CM_STOCK_*
> > constants?
> I would opt for scrapping this whole "+" prefix thing in alertpanel.c,
> and just change the alertpanel API to indicate which button should be
> focused by default in a different way - perhaps a simple extra integer
> parameter which could have values 1, 2, 3 or 0 (no button has focus).
> It would also simplify the alertpanel_create() code somewhat, and less
> string manipulation in C is always a good idea. :)
This would be my preferred way going forward as well - when I was working on
my patch, it's not entirely obvious what the prefixed plus character is doing.
Something more explicit as to what's going on would be helpful!
More information about the Users