michael@0: /* vim: se cin sw=2 ts=2 et : */ michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- michael@0: * michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsISupports.idl" michael@0: #include "nsIBaseWindow.idl" michael@0: michael@0: interface nsITaskbarPreviewController; michael@0: michael@0: /** michael@0: * nsITaskbarPreview michael@0: * michael@0: * Common interface for both window and tab taskbar previews. This interface michael@0: * cannot be instantiated directly. michael@0: * michael@0: */ michael@0: [scriptable, uuid(CBFDF766-D002-403B-A3D9-B091C9AD465B)] michael@0: interface nsITaskbarPreview : nsISupports michael@0: { michael@0: /** michael@0: * The controller for this preview. A controller is required to provide michael@0: * the behavior and appearance of the taskbar previews. It is responsible for michael@0: * determining the size and contents of the preview, which buttons are michael@0: * displayed and how the application responds to user actions on the preview. michael@0: * michael@0: * Neither preview makes full use of the controller. See the documentation michael@0: * for nsITaskbarWindowPreview and nsITaskbarTabPreview for details on which michael@0: * controller methods are used. michael@0: * michael@0: * The controller is not allowed to be null. michael@0: * michael@0: * @see nsITaskbarPreviewController michael@0: */ michael@0: attribute nsITaskbarPreviewController controller; michael@0: michael@0: /** michael@0: * The tooltip displayed above the preview when the user hovers over it michael@0: * michael@0: * Default: an empty string michael@0: */ michael@0: attribute DOMString tooltip; michael@0: michael@0: /** michael@0: * Whether or not the preview is visible. michael@0: * michael@0: * Changing this option is expensive for tab previews since toggling this michael@0: * option will destroy/create the proxy window and its registration with the michael@0: * taskbar. If any step of that fails, an exception will be thrown. michael@0: * michael@0: * For window previews, this operation is very cheap. michael@0: * michael@0: * Default: false michael@0: */ michael@0: attribute boolean visible; michael@0: michael@0: /** michael@0: * Gets/sets whether or not the preview is marked active (selected) in the michael@0: * taskbar. michael@0: */ michael@0: attribute boolean active; michael@0: michael@0: /** michael@0: * Invalidates the taskbar's cached image of this preview, forcing a redraw michael@0: * if necessary michael@0: */ michael@0: void invalidate(); michael@0: }; michael@0: