dbbf92d32ea5bbc86a419083bbd036dfcdeb8b48
[WebKit-https.git] / WebCore / page / FramePrivate.h
1 /* This file is part of the KDE project
2  *
3  * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
4  *                     1999-2001 Lars Knoll <knoll@kde.org>
5  *                     1999-2001 Antti Koivisto <koivisto@kde.org>
6  *                     2000-2001 Simon Hausmann <hausmann@kde.org>
7  *                     2000-2001 Dirk Mueller <mueller@kde.org>
8  *                     2000 Stefan Schimanski <1Stein@gmx.de>
9  * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Library General Public
13  * License as published by the Free Software Foundation; either
14  * version 2 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * Library General Public License for more details.
20  *
21  * You should have received a copy of the GNU Library General Public License
22  * along with this library; see the file COPYING.LIB.  If not, write to
23  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24  * Boston, MA 02111-1307, USA.
25  */
26
27 #ifndef FramePrivate_h
28 #define FramePrivate_h
29
30 #include "CommandByName.h"
31 #include "Editor.h"
32 #include "FormData.h"
33 #include "FrameTree.h"
34 #include "KURL.h"
35 #include "SelectionController.h"
36 #include "StringHash.h"
37
38 namespace WebCore {
39
40     class IconLoader;
41     class TextResourceDecoder;
42     class UserStyleSheetLoader;
43
44     class FramePrivate {
45     public:
46         FramePrivate(Page*, Frame* parent, Frame* thisFrame, Element* ownerElement, PassRefPtr<EditorClient>);
47         ~FramePrivate();
48
49         Page* m_page;
50         FrameTree m_treeNode;
51         RefPtr<DOMWindow> m_domWindow;
52
53         Element* m_ownerElement;
54         RefPtr<FrameView> m_view;
55         RefPtr<Document> m_doc;
56
57         KJSProxy* m_jscript;
58         bool m_bJScriptEnabled : 1;
59         bool m_bJavaEnabled : 1;
60         bool m_bPluginsEnabled : 1;
61
62         Settings* m_settings;
63
64         String m_kjsStatusBarText;
65         String m_kjsDefaultStatusBarText;
66
67         int m_zoomFactor;
68
69         bool m_bMousePressed;
70         RefPtr<Node> m_mousePressNode; // node under the mouse when the mouse was pressed (set in the mouse handler)
71
72         TextGranularity m_selectionGranularity;
73         bool m_beganSelectingText;
74
75         SelectionController m_selectionController;
76         Selection m_mark;
77         Timer<Frame> m_caretBlinkTimer;
78         Editor m_editor;
79         CommandByName m_command;
80
81         bool m_caretVisible : 1;
82         bool m_caretPaint : 1;
83         bool m_isActive : 1;
84
85         int m_xPosForVerticalArrowNavigation;
86         RefPtr<CSSMutableStyleDeclaration> m_typingStyle;
87
88         IntPoint m_dragStartPos;
89
90         Timer<Frame> m_lifeSupportTimer;
91
92         FrameLoader* m_loader;
93         UserStyleSheetLoader* m_userStyleSheetLoader;
94         
95         Timer<Frame> m_autoscrollTimer;
96         RenderObject* m_autoscrollRenderer;
97         bool m_mouseDownMayStartAutoscroll;
98         bool m_mouseDownMayStartDrag;
99         
100         RefPtr<Node> m_elementToDraw;
101         PaintRestriction m_paintRestriction;
102         
103         bool m_markedTextUsesUnderlines;
104         Vector<MarkedTextUnderline> m_markedTextUnderlines;
105         bool m_highlightTextMatches;
106         bool m_windowHasFocus;
107         
108         bool m_inViewSourceMode;
109
110         unsigned frameCount;
111
112         bool m_prohibitsScrolling;
113     };
114 }
115
116 #endif