1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_LIB_VIEW_PRIVATE_H_
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_LIB_VIEW_PRIVATE_H_
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/basictypes.h"
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "mojo/services/public/cpp/view_manager/view.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace mojo {
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ViewPrivate {
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public:
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  explicit ViewPrivate(View* view);
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ~ViewPrivate();
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  static View* LocalCreate();
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ObserverList<ViewObserver>* observers() { return &view_->observers_; }
226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void ClearParent() { view_->parent_ = NULL; }
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  void set_id(Id id) { view_->id_ = id; }
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ViewManager* view_manager() { return view_->manager_; }
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_view_manager(ViewManager* manager) {
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    view_->manager_ = manager;
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void LocalDestroy() {
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    view_->LocalDestroy();
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  }
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void LocalAddChild(View* child) {
366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    view_->LocalAddChild(child);
376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  }
386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void LocalRemoveChild(View* child) {
396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    view_->LocalRemoveChild(child);
406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  }
416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void LocalReorder(View* relative, OrderDirection direction) {
426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    view_->LocalReorder(relative, direction);
436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  }
446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void LocalSetBounds(const gfx::Rect& old_bounds,
456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                      const gfx::Rect& new_bounds) {
466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    view_->LocalSetBounds(old_bounds, new_bounds);
476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  }
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private:
50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  View* view_;
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ViewPrivate);
53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace mojo
56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif  // MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_LIB_VIEW_PRIVATE_H_
58