#pragma once

#include "core/coreManager.h"

#include <memory>
#include <wx/app.h>

//--------------------------------------------------------------
class kwaFr_app : public wxApp
{
  public:
  kwaFr_app() = default;                                       // Default constructor
  virtual ~kwaFr_app();                                        // Default destructor
  kwaFr_app(const kwaFr_app &obj)                = delete;     // Copy constructor
  kwaFr_app(kwaFr_app &&obj) noexcept            = delete;     // Move constructor
  kwaFr_app &operator=(const kwaFr_app &obj)     = delete;     // Copy assignment operator
  kwaFr_app &operator=(kwaFr_app &&obj) noexcept = delete;     // Move assignment operator

  bool OnInit() override;
  int  OnExit() override;

  protected:
  std::unique_ptr<core::CoreManager> m_coreManager;     // Core manager instance
};
//--------------------------------------------------------------
