Mercurial > hg > svgui
view widgets/PaneStack.h @ 94:c7ade7ea3cfe
* It turns out we can be more efficient in the spectrogram repaints by
marking the spectrogram layer as non-scrollable, and using the spectrogram
cache alone instead of both spectrogram and view caches.
author | Chris Cannam |
---|---|
date | Tue, 09 May 2006 12:43:55 +0000 |
parents | 803830f186ef |
children | 4772fc75ac7c |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ /* Sonic Visualiser An audio file viewer and annotation editor. Centre for Digital Music, Queen Mary, University of London. This file copyright 2006 Chris Cannam. 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 _PANESTACK_H_ #define _PANESTACK_H_ #include <QSplitter> class QWidget; class QLabel; class View; class Pane; class Layer; 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 void deletePane(Pane *pane); // Deletes the pane, but _not_ its layers int getPaneCount() const; // Returns only count of visible panes Pane *getPane(int n); // Of visible panes; I own the returned value void hidePane(Pane *pane); // Also removes pane from getPane/getPaneCount void showPane(Pane *pane); // Returns pane to getPane/getPaneCount int getHiddenPaneCount() const; Pane *getHiddenPane(int n); // I own the returned value void setCurrentPane(Pane *pane); void setCurrentLayer(Pane *pane, Layer *layer); Pane *getCurrentPane(); signals: void currentPaneChanged(Pane *pane); void currentLayerChanged(Pane *pane, Layer *layer); void rightButtonMenuRequested(Pane *pane, QPoint position); public slots: void propertyContainerAdded(PropertyContainer *); void propertyContainerRemoved(PropertyContainer *); void propertyContainerSelected(View *client, PropertyContainer *); void paneInteractedWith(); void rightButtonMenuRequested(QPoint); protected: Pane *m_currentPane; struct PaneRec { Pane *pane; QWidget *propertyStack; QLabel *currentIndicator; }; std::vector<PaneRec> m_panes; std::vector<PaneRec> m_hiddenPanes; ViewManager *m_viewManager; // I don't own this void sizePropertyStacks(); }; #endif