The status bar plugin provides a centralized facility for components of INIX applications to display warnings, error messages, status and progress reports, and the like to the user. All incoming messages are entered into a message history (provided by an outwin plugin), and the latest or most important message is displayed in the status bar itself. The user can acknowledge this message, in which case it will no longer be displayed in the status bar, and the next most important pending message, if any, will appear instead. The definition of "importance" here is that messages of higher level take precedence over ones of lower level (fatal > progress > error > warning > info), and newer messages of the same level override older ones.
Such messages can be of two fundamental kinds:
Sources of "state" messages must be able to post a message when the state starts, then mark it as invalid or superseded when the state ends. Sources of "event" messages would prefer not to have to invalidate every message before posting the next one. To achieve both goals in a unified way, the statusbar plugin uses the concept of channels: When several messages are posted to the same channel, each one automatically invalidates/supersedes the previous one (unless it has been explicitly invalidated before). This is what is used for "event" messages. Messages posted to different channels stay valid, independently of each other, until they are explicitly invalidated (or superseded by another message posted to the same channel). This is what is used for "state" messages. Channels are numbered by positive integers and are automatically allocated by the plugin.
Post Message to the status bar. Level is one of 0 = fatal, 1 = progress, 2 = error, 3 = warning, 4 = info. Pass 0 as Channel to post the message to a new channel (making it independent of any existing messages), or a channel number to post it to an existing channel (superseding the previous message, if any, on that channel). Passing a non-zero number that does not refer to an existing channel is not an error (a new channel with that number will be created), but should be avoided in order to avoid collisions with other clients.
AcknowledgementOptions is currently unused, in a future version it will be used to give the user different options on how to react to the message. For now, it should be kept empty.
Returns the number of the channel to which the message was posted. This is equal to the Channel argument if it was non-zero, or a new channel number if it was zero.
This is equivalent to StatusPost except for one point: if the channel to which the message is posted already contains some messages, this will replace the last history entry instead of appending a new one. This is intended for e.g. command line tool output that quickly counts up a percentage in-place, where it is preferred not to get a new history entry for every step. In most other cases, rewriting history is undesirable, and StatusPost should be used instead.
Marks the last message on Channel as ended/invalid/superseded. If that message was being displayed in the status bar, it will disappear from there.
The INCO path of an outwin (or compatible) plugin that keeps track of the message history. May be left empty if no history is needed.
The procedures contained in this folder implement the IMessageOutput interface of the outwin plugin. This enables the statusbar plugin to be used as a replacement for the outwin plugin, e.g. when connected to the sexecutor plugin.
1.8.8