Re: Struggling to understand how to render to GtkLayout in a GtkScrolledWindow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2014-10-06 at 16:44 -0400, Paul Davis wrote:
> 
> 
> On Mon, Oct 6, 2014 at 4:05 PM, Oliver Charles <ollie@xxxxxxxxxxxxxxx>
> wrote:
>                 On Mon, Oct 6, 2014 at 7:11 PM, Paul Davis
>                 <paul@xxxxxxxxxxxxxxxxxxxxx> wrote
>                 
>                 
>                 GtkLayout is NOT a canvas.
>                 
>                 You need a canvas widget. Unfortunately, there is no
>                 blessed canvas widget. 
>                 
>         
>         
>         Ok, then I think I was mislead by the documentation for
>         GtkLayout, which states:
>         
>         
>                 GtkLayout is similar to GtkDrawingArea in that it’s a
>                 “blank slate” and doesn’t do anything but paint a
>                 blank background by default
> 
> 
> GktLayout is intended to "layout" other GTK widgets in a scrollable
> space. This has a useful purpose all of its own.
> 
> 
> Unlike a canvas order, it has no notion of z-axis order, so if any of
> your widgets overlap, the result is not well defined (for either
> drawing or event handling). Obviously something will happen, and it
> may be the right thing. But that will be mostly an accident.
> 
> In addition, if you just draw on it, the things you draw are not
> event-sensitive in the way that widgets would be.
> 
>  
>         
>         
>         And the synopsis:
>         
>         
>                 GtkLayout: Infinite scrollable area containing child
>                 widgets and/or custom drawing
>         
>         
>         So if GtkLayout isn't the way to go for a large, scrollable
>         canvas... what is?  
> 
> 
> Once upon a time, there was GnomeCanvas. Discontinued. Other people
> created foocanvas, goocanvas and various others. For Ardour, we've
> recently (within the last year) implemented out own canvas (which does
> *not* handle child widgets, by design).
> 
> What you need depends a great deal on what you actually to do. If you
> want a bunch of non-overlapping widgets with non-event-handling drawn
> elements between them, then GtkLayout should be fine. If you want
> event-sensitive drawn elements or want a defined z-axis order for
> overlapping elements (widgets or otherwise),then it will probably
> prove problematic.


Honestly I have never used goocanvas for any serious project, but
played around with the demo and I still *intend* to use it to replace
something I used clutter for (no it's not similar to clutter, I just
made a bad choice and should have used a canvas all along).

Anyway, I would recommend you at least checkout the goocanvas code
and try it out... depending on the state of GTK+3 the demo might be
rough around the edges (I recall some weird glitches that turned up
in later versions of GTK+3, maybe it was a passing bug), but giver her
a spin and see what you think :)

Cheers,
    -Tristan



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





[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux