propertyChanged?

Mark Waddingham mark at livecode.com
Mon Jun 12 14:18:48 EDT 2017


On 2017-06-12 19:50, Richard Gaskin via use-livecode wrote:
> Interesting pull request referenced in v8.0.5rc1's Release Notes:
> https://github.com/livecode/livecode/pull/5570
> 
> When will the propertyChanged message be documented?  I didn't see it
> in this latest build's Dictionary.

That probably shouldn't have had a release note as its an internal IDE 
engine only feature, for use by the IDE.

Due to this it is subject to change, so like most other things 
documenting it is not a high priority (people tend to complain about us 
changing even that kind of stuff regardless how much we say 'it might 
change in a future version'!). Also the engine functionality is provided 
by the _internal command namespace - which we do not document as a 
matter of rule.

Basically, these features are for the use by the IDE and only the IDE - 
if other things use them in the IDE then they might very well break the 
IDE which is not good for interoperation. Also we only test them as far 
as the IDE uses them - the value in having undocumented things like this 
which are only really meant to be used by the IDE is that it is far 
quicker to add the specific functionality needed which works perfectly 
when used in the correct way without having to consider dozens of 
potential edge-cases (which is generally true of virtually any public 
engine feature we add).

So they will bend and change to suit what we need to implement the IDE. 
If you want to use them you are free to do so, but generally the 
documentation is found by reading the source code - all of which is 
available on github - and you need to retest things in each new version 
to make sure something hasn't changed (of course, since all of this is 
open source code, a keen eye on the changes made to either IDE or engine 
can help here).

In many cases the internal engine features supporting the IDE are 
wrapped in LiveCode Script APIs (again subject to change but far less 
so) - and are easier to grok. Also many of the 'revIDE'/'ide' commands 
and functions have docs as comments in the 'revidelibrary'. (We should 
probably look into if we could suck these out into the dictionary for 
easier access...).

In this case, you can subscribe to the propertyChanged message by doing:

   revIDESubscribe "idePropertyChanged", the long id of 
tObjectIWantToWatch

This will then send the calling object an 'idePropertyChanged' message 
when one of tObjectIWantToWatch's properties changes. Unsubscription can 
be be done by using 'revIDEUnsubscribeAll' or 'revIDEUnsubscribe'.

Ali wrote this blog-post way back during the final DPs of 8 to help 
people start poking around in these APIs:

     
https://livecode.com/how-to-create-plugins-and-tools-with-the-livecode-8-0-ide/

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list