Begin forwarded message:
From: Michael Lucas-Smith <michael.lucassmith@gmail.com> Subject: Re: [vwnc] Doodling with Cairo... Date: July 24, 2013 12:31:24 PM GMT+02:00 To: stewart@xtra.co.nz Cc: vwnc@cs.uiuc.edu
Hi Stewart,
Gizmo was just something Travis Griggs and I made to experiment with CairoGraphics. We wanted to see how it would perform, what kinds of issues we might run in to using Cairo resources in widgets, that sort of thing.
The doodle layout algorithm is a variant of the CSS layout algorithm, significantly simplified, by me as a way to avoid having to do a full on layout algorithm but still get the majority of what we needed to experimenting. This approach to layout is not the future for the UI, we have other plans there using a constraint based solver that has been proven in production code both in Smalltalk and in other languages.
As an experiment, it was a complete success - we sold ourselves on the idea that Cairo was completely viable for our customers to use for this kind of work (ie: custom widgets) and potentially for doing the core widgets too. Some of the people in the community have gone even further, making graphics contexts that use CairoGraphics and whole suits of widgets. It's inspiring and very cool.
So, you've stumbled upon some of the humble beginnings - I frankly didn't realise we'd put that stuff in the open repository, I thought we'd left it in our private repository. Have fun with it if you want.. somewhere in there is my fancy clock that moves the numbers instead of the clock hands and also a Dr. Who animation.
Cheers, Michael
On 10/01/2008, at 2:34 AM, Stewart MacLean <stewart@xtra.co.nz> wrote:
Hi,
Iâve been experimenting with the various Cairo bits and pieces trying to figure out how to get a nice looking tree/UI â some interesting stuff! (thanks for the previous pointers, everyone).
One of which is the Gizmo â which on first impression I wondered whatâs with all these pink rectangles?
But delving deeper it looks like a pretty cool open ended framework â Iâve been experimenting with nesting and it sort of works, but not sure if Iâm configuring it correctly.
The Cairo Wrapper Kit is a piece of art, but Iâm struggling to get my head around it â wrapper hell?
Anyway, I was wondering where the âDoodle Layout Algorithmâ came from? â all I can find are references to a constraint based object visualization system from the mid 90âs.
BTW, I know Smalltalk is generally self documenting code, but some âbig pictureâ class/package documentation with these lovely experiments would make them a lot more accessible!
Cheers,
Stewart
Gizmo>>layoutFromIndex: index "** The Doodle Layout Algorithm ** 1) Use desiredLayoutBlock to find out what we want as our bounds inside the availableExtent given to us. Store this in @desired. 2) Figure out what extent we want to offer our children based on our @desired bounds. Store this in @offered. @desired may contain a width/height of BlockClosure. In this case, we offer the available space for that dimension to our children 3) Offer the @offered space to each child, storing their @requested space 4) Keep a record of the @maximum extent that our children reach inside us so that we can decide how to clip correctly. 5) <pluggable> Use our child layout algorithm to position and size the @requested space as the @bounds of the child 6) Return our @desired bounds to our parent as a requested space replacing any BlockClosure with details from our children's @maximum extent. ."
_______________________________________________ vwnc mailing list vwnc@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
_______________________________________________ vwnc mailing list vwnc@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/vwnc