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