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

Side by Side Diff: examples/ui/pdf_viewer/pdf_viewer.cc

Issue 1679023006: Reify view ownership as a message pipe. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 10 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
« no previous file with comments | « examples/ui/noodles/noodles_view.cc ('k') | examples/ui/png_viewer/png_viewer.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 <memory> 5 #include <memory>
6 #include <string> 6 #include <string>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 return std::make_shared<PDFDocument>(shared_from_this(), doc, data); 110 return std::make_shared<PDFDocument>(shared_from_this(), doc, data);
111 } 111 }
112 }; 112 };
113 113
114 class PDFDocumentView : public mojo::ui::GaneshView, 114 class PDFDocumentView : public mojo::ui::GaneshView,
115 public mojo::ui::ChoreographerDelegate, 115 public mojo::ui::ChoreographerDelegate,
116 public mojo::ui::InputListener { 116 public mojo::ui::InputListener {
117 public: 117 public:
118 PDFDocumentView( 118 PDFDocumentView(
119 mojo::ApplicationImpl* app_impl, 119 mojo::ApplicationImpl* app_impl,
120 const std::shared_ptr<PDFDocument>& pdf_document, 120 mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request,
121 const mojo::ui::ViewProvider::CreateViewCallback& create_view_callback) 121 const std::shared_ptr<PDFDocument>& pdf_document)
122 : GaneshView(app_impl, "PDFDocumentViewer", create_view_callback), 122 : GaneshView(app_impl, view_owner_request.Pass(), "PDFDocumentViewer"),
123 pdf_document_(pdf_document), 123 pdf_document_(pdf_document),
124 choreographer_(scene(), this), 124 choreographer_(scene(), this),
125 input_handler_(view_service_provider(), this) { 125 input_handler_(view_service_provider(), this) {
126 DCHECK(pdf_document_); 126 DCHECK(pdf_document_);
127 } 127 }
128 128
129 ~PDFDocumentView() override {} 129 ~PDFDocumentView() override {}
130 130
131 private: 131 private:
132 // |GaneshView|: 132 // |GaneshView|:
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 public: 249 public:
250 PDFContentViewProviderApp(const std::shared_ptr<PDFLibrary>& pdf_library, 250 PDFContentViewProviderApp(const std::shared_ptr<PDFLibrary>& pdf_library,
251 const std::shared_ptr<PDFDocument>& pdf_document) 251 const std::shared_ptr<PDFDocument>& pdf_document)
252 : pdf_library_(pdf_library), pdf_document_(pdf_document) { 252 : pdf_library_(pdf_library), pdf_document_(pdf_document) {
253 DCHECK(pdf_library_); 253 DCHECK(pdf_library_);
254 DCHECK(pdf_document_); 254 DCHECK(pdf_document_);
255 } 255 }
256 256
257 ~PDFContentViewProviderApp() override {} 257 ~PDFContentViewProviderApp() override {}
258 258
259 bool CreateView( 259 void CreateView(
260 const std::string& connection_url, 260 const std::string& connection_url,
261 mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request,
261 mojo::InterfaceRequest<mojo::ServiceProvider> services, 262 mojo::InterfaceRequest<mojo::ServiceProvider> services,
262 mojo::ServiceProviderPtr exposed_services, 263 mojo::ServiceProviderPtr exposed_services) override {
263 const mojo::ui::ViewProvider::CreateViewCallback& callback) override { 264 new PDFDocumentView(app_impl(), view_owner_request.Pass(), pdf_document_);
264 new PDFDocumentView(app_impl(), pdf_document_, callback);
265 return true;
266 } 265 }
267 266
268 private: 267 private:
269 std::shared_ptr<PDFLibrary> pdf_library_; 268 std::shared_ptr<PDFLibrary> pdf_library_;
270 std::shared_ptr<PDFDocument> pdf_document_; 269 std::shared_ptr<PDFDocument> pdf_document_;
271 270
272 DISALLOW_COPY_AND_ASSIGN(PDFContentViewProviderApp); 271 DISALLOW_COPY_AND_ASSIGN(PDFContentViewProviderApp);
273 }; 272 };
274 273
275 class PDFContentViewerApp : public mojo::ui::ContentViewerApp { 274 class PDFContentViewerApp : public mojo::ui::ContentViewerApp {
(...skipping 20 matching lines...) Expand all
296 295
297 DISALLOW_COPY_AND_ASSIGN(PDFContentViewerApp); 296 DISALLOW_COPY_AND_ASSIGN(PDFContentViewerApp);
298 }; 297 };
299 298
300 } // namespace examples 299 } // namespace examples
301 300
302 MojoResult MojoMain(MojoHandle application_request) { 301 MojoResult MojoMain(MojoHandle application_request) {
303 mojo::ApplicationRunnerChromium runner(new examples::PDFContentViewerApp()); 302 mojo::ApplicationRunnerChromium runner(new examples::PDFContentViewerApp());
304 return runner.Run(application_request); 303 return runner.Run(application_request);
305 } 304 }
OLDNEW
« no previous file with comments | « examples/ui/noodles/noodles_view.cc ('k') | examples/ui/png_viewer/png_viewer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698