annotate widgets/PaneStack.h @ 38:beb801473743

* Rearrange spectrogram cacheing so that gain, normalization, instantaneous frequency calculations etc can be done from the cached data (increasing the size of the cache, but also the usability).
author Chris Cannam
date Thu, 23 Feb 2006 18:01:31 +0000
parents 46d8f5add6f0
children 78515b1e29eb
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@17 19 class Layer;
Chris@0 20 class ViewManager;
Chris@0 21 class PropertyContainer;
Chris@0 22 class PropertyStack;
Chris@0 23
Chris@0 24 class PaneStack : public QSplitter
Chris@0 25 {
Chris@0 26 Q_OBJECT
Chris@0 27
Chris@0 28 public:
Chris@0 29 PaneStack(QWidget *parent, ViewManager *viewManager);
Chris@0 30
Chris@0 31 Pane *addPane(bool suppressPropertyBox = false); // I own the returned value
Chris@0 32 Pane *getPane(int n); // I own the returned value
Chris@0 33 void deletePane(Pane *pane); // Deletes the pane and all its views
Chris@0 34 int getPaneCount() const;
Chris@0 35
Chris@0 36 void setCurrentPane(Pane *pane);
Chris@19 37 void setCurrentLayer(Pane *pane, Layer *layer);
Chris@0 38 Pane *getCurrentPane();
Chris@0 39
Chris@0 40 signals:
Chris@0 41 void currentPaneChanged(Pane *pane);
Chris@17 42 void currentLayerChanged(Pane *pane, Layer *layer);
Chris@0 43
Chris@0 44 public slots:
Chris@0 45 void propertyContainerAdded(PropertyContainer *);
Chris@0 46 void propertyContainerRemoved(PropertyContainer *);
Chris@0 47 void propertyContainerSelected(PropertyContainer *);
Chris@0 48 void paneInteractedWith();
Chris@0 49
Chris@0 50 protected:
Chris@0 51 Pane *m_currentPane;
Chris@0 52 //!!! should be a single vector of structs
Chris@0 53 std::vector<Pane *> m_panes; // I own these
Chris@0 54 std::vector<QWidget *> m_propertyStacks; // I own these
Chris@0 55 std::vector<QLabel *> m_currentIndicators; // I own these
Chris@0 56 ViewManager *m_viewManager; // I don't own this
Chris@0 57
Chris@0 58 void sizePropertyStacks();
Chris@0 59 };
Chris@0 60
Chris@0 61 #endif
Chris@0 62