summaryrefslogtreecommitdiffstats
path: root/WebKit/wx/WebEdit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/wx/WebEdit.cpp')
-rw-r--r--WebKit/wx/WebEdit.cpp65
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