2 * interface for rendering objects whose state is saved in
3 * session-history (back-forward navigation)
6 #ifndef _nsIStatefulFrame_h
7 #define _nsIStatefulFrame_h
9 #include "nsISupports.h"
14 #define NS_ISTATEFULFRAME_IID \
15 { 0x25c232cf, 0x40ba, 0x4394, \
16 { 0x84, 0xe4, 0x73, 0xa2, 0xf7, 0x4d, 0x8b, 0x64 } }
18 class nsIStatefulFrame
: public nsISupports
{
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
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 */