annotate widgets/PaneStack.h @ 15:4d5d9aba406b

* Fix update and play limits for play-selection mode when not looping * Fix playback in loop mode when no selection -- but the GUI update for this is still wrong on the flyback * Various fixes and improvements to making selections, particularly during playback * Draw selection under non-opaque non-scrollable layers, so as to improve cacheing * Show selection limits as text when drawing selection * Allow user to find missing audio files when loading session * Cross-fade selections when in play-selection mode -- mostly. We don't cross-fade on a processing block boundary, and unfortunately with short selections the selection boundary is quite likely to coincide with a block boundary.
author Chris Cannam
date Wed, 25 Jan 2006 17:46:28 +0000
parents 37b110168acf
children 0183ebb725ca
rev   line source
Chris@0 1
Chris@0 2 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 3
Chris@0 4 /*
Chris@0 5 A waveform viewer and audio annotation editor.
Chris@5 6 Chris Cannam, Queen Mary University of London, 2005-2006
Chris@0 7
Chris@0 8 This is experimental software. Not for distribution.
Chris@0 9 */
Chris@0 10
Chris@0 11 #ifndef _PANESTACK_H_
Chris@0 12 #define _PANESTACK_H_
Chris@0 13
Chris@0 14 #include <QSplitter>
Chris@0 15
Chris@0 16 class QWidget;
Chris@0 17 class QLabel;
Chris@0 18 class Pane;
Chris@0 19 class ViewManager;
Chris@0 20 class PropertyContainer;
Chris@0 21 class PropertyStack;
Chris@0 22
Chris@0 23 class PaneStack : public QSplitter
Chris@0 24 {
Chris@0 25 Q_OBJECT
Chris@0 26
Chris@0 27 public:
Chris@0 28 PaneStack(QWidget *parent, ViewManager *viewManager);
Chris@0 29
Chris@0 30 Pane *addPane(bool suppressPropertyBox = false); // I own the returned value
Chris@0 31 Pane *getPane(int n); // I own the returned value
Chris@0 32 void deletePane(Pane *pane); // Deletes the pane and all its views
Chris@0 33 int getPaneCount() const;
Chris@0 34
Chris@0 35 void setCurrentPane(Pane *pane);
Chris@0 36 Pane *getCurrentPane();
Chris@0 37
Chris@0 38 signals:
Chris@0 39 void currentPaneChanged(Pane *pane);
Chris@0 40
Chris@0 41 public slots:
Chris@0 42 void propertyContainerAdded(PropertyContainer *);
Chris@0 43 void propertyContainerRemoved(PropertyContainer *);
Chris@0 44 void propertyContainerSelected(PropertyContainer *);
Chris@0 45 void paneInteractedWith();
Chris@0 46
Chris@0 47 protected:
Chris@0 48 Pane *m_currentPane;
Chris@0 49 //!!! should be a single vector of structs
Chris@0 50 std::vector<Pane *> m_panes; // I own these
Chris@0 51 std::vector<QWidget *> m_propertyStacks; // I own these
Chris@0 52 std::vector<QLabel *> m_currentIndicators; // I own these
Chris@0 53 ViewManager *m_viewManager; // I don't own this
Chris@0 54
Chris@0 55 void sizePropertyStacks();
Chris@0 56 };
Chris@0 57
Chris@0 58 #endif
Chris@0 59