Mercurial > hg > orthanc-stone
diff Applications/Samples/SampleApplicationBase.h @ 326:612238b3f3e8 am-2
all 4 samples now working in Qt, SDL and wasm
author | am@osimis.io |
---|---|
date | Tue, 16 Oct 2018 12:57:38 +0200 |
parents | be2660b6e40a |
children | c7fdc8bac581 |
line wrap: on
line diff
--- a/Applications/Samples/SampleApplicationBase.h Tue Oct 16 11:30:00 2018 +0200 +++ b/Applications/Samples/SampleApplicationBase.h Tue Oct 16 12:57:38 2018 +0200 @@ -22,6 +22,17 @@ #pragma once #include "../../Applications/IStoneApplication.h" +#include "../../Framework/Widgets/LayerWidget.h" + +#if ORTHANC_ENABLE_WASM==1 +#include "../../Platforms/Wasm/WasmPlatformApplicationAdapter.h" +#include "../../Platforms/Wasm/Defaults.h" +#endif + +#if ORTHANC_ENABLE_QT==1 +#include "Qt/SampleMainWindow.h" +#include "Qt/SampleMainWindowWithButtons.h" +#endif namespace OrthancStone { @@ -31,6 +42,8 @@ { protected: BaseCommandBuilder commandBuilder_; + LayerWidget* mainWidget_; // ownership is transfered to the application context + public: virtual void Initialize(StoneApplicationContext* context, IStatusBar& statusBar, @@ -43,6 +56,31 @@ return "Stone of Orthanc - Sample"; } + virtual BaseCommandBuilder& GetCommandBuilder() {return commandBuilder_;} + + virtual void Finalize() {} + virtual IWidget* GetCentralWidget() {return mainWidget_;} + +#if ORTHANC_ENABLE_WASM==1 + // default implementations for a single canvas named "canvas" in the HTML and an emtpy WasmApplicationAdapter + + virtual void InitializeWasm() + { + AttachWidgetToWasmViewport("canvas", mainWidget_); + } + + virtual WasmPlatformApplicationAdapter* CreateWasmApplicationAdapter(MessageBroker& broker) + { + return new WasmPlatformApplicationAdapter(broker, *this); + } +#endif + + }; + + // this application actually works in Qt and WASM + class SampleSingleCanvasWithButtonsApplicationBase : public SampleApplicationBase + { +public: virtual void OnPushButton1Clicked() {} virtual void OnPushButton2Clicked() {} virtual void OnTool1Clicked() {} @@ -59,8 +97,24 @@ tool2 = "tool2"; } - virtual BaseCommandBuilder& GetCommandBuilder() {return commandBuilder_;} +#if ORTHANC_ENABLE_QT==1 + virtual QStoneMainWindow* CreateQtMainWindow() { + return new SampleMainWindowWithButtons(dynamic_cast<OrthancStone::NativeStoneApplicationContext&>(*context_), *this); + } +#endif + + }; + // this application actually works in SDL and WASM + class SampleSingleCanvasApplicationBase : public SampleApplicationBase + { +public: + +#if ORTHANC_ENABLE_QT==1 + virtual QStoneMainWindow* CreateQtMainWindow() { + return new SampleMainWindow(dynamic_cast<OrthancStone::NativeStoneApplicationContext&>(*context_), *this); + } +#endif }; } }