Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/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/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_ */