diff Applications/Samples/SimpleViewerApplication.h @ 242:092db46c6291 am

improved SDL/Wasm unification
author am@osimis.io
date Wed, 20 Jun 2018 14:20:55 +0200
parents b4642964c355
children e802578e1554
line wrap: on
line diff
--- a/Applications/Samples/SimpleViewerApplication.h	Wed Jun 20 09:50:25 2018 +0200
+++ b/Applications/Samples/SimpleViewerApplication.h	Wed Jun 20 14:20:55 2018 +0200
@@ -203,6 +203,7 @@
       {
       }
 
+      std::unique_ptr<Interactor>     interactor_;
       LayoutWidget*                   mainLayout_;
       LayoutWidget*                   thumbnailsLayout_;
       LayerWidget*                    mainViewport_;
@@ -216,13 +217,13 @@
       unsigned int                    slice_;
       
     public:
-      SimpleViewerApplication(OrthancStone::WidgetViewport* wasmViewport1, OrthancStone::WidgetViewport* wasmViewport2) :
+      SimpleViewerApplication() :
         mainLayout_(NULL),
         currentInstanceIndex_(0),
         source_(NULL),
         slice_(0),
-        wasmViewport1_(wasmViewport1),
-        wasmViewport2_(wasmViewport2)
+        wasmViewport1_(NULL),
+        wasmViewport2_(NULL)
       {
       }
       
@@ -244,11 +245,13 @@
         options.add(generic);    
       }
 
-      virtual void Initialize(IStatusBar& statusBar,
+      virtual void Initialize(BasicApplicationContext* context,
+                              IStatusBar& statusBar,
                               const boost::program_options::variables_map& parameters)
       {
         using namespace OrthancStone;
 
+        context_ = context;
         statusBar.SetMessage("Use the key \"s\" to reinitialize the layout");
 
         if (parameters.count("instance1") < 1)
@@ -301,15 +304,17 @@
         thumbnails_[1]->AddLayer(thumb1);
 
         mainLayout_->SetTransmitMouseOver(true);
-        mainViewport_->SetInteractor(context_->AddInteractor(new Interactor(*this)));
-#if ORTHANC_ENABLE_SDL == 1
-        context_->SetCentralWidget(mainLayout_);
-#else
-  wasmViewport1_->SetCentralWidget(thumbnailsLayout_);
-  wasmViewport2_->SetCentralWidget(mainViewport_);
+        interactor_.reset(new Interactor(*this));
+        mainViewport_->SetInteractor(*interactor_);
+      }
 
+#if ORTHANC_ENABLE_SDL==0
+      virtual void InitializeWasm() {
+
+        AttachWidgetToWasmViewport("canvas", thumbnailsLayout_);
+        AttachWidgetToWasmViewport("canvas2", mainViewport_);
+      }
 #endif
-      }
     };
   }
 }