Updraft  1.0
Open source glider flight visualisation tool.
coreinterface.h
Go to the documentation of this file.
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 &registration) = 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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines