/* This file is NOT part of KDE ;)
   Copyright (C) 2007 Andreas Hartmetz <ahartmetz@gmail.com>

   This application is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public License
   along with this library; see the file COPYING.LIB.  If not, write to
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.
*/
#ifndef MIXOR_H
#define MIXOR_H

#include "../mixer/mixer.h"

#include <QtCore/QHash>
#include <QtGui/QWidget>

class QGroupBox;

/**
 * This is the main view class for Mixor.  Most of the non-menu,
 * non-toolbar, and non-statusbar (e.g., non frame) GUI code should go
 * here.
 *
 * @short Main view
 * @author Andreas Hartmetz <ahartmetz@gmail.com>
 * @version 0.1
 */

class Mixor : public QWidget
{
    Q_OBJECT
public:
    /**
     * Default constructor
     */
    Mixor(QWidget *parent);

    /**
     * Destructor
     */
    virtual ~Mixor();

private slots:
    void mixerAdded(const Phonon::Mixer::Mixer &);
    void mixerRemoved(const Phonon::Mixer::Mixer &);

private:
    QList<QWidget *> m_mixerWidgets;
    QHash<Phonon::Mixer::Mixer, QGroupBox *> m_boxFor;
#if 0
signals:
    /**
     * Use this signal to change the content of the statusbar
     */
    void signalChangeStatusbar(const QString& text);

    /**
     * Use this signal to change the content of the caption
     */
    void signalChangeCaption(const QString& text);

private slots:
    void switchColors();
    void settingsChanged();
#endif
};

#endif // MIXOR_H
