text: #pragma once
  
  #include "Engine\Layer.h"
  #include "Engine\Events\KeyEvent.h"
  #include "Engine\Events\MouseEvent.h"
  #include "Engine\Events\ApplicationEvent.h"
  
  namespace Engine {
  
  	class ENGINE_API ImGuiLayer : public Layer {
  	public:
  		ImGuiLayer();
  		~ImGuiLayer();
  
  		void OnAttach();
  		void OnDetach();
  		void OnUpdate();
  		void OnEvent(Event& event);
  	private:
  		bool OnMouseButtonPressedEvent(MouseButtonPressedEvent& e);
  		bool OnMouseButtonReleasedEvent(MouseButtonReleasedEvent& e);
  		bool OnMouseMovedEvent(MouseMovedEvent& e);
  		bool OnMouseScrolledEvent(MouseScrolledEvent& e);
  		bool OnKeyPressedEvent(KeyPressedEvent& e);
  		bool OnKeyReleasedEvent(KeyReleasedEvent& e);
  		bool OnKeyTypedEvent(KeyTypedEvent& e);
  		bool OnWindowResizeEvent(WindowResizeEvent& e);
  	private:
  		float m_Time = 0;
  	};
  }