15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#ifndef MOJO_SERVICES_VIEW_MANAGER_VIEW_H_ 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define MOJO_SERVICES_VIEW_MANAGER_VIEW_H_ 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <vector> 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/logging.h" 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "mojo/services/view_manager/ids.h" 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "mojo/services/view_manager/view_manager_export.h" 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "third_party/skia/include/core/SkBitmap.h" 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace mojo { 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace view_manager { 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace service { 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass Node; 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Represents a view. A view may be associated with a single Node. 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass MOJO_VIEW_MANAGER_EXPORT View { 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public: 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu explicit View(const ViewId& id); 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ~View(); 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const ViewId& id() const { return id_; } 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu Node* node() { return node_; } 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) void SetBitmap(const SkBitmap& contents); 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const SkBitmap& bitmap() const { return bitmap_; } 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu private: 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // Node is responsible for maintaining |node_|. 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu friend class Node; 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void set_node(Node* node) { node_ = node; } 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const ViewId id_; 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu Node* node_; 41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) SkBitmap bitmap_; 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DISALLOW_COPY_AND_ASSIGN(View); 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}; 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace service 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace view_manager 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace mojo 495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif // MOJO_SERVICES_VIEW_MANAGER_VIEW_H_ 51