| Index: mojo/examples/aura_demo/aura_demo.cc
|
| diff --git a/mojo/examples/aura_demo/aura_demo.cc b/mojo/examples/aura_demo/aura_demo.cc
|
| index b2464847a9476d6b931f7ca77caf4e20f77dba88..de005a77800c7497452d8ff7f4b893473b97836a 100644
|
| --- a/mojo/examples/aura_demo/aura_demo.cc
|
| +++ b/mojo/examples/aura_demo/aura_demo.cc
|
| @@ -13,8 +13,11 @@
|
| #include "mojo/public/cpp/application/application.h"
|
| #include "mojo/public/cpp/system/core.h"
|
| #include "mojo/public/interfaces/service_provider/service_provider.mojom.h"
|
| +#include "mojo/services/public/cpp/view_manager/node.h"
|
| +#include "mojo/services/public/cpp/view_manager/view.h"
|
| +#include "mojo/services/public/cpp/view_manager/view_manager.h"
|
| +#include "mojo/services/public/cpp/view_manager/view_manager_delegate.h"
|
| #include "mojo/services/public/interfaces/native_viewport/native_viewport.mojom.h"
|
| -#include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h"
|
| #include "ui/aura/client/default_capture_client.h"
|
| #include "ui/aura/client/window_tree_client.h"
|
| #include "ui/aura/env.h"
|
| @@ -27,34 +30,6 @@
|
| namespace mojo {
|
| namespace examples {
|
|
|
| -void OnSetViewContentsDone(bool value) {
|
| - VLOG(1) << "OnSetViewContentsDone " << value;
|
| - DCHECK(value);
|
| -}
|
| -
|
| -bool CreateMapAndDupSharedBuffer(size_t size,
|
| - void** memory,
|
| - ScopedSharedBufferHandle* handle,
|
| - ScopedSharedBufferHandle* duped) {
|
| - MojoResult result = CreateSharedBuffer(NULL, size, handle);
|
| - if (result != MOJO_RESULT_OK)
|
| - return false;
|
| - DCHECK(handle->is_valid());
|
| -
|
| - result = DuplicateBuffer(handle->get(), NULL, duped);
|
| - if (result != MOJO_RESULT_OK)
|
| - return false;
|
| - DCHECK(duped->is_valid());
|
| -
|
| - result = MapBuffer(
|
| - handle->get(), 0, size, memory, MOJO_MAP_BUFFER_FLAG_NONE);
|
| - if (result != MOJO_RESULT_OK)
|
| - return false;
|
| - DCHECK(*memory);
|
| -
|
| - return true;
|
| -}
|
| -
|
| // Trivial WindowDelegate implementation that draws a colored background.
|
| class DemoWindowDelegate : public aura::WindowDelegate {
|
| public:
|
| @@ -128,97 +103,28 @@ class DemoWindowTreeClient : public aura::client::WindowTreeClient {
|
| DISALLOW_COPY_AND_ASSIGN(DemoWindowTreeClient);
|
| };
|
|
|
| -class AuraDemo;
|
| -
|
| -// Trivial ViewManagerClient implementation. Forwards to AuraDemo when
|
| -// connection established.
|
| -class ViewManagerClientImpl
|
| - : public InterfaceImpl<view_manager::ViewManagerClient> {
|
| - public:
|
| - explicit ViewManagerClientImpl(AuraDemo* aura_demo)
|
| - : aura_demo_(aura_demo) {}
|
| - virtual ~ViewManagerClientImpl() {}
|
| -
|
| - private:
|
| - void OnResult(bool result) {
|
| - VLOG(1) << "ViewManagerClientImpl::::OnResult result=" << result;
|
| - DCHECK(result);
|
| - }
|
| -
|
| - // ViewManagerClient:
|
| - virtual void OnViewManagerConnectionEstablished(
|
| - uint16_t connection_id,
|
| - const String& creator_url,
|
| - uint32_t next_server_change_id,
|
| - mojo::Array<view_manager::NodeDataPtr> nodes) OVERRIDE;
|
| - virtual void OnRootsAdded(Array<view_manager::NodeDataPtr> nodes) OVERRIDE {
|
| - NOTREACHED();
|
| - }
|
| - virtual void OnServerChangeIdAdvanced(
|
| - uint32_t next_server_change_id) OVERRIDE {
|
| - }
|
| - virtual void OnNodeBoundsChanged(uint32_t node,
|
| - mojo::RectPtr old_bounds,
|
| - mojo::RectPtr new_bounds) OVERRIDE {
|
| - }
|
| - virtual void OnNodeHierarchyChanged(
|
| - uint32_t node,
|
| - uint32_t new_parent,
|
| - uint32_t old_parent,
|
| - uint32_t server_change_id,
|
| - mojo::Array<view_manager::NodeDataPtr> nodes) OVERRIDE {
|
| - }
|
| - virtual void OnNodeReordered(
|
| - uint32_t node_id,
|
| - uint32_t relative_node_id,
|
| - view_manager::OrderDirection direction,
|
| - uint32_t server_change_id) OVERRIDE {
|
| - }
|
| - virtual void OnNodeDeleted(uint32_t node, uint32_t server_change_id)
|
| - OVERRIDE {
|
| - }
|
| - virtual void OnNodeViewReplaced(uint32_t node,
|
| - uint32_t new_view_id,
|
| - uint32_t old_view_id) OVERRIDE {
|
| - }
|
| - virtual void OnViewDeleted(uint32_t view) OVERRIDE {
|
| - }
|
| - virtual void OnViewInputEvent(uint32_t view_id,
|
| - EventPtr event,
|
| - const Callback<void()>& callback) OVERRIDE {
|
| - }
|
| - virtual void DispatchOnViewInputEvent(uint32_t view_id,
|
| - EventPtr event) OVERRIDE {
|
| - }
|
| -
|
| - AuraDemo* aura_demo_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ViewManagerClientImpl);
|
| -};
|
| -
|
| -class AuraDemo : public Application, public WindowTreeHostMojoDelegate {
|
| +class AuraDemo : public Application,
|
| + public WindowTreeHostMojoDelegate,
|
| + public view_manager::ViewManagerDelegate {
|
| public:
|
| AuraDemo()
|
| - : view_manager_(NULL),
|
| - window1_(NULL),
|
| + : window1_(NULL),
|
| window2_(NULL),
|
| window21_(NULL),
|
| - view_id_(0) {
|
| - AddService<ViewManagerClientImpl>(this);
|
| + view_(NULL) {
|
| + view_manager::ViewManager::Create(this, this);
|
| }
|
| virtual ~AuraDemo() {}
|
|
|
| - void SetRoot(view_manager::ViewManagerService* view_manager,
|
| - uint32_t view_id) {
|
| - aura::Env::CreateInstance(true);
|
| - view_manager_ = view_manager;
|
| - view_id_ = view_id;
|
| - context_factory_.reset(new ContextFactoryMojo);
|
| - aura::Env::GetInstance()->set_context_factory(context_factory_.get());
|
| - screen_.reset(ScreenMojo::Create());
|
| - gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get());
|
| -
|
| - window_tree_host_.reset(new WindowTreeHostMojo(gfx::Rect(800, 600), this));
|
| + private:
|
| + // Overridden from view_manager::ViewManagerDelegate:
|
| + virtual void OnRootAdded(view_manager::ViewManager* view_manager,
|
| + view_manager::Node* root) OVERRIDE {
|
| + // TODO(beng): this function could be called multiple times!
|
| + view_ = view_manager::View::Create(view_manager);
|
| + root->SetActiveView(view_);
|
| +
|
| + window_tree_host_.reset(new WindowTreeHostMojo(root, this));
|
| window_tree_host_->InitHost();
|
|
|
| window_tree_client_.reset(
|
| @@ -250,26 +156,15 @@ class AuraDemo : public Application, public WindowTreeHostMojoDelegate {
|
|
|
| // WindowTreeHostMojoDelegate:
|
| virtual void CompositorContentsChanged(const SkBitmap& bitmap) OVERRIDE {
|
| - std::vector<unsigned char> data;
|
| - gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false, &data);
|
| -
|
| - void* memory = NULL;
|
| - ScopedSharedBufferHandle duped;
|
| - bool result = CreateMapAndDupSharedBuffer(data.size(),
|
| - &memory,
|
| - &shared_state_handle_,
|
| - &duped);
|
| - if (!result)
|
| - return;
|
| -
|
| - memcpy(memory, &data[0], data.size());
|
| -
|
| - view_manager_->SetViewContents(
|
| - view_id_, duped.Pass(), static_cast<uint32_t>(data.size()),
|
| - base::Bind(&OnSetViewContentsDone));
|
| + view_->SetContents(bitmap);
|
| }
|
|
|
| virtual void Initialize() OVERRIDE {
|
| + aura::Env::CreateInstance(true);
|
| + context_factory_.reset(new ContextFactoryMojo);
|
| + aura::Env::GetInstance()->set_context_factory(context_factory_.get());
|
| + screen_.reset(ScreenMojo::Create());
|
| + gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get());
|
| }
|
|
|
| scoped_ptr<DemoWindowTreeClient> window_tree_client_;
|
| @@ -282,36 +177,17 @@ class AuraDemo : public Application, public WindowTreeHostMojoDelegate {
|
| scoped_ptr<DemoWindowDelegate> delegate2_;
|
| scoped_ptr<DemoWindowDelegate> delegate21_;
|
|
|
| - view_manager::ViewManagerService* view_manager_;
|
| -
|
| aura::Window* window1_;
|
| aura::Window* window2_;
|
| aura::Window* window21_;
|
|
|
| - uint32_t view_id_;
|
| + view_manager::View* view_;
|
|
|
| scoped_ptr<aura::WindowTreeHost> window_tree_host_;
|
|
|
| - ScopedSharedBufferHandle shared_state_handle_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(AuraDemo);
|
| };
|
|
|
| -void ViewManagerClientImpl::OnViewManagerConnectionEstablished(
|
| - uint16_t connection_id,
|
| - const String& creator_url,
|
| - uint32_t next_server_change_id,
|
| - mojo::Array<view_manager::NodeDataPtr> nodes) {
|
| - const uint32_t view_id = connection_id << 16 | 1;
|
| - client()->CreateView(view_id, base::Bind(&ViewManagerClientImpl::OnResult,
|
| - base::Unretained(this)));
|
| - client()->SetView(nodes[0]->node_id, view_id,
|
| - base::Bind(&ViewManagerClientImpl::OnResult,
|
| - base::Unretained(this)));
|
| -
|
| - aura_demo_->SetRoot(client(), view_id);
|
| -}
|
| -
|
| } // namespace examples
|
|
|
| // static
|
|
|