Mercurial > hg > svgui
diff widgets/PaneStack.h @ 0:2a4f26e85b4c
initial import
author | Chris Cannam |
---|---|
date | Tue, 10 Jan 2006 16:33:16 +0000 |
parents | |
children | 37b110168acf |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgets/PaneStack.h Tue Jan 10 16:33:16 2006 +0000 @@ -0,0 +1,59 @@ + +/* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ + +/* + A waveform viewer and audio annotation editor. + Chris Cannam, Queen Mary University of London, 2005 + + This is experimental software. Not for distribution. +*/ + +#ifndef _PANESTACK_H_ +#define _PANESTACK_H_ + +#include <QSplitter> + +class QWidget; +class QLabel; +class Pane; +class ViewManager; +class PropertyContainer; +class PropertyStack; + +class PaneStack : public QSplitter +{ + Q_OBJECT + +public: + PaneStack(QWidget *parent, ViewManager *viewManager); + + Pane *addPane(bool suppressPropertyBox = false); // I own the returned value + Pane *getPane(int n); // I own the returned value + void deletePane(Pane *pane); // Deletes the pane and all its views + int getPaneCount() const; + + void setCurrentPane(Pane *pane); + Pane *getCurrentPane(); + +signals: + void currentPaneChanged(Pane *pane); + +public slots: + void propertyContainerAdded(PropertyContainer *); + void propertyContainerRemoved(PropertyContainer *); + void propertyContainerSelected(PropertyContainer *); + void paneInteractedWith(); + +protected: + Pane *m_currentPane; + //!!! should be a single vector of structs + std::vector<Pane *> m_panes; // I own these + std::vector<QWidget *> m_propertyStacks; // I own these + std::vector<QLabel *> m_currentIndicators; // I own these + ViewManager *m_viewManager; // I don't own this + + void sizePropertyStacks(); +}; + +#endif +