#pragma once #include "try_engine/try_engine.hpp" #include "rrr/content/content.hpp" #include "rrr/utils/func.hpp" namespace rrr::layers::gui { class history : public try_engine::layer { BASE_TYPE_DEFINE(); public: CONSTRUCT_IMPL(history); public: BASE_OVERIDE_IMPL(); public: SET_EVENT_MANAGER_IMPL(); public: void set_content(content* c) { cnt = c; }; private: FLAGS_STRUCT_DEFINED(); bool show = true; event_manager* em; content* cnt; files* data; file selected_file; float width = 0.f; float height = 0.f; float pos_x = 0.f; float pos_y = 0.f; // все что нужно для установки курсора при длинных списках int current_position = 0; // позиция курсора относительно списка int cursor_position = 0; // позиция курсора относительно высоты экрана int delta = 0; enum class MOVE_DIRECTION { UP, DOWN }; private: const ImVec4 dir_color = func::get_IMGUI_color(91.f, 128.f, 191.f); const ImVec4 file_color = func::get_IMGUI_color(186.f, 186.f, 186.f); const ImVec4 link_color = func::get_IMGUI_color(51.f, 95.f, 165.f); private: void resize(); void set_delta(MOVE_DIRECTION); void set_scroll(); }; }