1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 
7 /*
8  * a piece of state that is stored in session history when the document
9  * is not
10  */
11 
12 #ifndef nsPresState_h_
13 #define nsPresState_h_
14 
15 #include "nsPoint.h"
16 #include "gfxPoint.h"
17 #include "nsAutoPtr.h"
18 
19 class nsPresState {
20  public:
nsPresState()21   nsPresState()
22       : mContentData(nullptr),
23         mScrollState(0, 0),
24         mAllowScrollOriginDowngrade(true),
25         mResolution(1.0),
26         mScaleToResolution(false),
27         mDisabledSet(false),
28         mDisabled(false),
29         mDroppedDown(false) {}
30 
SetScrollState(const nsPoint & aState)31   void SetScrollState(const nsPoint& aState) { mScrollState = aState; }
32 
GetScrollPosition()33   nsPoint GetScrollPosition() const { return mScrollState; }
34 
SetAllowScrollOriginDowngrade(bool aAllowScrollOriginDowngrade)35   void SetAllowScrollOriginDowngrade(bool aAllowScrollOriginDowngrade) {
36     mAllowScrollOriginDowngrade = aAllowScrollOriginDowngrade;
37   }
38 
GetAllowScrollOriginDowngrade()39   bool GetAllowScrollOriginDowngrade() { return mAllowScrollOriginDowngrade; }
40 
SetResolution(float aSize)41   void SetResolution(float aSize) { mResolution = aSize; }
42 
GetResolution()43   float GetResolution() const { return mResolution; }
44 
SetScaleToResolution(bool aScaleToResolution)45   void SetScaleToResolution(bool aScaleToResolution) {
46     mScaleToResolution = aScaleToResolution;
47   }
48 
GetScaleToResolution()49   bool GetScaleToResolution() const { return mScaleToResolution; }
50 
ClearNonScrollState()51   void ClearNonScrollState() {
52     mContentData = nullptr;
53     mDisabledSet = false;
54   }
55 
GetDisabled()56   bool GetDisabled() const { return mDisabled; }
57 
SetDisabled(bool aDisabled)58   void SetDisabled(bool aDisabled) {
59     mDisabled = aDisabled;
60     mDisabledSet = true;
61   }
62 
IsDisabledSet()63   bool IsDisabledSet() const { return mDisabledSet; }
64 
GetStateProperty()65   nsISupports* GetStateProperty() const { return mContentData; }
66 
SetStateProperty(nsISupports * aProperty)67   void SetStateProperty(nsISupports* aProperty) { mContentData = aProperty; }
68 
SetDroppedDown(bool aDroppedDown)69   void SetDroppedDown(bool aDroppedDown) { mDroppedDown = aDroppedDown; }
70 
GetDroppedDown()71   bool GetDroppedDown() const { return mDroppedDown; }
72 
73   // MEMBER VARIABLES
74  protected:
75   nsCOMPtr<nsISupports> mContentData;
76   nsPoint mScrollState;
77   bool mAllowScrollOriginDowngrade;
78   float mResolution;
79   bool mScaleToResolution;
80   bool mDisabledSet;
81   bool mDisabled;
82   bool mDroppedDown;
83 };
84 
85 #endif /* nsPresState_h_ */
86