/media/hdb5/canorusNightlyBuildSystem/trunk/src/canorus.h

Go to the documentation of this file.
00001 
00008 #ifndef CANORUS_H_
00009 #define CANORUS_H_
00010 
00011 // Python.h needs to be loaded first!
00012 #include "ui/mainwin.h"
00013 #include "ui/settingsdialog.h"
00014 #include "core/autorecovery.h"
00015 
00016 #include <QString>
00017 #include <QList>
00018 #include <QUndoStack>
00019 #include <QHash>
00020 
00021 class CASettings;
00022 class CAMidiDevice;
00023 class CADocument;
00024 class CAUndo;
00025 
00026 class CACanorus {
00027 public:
00028         static void initMain( int argc=0, char *argv[]=0 );
00029         static CASettingsDialog::CASettingsPage initSettings();
00030         static void initCommonGUI();
00031         static void initPlayback();
00032         static bool parseSettingsArguments(int argc, char *argv[]);
00033         static void initScripting();
00034         static void initAutoRecovery();
00035         static void initUndo();
00036         static void parseOpenFileArguments(int argc, char *argv[]);
00037         static void cleanUp();
00038         
00039         static QList<QString> locateResource(const QString fileName);
00040         static QList<QString> locateResourceDir(const QString fileName);        
00041         
00042         inline static QApplication *mainApp() { return _mainApp; }
00043         inline static int mainWinCount() { return _mainWinList.size(); }
00044         static int mainWinCount(CADocument *);
00045         static QList<CAMainWin*> findMainWin(CADocument* document);
00046         inline static CAMainWin* mainWinAt(int idx) { return _mainWinList[idx]; }
00047         inline static void removeMainWin(CAMainWin *w) { _mainWinList.removeAll(w); }
00048         inline static void removeViewPort(CAViewPort *v) { for (int i=0; i<mainWinCount(); i++) _mainWinList[i]->removeViewPort(v); }
00049         inline static void addMainWin( CAMainWin *w ) { _mainWinList << w; }
00050         inline static void restartTimeEditedTimes(CADocument *doc) { for (int i=0; i<mainWinCount(); i++) if (mainWinAt(i)->document()==doc) mainWinAt(i)->restartTimeEditedTime(); }
00051         
00052         inline static CAUndo *undo() { return _undo; }
00053         
00054         static void addRecentDocument( QString );
00055         static void insertRecentDocument( QString );
00056         static void removeRecentDocument( QString );
00057         inline static QList<QString>& recentDocumentList() { return _recentDocumentList; }
00058 
00059         inline static CASettings *settings() { return _settings; }
00060         inline static CAAutoRecovery *autoRecovery() { return _autoRecovery; }
00061         inline static QString settingsPath() { return _settingsPath; }
00062         inline static CAMidiDevice *midiDevice() { return _midiDevice; }
00063         inline static void setMidiDevice(CAMidiDevice *d) { _midiDevice = d; }
00064         
00065         static void rebuildUI( CADocument *document, CASheet *sheet );
00066         static void rebuildUI( CADocument *document=0 );
00067         
00068 private:
00069         static QList<CAMainWin*> _mainWinList;
00070         static CASettings *_settings;
00071         static QString _settingsPath;
00072         static CAUndo *_undo;
00073         static QApplication *_mainApp;
00074         static QList<QString> _recentDocumentList;
00075         
00076         // Playback output
00077         static CAMidiDevice *_midiDevice;
00078         
00079         // Auto recovery
00080         static CAAutoRecovery *_autoRecovery;
00081 };
00082 #endif /* CANORUS_H_ */

Generated on Sat Feb 9 13:06:25 2008 for Canorus by  doxygen 1.5.3