diff options
Diffstat (limited to 'WebKit/wx/WebFrame.cpp')
-rw-r--r-- | WebKit/wx/WebFrame.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/WebKit/wx/WebFrame.cpp b/WebKit/wx/WebFrame.cpp index e1f7ecc..b8d2ac2 100644 --- a/WebKit/wx/WebFrame.cpp +++ b/WebKit/wx/WebFrame.cpp @@ -59,6 +59,9 @@ #include "wx/wx.h" #endif +#include "WebDOMNode.h" + +#include "WebDOMSelection.h" #include "WebFrame.h" #include "WebView.h" #include "WebFramePrivate.h" @@ -193,6 +196,30 @@ wxString wxWebFrame::GetExternalRepresentation() return externalRepresentation(m_impl->frame); } +wxString wxWebFrame::GetSelectionAsHTML() +{ + if (m_impl->frame) + return m_impl->frame->selection()->toNormalizedRange()->toHTML(); + + return wxEmptyString; +} + +wxString wxWebFrame::GetSelectionAsText() +{ + if (m_impl->frame) + return m_impl->frame->selection()->toNormalizedRange()->text(); + + return wxEmptyString; +} + +wxWebKitSelection wxWebFrame::GetSelection() +{ + if (m_impl->frame) + return wxWebKitSelection(m_impl->frame->selection()); + + return 0; +} + wxString wxWebFrame::RunScript(const wxString& javascript) { wxString returnValue = wxEmptyString; @@ -213,6 +240,36 @@ wxString wxWebFrame::RunScript(const wxString& javascript) return returnValue; } +bool wxWebFrame::ExecuteEditCommand(const wxString& command, const wxString& parameter) +{ + if (m_impl->frame && IsEditable()) + return m_impl->frame->editor()->command(command).execute(parameter); +} + +EditState wxWebFrame::GetEditCommandState(const wxString& command) const +{ + if (m_impl->frame && IsEditable()) { + WebCore::TriState state = m_impl->frame->editor()->command(command).state(); + if (state == WebCore::TrueTriState) + return EditStateTrue; + if (state == WebCore::FalseTriState) + return EditStateFalse; + + return EditStateMixed; + } + + return EditStateFalse; +} + +wxString wxWebFrame::GetEditCommandValue(const wxString& command) const +{ + if (m_impl->frame && IsEditable()) + return m_impl->frame->editor()->command(command).value(); + + return wxEmptyString; +} + + bool wxWebFrame::FindString(const wxString& string, bool forward, bool caseSensitive, bool wrapSelection, bool startInSelection) { if (m_impl->frame) @@ -401,6 +458,7 @@ wxWebViewDOMElementInfo wxWebFrame::HitTest(const wxPoint& pos) const if (m_impl->frame->view()) { WebCore::HitTestResult result = m_impl->frame->eventHandler()->hitTestResultAtPoint(m_impl->frame->view()->windowToContents(pos), false); if (result.innerNode()) { + domInfo.SetInnerNode(new WebDOMNode(result.innerNode())); domInfo.SetLink(result.absoluteLinkURL().string()); domInfo.SetText(result.textContent()); domInfo.SetImageSrc(result.absoluteImageURL().string()); |