#ifndef SPARROWSHELL_H #define SPARROWSHELL_H #include #include "system.h" #include "scenetree.h" #include "glm/glm.hpp" class Input; namespace sf { class Window; } class SparrowShell : public SceneNode { private: class ScrollBar{ SparrowShell* m_shell; glm::ivec2 m_position; glm::ivec2 m_dimension; //TODO : Add rectangle mesh public: ScrollBar(); ScrollBar(SparrowShell* shell); void update(); }; static const unsigned int BUFFER_MAX_LENGTH; static const unsigned int BUFFER_DISPLAYED_NUMBER; static const unsigned int SCROLLBAR_PIXEL_WIDTH; std::list m_buffer; sf::Window* m_window; Input* m_input; int m_index = 0; glm::ivec2 m_position; glm::ivec2 m_dimension; //textMesh ScrollBar m_scrollbar; public: SparrowShell(sf::Window*, Input*); void update(); void scrollUp(); void scrollDown(); void out(std::string); }; #endif // SPARROWSHELL_H