Chris@58: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
Chris@0: 
Chris@0: /*
Chris@59:     Sonic Visualiser
Chris@59:     An audio file viewer and annotation editor.
Chris@59:     Centre for Digital Music, Queen Mary, University of London.
Chris@59:     This file copyright 2006 Chris Cannam.
Chris@0:     
Chris@59:     This program is free software; you can redistribute it and/or
Chris@59:     modify it under the terms of the GNU General Public License as
Chris@59:     published by the Free Software Foundation; either version 2 of the
Chris@59:     License, or (at your option) any later version.  See the file
Chris@59:     COPYING included with this distribution for more information.
Chris@0: */
Chris@0: 
Chris@0: #ifndef _PROPERTY_BOX_H_
Chris@0: #define _PROPERTY_BOX_H_
Chris@0: 
Chris@0: #include "base/PropertyContainer.h"
Chris@0: 
Chris@0: #include <QFrame>
Chris@0: #include <map>
Chris@0: 
Chris@33: class QLayout;
Chris@33: class QWidget;
Chris@0: class QGridLayout;
Chris@34: class QVBoxLayout;
Chris@107: class QLabel;
Chris@185: class LEDButton;
Chris@0: 
Chris@0: class PropertyBox : public QFrame
Chris@0: {
Chris@0:     Q_OBJECT
Chris@0: 
Chris@0: public:
Chris@0:     PropertyBox(PropertyContainer *);
Chris@0:     ~PropertyBox();
Chris@0: 
Chris@0:     PropertyContainer *getContainer() { return m_container; }
Chris@0: 
Chris@34: signals:
Chris@34:     void changePlayGainDial(int);
Chris@34:     void changePlayPanDial(int);
Chris@47:     void showLayer(bool);
Chris@189:     void contextHelpChanged(const QString &);
Chris@34: 
Chris@0: public slots:
Chris@0:     void propertyContainerPropertyChanged(PropertyContainer *);
Chris@197:     void propertyContainerPropertyRangeChanged(PropertyContainer *);
Chris@64:     void pluginConfigurationChanged(QString);
Chris@185:     void layerVisibilityChanged(bool);
Chris@0: 
Chris@0: protected slots:
Chris@0:     void propertyControllerChanged(int);
Chris@335:     void propertyControllerChanged(bool);
Chris@0: 
Chris@377:     void playAudibleChanged(bool);
Chris@377:     void playAudibleButtonChanged(bool);
Chris@34:     void playGainChanged(float);
Chris@34:     void playGainDialChanged(int);
Chris@34:     void playPanChanged(float);
Chris@34:     void playPanDialChanged(int);
Chris@34: 
Chris@34:     void populateViewPlayFrame();
Chris@34: 
Chris@100:     void unitDatabaseChanged();
Chris@285:     void colourDatabaseChanged();
Chris@100: 
Chris@63:     void editPlugin();
Chris@63: 
Chris@189:     void mouseEnteredWidget();
Chris@189:     void mouseLeftWidget();
Chris@189: 
Chris@0: protected:
Chris@197:     void updatePropertyEditor(PropertyContainer::PropertyName,
Chris@197:                               bool rangeChanged = false);
Chris@218:     void updateContextHelp(QObject *o);
Chris@285:     void addNewColour();
Chris@0: 
Chris@107:     QLabel *m_nameWidget;
Chris@33:     QWidget *m_mainWidget;
Chris@0:     QGridLayout *m_layout;
Chris@0:     PropertyContainer *m_container;
Chris@34:     QFrame *m_viewPlayFrame;
Chris@34:     QVBoxLayout *m_mainBox;
Chris@185:     LEDButton *m_showButton;
Chris@189:     LEDButton *m_playButton;
Chris@493:     std::map<QString, QGridLayout *> m_groupLayouts;
Chris@0:     std::map<QString, QWidget *> m_propertyControllers;
Chris@0: };
Chris@0: 
Chris@0: #endif