Enhancements in your opinion?
Richard Gaskin
ambassador at fourthworld.com
Mon May 8 12:56:33 EDT 2006
Bob Warren wrote:
> When submitting enhancement requests, I think it is a good idea to
> obtain some idea of the opinion of other users (of all types) before
> actually putting it forward concretely. Even if an idea is new, people
> are likely to accept it if it helps the flow of their work. On the other
> hand, nobody wants to clutter up the Rev IDE with options that only
> please a few users some of the time.
Agreed. Between those, duplicates, and cases of simply not reading the
docs, about 15-25% of Bugzilla entries are just noise.
> To me, the "browse" tool is essentially the "RUN" button whereby I can
> test the running of my project as it stands so far.
That's not truly the case. Rev has multiple tool modes, just like most
layout programs. The Browse tool could be considered the "normal"
behavior, but if you're making a program that supports layout you can
use the pointer tool also.
Tool modes are not proprietary to the IDE; many of us make apps which
use the pointer tool, paint tools, and other modes. See the Dictionary
entry for the choose command for details.
The difficulty in imagining the pointer tool as "layout" and the browse
tool as "run" is that it overlooks what is perhaps the central
difference between working in Rev and working in more traditional tools
like VB: Rev is always in runtime.
There is no distinction between "edit" and "run" -- the engine is always
working, always sending and handling messages, though the messages sent
will sometimes differ depending on the current tool.
> However, because doing this can cause my program to permanently
> acquire properties that it did not initially have, before
> clicking on RUN I need to save my project in its "clean" form
> so that I can "REVERT" through the message box to the original
> state of the program.
That's not a native engine behavior; the engine only affects built-in
properties. Anything that affects custom properties is a design
decision in the IDE. The Rev IDE was created during a time when the
engine was owned by another company (MetaCard Corp.), and at the time
the only way to implement things like the Profile Manager was by using
custom properties.
RunRev has long since acquired the engine, and I'd like to believe that
anything the IDE does to stacks will eventually change to use built-in
properties, leaving the user-defined properties to be defined by the
user. It also performs colorization on the fly, so it never needs to
cache a copy of the script in a custom property.
The first IDE for the engine from MetaCard Corp. never adds or modifies
custom properties. With the acquisition the MC IDE became open source,
and is maintained by a group of volunteers. While its installation is
somewhat cumbersome, any Studio or Enterprise licensee can use MC with
engine v2.7 or later. A more streamlined installer for MC IDE is
forthcoming.
There are also at least three other IDEs in the works, and to the best
of my knowledge none of them alter custom properties. News on those
will no doubt be posted here as they become available.
In the meantime, Chipp Walters has made a handy plugin, altCleanStack,
which strips Rev's custom properties from a stack:
<http://www.altuit.com/webs/altuit2/altPluginDownload/Downloads.htm>
> Also, since the Rev IDE considers my main stack to be already "LOADED",
> handlers such as "on openStack" will fail (unless special arrangements
> are made for their re-execution), which is not convenient to the
> running and testing of my program "from scratch". (Incidently, this
> is completely different in VB6. Actioning "RUN" means exactly "simulate
> the running of the project as though it was a standalone", which
> implies the re-execution of handlers such as "Form Load" in VB6
> terminology.)
See where the expectations of similarities between VB and Rev will get
ya'? :)
Because Rev is always running, if you need to re-initialize your stack
you can do this in the Message Box:
send "openStack" to this stack
With most of my projects I make a simple palette plugin which send any
messages I need (and quickly opens specific stacks and scripts and other
handy things -- takes only a couple minutes to make your own custom
handy tool).
> While I recognise that many users appreciate the "raizon d'etre" of the
> above arrangement, and are happy using "splash screens" etc. in order to
> get around the situation
The "splash screen" that most people talk about here involves something
that *is* similar to VB: a Windows application cannot modify itself
while its running.
People use the splash screen-as-standalone approach for two reasons:
1. To allow other stacks to have changes saved at runtime
2. To allow dynamic downloads of application components which can be
updated without having to quit the application
>, I would like to tentatively suggest
> introducing the following OPTIONS:
>
> -------------------
> 1) A new handler in 2 possible forms:
>
> on run
> on browse
>
> 2) A new button called "Standalone Test" or just "Test".
>
> -------------------
>
> The handler in 1) would be executed when the operator clicked on the
> toolbar's "browse (run)" button. It would also be executed on a single
> occasion at the startup of the standalone version of the program.
>
> The action of the button in 2) would be to a) hide the project stack
> etc. in the IDE; b) compile the standalone in temp form; c) execute the
> temp standalone by means of a shell call; d; re-show the project stack
> etc. upon termination of the shelled temp standalone.
>
> What do you think? I anticipate that I will probably learn a lot from
> your replies.
I don't know that the new message is needed, but I agree that a way to
have a menu item which closes a stack and re-opens it fresh (to trigger
the opening sequence of messages -- preOpenStack, preOpenCard,
openStack, openCard, etc.) would be handy.
Here's a question: What do to with the startup message? The engine
only sends this when an application first starts, but since the Rev IDE
is the application while working within it that message doesn't find its
way to a stack.
Can it safely be sent to a stack before opening the stack to get the
same messaging sequence as in a standalone?
I never use startup myself so I'm of little use on that one.
--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
More information about the use-livecode
mailing list