|
Canorus
0.7
|
00001 00008 #ifndef CANORUS_H_ 00009 #define CANORUS_H_ 00010 00011 // Python.h needs to be loaded first! 00012 #include "ui/settingsdialog.h" 00013 #include "ui/mainwin.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 class CAHelpCtl; 00026 00027 class CACanorus { 00028 public: 00029 static void initMain( int argc=0, char *argv[]=0 ); 00030 static CASettingsDialog::CASettingsPage initSettings(); 00031 static void initTranslations(); 00032 static void initCommonGUI(); 00033 static void initPlayback(); 00034 static bool parseSettingsArguments(int argc, char *argv[]); 00035 static void initScripting(); 00036 static void initAutoRecovery(); 00037 static void initUndo(); 00038 static void initSearchPaths(); 00039 static void initFonts(); 00040 static void initHelp(); 00041 static void parseOpenFileArguments(int argc, char *argv[]); 00042 static void cleanUp(); 00043 00044 static int fetaCodepoint(const QString& name); 00045 00046 inline static int mainWinCount() { return _mainWinList.size(); } 00047 static int mainWinCount(CADocument *); 00048 static QList<CAMainWin*> findMainWin(CADocument* document); 00049 inline static CAMainWin* mainWinAt(int idx) { return _mainWinList[idx]; } 00050 inline static void removeMainWin(CAMainWin *w) { _mainWinList.removeAll(w); } 00051 inline static void removeViewPort(CAViewPort *v) { for (int i=0; i<mainWinCount(); i++) _mainWinList[i]->removeViewPort(v); } 00052 inline static void addMainWin( CAMainWin *w ) { _mainWinList << w; } 00053 inline static void restartTimeEditedTimes(CADocument *doc) { for (int i=0; i<mainWinCount(); i++) if (mainWinAt(i)->document()==doc) mainWinAt(i)->restartTimeEditedTime(); } 00054 00055 inline static CAUndo *undo() { return _undo; } 00056 00057 static void addRecentDocument( QString ); 00058 static void insertRecentDocument( QString ); 00059 static void removeRecentDocument( QString ); 00060 inline static QList<QString>& recentDocumentList() { return _recentDocumentList; } 00061 00062 inline static CASettings *settings() { return _settings; } 00063 inline static CAAutoRecovery *autoRecovery() { return _autoRecovery; } 00064 inline static CAMidiDevice *midiDevice() { return _midiDevice; } 00065 inline static void setMidiDevice(CAMidiDevice *d) { _midiDevice = d; } 00066 00067 inline static CAHelpCtl *help() { return _help; } 00068 00069 static void rebuildUI( CADocument *document, CASheet *sheet ); 00070 static void rebuildUI( CADocument *document=0 ); 00071 static void repaintUI(); 00072 00073 // Our own slot connection method 00074 static void connectSlotsByName(QObject *pOS, const QObject *pOR); 00075 00076 private: 00077 static QList<CAMainWin*> _mainWinList; 00078 static CASettings *_settings; 00079 static CAUndo *_undo; 00080 static QList<QString> _recentDocumentList; 00081 static QHash<QString, int> _fetaMap; 00082 00083 // Playback output 00084 static CAMidiDevice *_midiDevice; 00085 00086 // Auto recovery 00087 static CAAutoRecovery *_autoRecovery; 00088 00089 // Help 00090 static CAHelpCtl *_help; 00091 }; 00092 #endif /* CANORUS_H_ */
1.8.0