Henry, thanks a lot for all the useful information! 

Concerning the last part my question is: given a window, say a Workspace (or 
Playground) is there a way to tell which program entity (i.e., method or class) 
is involved? So, for a SystemBrowser the entity is the #selectedClass or 
#selectedMethod. For a Playground I should probably extract the source code 
displayed and parse it? I have no idea on how to do that.. 

Cheers,
Roberto

> On 27 Jan 2015, at 13:51, Henrik Johansen <[email protected]> 
> wrote:
> 
>> 
>> On 27 Jan 2015, at 1:21 , Roberto Minelli <[email protected]> wrote:
>> 
>> Dear all,
>> 
>> I have some questions about the following topics: Morphic, the 
>> Zinc-HTTP-Client-Server, and NautilusRefactoring. I am wondering if someone 
>> can help ;)
>> 
>> I am visiting RMoD @ INRIA these days (I am now sitting at the “visiting 
>> tables” @ 3rd floor of INRIA). If someone is willingness to help, please 
>> come forward! To get an idea (and hopefully to collect some answers from 
>> people outside of Lille) here are my doubts
>> 
>> ### Morphic
>> - How can I assess the “z index” of windows?
> That would be their index in the PasteupMorphs submorphs collection, where 
> larger index -> higher in z-order.
> In general, the z-ordering of morphs would be a tree, where
> 
> Morph >> visibilityIndex 
>       ^self owner ifNil:[0] ifNotNil: [:  own | own submorphs indexOf: self ]
> 
> Morph >> visibility
>       ^self owner ifNotNil: [ owner visibility addLast: self visibilityIndex; 
> yourself ] ifNil:[OrderedCollection new]. 
> 
> would give you a list of numbers, all morphs with higher numbers at any level 
> would have a higher z-order.
> 
>> For each window I’d like to know the % that is visible on screen, i.e., not 
>> covered from other windows.
> 
> That's not possible to calculate accurately in the general case, due to 
> morphs possibly containing fully transparent portions within their bounds.
> An approximation using bounds would work the same way as the procedure in 
> WorldState >> drawWorld: aWorld submorphs: submorphs invalidAreasOn: aCanvas  
> , 
> where:
> - The bounds of the morph to check is the damage rect to fill (rectList)
> - The bounds of higher ordered morphs that might obscure it corresponds to 
> the submorphs parameter.
> - There's no merging of remnants
> - No actually drawing/all the other fluff :P 
> 
> Area of remnants / area of original morph bounds would then be an ok-ish 
> approximation of the % that is visible.
> 
>> - Is there a “general pattern” on how to extract which entity is “displayed” 
>> on a window? In System Browsers is easy, what about other types of windows?
> 
> Dunno what you mean by that...
>> 
>> ### Zinc-HTTP-Client-Server
>> - How can I do a real upload (HTTP post) in background?
>> 
>> ### NautilusRefactoring
>> - How does it work? Why there are different methods to remove a class, for 
>> example? e.g., NautilusRefactoring>>#removeClasses: vs. 
>> AbstractTool>>#removeClasses:
>> - Why #removeClasses: is triggered before the actual removal (i.e., 
>> confirmation dialogue)?
> 
> Leaving these for others ;)
> 
> Cheers,
> Henry


Reply via email to