| Index: mojo/services/native_viewport/native_viewport_controller.cc | 
| diff --git a/mojo/services/native_viewport/native_viewport_controller.cc b/mojo/services/native_viewport/native_viewport_controller.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..2a8f6d0364f1ceb2be1c4ab786d6460d902e11cd | 
| --- /dev/null | 
| +++ b/mojo/services/native_viewport/native_viewport_controller.cc | 
| @@ -0,0 +1,51 @@ | 
| +// Copyright 2013 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#include "mojo/services/native_viewport/native_viewport_controller.h" | 
| + | 
| +#include "base/message_loop/message_loop.h" | 
| +#include "base/strings/stringprintf.h" | 
| +#include "mojo/services/native_viewport/native_viewport.h" | 
| +#include "ui/events/event.h" | 
| + | 
| +namespace mojo { | 
| +namespace services { | 
| + | 
| +NativeViewportController::NativeViewportController(Handle pipe) | 
| +    : pipe_(pipe) { | 
| +  native_viewport_ = NativeViewport::Create(this); | 
| +} | 
| +NativeViewportController::~NativeViewportController() { | 
| +} | 
| + | 
| +void NativeViewportController::Close() { | 
| +  DCHECK(native_viewport_); | 
| +  native_viewport_->Close(); | 
| +} | 
| + | 
| +bool NativeViewportController::OnEvent(ui::Event* event) { | 
| +  ui::LocatedEvent* located = static_cast<ui::LocatedEvent*>(event); | 
| +  SendString(base::StringPrintf("Event @ %d,%d", | 
| +                                located->location().x(), | 
| +                                located->location().y())); | 
| +  return false; | 
| +} | 
| + | 
| +void NativeViewportController::OnResized(const gfx::Size& size) { | 
| +  SendString(base::StringPrintf("Sized to: %d x %d", | 
| +                                size.width(), | 
| +                                size.height())); | 
| +} | 
| + | 
| +void NativeViewportController::OnDestroyed() { | 
| +  base::MessageLoop::current()->Quit(); | 
| +} | 
| + | 
| +void NativeViewportController::SendString(const std::string& string) { | 
| +  WriteMessage(pipe_, string.c_str(), string.size()+1, NULL, 0, | 
| +                MOJO_WRITE_MESSAGE_FLAG_NONE); | 
| +} | 
| + | 
| +}  // namespace services | 
| +}  // namespace mojo | 
|  |