#include "ui/gfx/rect.h"
namespace mojo {
-namespace view_manager {
namespace service {
enum ChangeType {
- CHANGE_TYPE_CONNECTION_ESTABLISHED,
- CHANGE_TYPE_ROOTS_ADDED,
- CHANGE_TYPE_SERVER_CHANGE_ID_ADVANCED,
+ CHANGE_TYPE_EMBED,
+ // TODO(sky): NODE->VIEW.
CHANGE_TYPE_NODE_BOUNDS_CHANGED,
CHANGE_TYPE_NODE_HIERARCHY_CHANGED,
CHANGE_TYPE_NODE_REORDERED,
+ CHANGE_TYPE_NODE_VISIBILITY_CHANGED,
+ CHANGE_TYPE_NODE_DRAWN_STATE_CHANGED,
CHANGE_TYPE_NODE_DELETED,
- CHANGE_TYPE_VIEW_DELETED,
- CHANGE_TYPE_VIEW_REPLACED,
CHANGE_TYPE_INPUT_EVENT,
+ CHANGE_TYPE_DELEGATE_EMBED,
};
-// TODO(sky): consider nuking and converting directly to NodeData.
-struct TestNode {
+// TODO(sky): consider nuking and converting directly to ViewData.
+struct TestView {
// Returns a string description of this.
std::string ToString() const;
+ // Returns a string description that includes visible and drawn.
+ std::string ToString2() const;
+
Id parent_id;
- Id node_id;
Id view_id;
+ bool visible;
+ bool drawn;
};
// Tracks a call to ViewManagerClient. See the individual functions for the
ChangeType type;
ConnectionSpecificId connection_id;
- Id change_id;
- std::vector<TestNode> nodes;
- Id node_id;
- Id node_id2;
- Id node_id3;
+ std::vector<TestView> views;
Id view_id;
Id view_id2;
+ Id view_id3;
gfx::Rect bounds;
gfx::Rect bounds2;
int32 event_action;
String creator_url;
+ String embed_url;
OrderDirection direction;
+ bool bool_value;
};
// Converts Changes to string descriptions.
std::vector<std::string> ChangesToDescription1(
const std::vector<Change>& changes);
-// Returns a string description of |changes[0].nodes|. Returns an empty string
+// Returns a string description of |changes[0].views|. Returns an empty string
// if change.size() != 1.
-std::string ChangeNodeDescription(const std::vector<Change>& changes);
+std::string ChangeViewDescription(const std::vector<Change>& changes);
-// Converts NodeDatas to TestNodes.
-void NodeDatasToTestNodes(const Array<NodeDataPtr>& data,
- std::vector<TestNode>* test_nodes);
+// Converts ViewDatas to TestViews.
+void ViewDatasToTestViews(const Array<ViewDataPtr>& data,
+ std::vector<TestView>* test_views);
// TestChangeTracker is used to record ViewManagerClient functions. It notifies
// a delegate any time a change is added.
TestChangeTracker();
~TestChangeTracker();
- void set_delegate(Delegate* delegate) { delegate_ = delegate; }
+ void set_delegate(Delegate* delegate) {
+ delegate_ = delegate;
+ }
std::vector<Change>* changes() { return &changes_; }
// Each of these functions generate a Change. There is one per
// ViewManagerClient function.
- void OnViewManagerConnectionEstablished(ConnectionSpecificId connection_id,
- const String& creator_url,
- Id next_server_change_id,
- Array<NodeDataPtr> nodes);
- void OnRootsAdded(Array<NodeDataPtr> nodes);
- void OnServerChangeIdAdvanced(Id change_id);
- void OnNodeBoundsChanged(Id node_id, RectPtr old_bounds, RectPtr new_bounds);
- void OnNodeHierarchyChanged(Id node_id,
+ void OnEmbed(ConnectionSpecificId connection_id,
+ const String& creator_url,
+ ViewDataPtr root);
+ void OnViewBoundsChanged(Id view_id, RectPtr old_bounds, RectPtr new_bounds);
+ void OnViewHierarchyChanged(Id view_id,
Id new_parent_id,
Id old_parent_id,
- Id server_change_id,
- Array<NodeDataPtr> nodes);
- void OnNodeReordered(Id node_id,
- Id relative_node_id,
- OrderDirection direction,
- Id server_change_id);
- void OnNodeDeleted(Id node_id, Id server_change_id);
+ Array<ViewDataPtr> views);
+ void OnViewReordered(Id view_id,
+ Id relative_view_id,
+ OrderDirection direction);
void OnViewDeleted(Id view_id);
- void OnNodeViewReplaced(Id node_id, Id new_view_id, Id old_view_id);
+ void OnViewVisibilityChanged(Id view_id, bool visible);
+ void OnViewDrawnStateChanged(Id view_id, bool drawn);
void OnViewInputEvent(Id view_id, EventPtr event);
+ void DelegateEmbed(const String& url);
private:
void AddChange(const Change& change);
};
} // namespace service
-} // namespace view_manager
} // namespace mojo
#endif // MOJO_SERVICES_VIEW_MANAGER_TEST_CHANGE_TRACKER_H_