diff options
Diffstat (limited to 'WebKit/wx/WebEdit.cpp')
| -rw-r--r-- | WebKit/wx/WebEdit.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/WebKit/wx/WebEdit.cpp b/WebKit/wx/WebEdit.cpp new file mode 100644 index 0000000..ed2d0d4 --- /dev/null +++ b/WebKit/wx/WebEdit.cpp @@ -0,0 +1,65 @@ + + +#include "config.h" +#include "WebEdit.h" + +#include "AtomicString.h" +#include "CompositeEditCommand.h" +#include "Document.h" +#include "Frame.h" +#include "HTMLNames.h" +#include "QualifiedName.h" +#include "StringImpl.h" + +#include "WebFrame.h" +#include "WebDOMElement.h" + +namespace WebCore { + +class WebCoreEditCommand: public CompositeEditCommand +{ +public: + WebCoreEditCommand(WebCore::Document* document) + : CompositeEditCommand(document) + { } + + void setElementAttribute(PassRefPtr<Element> element, const QualifiedName& attribute, const AtomicString& value) + { + setNodeAttribute(element, attribute, value); + } + // composite commands are applied as they are added, so we don't + // need doApply to do anything. + virtual void doApply() {} +}; + +} + +wxWebEditCommand::wxWebEditCommand(wxWebFrame* webframe) +{ + if (webframe) { + WebCore::Frame* frame = webframe->GetFrame(); + if (frame && frame->document()) + m_impl = new WebCore::WebCoreEditCommand(frame->document()); + m_impl->ref(); + } +} + +wxWebEditCommand::~wxWebEditCommand() +{ + // the impl. is ref-counted, so don't delete it as it may be in an undo/redo stack + if (m_impl) + m_impl->deref(); + m_impl = 0; +} + +void wxWebEditCommand::SetNodeAttribute(WebDOMElement* element, const wxString& name, const wxString& value) +{ + if (m_impl) + m_impl->setElementAttribute(element->impl(), WebCore::QualifiedName(WebCore::nullAtom, WebCore::String(name), WebCore::nullAtom), WebCore::String(value)); +} + +void wxWebEditCommand::Apply() +{ + if (m_impl) + m_impl->apply(); +}
\ No newline at end of file |
