本文整理汇总了C++中editor::Command::isTextInsertion方法的典型用法代码示例。如果您正苦于以下问题:C++ Command::isTextInsertion方法的具体用法?C++ Command::isTextInsertion怎么用?C++ Command::isTextInsertion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类editor::Command
的用法示例。
在下文中一共展示了Command::isTextInsertion方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: executePendingEditorCommands
bool EditorClient::executePendingEditorCommands(Frame* frame, bool allowTextInsertion)
{
Vector<Editor::Command> commands;
for (size_t i = 0; i < m_pendingEditorCommands.size(); i++) {
Editor::Command command = frame->editor()->command(m_pendingEditorCommands.at(i).utf8().data());
if (command.isTextInsertion() && !allowTextInsertion)
return false;
commands.append(command);
}
bool success = true;
for (size_t i = 0; i < commands.size(); i++) {
if (!commands.at(i).execute()) {
success = false;
break;
}
}
m_pendingEditorCommands.clear();
// If we successfully completed all editor commands, then
// this signals a canceling of the composition.
if (success)
clearPendingComposition();
return success;
}
示例2: handleKeyDown
static void handleKeyDown(Frame& frame, KeyboardEvent& event, const PlatformKeyboardEvent&)
{
String commandName = interpretKeyEvent(event);
if (commandName.isEmpty())
return;
// We shouldn't insert text through the editor. Let WebCore decide
// how to handle that (say, Tab, which could also be used to
// change focus).
Editor::Command command = frame.editor().command(commandName);
if (command.isTextInsertion())
return;
command.execute();
event.setDefaultHandled();
}
示例3: executePendingEditorCommands
bool WebEditorClient::executePendingEditorCommands(Frame* frame, const Vector<WTF::String>& pendingEditorCommands, bool allowTextInsertion)
{
Vector<Editor::Command> commands;
for (auto& commandString : pendingEditorCommands) {
Editor::Command command = frame->editor().command(commandString.utf8().data());
if (command.isTextInsertion() && !allowTextInsertion)
return false;
commands.append(WTF::move(command));
}
for (auto& command : commands) {
if (!command.execute())
return false;
}
return true;
}
示例4: handleKeyboardEvent
void EditorClientAndroid::handleKeyboardEvent(KeyboardEvent* event) {
ASSERT(m_page);
Frame* frame = m_page->focusController()->focusedOrMainFrame();
if (!frame)
return;
const PlatformKeyboardEvent* keyEvent = event->keyEvent();
// TODO: If the event is not coming from Android Java, e.g. from JavaScript,
// PlatformKeyboardEvent is null. We should support this later.
if (!keyEvent)
return;
Editor::Command command = frame->editor()->command(interpretKeyEvent(event));
if (keyEvent->type() == PlatformKeyboardEvent::RawKeyDown) {
if (!command.isTextInsertion() && command.execute(event)) {
// This function mimics the Windows version. However, calling event->setDefaultHandled()
// prevents the javascript key events for the delete key from happening.
// Update: Safari doesn't send delete key events to javascript so
// we will mimic that behavior.
event->setDefaultHandled();
}
return;
}
if (command.execute(event)) {
event->setDefaultHandled();
return;
}
// Don't insert null or control characters as they can result in unexpected behaviour
if (event->charCode() < ' ')
return;
if (frame->editor()->insertText(keyEvent->text(), event))
event->setDefaultHandled();
}