summaryrefslogtreecommitdiffstats
path: root/layout/base/nsILayoutHistoryState.h
diff options
context:
space:
mode:
Diffstat (limited to 'layout/base/nsILayoutHistoryState.h')
-rw-r--r--layout/base/nsILayoutHistoryState.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/layout/base/nsILayoutHistoryState.h b/layout/base/nsILayoutHistoryState.h
new file mode 100644
index 000000000..5562cfdd1
--- /dev/null
+++ b/layout/base/nsILayoutHistoryState.h
@@ -0,0 +1,70 @@
+/* -*- 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/. */
+
+/*
+ * interface for container for information saved in session history when
+ * the document is not
+ */
+
+#ifndef _nsILayoutHistoryState_h
+#define _nsILayoutHistoryState_h
+
+#include "nsISupports.h"
+#include "nsStringFwd.h"
+
+class nsPresState;
+template<typename> struct already_AddRefed;
+
+#define NS_ILAYOUTHISTORYSTATE_IID \
+{ 0xaef27cb3, 0x4df9, 0x4eeb, \
+ { 0xb0, 0xb0, 0xac, 0x56, 0xcf, 0x86, 0x1d, 0x04 } }
+
+class nsILayoutHistoryState : public nsISupports {
+ public:
+ NS_DECLARE_STATIC_IID_ACCESSOR(NS_ILAYOUTHISTORYSTATE_IID)
+
+ /**
+ * Set |aState| as the state object for |aKey|.
+ * This _transfers_ownership_ of |aState| to the LayoutHistoryState.
+ * It will be freed when RemoveState() is called or when the
+ * LayoutHistoryState is destroyed.
+ */
+ virtual void AddState(const nsCString& aKey, nsPresState* aState) = 0;
+
+ /**
+ * Look up the state object for |aKey|.
+ */
+ virtual nsPresState* GetState(const nsCString& aKey) = 0;
+
+ /**
+ * Remove the state object for |aKey|.
+ */
+ virtual void RemoveState(const nsCString& aKey) = 0;
+
+ /**
+ * Check whether this history has any states in it
+ */
+ virtual bool HasStates() const = 0;
+
+ /**
+ * Sets whether this history can contain only scroll position history
+ * or all possible history
+ */
+ virtual void SetScrollPositionOnly(const bool aFlag) = 0;
+
+ /**
+ * Resets nsPresState::GetScrollState of all nsPresState objects to 0,0.
+ */
+ virtual void ResetScrollState() = 0;
+};
+
+NS_DEFINE_STATIC_IID_ACCESSOR(nsILayoutHistoryState,
+ NS_ILAYOUTHISTORYSTATE_IID)
+
+already_AddRefed<nsILayoutHistoryState>
+NS_NewLayoutHistoryState();
+
+#endif /* _nsILayoutHistoryState_h */
+