[TxMt] Re: Suggestion for DIALOG2 enhancement - interactive async windows

Allan Odgaard mailinglist at textmate.org
Mon Aug 4 09:44:03 UTC 2008

On 9 Jul 2008, at 10:42, Hans-Joerg Bibiko wrote:

> [...]
> I didn't find a way to do this. That's why I introduced a new method
> to '"$DIALOG" window' named 'getparams'.
> This method is very simple. It write the current NSDictionary
> 'parameters' of the current nibController to the standard output.
> Nothing else.
> But then I was able to ask the async window: Are there any changes? If
> so, then I changed the content of the parameters accordingly and
> updated the window's parameters.

So are you polling? I.e. how do you learn _when_ the user changes the  

I would suggest that we instead make this an extension of wait or a  
new monitor command.

So one would call: "$DIALOG" window monitor «property 1» [.. «property  
n»] «token»

This command then returns if «property i» changes, and returns a  
dictionary with the changed properties.

This would be implemented by using key/value observing. Two problems  
though, 1) what if the property is changed while no-one is observing  
it, but later the user calls the command (this could be solved by  
storing a copy of the initial parameters and reference + update these,  
each time the user monitors a property, and 2) monitor doesn’t imply  
waiting for actions, but for all practical purposes, this would be  

Based on the above, it might be better with:

     "$DIALOG" window observe «property» «token»

This will immediately return the value of «property» _and_ setup KVO  
for this, which makes "$DIALOG" window wait «token» return, if that  
property is changed.

This solves both #1 and #2.

More information about the textmate mailing list