#pragma once

#include <tqwidget.h>

class BalanceKnob : public TQWidget
{
    TQ_OBJECT

public:
    BalanceKnob( int minVal, int maxVal, int val, TQWidget *parent = 0 );

    int value() const { return m_value; }
    TQSize sizeHint() const { return TQSize(30, 30); }

public slots:
    void setValue( int v );

signals:
    void valueChanged( int v );

protected:
    void paintEvent( TQPaintEvent * );
    void mousePressEvent( TQMouseEvent *e );
    void mouseMoveEvent( TQMouseEvent *e );
    void mouseReleaseEvent( TQMouseEvent *e );
    void mouseDoubleClickEvent( TQMouseEvent *e );
    void wheelEvent( TQWheelEvent *e );

private:
    int    m_min, m_max, m_value;
    int    m_dragY;
    int    m_dragValue;
    bool   m_dragging;
};
