From: Sean P. <sp...@ad...> - 2006-08-09 20:59:38
|
Moving the conversation to the developer list - > Seriously, I > am more interested with the dynamic/data-driven nature of > GUI description. My interest lies in dynamic layouting and > its binding to application code; again in a declarative form. > I've written such a GUI framework before, heavily influenced by > Fresco. Very cool - the basic model we're following is: Define the various Concepts involved in UI - write the UI components as models of these concepts. We're using type erasure techniques (see the regular_object library) to provide runtime polymorphism with value semantics and without imposing inheritance hierarchies on the individual types. We currently have three Concepts governing a "widget" - Controller - a controller allows you to monitor it by registering a function to be called. A call to the function is a request to change a model (in MVC terms - not generic terms - terminology gets confusing!). We've started to adopt a PropertyModel as the MVC model. A controller can also be notified that it is disconnected when it can not have any effect on the model. A controller has an associated model_type which it can manipulate. View - a view has a single function, display() which is called with a model_type (also an associated type for a View). Controller and View are separate concepts - calling display() on a View does not end up invoking the Controller monitor function. Placeable - a Placable object can be measured (providing an extents struct) and can be placed within a coordinate space. Placable objects connect to the layout library (Eve). Controllers and Views connect to the property model library (Adam). > I'm just starting to play around with ASL and I am not quite > sure as to what extent ASL will cover. For example, I am also > quite interested with vector based (scalable) GUIs. I'm sure > Adobe has its own vector graphics engine. Will such an engine > be available with ASL? Right now, I'm particularly interested > with anti-grain (http://www.antigrain.com/). It would be interesting > to have a vector based extension for the Eve layout engine. Adobe has a few vector based libraries (key ones for rendering PDF and Flash). I've yet to convince either team to open source their efforts, however, Flash is fairly programmable through the Flex product - but the programming happens in ActionScript (a variant of JavaScript) - but one possibility is to port the libraries to ActionScript. My understanding is that Flex components provide a rich enough geometry to be used effectively with something like the layout library. I'd also be interested in integration with antigrain (I've been keeping my eye on the project, just haven't had the bandwidth to do anything). We have an image widget which ties our Generic Image Library (a raster library) into the rest but having something like antigrain rendering into a GIL image and adding an event model for interaction would let us extend the libraries into document content. Long term - I'm interested in building out all the parts needed for a generic application - so we've got a lot of opportunity and a long way to go. Sean |