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@1196: #ifndef SV_PROPERTY_BOX_H Chris@1196: #define SV_PROPERTY_BOX_H Chris@0: Chris@0: #include "base/PropertyContainer.h" Chris@0: Chris@0: #include Chris@0: #include 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@1189: class QToolButton; Chris@1180: class NotifyingPushButton; Chris@1587: class QMenu; 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@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@769: void playClipChanged(QString); Chris@185: void layerVisibilityChanged(bool); Chris@0: Chris@0: protected slots: Chris@0: void propertyControllerChanged(int); Chris@335: void propertyControllerChanged(bool); Chris@1602: void propertyControllerResetRequested(); Chris@0: Chris@377: void playAudibleChanged(bool); Chris@377: void playAudibleButtonChanged(bool); Chris@1178: void playGainControlChanged(float); Chris@1178: void playPanControlChanged(float); Chris@34: Chris@34: void populateViewPlayFrame(); Chris@34: Chris@100: void unitDatabaseChanged(); Chris@100: Chris@769: void editPlayParameters(); Chris@63: Chris@189: void mouseEnteredWidget(); Chris@189: void mouseLeftWidget(); Chris@189: Chris@1587: void contextMenuRequested(const QPoint &); Chris@1587: Chris@0: protected: Chris@197: void updatePropertyEditor(PropertyContainer::PropertyName, Chris@197: bool rangeChanged = false); Chris@218: void updateContextHelp(QObject *o); 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@1189: QToolButton *m_playButton; Chris@1587: QMenu *m_lastContextMenu; Chris@1602: QObject *m_contextMenuOn; Chris@493: std::map m_groupLayouts; Chris@0: std::map m_propertyControllers; Chris@0: }; Chris@0: Chris@0: #endif