summaryrefslogtreecommitdiffstats
path: root/widget/nsITaskbarProgress.idl
diff options
context:
space:
mode:
Diffstat (limited to 'widget/nsITaskbarProgress.idl')
-rw-r--r--widget/nsITaskbarProgress.idl58
1 files changed, 58 insertions, 0 deletions
diff --git a/widget/nsITaskbarProgress.idl b/widget/nsITaskbarProgress.idl
new file mode 100644
index 0000000000..d81179d311
--- /dev/null
+++ b/widget/nsITaskbarProgress.idl
@@ -0,0 +1,58 @@
+/* -*- Mode: IDL; 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"
+
+typedef long nsTaskbarProgressState;
+
+/**
+ * Starting in Windows 7, applications can display a progress notification in
+ * the taskbar. This class wraps around the native functionality to do this.
+ */
+[scriptable, uuid(23ac257d-ef3c-4033-b424-be7fef91a86c)]
+interface nsITaskbarProgress : nsISupports
+{
+ /**
+ * Stop displaying progress on the taskbar button. This should be used when
+ * the operation is complete or cancelled.
+ */
+ const nsTaskbarProgressState STATE_NO_PROGRESS = 0;
+
+ /**
+ * Display a cycling, indeterminate progress bar.
+ */
+ const nsTaskbarProgressState STATE_INDETERMINATE = 1;
+
+ /**
+ * Display a determinate, normal progress bar.
+ */
+ const nsTaskbarProgressState STATE_NORMAL = 2;
+
+ /**
+ * Display a determinate, error progress bar.
+ */
+ const nsTaskbarProgressState STATE_ERROR = 3;
+
+ /**
+ * Display a determinate progress bar indicating that the operation has
+ * paused.
+ */
+ const nsTaskbarProgressState STATE_PAUSED = 4;
+
+ /**
+ * Sets the taskbar progress state and value for this window. The currentValue
+ * and maxValue parameters are optional and should be supplied when |state|
+ * is one of STATE_NORMAL, STATE_ERROR or STATE_PAUSED.
+ *
+ * @throws NS_ERROR_INVALID_ARG if state is STATE_NO_PROGRESS or
+ * STATE_INDETERMINATE, and either currentValue or maxValue is not 0.
+ * @throws NS_ERROR_ILLEGAL_VALUE if currentValue is greater than maxValue.
+ */
+ void setProgressState(in nsTaskbarProgressState state,
+ [optional] in unsigned long long currentValue,
+ [optional] in unsigned long long maxValue);
+};