On Mon, Aug 18, 2014 at 9:50 AM, Sébastien Wilmet <swil...@gnome.org> wrote:

> On Mon, 2014-08-18 at 10:00 +0100, Emmanuele Bassi wrote:
> > On 16 August 2014 16:23, Sébastien Wilmet <swil...@gnome.org> wrote:
> >
> > > With GskLayerContent, will it be possible to unify cell renderer and
> > > widget drawing models? To simplify significantly the GtkTreeView
> > > implementation, for example, and be able to insert a GtkWidget in a
> > > GtkTreeView.
> >
> > not without breaking API.
> >
> > we cannot really re-implement GtkWidget using GSK layers without
> > breaking ABI in any case — think of whoever connects to
> > GtkDrawingArea's ::draw signal, or whoever subclasses a GtkWidget and
> > overrides the draw() virtual function; suddenly, they wouldn't be
> > drawing on a cairo_t associated with a whole GtkWidget, but on a GSK
> > layer's content. where would that layer go? on top? at the bottom of
> > the stack? what happens if I connect to ::draw and then stop the
> > signal emission?
> >
> > for GTK+ 3.x, the scene graph API is going to be available for you to
> > write new widgets with a scene inside them, and to put widgets inside
> > a scene. the short term goal is to fully replace the current usage of
> > Clutter and Clutter-GTK (and possibly Clutter-GStreamer) throughout
> > the GNOME stack; anything else is on a purely speculative basis, and
> > it will land if and only if it does not break API and/or ABI. a full
> > rework of the GTK widgets to use the scene graph API is going to wait
> > until we can release GTK+ 4.
>
> Ok I see.
>
> > it is also my opinion that, if we break API, we may as well deprecate
> > GtkTreeView and replace it with the list widget backend by a model,
> > and drop the whole cell renderer scene API in the first place.
>
> But GtkTreeView has the advantage that it already works and is mostly
> feature complete (to display trees too), and is used in lots of
> libraries and applications, with custom models etc. It seems easier to
> me to do code refactorings in GtkTreeView than creating a completely new
> widget from scratch.


... ahahahahaha


> And if GSK can potentially simplify a lot the
> GtkTreeView implementation in the future, and with the API break for GTK
> + 4, another solution is to simplify both the API and implementation of
> GtkTreeView for GTK+ 4.
>
> That said, I've never worked on the GtkTreeView code.


Ah, that's why. I vote you a volunteer for the GSK-ification of GtkTreeView
then.


> Maybe one of the
> reasons to create a new widget from scratch is because nobody wants to
> work on GtkTreeView anymore. But if that is the case, maybe in 10 years
> nobody will want to work on GtkListBox anymore, and developers will
> reinvent the wheels continually, by deprecating more and more APIs,
> creating new ones every decade, and make application developers grumpy.
>
> So in short, if some of the GTK+ code is a mess, why not keeping the
> same APIs while improving internally the code?
>

Because every time we try to clean up GtkTreeView, we break some random
application. It's a widget that has twenty three gazillion use cases, and
so we have to keep it a mess, because removing the mess means removing one
use case, and we can't do that.

You're welcome to try, though.


> --
> Sébastien
>
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-devel-list
>



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

Reply via email to