1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_LIB_VIEW_PRIVATE_H_
6 #define COMPONENTS_MUS_PUBLIC_CPP_LIB_VIEW_PRIVATE_H_
8 #include "components/mus/public/cpp/view.h"
12 // This class is a friend of a View and contains functions to mutate internal
16 explicit ViewPrivate(View
* view
);
19 // Creates and returns a new View. Caller owns the return value.
20 static View
* LocalCreate();
22 base::ObserverList
<ViewObserver
>* observers() { return &view_
->observers_
; }
24 void ClearParent() { view_
->parent_
= NULL
; }
26 void set_visible(bool visible
) { view_
->visible_
= visible
; }
28 void set_drawn(bool drawn
) { view_
->drawn_
= drawn
; }
30 void set_id(Id id
) { view_
->id_
= id
; }
32 void set_connection(ViewTreeConnection
* connection
) {
33 view_
->connection_
= connection
;
36 void set_properties(const std::map
<std::string
, std::vector
<uint8_t>>& data
) {
37 view_
->properties_
= data
;
40 void LocalSetViewportMetrics(const mojo::ViewportMetrics
& old_metrics
,
41 const mojo::ViewportMetrics
& new_metrics
) {
42 view_
->LocalSetViewportMetrics(new_metrics
, new_metrics
);
45 void LocalDestroy() { view_
->LocalDestroy(); }
46 void LocalAddChild(View
* child
) { view_
->LocalAddChild(child
); }
47 void LocalRemoveChild(View
* child
) { view_
->LocalRemoveChild(child
); }
48 void LocalReorder(View
* relative
, mojo::OrderDirection direction
) {
49 view_
->LocalReorder(relative
, direction
);
51 void LocalSetBounds(const mojo::Rect
& old_bounds
,
52 const mojo::Rect
& new_bounds
) {
53 view_
->LocalSetBounds(old_bounds
, new_bounds
);
55 void LocalSetDrawn(bool drawn
) { view_
->LocalSetDrawn(drawn
); }
56 void LocalSetVisible(bool visible
) { view_
->LocalSetVisible(visible
); }
61 MOJO_DISALLOW_COPY_AND_ASSIGN(ViewPrivate
);
66 #endif // COMPONENTS_MUS_PUBLIC_CPP_LIB_VIEW_PRIVATE_H_