Yeah, I know that this message passed your inboxes months ago, but I have > 1200 emails in my inbox. :( Nearly all of them are from the Squeak list. :)
Years ago for a HCI class with Alan Borning at the UW, I used the C++ version of Cassowary to build a Delphi UI layout manager. I used the introspection facilities in Delphi components to allow a developer to write a series of formulas describing relationships between the various UI elements. I also made a little cassowary playground that worked like a mini ThingLab.
The thing that I found myself wanting from Cassowary was the ability to specify "brittle" constraints: i.e. ones that once they were unsatisfiable they would no longer influence the outcome of the ones that were satisfiable. If I had that I would have been able to implement things like sticky widgets, where they would 'magnetically' attach to the edges of their container using nothing but constraints with different weights.
Sadly, I no longer have that work. It was with the rest of my academic artifacts that went away when the motor failed on an old Maxtor.
-andrew
On Thu, 9 Jan 2003 20:11:31 +0100, Andreas Raab andreas.raab@gmx.de wrote:
Josh,
Thanks - by now I got various copies from people (thanks to all of you!) but this is the kind of thing that really _ought_ to be on SqueakMap (hint, hint!).
What are you thinking of doing with it?
I'm looking into different ways of end-user friendly specification of "object compositions" (aka: layouts). Since I know that Cassowary was used for CSVG and other things I was wondering if it might be a good starting base for some more end-user friendly model than we have right now.
This problem bugged me for a long time now - the AlignmentMorph's in Squeak used to require compositions of compositions of compositions of nested things and they just got in the way of "seeing the thing you are interested in" (namely some object of the composition). So I tried to generalize this into the layouts we have today but while they are more general they are also much harder to understand (lots of very generic properties with lots of unclear compositional effects).
So what I am essentially looking for is some way of specifying "lots of dog-simple constraints" (like: make the left edge of one guy follow the right edge of some other guy) and provide some interactive means for specifying it - so that rather than having a set of generic properties the user gets a (possibly large) number of very concrete mini-constraints. Those need to be solved efficiently and that's when I got into thinking about the various constraint solvers.
BTW, do you know if Cassowary can give feedback about constraints that cannot be resolved (perhaps even potentially)?! I'm interested in this because what I would like to do is give constant feedback about the composition you are building - so that when you add a constraint which "won't work" the system could indicate this by some means.
Cheers,
- Andreas
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev- admin@lists.squeakfoundation.org] On Behalf Of Joshua 'Schwa' Gargus Sent: Thursday, January 09, 2003 7:32 PM To: Andreas Raab; Squeak Mailing List Subject: Re: Cassowary anyone?!
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua