2 * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #include "wx/wxprec.h"
36 class WebFramePrivate;
37 class WebViewFrameData;
42 class FrameLoaderClientWx;
49 #if WXMAKINGDLL_WEBKIT
50 #define WXDLLIMPEXP_WEBKIT WXEXPORT
51 #elif defined(WXUSINGDLL_WEBKIT)
52 #define WXDLLIMPEXP_WEBKIT WXIMPORT
54 #define WXDLLIMPEXP_WEBKIT
58 #define WXDLLIMPEXP_WEBKIT
61 class WXDLLIMPEXP_WEBKIT wxWebViewDOMElementInfo
64 wxWebViewDOMElementInfo();
66 ~wxWebViewDOMElementInfo() { }
68 wxString GetTagName() const { return m_tagName; }
69 void SetTagName(const wxString& name) { m_tagName = name; }
71 bool IsSelected() const { return m_isSelected; }
72 void SetSelected(bool sel) { m_isSelected = sel; }
74 wxString GetText() const { return m_text; }
75 void SetText(const wxString& text) { m_text = text; }
77 wxString GetImageSrc() const { return m_imageSrc; }
78 void SetImageSrc(const wxString& src) { m_imageSrc = src; }
80 wxString GetLink() const { return m_link; }
81 void SetLink(const wxString& link) { m_link = link; }
92 class WXDLLIMPEXP_WEBKIT wxWebFrame
94 // ChromeClientWx needs to get the Page* stored by the wxWebView
95 // for the createWindow function.
96 friend class WebCore::ChromeClientWx;
97 friend class WebCore::FrameLoaderClientWx;
98 friend class WebCore::EditorClientWx;
99 friend class wxWebView;
101 wxWebFrame(wxWebView* container, wxWebFrame* parent = NULL, WebViewFrameData* data = NULL);
105 void LoadURL(const wxString& url);
128 wxString GetPageSource();
129 void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString);
131 wxString GetInnerText();
132 wxString GetAsMarkup();
133 wxString GetExternalRepresentation();
135 wxString RunScript(const wxString& javascript);
137 bool FindString(const wxString& string, bool forward = true,
138 bool caseSensitive = false, bool wrapSelection = true,
139 bool startInSelection = true);
141 bool CanIncreaseTextSize() const;
142 void IncreaseTextSize();
143 bool CanDecreaseTextSize() const;
144 void DecreaseTextSize();
145 void MakeEditable(bool enable);
146 bool IsEditable() const { return m_isEditable; }
148 wxString GetPageTitle() const { return m_title; }
149 void SetPageTitle(const wxString& title) { m_title = title; }
151 WebCore::Frame* GetFrame();
153 wxWebViewDOMElementInfo HitTest(const wxPoint& post) const;
156 float m_textMagnifier;
158 bool m_isInitialized;
159 bool m_beingDestroyed;
160 WebFramePrivate* m_impl;
165 #endif // ifndef WXWEBFRAME_H