MC IDE - developer tool additions - sugggestion
Richard Gaskin
ambassador at fourthworld.com
Thu Apr 1 13:36:22 EST 2004
Robert Brenstein wrote:
> I gather your classification is then
>
> 1. passive plugin
> 2. active plugin
> 3. library plugin
>
> If I follow correctly what you said above about library plugins, I'd
> have to
>
> a) add the above script and
> b) visit plugins manager to activate auto-open
>
> in order to have that stack automagically put in use upon launch.
>
> I wonder whether we could make it totally transparent and eliminate both
> of these steps: since each well-behaved library stack should have a
> librarystack handler, (even if empty -- so it traps the message intended
> for it rather then letting it pass to whatever other library is already
> open), the plugin manager could easily check for its presense and act
> accordingly. I believe it is possible to fetch stack script without
> actually opening stack and two offset calls and a couple of if's per
> plugin are an acceptance price.
True, but if the stack is password-protected it'll generate an error.
As Rev grows we can anticipate a third-party marketplace of components,
and some of those may be locked for public distribution, such as Ken's
XML library or my hopefully-released-soon Devolution toolkit.
Another approach would be to include a property that lists available
handlers, but if we're going to go so far as to add properties I would
sooner just adopt Rev's property-based scheme for compatibility reasons.
But whether a stack is libraried by its own script or through the
addition of a property, neither is completely "transparent" in the sense
that some additional action is required by the developer to invoke the
desired behavior.
For simplicity's sake, my personal preference is to use native commands
and properties whenever possible, augmenting the engine only where
absolutely necessary. In this case that would mean adding a line of
script as opposed to adding a property and requiring a new mechanism in
the IDE to read and use that property.
Another example is with window styles: Transcript has a built-in stack
property called "style" which allows a stack to be opened in the mode
specified in that property when using "open" or "go". While we could
add the additional mirror property that Rev uses I feel okay about
departing from that in favor of the built-in solution as it already
exists and works great.
> Moreover, library stacks might have a gui to provide documentation, so
> it must be possible to open them also from the plugins menu.
For this reason I'm proposing we break from Rev's convention on another
front: when a stack is marked for auto-opening it will still appear in
the Plugins menu.
> The preopenstack solution you suggest would result in a stack
> window showing up at launch and requiring a manual close.
Not if you use a "pre" message, like "preOpenStack" or even
"preOpenCard", as those are sent before the stack is drawn.
Hmmmm....
after thinking about I think I'm getting it. The problem is one of
ambiguity: when is stack opened to be libraried and when to be looked
at? (later in your email you address this clearly; that'll teach me to
rush through catching up on my email <g>)
Okay, I'll modify the Plugins Manager window like this:
A stack can be set to auto-open OR to be auto-libraried. That way we
still only have one custom property being set and a library stack can
still be opened for viewing/editing through the Plugins menu.
Would that do it?
> If stack is made invisible, there must be a way to make it
> visible when opening from menu.
No need for a stack to be made invisible: a stack brought into use is
not opened.
And even in my initial proposal (hence revised per your suggestion
above) the stack can be opened and closed without affecting its
libraried status.
In the current version of the engine this is only true if the stack's
destroyStack property is off, but that's a bug scheduled to be fixed so
it will soon be universally true.
But by supporting your excellent suggestion the issue goes completely
away anyway.
--
Richard Gaskin
Fourth World Media Corporation
___________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the metacard
mailing list