/* Copyright (c) 2000-2006 ActiveState Software Inc.
   See the file LICENSE.txt for licensing information. */

// Status bar message data.

#include "nsISupports.idl"

[scriptable, uuid(be7d00d0-d95c-4735-932a-ac3996aa4f78)]
interface koIStatusMessage : nsISupports {
    attribute wstring msg;
    attribute string category;
    attribute unsigned long timeout;
    attribute boolean highlight;
    attribute boolean interactive;
    /**
     * Whether to log this message in the notifications widget.
     * Defaults to true.
     */
    attribute boolean log;
    
    // Used internally for implementation.
    attribute double expiresAt;
};


[scriptable, uuid(756968ad-ca7e-4317-87b9-2dfa40cee524)]
interface koIStatusMessageStack : nsISupports {
    // Manage the special stack of status message items. See
    // StatusBar_Message() in statusbar.js for details.
    // Note: The current implementation doesn't do anything fancy such as
    //       providing notification when a message timesout. It is up to
    //       the user of the component to poll. For this reason this is
    //       not an appropriate general mechanism for adding a message to
    //       the status bar. See statusbar.js for how to do that.
    void Push(in koIStatusMessage msg);
    koIStatusMessage Top();

    void Dump();  // for debugging
};
