diff options
author | Ben Murdoch <benm@google.com> | 2011-05-13 16:23:25 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-16 11:35:02 +0100 |
commit | 65f03d4f644ce73618e5f4f50dd694b26f55ae12 (patch) | |
tree | f478babb801e720de7bfaee23443ffe029f58731 /Source/WebKit/wx/WebFrame.h | |
parent | 47de4a2fb7262c7ebdb9cd133ad2c54c187454d0 (diff) | |
download | external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.zip external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.gz external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.bz2 |
Merge WebKit at r75993: Initial merge by git.
Change-Id: I602bbdc3974787a3b0450456a30a7868286921c3
Diffstat (limited to 'Source/WebKit/wx/WebFrame.h')
-rw-r--r-- | Source/WebKit/wx/WebFrame.h | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/Source/WebKit/wx/WebFrame.h b/Source/WebKit/wx/WebFrame.h new file mode 100644 index 0000000..3e9355a --- /dev/null +++ b/Source/WebKit/wx/WebFrame.h @@ -0,0 +1,183 @@ +/* + * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com> + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef WXWEBFRAME_H +#define WXWEBFRAME_H + +#include "wx/wxprec.h" +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#include "WebKitDefines.h" + +class WebDOMElement; +class WebDOMNode; + +#include "WebDOMSelection.h" + +class Element; + +class WebFramePrivate; +class WebViewFrameData; +class wxWebView; + +namespace WebCore { + class ChromeClientWx; + class EditorClientWx; + class FrameLoaderClientWx; + class Frame; +} + +class WXDLLIMPEXP_WEBKIT wxWebViewDOMElementInfo +{ +public: + wxWebViewDOMElementInfo(); + wxWebViewDOMElementInfo(const wxWebViewDOMElementInfo& other); + + ~wxWebViewDOMElementInfo(); + + wxString GetTagName() const { return m_tagName; } + void SetTagName(const wxString& name) { m_tagName = name; } + + bool IsSelected() const { return m_isSelected; } + void SetSelected(bool sel) { m_isSelected = sel; } + + wxString GetText() const { return m_text; } + void SetText(const wxString& text) { m_text = text; } + + wxString GetImageSrc() const { return m_imageSrc; } + void SetImageSrc(const wxString& src) { m_imageSrc = src; } + + wxString GetLink() const { return m_link; } + void SetLink(const wxString& link) { m_link = link; } + + WebDOMNode* GetInnerNode() { return m_innerNode; } + void SetInnerNode(WebDOMNode* node) { m_innerNode = node; } + + WebDOMElement* GetURLElement() { return m_urlElement; } + void SetURLElement(WebDOMElement* url) { m_urlElement = url; } + +private: + WebDOMNode* m_innerNode; + WebDOMElement* m_urlElement; + bool m_isSelected; + wxString m_tagName; + wxString m_text; + wxString m_imageSrc; + wxString m_link; +}; + +// based on enums in WebCore/dom/Document.h +enum wxWebKitCompatibilityMode { QuirksMode, LimitedQuirksMode, NoQuirksMode }; + +class WXDLLIMPEXP_WEBKIT wxWebFrame +{ +public: + // ChromeClientWx needs to get the Page* stored by the wxWebView + // for the createWindow function. + friend class WebCore::ChromeClientWx; + friend class WebCore::FrameLoaderClientWx; + friend class WebCore::EditorClientWx; + friend class wxWebView; + +public: + wxWebFrame(wxWebView* container, wxWebFrame* parent = NULL, WebViewFrameData* data = NULL); + + ~wxWebFrame(); + + void LoadURL(const wxString& url); + bool GoBack(); + bool GoForward(); + void Stop(); + void Reload(); + + bool CanGoBack(); + bool CanGoForward(); + + bool CanCut(); + bool CanCopy(); + bool CanPaste(); + + void Cut(); + void Copy(); + void Paste(); + + bool CanUndo(); + bool CanRedo(); + + void Undo(); + void Redo(); + + wxString GetPageSource(); + void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString, const wxString& mimetype = wxT("text/html")); + + wxString GetInnerText(); + wxString GetAsMarkup(); + wxString GetExternalRepresentation(); + + wxWebKitSelection GetSelection(); + wxString GetSelectionAsHTML(); + wxString GetSelectionAsText(); + + wxString RunScript(const wxString& javascript); + bool ExecuteEditCommand(const wxString& command, const wxString& parameter = wxEmptyString); + EditState GetEditCommandState(const wxString& command) const; + wxString GetEditCommandValue(const wxString& command) const; + + bool FindString(const wxString& string, bool forward = true, + bool caseSensitive = false, bool wrapSelection = true, + bool startInSelection = true); + + bool CanIncreaseTextSize() const; + void IncreaseTextSize(); + bool CanDecreaseTextSize() const; + void DecreaseTextSize(); + void ResetTextSize(); + void MakeEditable(bool enable); + bool IsEditable() const { return m_isEditable; } + + WebCore::Frame* GetFrame(); + + wxWebViewDOMElementInfo HitTest(const wxPoint& post) const; + + bool ShouldClose() const; + + wxWebKitCompatibilityMode GetCompatibilityMode() const; + + void GrantUniversalAccess(); + +private: + float m_textMagnifier; + bool m_isEditable; + bool m_isInitialized; + bool m_beingDestroyed; + WebFramePrivate* m_impl; + +}; + +#endif // ifndef WXWEBFRAME_H |