#ifndef _QTTRACK_H_
#define _QTTRACK_H_

#include "qtMain.h"
#include "ifTrack.h"

class QtTrack;

class MyLabel : public QLabel
{
  Q_OBJECT

 private:
  QPopupMenu * rbmenu;
  QtTrack * qttrack;
  QLineEdit * le;
 public:
  MyLabel( QWidget * parent = 0, const char * name = 0 );


 public slots:

  void mousePressEvent ( QMouseEvent * );
  void changeName();
  void delTrack();
  void setName();
};

class KbTrack;
class TogBut;

/**
 * This is the qt implementation of a track
 * @author Jan Wuerthner
 * @versoin 0.95
 */
class QtTrack : public QWidget, public IfTrack
{
  Q_OBJECT
 private:
  KbTrack * track;
  TogBut * mute;
  TogBut * type;
  TogBut * lock;
  MyLabel * trname;
  QSpinBox * chanbox;
  QComboBox * instbox;
  QComboBox * output;
  QSpinBox * vol;
  QSpinBox * del;
 public:

  /// Constructor
  QtTrack(KbTrack*);

  /// Destructor
  ~QtTrack();
  void erase();

  /// updates the presentation on the screen
  void update();

  /// returns the QtMain Window
  QtMain * gQtMain();

  /// returns the track
  KbTrack * gTrack();

  /// returns the height of a track (calculates it from main)
  int height();

  /// returns the width of a track
  int width();

  /// (only internal use:) corrects the height
  void adjustHeight();

  /// returns current instrument
  int gProgram();

  /// sets an instrument
  void sProgram(int n);

 public slots:
  void updateChan(int);
  void updateInst(int);
  void updateOut(int);
  void updateVol(int);
  void updateDel(int);
};


/**
 * This class defines a toggel button, as it is used three times in each track
 * @author Jan Wuerthner
 * @version 0.95
 */
class TogBut : public QLabel
{
  Q_OBJECT
public:
  TogBut( int n, KbTrack * kbtrack, QPixmap * pic, QPixmap * pic2, QWidget * parent=0, const char * name=0);
  void update();
public slots:
  void mousePressEvent ( QMouseEvent * );
private:
  int num;
  KbTrack * track;
  QtTrack * qttrack;
  QPixmap * icon;
  QPixmap * icon2;
};

#endif

Documentation generated by wuerthne@clouseau on Sat Feb 20 16:41:13 MST 1999