Updraft
1.0
Open source glider flight visualisation tool.
|
00001 #ifndef UPDRAFT_SRC_COREINTERFACE_H_ 00002 #define UPDRAFT_SRC_COREINTERFACE_H_ 00003 00004 #include <QString> 00005 #include <QIcon> 00006 #include <QDir> 00007 00008 #include <osg/CoordinateSystemNode> 00009 00010 #include "menuinterface.h" 00011 #include "tabinterface.h" 00012 #include "fileregistration.h" 00013 #include "maplayergroupinterface.h" 00014 #include "settinginterface.h" 00015 #include "settingsgrouptype.h" 00016 #include "mapobject.h" 00017 00018 class QWidget; 00019 class QMainWindow; 00020 00021 namespace osg { 00022 class Group; 00023 class EllipsoidModel; 00024 } 00025 00026 namespace osgEarth { 00027 namespace Util { 00028 class ElevationManager; 00029 } 00030 } 00031 00032 namespace Updraft { 00033 00034 namespace Util { 00035 class Ellipsoid; 00036 } 00037 00041 class CoreInterface { 00042 public: 00043 virtual ~CoreInterface() {} 00044 00046 virtual QMainWindow* getMainWindow() = 0; 00047 00049 virtual MenuInterface* createMenu(QString title) = 0; 00050 00053 virtual MenuInterface* getSystemMenu(SystemMenu menu) = 0; 00054 00056 virtual const Util::Ellipsoid* getEllipsoid() const = 0; 00057 00064 virtual MapLayerGroupInterface* createMapLayerGroup(const QString &title) = 0; 00065 00070 virtual TabInterface* createTab(QWidget* content, QString title) = 0; 00071 00076 virtual void removeTab(TabInterface* tab) = 0; 00077 00084 virtual void registerFiletype(const FileRegistration ®istration) = 0; 00085 00088 virtual QDir getDataDirectory() = 0; 00089 00092 virtual QDir getResourcesDirectory() = 0; 00093 00102 virtual void addSettingsGroup( 00103 const QString& groupId, 00104 const QString& description, 00105 SettingsGroupType type = GROUP_VISIBLE, 00106 const QString& icon = ":/core/icons/configure.png") = 0; 00107 00124 virtual SettingInterface* addSetting( 00125 const QString& settingId, 00126 const QString& description, 00127 QVariant initValue, 00128 SettingsGroupType type = GROUP_VISIBLE) = 0; 00129 00131 virtual osg::Group* getSimpleGroup() = 0; 00132 00136 //TODO(cestmir): We will probably need unregistering as well 00137 virtual void registerOsgNode(osg::Node* node, MapObject* mapObject) = 0; 00138 00140 virtual osgEarth::Util::ElevationManager* getElevationManager() = 0; 00141 00143 virtual const osg::EllipsoidModel* getCurrentMapEllipsoid() = 0; 00144 }; 00145 00146 } // End namespace Updraft 00147 00148 #endif // UPDRAFT_SRC_COREINTERFACE_H_ 00149