Mercurial > hg > svcore
comparison base/ViewManager.h @ 8:214054a0d8b8
* Hook up tool selection buttons to switch the cursor mode
* Implement simple and multi-selection, snapping to the resolution
  of the current layer.  You can't actually do anything with a selection yet
| author | Chris Cannam | 
|---|---|
| date | Mon, 23 Jan 2006 17:02:57 +0000 | 
| parents | d86891498eef | 
| children | 73d85d19919f | 
   comparison
  equal
  deleted
  inserted
  replaced
| 7:49a95b174050 | 8:214054a0d8b8 | 
|---|---|
| 12 | 12 | 
| 13 #include <QObject> | 13 #include <QObject> | 
| 14 #include <QTimer> | 14 #include <QTimer> | 
| 15 | 15 | 
| 16 #include <map> | 16 #include <map> | 
| 17 #include <set> | |
| 18 | |
| 19 #include "Selection.h" | |
| 17 | 20 | 
| 18 class AudioPlaySource; | 21 class AudioPlaySource; | 
| 19 class PlayParameters; | 22 class PlayParameters; | 
| 20 class Model; | 23 class Model; | 
| 21 | 24 | 
| 40 | 43 | 
| 41 //!!! No way to remove a model! | 44 //!!! No way to remove a model! | 
| 42 PlayParameters *getPlayParameters(const Model *model); | 45 PlayParameters *getPlayParameters(const Model *model); | 
| 43 void clearPlayParameters(); | 46 void clearPlayParameters(); | 
| 44 | 47 | 
| 48 bool isPlaying() const; | |
| 49 | |
| 45 unsigned long getGlobalCentreFrame() const; | 50 unsigned long getGlobalCentreFrame() const; | 
| 46 unsigned long getGlobalZoom() const; | 51 unsigned long getGlobalZoom() const; | 
| 52 | |
| 53 typedef std::set<Selection> SelectionList; | |
| 54 | |
| 55 bool haveInProgressSelection() const; | |
| 56 const Selection &getInProgressSelection(bool &exclusive) const; | |
| 57 void setInProgressSelection(const Selection &selection, bool exclusive); | |
| 58 void clearInProgressSelection(); | |
| 59 | |
| 60 const SelectionList &getSelections() const; | |
| 61 void setSelection(const Selection &selection); | |
| 62 void addSelection(const Selection &selection); | |
| 63 void removeSelection(const Selection &selection); | |
| 64 void clearSelections(); | |
| 65 | |
| 66 enum ToolMode { | |
| 67 NavigateMode, | |
| 68 SelectMode, | |
| 69 EditMode, | |
| 70 DrawMode, | |
| 71 TextMode | |
| 72 }; | |
| 73 ToolMode getToolMode() const { return m_toolMode; } | |
| 74 void setToolMode(ToolMode mode); | |
| 47 | 75 | 
| 48 signals: | 76 signals: | 
| 49 /** Emitted when a widget pans. The originator identifies the widget. */ | 77 /** Emitted when a widget pans. The originator identifies the widget. */ | 
| 50 void centreFrameChanged(void *originator, unsigned long frame, bool locked); | 78 void centreFrameChanged(void *originator, unsigned long frame, bool locked); | 
| 51 | 79 | 
| 56 void playbackFrameChanged(unsigned long frame); | 84 void playbackFrameChanged(unsigned long frame); | 
| 57 | 85 | 
| 58 /** Emitted when the output levels change. Values in range 0.0 -> 1.0. */ | 86 /** Emitted when the output levels change. Values in range 0.0 -> 1.0. */ | 
| 59 void outputLevelsChanged(float left, float right); | 87 void outputLevelsChanged(float left, float right); | 
| 60 | 88 | 
| 89 /** Emitted when the selection has changed. */ | |
| 90 void selectionChanged(); | |
| 91 | |
| 92 /** Emitted when the tool mode has been changed. */ | |
| 93 void toolModeChanged(); | |
| 94 | |
| 61 protected slots: | 95 protected slots: | 
| 62 void checkPlayStatus(); | 96 void checkPlayStatus(); | 
| 63 void considerSeek(void *, unsigned long, bool); | 97 void considerSeek(void *, unsigned long, bool); | 
| 64 void considerZoomChange(void *, unsigned long, bool); | 98 void considerZoomChange(void *, unsigned long, bool); | 
| 65 | 99 | 
| 69 unsigned long m_globalZoom; | 103 unsigned long m_globalZoom; | 
| 70 | 104 | 
| 71 float m_lastLeft; | 105 float m_lastLeft; | 
| 72 float m_lastRight; | 106 float m_lastRight; | 
| 73 | 107 | 
| 108 SelectionList m_selections; | |
| 109 Selection m_inProgressSelection; | |
| 110 bool m_inProgressExclusive; | |
| 111 | |
| 112 ToolMode m_toolMode; | |
| 113 | |
| 74 std::map<const Model *, PlayParameters *> m_playParameters; | 114 std::map<const Model *, PlayParameters *> m_playParameters; | 
| 75 }; | 115 }; | 
| 76 | 116 | 
| 77 #endif | 117 #endif | 
| 78 | 118 | 
