Bug 54488 - "[Mac] Non-draggable widgets in background windows should look disabled...
[mozilla-central.git] / layout / generic / nsIStatefulFrame.h
blobf8475beefb01bd2068d8f2bce943975fac823c9f
1 /*
2 * interface for rendering objects whose state is saved in
3 * session-history (back-forward navigation)
4 */
6 #ifndef _nsIStatefulFrame_h
7 #define _nsIStatefulFrame_h
9 #include "nsISupports.h"
11 class nsPresContext;
12 class nsPresState;
14 #define NS_ISTATEFULFRAME_IID \
15 { 0x25c232cf, 0x40ba, 0x4394, \
16 { 0x84, 0xe4, 0x73, 0xa2, 0xf7, 0x4d, 0x8b, 0x64 } }
18 class nsIStatefulFrame : public nsISupports {
19 public:
20 NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISTATEFULFRAME_IID)
22 // If you create a special type stateful frame (e.g. scroll) that needs
23 // to be captured outside of the standard pass through the frames, you'll need
24 // a special ID by which to refer to that type.
25 enum SpecialStateID {eNoID=0, eDocumentScrollState};
27 // Save the state for this frame. Some implementations may choose to return
28 // different states depending on the value of aStateID. If this method
29 // succeeds, the caller is responsible for deleting the resulting state when
30 // done with it.
31 NS_IMETHOD SaveState(SpecialStateID aStateID, nsPresState** aState) = 0;
33 // Restore the state for this frame from aState
34 NS_IMETHOD RestoreState(nsPresState* aState) = 0;
37 NS_DEFINE_STATIC_IID_ACCESSOR(nsIStatefulFrame, NS_ISTATEFULFRAME_IID)
39 #endif /* _nsIStatefulFrame_h */