Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: mojo/services/public/cpp/view_manager/lib/view.cc

Issue 658923003: Remove dependency on ui from view_manager. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/services/public/cpp/view_manager/view.h" 5 #include "mojo/services/public/cpp/view_manager/view.h"
6 6
7 #include "mojo/public/cpp/application/service_provider_impl.h" 7 #include "mojo/public/cpp/application/service_provider_impl.h"
8 #include "mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.h" 8 #include "mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.h"
9 #include "mojo/services/public/cpp/view_manager/lib/view_private.h" 9 #include "mojo/services/public/cpp/view_manager/lib/view_private.h"
10 #include "mojo/services/public/cpp/view_manager/view_observer.h" 10 #include "mojo/services/public/cpp/view_manager/view_observer.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 : (child_i < target_i ? target_i - 1 : target_i); 137 : (child_i < target_i ? target_i - 1 : target_i);
138 children->erase(children->begin() + child_i); 138 children->erase(children->begin() + child_i);
139 children->insert(children->begin() + dest_i, view); 139 children->insert(children->begin() + dest_i, view);
140 140
141 return true; 141 return true;
142 } 142 }
143 143
144 class ScopedSetBoundsNotifier { 144 class ScopedSetBoundsNotifier {
145 public: 145 public:
146 ScopedSetBoundsNotifier(View* view, 146 ScopedSetBoundsNotifier(View* view,
147 const gfx::Rect& old_bounds, 147 const Rect& old_bounds,
148 const gfx::Rect& new_bounds) 148 const Rect& new_bounds)
149 : view_(view), 149 : view_(view),
150 old_bounds_(old_bounds), 150 old_bounds_(old_bounds),
151 new_bounds_(new_bounds) { 151 new_bounds_(new_bounds) {
152 FOR_EACH_OBSERVER(ViewObserver, 152 FOR_EACH_OBSERVER(ViewObserver,
153 *ViewPrivate(view_).observers(), 153 *ViewPrivate(view_).observers(),
154 OnViewBoundsChanging(view_, old_bounds_, new_bounds_)); 154 OnViewBoundsChanging(view_, old_bounds_, new_bounds_));
155 } 155 }
156 ~ScopedSetBoundsNotifier() { 156 ~ScopedSetBoundsNotifier() {
157 FOR_EACH_OBSERVER(ViewObserver, 157 FOR_EACH_OBSERVER(ViewObserver,
158 *ViewPrivate(view_).observers(), 158 *ViewPrivate(view_).observers(),
159 OnViewBoundsChanged(view_, old_bounds_, new_bounds_)); 159 OnViewBoundsChanged(view_, old_bounds_, new_bounds_));
160 } 160 }
161 161
162 private: 162 private:
163 View* view_; 163 View* view_;
164 const gfx::Rect old_bounds_; 164 const Rect old_bounds_;
165 const gfx::Rect new_bounds_; 165 const Rect new_bounds_;
166 166
167 DISALLOW_COPY_AND_ASSIGN(ScopedSetBoundsNotifier); 167 DISALLOW_COPY_AND_ASSIGN(ScopedSetBoundsNotifier);
168 }; 168 };
169 169
170 // Some operations are only permitted in the connection that created the view. 170 // Some operations are only permitted in the connection that created the view.
171 bool OwnsView(ViewManager* manager, View* view) { 171 bool OwnsView(ViewManager* manager, View* view) {
172 return !manager || 172 return !manager ||
173 static_cast<ViewManagerClientImpl*>(manager)->OwnsView(view->id()); 173 static_cast<ViewManagerClientImpl*>(manager)->OwnsView(view->id());
174 } 174 }
175 175
(...skipping 22 matching lines...) Expand all
198 children_.erase(children_.begin()); 198 children_.erase(children_.begin());
199 } else { 199 } else {
200 child->Destroy(); 200 child->Destroy();
201 DCHECK(std::find(children_.begin(), children_.end(), child) == 201 DCHECK(std::find(children_.begin(), children_.end(), child) ==
202 children_.end()); 202 children_.end());
203 } 203 }
204 } 204 }
205 LocalDestroy(); 205 LocalDestroy();
206 } 206 }
207 207
208 void View::SetBounds(const gfx::Rect& bounds) { 208 void View::SetBounds(const Rect& bounds) {
209 if (!OwnsView(manager_, this)) 209 if (!OwnsView(manager_, this))
210 return; 210 return;
211 211
212 if (manager_) 212 if (manager_)
213 static_cast<ViewManagerClientImpl*>(manager_)->SetBounds(id_, bounds); 213 static_cast<ViewManagerClientImpl*>(manager_)->SetBounds(id_, bounds);
214 LocalSetBounds(bounds_, bounds); 214 LocalSetBounds(bounds_, bounds);
215 } 215 }
216 216
217 void View::SetVisible(bool value) { 217 void View::SetVisible(bool value) {
218 if (visible_ == value) 218 if (visible_ == value)
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 void View::LocalRemoveChild(View* child) { 384 void View::LocalRemoveChild(View* child) {
385 DCHECK_EQ(this, child->parent()); 385 DCHECK_EQ(this, child->parent());
386 ScopedTreeNotifier notifier(child, this, NULL); 386 ScopedTreeNotifier notifier(child, this, NULL);
387 RemoveChildImpl(child, &children_); 387 RemoveChildImpl(child, &children_);
388 } 388 }
389 389
390 bool View::LocalReorder(View* relative, OrderDirection direction) { 390 bool View::LocalReorder(View* relative, OrderDirection direction) {
391 return ReorderImpl(&parent_->children_, this, relative, direction); 391 return ReorderImpl(&parent_->children_, this, relative, direction);
392 } 392 }
393 393
394 void View::LocalSetBounds(const gfx::Rect& old_bounds, 394 void View::LocalSetBounds(const Rect& old_bounds,
395 const gfx::Rect& new_bounds) { 395 const Rect& new_bounds) {
396 DCHECK(old_bounds == bounds_); 396 DCHECK(old_bounds.x == bounds_.x);
397 DCHECK(old_bounds.y == bounds_.y);
398 DCHECK(old_bounds.width == bounds_.width);
399 DCHECK(old_bounds.height == bounds_.height);
397 ScopedSetBoundsNotifier notifier(this, old_bounds, new_bounds); 400 ScopedSetBoundsNotifier notifier(this, old_bounds, new_bounds);
398 bounds_ = new_bounds; 401 bounds_ = new_bounds;
399 } 402 }
400 403
401 void View::LocalSetDrawn(bool value) { 404 void View::LocalSetDrawn(bool value) {
402 if (drawn_ == value) 405 if (drawn_ == value)
403 return; 406 return;
404 407
405 // As IsDrawn() is derived from |visible_| and |drawn_|, only send drawn 408 // As IsDrawn() is derived from |visible_| and |drawn_|, only send drawn
406 // notification is the value of IsDrawn() is really changing. 409 // notification is the value of IsDrawn() is really changing.
407 if (IsDrawn() == value) { 410 if (IsDrawn() == value) {
408 drawn_ = value; 411 drawn_ = value;
409 return; 412 return;
410 } 413 }
411 FOR_EACH_OBSERVER(ViewObserver, observers_, OnViewDrawnChanging(this)); 414 FOR_EACH_OBSERVER(ViewObserver, observers_, OnViewDrawnChanging(this));
412 drawn_ = value; 415 drawn_ = value;
413 FOR_EACH_OBSERVER(ViewObserver, observers_, OnViewDrawnChanged(this)); 416 FOR_EACH_OBSERVER(ViewObserver, observers_, OnViewDrawnChanged(this));
414 } 417 }
415 418
416 } // namespace mojo 419 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698