#pragma once
#include "quokka_gfx/quokka_gfx.h"

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

  explicit HomeScreen(quokka_gfx::Application *app);     // Constructor

  void on_enter() override;                                        // Called when the screen is entered
  void on_exit() override;                                         // Called when the screen is exited
  void handleEvents() override;                                    // Manage events
  void update(const double deltaTime) override;                    // Update the logic of the screen
  void render(quokka_gfx::RendererManager *renderer) override;     // Render the screen

  protected:
  quokka_gfx::Rect m_nextScreenButtonRect;
  quokka_gfx::Rect m_quitButtonRect;

  bool m_quitRequestedFlag       = false;
  bool m_nextScreenRequestedFlag = false;
};
//------------------------------------------------------------
