Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 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. | |
| 4 | |
| 5 [DartPackage="mojo_services"] | |
| 6 module mojo.ui; | |
| 7 | |
| 8 import "mojo/services/ui/views/interfaces/layouts.mojom"; | |
| 9 import "mojo/services/ui/views/interfaces/views.mojom"; | |
| 10 | |
| 11 // A view tree is a top-level container for a hierarchy of views. | |
| 12 // | |
| 13 // A view tree must registered with the view manager before it can be shown. | |
| 14 interface ViewTree { | |
| 15 // Called when the tree needs to update its layout. | |
| 16 // | |
| 17 // This method may be called for one or more of the following reasons: | |
| 18 // | |
| 19 // 1. The root was just set. | |
| 20 // 2. The root produced different layout information during its last | |
| 21 // layout pass causing a recursive layout to occur. | |
| 22 // | |
| 23 // Layout requests are coalesced for efficiency. Certain intermediate | |
| 24 // updates may be dropped if the view tree is unable to keep up with them | |
| 25 // in a timely manner. Do nothing updates are always dropped. | |
| 26 // | |
| 27 // The implementation should invoke the callback once the event has | |
| 28 // been handled and the view tree is ready to be shown in its new aspect. | |
| 29 OnLayout() => (); | |
| 30 | |
| 31 // Called when the root view has become unavailable. | |
| 32 // | |
| 33 // The root may become unavailable for many reasons such being unregistered | |
| 34 // by its application, abnormal termination of its application, or | |
| 35 // being reparented into a different view tree. | |
| 36 // | |
| 37 // The implementation should invoke the callback once the event has | |
| 38 // been handled. | |
| 39 OnRootUnavailable(uint32 root_key) => (); | |
| 40 }; | |
| 41 | |
| 42 // The view tree host provides an interface for a view tree to configure itself | |
| 43 // and interact with its views. | |
| 44 // | |
| 45 // Each view tree obtains its own view tree host when registered with the | |
| 46 // ViewManager. To unregister the view tree, close its view tree host | |
| 47 // message pipe. | |
| 48 interface ViewTreeHost { | |
| 49 // Requests that the view tree host's OnLayout() method be called to compute a | |
|
abarth-chromium
2015/10/24 05:09:30
s/view tree host's/view tree's/
jeffbrown
2015/10/27 01:49:07
Done.
| |
| 50 // new layout due to a change in the view tree's layout information. | |
| 51 RequestLayout(); | |
| 52 | |
| 53 // Sets the root of the view tree and assigns it the provided |root_key| | |
| 54 // to distinguish it from any other roots this view tree has had. | |
| 55 // | |
| 56 // It is a good idea to provide a distinct |root_key| each time a new root | |
| 57 // is set so that callbacks related to the root can be clearly distinguished | |
| 58 // across these changes. | |
| 59 // | |
| 60 // If |root_view_token| refers to a view which is already unavailable | |
| 61 // then the call proceeds as if it succeeded but an OnChildUnavailable() | |
| 62 // message will be sent. | |
| 63 // | |
| 64 // If |root_view_token| refers to a view which already has a parent or is | |
| 65 // the root of a view tree then an OnChildUnavailable() or OnRootUnavailable() | |
| 66 // message will be sent to its old parent or root and the the view will be | |
| 67 // used as the root of the new view tree as usual. This special case also | |
| 68 // applies when the specified view is already the root of this view host, in | |
| 69 // which case the behavior is similar to the view having been transferred to | |
| 70 // some other view tree and then back again. | |
| 71 SetRoot(uint32 root_key, mojo.ui.ViewToken root_view_token); | |
| 72 | |
| 73 // Removes the root of the view tree. | |
| 74 // | |
| 75 // Does nothing if the view tree currently does not have a root. | |
| 76 ResetRoot(); | |
| 77 | |
| 78 // Sets the layout parameters of the root of the view tree and retrieves | |
| 79 // its layout information. | |
| 80 // | |
| 81 // If |provide_size| is true, the size of the root will be returned | |
| 82 // within |info|, otherwise it will be set to null and the view manager | |
| 83 // will assume that the view tree host's layout is not dependent on knowledge | |
| 84 // of the root's size. Setting |provide_size| to false is more | |
| 85 // efficient since it allows the view manager to suppress unnecessary | |
| 86 // layout operations when only the root's size has changed. | |
| 87 // | |
| 88 // The returned |info| is null if this layout request was canceled either | |
| 89 // because it has been superceded by a subsequently issued layout request | |
| 90 // or because the root has become unavailable. | |
| 91 // | |
| 92 // It is an error to call this function if the view tree does not currently | |
| 93 // have a root; the view tree host connection will be closed. | |
| 94 // | |
| 95 // It is an error to specify malformed |root_layout_params| such | |
| 96 // as invalid size constraints; the view tree host connection will be closed. | |
| 97 LayoutRoot(mojo.ui.ViewLayoutParams root_layout_params, | |
| 98 bool provide_size) => (mojo.ui.ViewLayoutInfo? info); | |
| 99 }; | |
| OLD | NEW |