#ifndef FramePrivate_h
#define FramePrivate_h
#include "CommandByName.h"
#include "Editor.h"
#include "EventHandler.h"
#include "FrameTree.h"
#include "Range.h"
#include "SelectionController.h"
#include "StringHash.h"
namespace KJS {
class Interpreter;
namespace Bindings {
class Instance;
class RootObject;
}
}
#if PLATFORM(MAC)
#ifdef __OBJC__
@class WebCoreFrameBridge;
@class WebScriptObject;
#else
class WebCoreFrameBridge;
class WebScriptObject;
#endif
#endif
#if PLATFORM(WIN)
#include "FrameWin.h"
#endif
namespace WebCore {
class UserStyleSheetLoader;
typedef HashMap<void*, RefPtr<KJS::Bindings::RootObject> > RootObjectMap;
class FramePrivate {
public:
FramePrivate(Page*, Frame* parent, Frame* thisFrame, HTMLFrameOwnerElement*, FrameLoaderClient*);
~FramePrivate();
Page* m_page;
FrameTree m_treeNode;
RefPtr<DOMWindow> m_domWindow;
HTMLFrameOwnerElement* m_ownerElement;
RefPtr<FrameView> m_view;
RefPtr<Document> m_doc;
KJSProxy* m_jscript;
String m_kjsStatusBarText;
String m_kjsDefaultStatusBarText;
int m_zoomFactor;
TextGranularity m_selectionGranularity;
SelectionController m_selectionController;
Selection m_mark;
Timer<Frame> m_caretBlinkTimer;
Editor m_editor;
CommandByName m_command;
EventHandler m_eventHandler;
bool m_caretVisible : 1;
bool m_caretPaint : 1;
bool m_isActive : 1;
bool m_isPainting : 1;
RefPtr<CSSMutableStyleDeclaration> m_typingStyle;
Timer<Frame> m_lifeSupportTimer;
FrameLoader* m_loader;
UserStyleSheetLoader* m_userStyleSheetLoader;
RefPtr<Node> m_elementToDraw;
PaintRestriction m_paintRestriction;
bool m_highlightTextMatches;
bool m_windowHasFocus;
bool m_inViewSourceMode;
unsigned frameCount;
bool m_prohibitsScrolling;
RefPtr<KJS::Bindings::RootObject> m_bindingRootObject;
RootObjectMap m_rootObjects;
NPObject* m_windowScriptNPObject;
#if PLATFORM(MAC)
RetainPtr<WebScriptObject> m_windowScriptObject;
WebCoreFrameBridge* m_bridge;
#endif
};
}
#endif