StelModule.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _STELMODULE_HPP_
00021 #define _STELMODULE_HPP_
00022
00023 #include <QString>
00024 #include <QObject>
00025
00026
00027 class StelCore;
00028 class QSettings;
00029
00049 class StelModule : public QObject
00050 {
00051
00052
00053
00054 public:
00055 StelModule() {;}
00056
00057 virtual ~StelModule() {;}
00058
00061 virtual void init() = 0;
00062
00065 virtual void deinit() {;}
00066
00070 virtual void draw(StelCore* core, class StelRenderer* renderer)
00071 {
00072 Q_UNUSED(core);
00073 Q_UNUSED(renderer);
00074 }
00075
00080 virtual bool drawPartial(StelCore* core, class StelRenderer* renderer);
00081
00084 virtual void update(double deltaTime) = 0;
00085
00087 virtual QString getModuleVersion() const;
00088
00090 virtual QString getAuthorName() const {return "Stellarium's Team";}
00091
00093 virtual QString getAuthorEmail() const {return "http://www.stellarium.org";}
00094
00097 virtual void handleMouseClicks(class QMouseEvent*) {;}
00098
00101 virtual void handleMouseWheel(class QWheelEvent*) {;}
00102
00105 virtual bool handleMouseMoves(int x, int y, Qt::MouseButtons b) {Q_UNUSED(x); Q_UNUSED(y); Q_UNUSED(b); return false;}
00106
00110 virtual void handleKeys(class QKeyEvent* e) {Q_UNUSED(e);}
00111
00113 enum StelModuleSelectAction
00114 {
00115 AddToSelection,
00116 ReplaceSelection,
00117 RemoveFromSelection
00118 };
00119
00121 enum StelModuleActionName
00122 {
00123 ActionDraw,
00124 ActionUpdate,
00125 ActionHandleMouseClicks,
00126 ActionHandleMouseMoves,
00127 ActionHandleKeys
00128 };
00129
00135 virtual double getCallOrder(StelModuleActionName actionName) const {Q_UNUSED(actionName); return 0;}
00136
00141 virtual bool configureGui(bool show=true) {Q_UNUSED(show); return false;}
00142 };
00143
00144 #endif // _STELMODULE_HPP_