[Cosmo-dev] UI layout and rendering doc

Jeremy Epstein eggfree at eggfree.net
Sun May 27 13:14:02 PDT 2007


NOTE, this is not  formal patch submission yet-- there is some integration and testing requred-- consider it a preview for understanding an approach and to allow for integrtion and testing


Hi mathew-- as promised, these attached files contain a modified 
resize.js that should handle parent child relationships, and a modified 
contentbox.js that includes two new classes; resizewrangler and 
viewportContentBox.

the first is integrated n to the contentbox resize routines to eliminate 
circular rendering dpendencies-- there is a hash that tracks renders-- 
until the hash is cleared, once an item is rendered it can't be rendered 
again. for integration, this will require you to add a line to the 
topmost render method or whateer invokes to clear the hash. I'll explain 
if you are online.

the second item in contentbox is another contentbox, (you could think of 
it ias a subclass if you are so inclined)
that includs a wrapper for viewports. note that the viewport resize 
parents are different then the strict DOM hierarchy as they will almost 
always resize absolutely based on the first absolutely or relatively 
positioned parents coordinate space. this is important-- an objects 
logical dom parent may not be absolutely positioned, but a viewport's 
render parent must implement the viewport render method (which requires 
the render command to pass two arguments: width and height)


anyway I'll explain it all when you are ready for it


I was not able to thoroughly integrate this as my svn update didn't work 
copletely and I was afraid my tree awas a little broken. the code will 
at least let you vet the approach and give you some opportunity to tune 
th viewportcontent box and the resizewrangler. I'd like to continue to 
fully own bugfixes and 



Jeremy Epstein wrote:
> hey Matthew
>
> So I've built an appropriate wrapper for the sidecar issue but it 
> won't be ready until the weekend
> I also built into contentbox a mechanism for insuring there are no 
> circular rendering issues (where a set of nodes keeps rerendering 
> themselves because of circular parent-child relationships)
> There is a new class ViewportContentBox. It implements the ContentBox 
> interface, but is not strictly a subclass. (its important to make sure 
> the rendering tree behaves consistently if content is to be 
> interchangeable)
>
> Jeremy
>
> Matthew Eernisse wrote:
>> Hey, Cosmo people,
>>
>> I've got a very basic document explaining how the new UI layout and 
>> rendering scheme works:
>>
>> http://chandlerproject.org/Journal/UILayoutAndRendering
>>
>> One of the longer-term goals I have is integrating Jeremy's resizing 
>> viewports a bit better into the ContentBox model we have now.
>>
>> Right now it acts kind of like a little motorcycle sidecar sitting on 
>> the side -- and I think we can probably make it a little more unified 
>> and clean. I'd be really interested in people's ideas on how we could 
>> make this work.
>>
>> Thanks.
>>
>>
>> Matthew
>>
>>
>> _______________________________________________
>> cosmo-dev mailing list
>> cosmo-dev at lists.osafoundation.org
>> http://lists.osafoundation.org/mailman/listinfo/cosmo-dev
>>
>>
> _______________________________________________
> cosmo-dev mailing list
> cosmo-dev at lists.osafoundation.org
> http://lists.osafoundation.org/mailman/listinfo/cosmo-dev
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ContentBox.js
Type: application/x-javascript
Size: 5602 bytes
Desc: not available
Url : http://lists.osafoundation.org/pipermail/cosmo-dev/attachments/20070527/57d2571d/ContentBox.js
-------------- next part --------------
A non-text attachment was scrubbed...
Name: resize.js
Type: application/x-javascript
Size: 17164 bytes
Desc: not available
Url : http://lists.osafoundation.org/pipermail/cosmo-dev/attachments/20070527/57d2571d/resize.js


More information about the cosmo-dev mailing list