#ifndef SCREEN1VIEW_HPP
#define SCREEN1VIEW_HPP

#include <gui_generated/screen1_screen/Screen1ViewBase.hpp>
#include <gui/screen1_screen/Screen1Presenter.hpp>
#include <gui/containers/Scroll_container.hpp>


class Screen1View : public Screen1ViewBase
{
public:
    Screen1View();
    virtual ~Screen1View() {}

    virtual void setupScreen();
    virtual void tearDownScreen();
    virtual void handleTickEvent();
    void resetScroll(); // Method to reset the scroll state
    virtual void scrollWheel1UpdateItem(Scroll_container& item, char itemIndex);
protected:
    int tickCounter;        // Counter to track ticks
    int targetItem;         // The target index for the scroll wheel
    bool scrollCompleted;   // Flag to ensure the scroll happens only once
    static constexpr int ticksPerStep = 30; // Number of ticks for a 0.5-second delay (assuming 60 Hz)
    int digitalHours;
    int digitalMinutes;
    int digitalSeconds;
    Callback<Screen1View,char>scrollWheel1AnimateToCallback;
    void scrollWheel1AnimateToHandler(char item);
};

#endif // SCREEN1VIEW_HPP
