diff options
Diffstat (limited to 'layout/base/nsILayoutHistoryState.h')
-rw-r--r-- | layout/base/nsILayoutHistoryState.h | 70 |
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 */ + |