class Button: public Runnable {
  
  const byte pin;
  int state;
  unsigned long buttonDownMs;
  
  protected:
    virtual void shortClick() = 0;
    virtual void longClick() = 0;
  
  public:
    Button(byte attachTo);
    
    void setup();
    void loop();
};

#endif







