00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _STELOBJECTMGR_HPP_
00021 #define _STELOBJECTMGR_HPP_
00022
00023 #include <QList>
00024 #include <QString>
00025 #include "VecMath.hpp"
00026 #include "StelModule.hpp"
00027 #include "StelObject.hpp"
00028
00029 class StelObjectModule;
00030 class StelCore;
00031
00037 class StelObjectMgr : public StelModule
00038 {
00039 public:
00040 StelObjectMgr();
00041 virtual ~StelObjectMgr();
00042
00044
00045 virtual void init() {;}
00046 virtual void draw(StelCore* core) {;}
00047 virtual void update(double deltaTime) {;}
00049 virtual void handleMouseClicks(class QMouseEvent* event);
00050
00052
00055 void registerStelObjectMgr(StelObjectModule* mgr);
00056
00062 bool findAndSelect(const StelCore* core, const Vec3d& pos, StelModule::StelModuleSelectAction action=StelModule::ReplaceSelection);
00063
00070 bool findAndSelect(const StelCore* core, int x, int y, StelModule::StelModuleSelectAction action=StelModule::ReplaceSelection);
00071
00076 bool findAndSelectI18n(const QString &nameI18n, StelModule::StelModuleSelectAction action=StelModule::ReplaceSelection);
00077
00082 bool findAndSelect(const QString &name, StelModule::StelModuleSelectAction action=StelModule::ReplaceSelection);
00083
00088 QStringList listMatchingObjectsI18n(const QString& objPrefix, unsigned int maxNbItem=5) const;
00089
00091 bool getWasSelected(void) const {return !lastSelectedObjects.empty();}
00092
00094 void unSelect(void);
00095
00100 bool setSelectedObject(const StelObjectP obj, StelModule::StelModuleSelectAction action=StelModule::ReplaceSelection);
00101
00106 bool setSelectedObject(const QList<StelObjectP>& objs, StelModule::StelModuleSelectAction action=StelModule::ReplaceSelection);
00107
00109 const QList<StelObjectP>& getSelectedObject() const {return lastSelectedObjects;}
00110
00113 QList<StelObjectP> getSelectedObject(const QString& type);
00114
00116 void setFlagSelectedObjectPointer(bool b) { objectPointerVisibility = b; }
00117
00119 StelObjectP searchByNameI18n(const QString &name) const;
00120
00122 StelObjectP searchByName(const QString &name) const;
00123
00124 private:
00125
00126 QList<StelObjectModule*> objectsModule;
00127
00128 QList<StelObjectP> lastSelectedObjects;
00129
00130 bool objectPointerVisibility;
00131
00133 StelObjectP cleverFind(const StelCore* core, const Vec3d& pos) const;
00134
00136 StelObjectP cleverFind(const StelCore* core, int x, int y) const;
00137 };
00138
00139 #endif // _SELECTIONMGR_HPP_