/***************************************************************************
 *   Copyright (C) 2020 by Jan K. S.                                       *
 *                                                                         *
 ***( see copyright.txt file at root folder )*******************************/

/*   Modified 2020 by Santiago González                                    *
 *   santigoro@gmail.com                                                   *
 *                                                                         */

#pragma once

#include "e-element.h"
#include "component.h"
#include "joystickwidget.h"

class LibraryItem; 
class IoPin; 
class QToolButton; 

class KY023 : public Component, public eElement
{
    public:
        KY023( QString type, QString id ); 
        ~KY023(); 

        static Component* construct( QString type, QString id ); 
        static LibraryItem* libraryItem(); 
        
        virtual void updateStep() override; 

        virtual void paint( QPainter *p, const QStyleOptionGraphicsItem *o, QWidget *w ) override; 
        
    public slots:
        void onbuttonpressed(); 
        void onbuttonreleased(); 
        
    private:
        JoystickWidget m_joystickW; 
        QGraphicsProxyWidget* m_proxy; 
        
        QToolButton* m_button; 
        QGraphicsProxyWidget* m_proxy_button; 
        
        bool m_changed; 
        bool m_closed; 

        IoPin* m_vrx; 
        IoPin* m_vry; 
        IoPin* m_sw; 
}; 
