blob: bc270e90883db4cfe1acbd833a4a626ef3c278cd [file]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/views/controls/textfield/textfield_controller.h"
#include <utility>
#include "base/functional/callback_helpers.h"
#include "ui/base/clipboard/scoped_clipboard_writer.h"
#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h"
#include "ui/events/event.h"
namespace views {
bool TextfieldController::HandleKeyEvent(Textfield* sender,
const ui::KeyEvent& key_event) {
return false;
}
bool TextfieldController::HandleMouseEvent(Textfield* sender,
const ui::MouseEvent& mouse_event) {
return false;
}
bool TextfieldController::HandleGestureEvent(
Textfield* sender,
const ui::GestureEvent& gesture_event) {
return false;
}
views::View::DropCallback TextfieldController::CreateDropCallback(
const ui::DropTargetEvent& event) {
return base::NullCallback();
}
bool TextfieldController::OnBeforeCutOrCopy(Textfield* sender,
std::u16string* copy_contents) {
// Default implementation does not intercept copy/cut. Controllers may
// override this to supply copy/cut contents and return true to bypass default
// clipboard write.
return false;
}
void TextfieldController::OnBeforePaste(
Textfield* sender,
base::OnceCallback<void(std::optional<std::u16string>)> callback) {
// Default implementation does not intercept paste. Controllers may override
// this to supply paste contents by invoking `callback` with a value to bypass
// default clipboard read.
std::move(callback).Run(std::nullopt);
}
std::unique_ptr<ui::ScopedClipboardWriter>
TextfieldController::CreateClipboardWriter() {
return std::make_unique<ui::ScopedClipboardWriter>(
ui::ClipboardBuffer::kCopyPaste);
}
} // namespace views