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
+