InsertEditableImageCommand.cpp [plain text]
#include "config.h"
#include "InsertEditableImageCommand.h"
#include "Editing.h"
#include "HTMLImageElement.h"
namespace WebCore {
RefPtr<HTMLImageElement> InsertEditableImageCommand::insertEditableImage(Document& document)
{
RefPtr<InsertEditableImageCommand> insertCommand = create(document);
insertCommand->apply();
return insertCommand->m_imageElement;
}
InsertEditableImageCommand::InsertEditableImageCommand(Document& document)
: CompositeEditCommand(document)
{
}
void InsertEditableImageCommand::doApply()
{
if (endingSelection().isNone())
return;
m_imageElement = HTMLImageElement::create(document());
m_imageElement->setAttributeWithoutSynchronization(HTMLNames::x_apple_editable_imageAttr, emptyAtom());
m_imageElement->setAttributeWithoutSynchronization(HTMLNames::widthAttr, AtomString("100%", AtomString::ConstructFromLiteral));
m_imageElement->setAttributeWithoutSynchronization(HTMLNames::heightAttr, AtomString("300px", AtomString::ConstructFromLiteral));
m_imageElement->setAttributeWithoutSynchronization(HTMLNames::styleAttr, AtomString("display: block", AtomString::ConstructFromLiteral));
insertNodeAt(*m_imageElement, endingSelection().start());
setEndingSelection(visiblePositionAfterNode(*m_imageElement));
}
}