#pragma once

#include <memory>

#include "core/editor.h"
#include "core/timeline.h"

#include "mockclassicnote.h"

class ClassicGraphicsManager;

class ClassicEditor : public Editor
{
public:
    explicit ClassicEditor(std::shared_ptr<ClassicGraphicsManager>&& manager);

    virtual void input(PlayerInput&& inputdata) override;
    virtual void update(UpdateData&& updatedata) override;
    virtual void draw() const override;

    void selectNoteType(Type type) noexcept;

private:
    Context _context;

    std::shared_ptr<ClassicGraphicsManager> _graphics_manager;
    Timeline<MockClassicNote> _timeline;

    Type _selected_type;
    microsec _current_time;
    microsec _scroll_step;
};