annotate view/PaneStack.h @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents c5970f7af886
children
rev   line source
lbajardsilogic@0 1
lbajardsilogic@0 2 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 3
lbajardsilogic@0 4 /*
lbajardsilogic@0 5 Sonic Visualiser
lbajardsilogic@0 6 An audio file viewer and annotation editor.
lbajardsilogic@0 7 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 8 This file copyright 2006 Chris Cannam and QMUL.
lbajardsilogic@0 9
lbajardsilogic@0 10 This program is free software; you can redistribute it and/or
lbajardsilogic@0 11 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 12 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 13 License, or (at your option) any later version. See the file
lbajardsilogic@0 14 COPYING included with this distribution for more information.
lbajardsilogic@0 15 */
lbajardsilogic@0 16
lbajardsilogic@0 17 #ifndef _PANESTACK_H_
lbajardsilogic@0 18 #define _PANESTACK_H_
lbajardsilogic@0 19
lbajardsilogic@0 20 #include <QFrame>
lbajardsilogic@0 21
lbajardsilogic@0 22 class QWidget;
lbajardsilogic@0 23 class QLabel;
lbajardsilogic@0 24 class QStackedWidget;
lbajardsilogic@0 25 class QSplitter;
lbajardsilogic@0 26 class QHBoxLayout;
lbajardsilogic@0 27 class View;
lbajardsilogic@0 28 class Pane;
lbajardsilogic@0 29 class Layer;
lbajardsilogic@0 30 class ViewManager;
lbajardsilogic@0 31 class PropertyContainer;
lbajardsilogic@0 32 class PropertyStack;
lbajardsilogic@0 33
lbajardsilogic@0 34 class PaneStack : public QFrame
lbajardsilogic@0 35 {
lbajardsilogic@0 36 Q_OBJECT
lbajardsilogic@0 37
lbajardsilogic@0 38 public:
lbajardsilogic@0 39 PaneStack(QWidget *parent, ViewManager *viewManager);
lbajardsilogic@0 40
lbajardsilogic@0 41 Pane *addPane(bool suppressPropertyBox = false); // I own the returned value
lbajardsilogic@0 42 void deletePane(Pane *pane); // Deletes the pane, but _not_ its layers
lbajardsilogic@0 43
lbajardsilogic@0 44 int getPaneCount() const; // Returns only count of visible panes
lbajardsilogic@0 45 Pane *getPane(int n); // Of visible panes; I own the returned value
lbajardsilogic@0 46
lbajardsilogic@0 47 void hidePane(Pane *pane); // Also removes pane from getPane/getPaneCount
lbajardsilogic@0 48 void showPane(Pane *pane); // Returns pane to getPane/getPaneCount
lbajardsilogic@0 49
lbajardsilogic@0 50 int getHiddenPaneCount() const;
lbajardsilogic@0 51 Pane *getHiddenPane(int n); // I own the returned value
lbajardsilogic@0 52
lbajardsilogic@0 53 void setCurrentPane(Pane *pane);
lbajardsilogic@0 54 void setCurrentLayer(Pane *pane, Layer *layer);
lbajardsilogic@0 55 Pane *getCurrentPane();
lbajardsilogic@0 56
lbajardsilogic@0 57 void setPropertyStackMinWidth(int mw);
lbajardsilogic@0 58
lbajardsilogic@0 59 signals:
lbajardsilogic@0 60 void currentPaneChanged(Pane *pane);
lbajardsilogic@0 61 void currentLayerChanged(Pane *pane, Layer *layer);
lbajardsilogic@0 62 void rightButtonMenuRequested(Pane *pane, QPoint position);
lbajardsilogic@0 63 void propertyStacksResized();
lbajardsilogic@0 64 void contextHelpChanged(const QString &);
benoitrigolleau@66 65 void newPaneAdded(Pane *pane);
benoitrigolleau@66 66 void paneDeleted(Pane *pane);
lbajardsilogic@0 67
lbajardsilogic@0 68 public slots:
lbajardsilogic@0 69 void propertyContainerAdded(PropertyContainer *);
lbajardsilogic@0 70 void propertyContainerRemoved(PropertyContainer *);
lbajardsilogic@0 71 void propertyContainerSelected(View *client, PropertyContainer *);
lbajardsilogic@0 72 void viewSelected(View *v);
lbajardsilogic@0 73 void paneInteractedWith();
lbajardsilogic@0 74 void rightButtonMenuRequested(QPoint);
lbajardsilogic@0 75
lbajardsilogic@0 76 protected:
lbajardsilogic@101 77
lbajardsilogic@101 78 void resizePane();
lbajardsilogic@101 79
lbajardsilogic@0 80 Pane *m_currentPane;
lbajardsilogic@0 81
lbajardsilogic@0 82 struct PaneRec
lbajardsilogic@0 83 {
lbajardsilogic@0 84 Pane *pane;
lbajardsilogic@0 85 QWidget *propertyStack;
lbajardsilogic@0 86 QLabel *currentIndicator;
lbajardsilogic@0 87 QFrame *frame;
lbajardsilogic@0 88 QHBoxLayout *layout;
lbajardsilogic@0 89 };
lbajardsilogic@0 90
lbajardsilogic@0 91 std::vector<PaneRec> m_panes;
lbajardsilogic@0 92 std::vector<PaneRec> m_hiddenPanes;
lbajardsilogic@0 93
lbajardsilogic@0 94 QSplitter *m_splitter;
lbajardsilogic@0 95 QStackedWidget *m_propertyStackStack;
lbajardsilogic@0 96
lbajardsilogic@0 97 ViewManager *m_viewManager; // I don't own this
lbajardsilogic@0 98 int m_propertyStackMinWidth;
lbajardsilogic@0 99 void sizePropertyStacks();
lbajardsilogic@0 100
lbajardsilogic@0 101 };
lbajardsilogic@0 102
lbajardsilogic@0 103 #endif
lbajardsilogic@0 104