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

Side by Side Diff: examples/media_viewer/media_viewer.cc

Issue 815003002: Nukes ViewManager arg from ViewManagerDelegate::OnEmbed (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: format Created 6 years 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
« no previous file with comments | « examples/keyboard/keyboard.cc ('k') | examples/nesting_app/nesting_app.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <map> 5 #include <map>
6 #include <string> 6 #include <string>
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 191
192 class MediaViewer 192 class MediaViewer
193 : public ApplicationDelegate, 193 : public ApplicationDelegate,
194 public ViewManagerDelegate, 194 public ViewManagerDelegate,
195 public ControlPanel::Delegate, 195 public ControlPanel::Delegate,
196 public ViewObserver { 196 public ViewObserver {
197 public: 197 public:
198 MediaViewer() 198 MediaViewer()
199 : shell_(nullptr), 199 : shell_(nullptr),
200 app_(NULL), 200 app_(NULL),
201 view_manager_(NULL),
202 root_view_(NULL), 201 root_view_(NULL),
203 control_view_(NULL), 202 control_view_(NULL),
204 content_view_(NULL), 203 content_view_(NULL),
205 control_panel_(this) { 204 control_panel_(this) {
206 handler_map_["image/png"] = "mojo:png_viewer"; 205 handler_map_["image/png"] = "mojo:png_viewer";
207 } 206 }
208 207
209 virtual ~MediaViewer() { 208 virtual ~MediaViewer() {
210 if (root_view_) 209 if (root_view_)
211 root_view_->RemoveObserver(this); 210 root_view_->RemoveObserver(this);
(...skipping 25 matching lines...) Expand all
237 control_bounds.height = 28; 236 control_bounds.height = 28;
238 control_view_->SetBounds(control_bounds); 237 control_view_->SetBounds(control_bounds);
239 Rect content_bounds; 238 Rect content_bounds;
240 content_bounds.y = control_bounds.height; 239 content_bounds.y = control_bounds.height;
241 content_bounds.width = root->bounds().width; 240 content_bounds.width = root->bounds().width;
242 content_bounds.height = root->bounds().height - control_bounds.height; 241 content_bounds.height = root->bounds().height - control_bounds.height;
243 content_view_->SetBounds(content_bounds); 242 content_view_->SetBounds(content_bounds);
244 } 243 }
245 244
246 // Overridden from ViewManagerDelegate: 245 // Overridden from ViewManagerDelegate:
247 virtual void OnEmbed(ViewManager* view_manager, 246 virtual void OnEmbed(View* root,
248 View* root,
249 ServiceProviderImpl* exported_services, 247 ServiceProviderImpl* exported_services,
250 scoped_ptr<ServiceProvider> imported_services) override { 248 scoped_ptr<ServiceProvider> imported_services) override {
251 root_view_ = root; 249 root_view_ = root;
252 view_manager_ = view_manager;
253 250
254 control_view_ = View::Create(view_manager_); 251 control_view_ = View::Create(root->view_manager());
255 control_view_->SetVisible(true); 252 control_view_->SetVisible(true);
256 root_view_->AddChild(control_view_); 253 root_view_->AddChild(control_view_);
257 254
258 content_view_ = View::Create(view_manager_); 255 content_view_ = View::Create(root->view_manager());
259 content_view_->SetVisible(true); 256 content_view_->SetVisible(true);
260 root_view_->AddChild(content_view_); 257 root_view_->AddChild(content_view_);
261 258
262 control_panel_.Initialize(control_view_, shell_); 259 control_panel_.Initialize(control_view_, shell_);
263 260
264 LayoutViews(); 261 LayoutViews();
265 root_view_->AddObserver(this); 262 root_view_->AddObserver(this);
266 263
267 content_view_->Embed("TODO"); 264 content_view_->Embed("TODO");
268 } 265 }
269 266
270 virtual void OnViewManagerDisconnected( 267 virtual void OnViewManagerDisconnected(
271 ViewManager* view_manager) override { 268 ViewManager* view_manager) override {
272 DCHECK_EQ(view_manager_, view_manager);
273 view_manager_ = NULL;
274 base::MessageLoop::current()->Quit(); 269 base::MessageLoop::current()->Quit();
275 } 270 }
276 271
277 // Overridden from ControlPanel::Delegate: 272 // Overridden from ControlPanel::Delegate:
278 virtual void ButtonPressed(ControlPanel::ControlType type) override { 273 virtual void ButtonPressed(ControlPanel::ControlType type) override {
279 switch (type) { 274 switch (type) {
280 case ControlPanel::CONTROL_ZOOM_IN: 275 case ControlPanel::CONTROL_ZOOM_IN:
281 zoomable_media_->ZoomIn(); 276 zoomable_media_->ZoomIn();
282 break; 277 break;
283 case ControlPanel::CONTROL_ACTUAL_SIZE: 278 case ControlPanel::CONTROL_ACTUAL_SIZE:
(...skipping 23 matching lines...) Expand all
307 HandlerMap::const_iterator it = handler_map_.find(content_type); 302 HandlerMap::const_iterator it = handler_map_.find(content_type);
308 return it != handler_map_.end() ? it->second : std::string(); 303 return it != handler_map_.end() ? it->second : std::string();
309 } 304 }
310 305
311 Shell* shell_; 306 Shell* shell_;
312 307
313 scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_; 308 scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_;
314 309
315 ApplicationImpl* app_; 310 ApplicationImpl* app_;
316 scoped_ptr<ViewsInit> views_init_; 311 scoped_ptr<ViewsInit> views_init_;
317 ViewManager* view_manager_;
318 View* root_view_; 312 View* root_view_;
319 View* control_view_; 313 View* control_view_;
320 View* content_view_; 314 View* content_view_;
321 ControlPanel control_panel_; 315 ControlPanel control_panel_;
322 ZoomableMediaPtr zoomable_media_; 316 ZoomableMediaPtr zoomable_media_;
323 HandlerMap handler_map_; 317 HandlerMap handler_map_;
324 318
325 DISALLOW_COPY_AND_ASSIGN(MediaViewer); 319 DISALLOW_COPY_AND_ASSIGN(MediaViewer);
326 }; 320 };
327 321
328 } // namespace examples 322 } // namespace examples
329 } // namespace mojo 323 } // namespace mojo
330 324
331 MojoResult MojoMain(MojoHandle shell_handle) { 325 MojoResult MojoMain(MojoHandle shell_handle) {
332 mojo::ApplicationRunnerChromium runner(new mojo::examples::MediaViewer); 326 mojo::ApplicationRunnerChromium runner(new mojo::examples::MediaViewer);
333 return runner.Run(shell_handle); 327 return runner.Run(shell_handle);
334 } 328 }
OLDNEW
« no previous file with comments | « examples/keyboard/keyboard.cc ('k') | examples/nesting_app/nesting_app.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698