Begin forwarded message:

From: "Stewart MacLean" <stewart@xtra.co.nz>
Subject: [vwnc] Doodling with Cairo...
Date: January 9, 2008 4:34:08 PM GMT+01:00
To: <vwnc@cs.uiuc.edu>
Reply-To: stewart@xtra.co.nz

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