Custom Properties
Devin Asay
devin_asay at byu.edu
Wed Apr 12 18:39:15 EDT 2006
On Apr 12, 2006, at 4:11 PM, J. Landman Gay wrote:
> Devin Asay wrote:
>> On Apr 12, 2006, at 11:44 AM, Thomas McGrath III wrote:
>>> Does anyone have any examples on the get/setProps in real usage?
>>> I have been using custom props but not the setProp etc. I would
>>> love some more insightful ideas on it's usage.
>> The way I use it is much more pedestrian than the Marks'. For me
>> it's a really easy way to make sure my interface objects get set
>> to the proper states. For example, let's say I want to toggle
>> between an 'editable' and 'noneditable' mode for a text editor:
>> setProp editMode pMode
>> if pMode then
>> enable button "Save"
>> enable button "TextColor"
>> set the lockText of fld "myfld" to true
>> set the traversalOn of fld "myFld" to true
>> else
>> disable button "Save"
>> disable button "TextColor"
>> set the lockText of fld "myfld" to false
>> set the traversalOn of fld "myFld" to false
>> end if
>> pass editMode -- the docs say you have to explicitly pass it to
>> have it set the prop
>> end editMode
>
> I have thought about doing this many times, but I usually revert
> back to using a command or function handler instead, probably out
> of habit. For example, the above could also be done by:
>
> setEditMode true
>
> rather than using a property assignment like "set the editmode...".
> For me, seeing a handler name informs me that there is a related
> script somewhere. Setting a property doesn't give me the same,
> immediate knowledge; later on when I've forgotten why I wrote a
> script a certain way, seeing a statement that sets a property
> doesn't tell me as clearly that a lot of other actions will be
> taking place at the same time.
>
> Now I'm curious what's the advantage, if any, of using a setProp
> handler over a standard command handler? This isn't just to you,
> Devin, but to anyone who uses these regularly.
>
> I should also say that I do use one of these routinely: when I set
> a stack's version number property, I often use a setProp handler
> that updates the version display in an About box, or wherever else
> it happens to show. In this case, I usually set the version
> property from the message box, so a setProp handler gives me an
> automated way to get a lot of stuff done without having to type in
> (and remember) a handler name. But when called from inside a
> script, I'm not sure what the advantages would be.
I guess for me it boils down to keeping the underlying data and
configuration information both separate from and directly tied to the
interface. In other words, a custom property set to a certain value
implies in my mind that the interface should look and behave in a way
consistent with that value. So by setting the custom prop value and
handling interface issues in the setProp handler I only have to worry
about keeping the underlying data and configuration info in the state
I want it. Is it a difference between "event-driven" and "state-
driven" programming? (Those are my terms; I have no idea if they
actually make sense to anyone but me.)
Devin
Devin Asay
Humanities Technology and Research Support Center
Brigham Young University
More information about the use-livecode
mailing list