/***************************************************************************
 *   Copyright (C) 2022 by Santiago González                               *
 *                                                                         *
 ***( see copyright.txt file at root folder )*******************************/

#pragma once

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

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

        int  size() { return m_size; }
        void setSize( int size );

        virtual void registerEnode( eNode*, int n=-1 ) override;

        virtual void setHidden( bool hid, bool hidArea=false, bool hidLabel=false ) override;

        void createPins( int c );
        void deletePins( int d );

        virtual void updatePins(){;}

        virtual void paint( QPainter* p, const QStyleOptionGraphicsItem* o, QWidget* w ) override;

    protected:
        virtual void updatePixmap(){;}

        int m_size;

        std::vector<Pin*> m_connPins;
        std::vector<Pin*> m_sockPins;

        Pin::pinType_t m_pinType;

        QPixmap m_pinPixmap;
};
