Begin forwarded message:

> From: Michael Lucas-Smith <michael.lucassm...@gmail.com>
> Subject: Re: [vwnc] Doodling with Cairo...
> Date: July 24, 2013 12:31:24 PM GMT+02:00
> To: stew...@xtra.co.nz
> Cc: v...@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 <stew...@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
>> v...@cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
> 
> _______________________________________________
> vwnc mailing list
> v...@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

Reply via email to