/* Rosegarden A MIDI and audio sequencer and musical notation editor. This program is Copyright 2000-2008 Guillaume Laurent , Chris Cannam , Richard Bown The moral rights of Guillaume Laurent, Chris Cannam, and Richard Bown to claim authorship of this work have been asserted. This file is Copyright 2006 Pedro Lopez-Cabanillas D. Michael McIntyre Other copyrights also apply to some parts of this work. Please see the AUTHORS file and individual file headers for details. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information. */ #ifndef _RG_TRACKPARAMETERBOX_H_ #define _RG_TRACKPARAMETERBOX_H_ #include "base/MidiProgram.h" #include "base/Track.h" #include "gui/widgets/ColourTable.h" #include #include "RosegardenParameterArea.h" #include "RosegardenParameterBox.h" #include #include // #include in QT4, thinking ahead #include class TQWidget; class TQPushButton; class TQLabel; class TQFrame; class KComboBox; class TQCheckBox; namespace Rosegarden { class RosegardenGUIDoc; class TrackParameterBox : public RosegardenParameterBox { TQ_OBJECT public: TrackParameterBox( RosegardenGUIDoc *doc, TQWidget *parent=0); ~TrackParameterBox(); void setDocument( RosegardenGUIDoc *doc ); void populateDeviceLists(); virtual void showAdditionalControls(bool showThem); virtual TQString getPreviousBox(RosegardenParameterArea::Arrangement) const; public slots: void slotSelectedTrackChanged(); void slotSelectedTrackNameChanged(); void slotPlaybackDeviceChanged(int index); void slotInstrumentChanged(int index); void slotRecordingDeviceChanged(int index); void slotRecordingChannelChanged(int index); void slotUpdateControls(int); void slotInstrumentLabelChanged(InstrumentId id, TQString label); void slotClefChanged(int clef); void slotTransposeChanged(int transpose); void slotTransposeIndexChanged(int index); void slotTransposeTextChanged(TQString text); void slotDocColoursChanged(); void slotColorChanged(int index); void slotHighestPressed(); void slotLowestPressed(); void slotPresetPressed(); void slotStaffSizeChanged(int index); void slotStaffBracketChanged(int index); signals: void instrumentSelected(TrackId, int); protected: void populatePlaybackDeviceList(); void populateRecordingDeviceList(); void updateHighLow(); private: RosegardenGUIDoc *m_doc; KComboBox *m_playDevice; KComboBox *m_instrument; KComboBox *m_recDevice; KComboBox *m_recChannel; TQPushButton *m_presetButton; TQPushButton *m_highButton; TQPushButton *m_lowButton; KComboBox *m_defClef; KComboBox *m_defColor; KComboBox *m_defTranspose; KComboBox *m_staffSizeCombo; KComboBox *m_staffBracketCombo; int m_addColourPos; int m_highestPlayable; int m_lowestPlayable; ColourTable::ColourList m_colourList; TQLabel *m_trackLabel; typedef std::vector IdsVector; IdsVector m_playDeviceIds; IdsVector m_recDeviceIds; std::map m_instrumentIds; std::map m_instrumentNames; int m_selectedTrackId; char m_lastInstrumentType; // Additional elements that may be hidden in vertical stacked mode //TQFrame *m_separator2; TQFrame *m_playbackGroup; TQFrame *m_recordGroup; TQFrame *m_defaultsGroup; TQFrame *m_staffGroup; TQLabel *m_segHeader; TQLabel *m_presetLbl; TQLabel *m_staffGrpLbl; TQLabel *m_grandStaffLbl; TQLabel *m_clefLbl; TQLabel *m_transpLbl; TQLabel *m_colorLbl; TQLabel *m_rangeLbl; TQLabel *m_psetLbl; }; } #endif