view Platforms/WebAssembly/Defaults.h @ 222:84844649a8fd am

continued: reusable applications
author am@osimis.io
date Tue, 12 Jun 2018 17:21:15 +0200
parents
children d30a10d574ec
line wrap: on
line source

#pragma once

#include <Framework/dev.h>
#include <Framework/Viewport/WidgetViewport.h>
#include <Framework/Widgets/LayerWidget.h>
#include <Framework/Widgets/LayoutWidget.h>

#ifdef __cplusplus
extern "C" {
#endif
  
  extern void ScheduleRedraw();
  
#ifdef __cplusplus
}
#endif


namespace OrthancStone {

  class ChangeObserver :
    public OrthancStone::IViewport::IObserver
  {
  private:
    // Flag to avoid flooding JavaScript with redundant Redraw requests
    bool isScheduled_; 

  public:
    ChangeObserver() :
      isScheduled_(false)
    {
    }

    void Reset()
    {
      isScheduled_ = false;
    }

    virtual void NotifyChange(const OrthancStone::IViewport &scene)
    {
      if (!isScheduled_)
      {
        ScheduleRedraw();
        isScheduled_ = true;
      }
    }
  };


  class StatusBar : public OrthancStone::IStatusBar
  {
  public:
    virtual void ClearMessage()
    {
    }

    virtual void SetMessage(const std::string& message)
    {
      printf("%s\n", message.c_str());
    }
  };
}