#pragma once #include #include "core/editor.h" #include "core/timeline.h" #include "classicmocknote.h" #include "classicmode/classicactions.h" class ClassicGraphicsManager; class SelectionManager; class ClassicEditor : public kku::Editor { public: explicit ClassicEditor(const std::shared_ptr>& timeline, const std::shared_ptr& graphics_manager, const std::shared_ptr& selection_manager); virtual void input(kku::GameEvent&& input) override; virtual void update(kku::UpdateData&& updatedata) override; virtual void display() const override; virtual void recalculate(const kku::microsec& timestamp) override; void selectNoteType(Type type) noexcept; private: inline kku::microsec adjustOffset(kku::microsec offset) const noexcept; const std::shared_ptr> _timeline; const std::shared_ptr _graphics_manager; const std::shared_ptr _selection_manager; Type _selected_type; kku::microsec _current_time; kku::microsec _scroll_step; };