Stellarium
24.4
|
This is the common base class for all the main components of stellarium. More...
#include <StelModule.hpp>
Public Types | |
enum | StelModuleSelectAction { AddToSelection , ReplaceSelection , RemoveFromSelection } |
Enum used when selecting objects to define whether to add to, replace, or remove from the existing selection list. More... | |
enum | StelModuleActionName { ActionDraw , ActionUpdate , ActionHandleMouseClicks , ActionHandleMouseMoves , ActionHandleKeys } |
Define the possible action for which an order is defined. More... | |
Public Member Functions | |
StelModule () | |
Constructor. Every derived class MUST call setObjectName(className) in its constructor. | |
virtual void | init ()=0 |
Initialize itself. More... | |
virtual void | deinit () |
Called before the module will be deleted, and before the OpenGL context is suppressed. More... | |
virtual QSettings * | getSettings () |
Return module-specific settings. More... | |
virtual void | draw (StelCore *core) |
Execute all the drawing functions for this module. More... | |
virtual void | update (double deltaTime) |
Update the module with respect to the time. More... | |
virtual QString | getModuleVersion () const |
Get the version of the module, default is stellarium main version. | |
virtual QString | getAuthorName () const |
Get the name of the module author. | |
virtual QString | getAuthorEmail () const |
Get the email address of the module author. | |
virtual void | handleMouseClicks (class QMouseEvent *) |
Handle mouse clicks. More... | |
virtual void | handleMouseWheel (class QWheelEvent *) |
Handle mouse wheel. More... | |
virtual bool | handleMouseMoves (int x, int y, Qt::MouseButtons b) |
Handle mouse moves. More... | |
virtual void | handleKeys (class QKeyEvent *e) |
Handle key events. More... | |
virtual bool | handlePinch (qreal scale, bool started) |
Handle pinch gesture events. More... | |
virtual double | getCallOrder (StelModuleActionName actionName) const |
Return the value defining the order of call for the given action For example if stars.callOrder[ActionDraw] == 10 and constellation.callOrder[ActionDraw] == 11, the stars module will be drawn before the constellations. More... | |
virtual bool | configureGui (bool show=true) |
Detect or show the configuration GUI elements for the module. More... | |
Protected Member Functions | |
class StelAction * | addAction (const QString &id, const QString &groupId, const QString &text, QObject *target, const char *slot, const QString &shortcut="", const QString &altShortcut="") |
convenience methods to add an action (call to slot) to the StelActionMgr object. More... | |
class StelAction * | addAction (const QString &id, const QString &groupId, const QString &text, const char *slot, const QString &shortcut="", const QString &altShortcut="") |
convenience methods to add an action (call to own slot) to the StelActionMgr object. More... | |
StelAction * | addAction (const QString &id, const QString &groupId, const QString &text, QObject *contextObject, std::function< void()> lambda, const QString &shortcut="", const QString &altShortcut="") |
convenience methods to add an action (call to Lambda functor) to the StelActionMgr object. More... | |
This is the common base class for all the main components of stellarium.
Standard StelModules are the one displaying the stars, the constellations, the planets etc.. Every new module derived class should implement the methods defined in StelModule.hpp. Once a module is registered into the StelModuleMgr, it is automatically managed by the program. It can be called using the GETSTELMODULE macro, passing as argument its name, which is also the QObject name Because StelModules are very generic components, it is also possible to load them dynamically, thus enabling creation of external plug-ins for stellarium.
There are several signals that StelApp emits that subclasses may be interested in: laguageChanged() Update i18n strings from english names according to current global sky and application language. This method also reload the proper fonts depending on the language. The translation shall be done using the StelTranslator provided by the StelApp singleton instance. skyCultureChanged(const QString&) Update sky culture, i.e. load data if necessary and translate them to current sky language if needed. colorSchemeChanged(const QString&) Load the given color style
Define the possible action for which an order is defined.
Enumerator | |
---|---|
ActionDraw | Action associated to the draw() method. |
ActionUpdate | Action associated to the update() method. |
ActionHandleMouseClicks | Action associated to the handleMouseClicks() method. |
ActionHandleMouseMoves | Action associated to the handleMouseMoves() method. |
ActionHandleKeys | Action associated to the handleKeys() method. |
Enum used when selecting objects to define whether to add to, replace, or remove from the existing selection list.
Enumerator | |
---|---|
AddToSelection | Add the StelObject to the current list of selected ones. |
ReplaceSelection | Set the StelObject as the new list of selected ones. |
RemoveFromSelection | Subtract the StelObject from the current list of selected ones. |
|
inlineprotected |
convenience methods to add an action (call to own slot) to the StelActionMgr object.
id | unique identifier. Should be called actionMy_Action. (i.e., start with "action" and then "Capitalize_Underscore" style.) |
groupId | string to be used in the Help menu. The action will be listed in this group. |
text | short translatable description what the action does. |
slot | name of slot in target recipient |
shortcut | default shortcut. Can be reconfigured. |
altShortcut | default alternative shortcut. Can be reconfigured. |
|
protected |
convenience methods to add an action (call to Lambda functor) to the StelActionMgr object.
id | unique identifier. Should be called actionMy_Action. (i.e., start with "action" and then "Capitalize_Underscore" style.) |
groupId | string to be used in the Help menu. The action will be listed in this group. |
text | short translatable description what the action does. |
contextObject | The lambda will only be called if this object exists. Use "this" in most cases. |
lambda | a C++11 Lambda function. |
shortcut | default shortcut. Can be reconfigured. |
altShortcut | default alternative shortcut. Can be reconfigured. |
|
protected |
convenience methods to add an action (call to slot) to the StelActionMgr object.
id | unique identifier. Should be called actionMy_Action. (i.e., start with "action" and then "Capitalize_Underscore" style.) |
groupId | string to be used in the Help menu. The action will be listed in this group. |
text | short translatable description what the action does. |
target | recipient of the call |
slot | name of slot in target recipient |
shortcut | default shortcut. Can be reconfigured. |
altShortcut | default alternative shortcut. Can be reconfigured. |
|
inlinevirtual |
Detect or show the configuration GUI elements for the module.
This is to be used with plugins to display a configuration dialog from the plugin list window.
show | if true, make the configuration GUI visible. If false, hide the config GUI if there is one. |
Reimplemented in TelescopeControl, Supernovae, Satellites, RemoteSync, RemoteControl, Quasars, Pulsars, Oculars, Observability, Novae, MissingStars, MeteorShowersMgr, LensDistortionEstimator, Exoplanets, Calendars, ArchaeoLines, AngleMeasure, SolarSystemEditor, Scenery3d, PointerCoordinates, OnlineQueries, NavStars, and EquationOfTime.
|
inlinevirtual |
Called before the module will be deleted, and before the OpenGL context is suppressed.
Deinitialize all OpenGL texture in this method.
Reimplemented in ToastMgr, SpecificTimeMgr, SolarSystem, NomenclatureMgr, HipsMgr, HighlightMgr, CustomObjectMgr, TelescopeControl, Supernovae, Scenery3d, Satellites, Quasars, Pulsars, Oculus, Oculars, NavStars, MissingStars, MeteorShowersMgr, Exoplanets, and EquationOfTime.
|
inlinevirtual |
Execute all the drawing functions for this module.
core | the core to use for the drawing |
Reimplemented in ScreenImageMgr, StelSkyLayerMgr, ZodiacalLight, ToastMgr, StarMgr, SporadicMeteorMgr, SpecialMarkersMgr, SolarSystem, NomenclatureMgr, NebulaMgr, MilkyWay, MarkerMgr, LandscapeMgr, LabelMgr, HipsMgr, HighlightMgr, GridLinesMgr, CustomObjectMgr, ConstellationMgr, AsterismMgr, TextUserInterface, TelescopeControl, Supernovae, SimpleDrawLine, Scenery3d, Satellites, RemoteControl, Quasars, Pulsars, PointerCoordinates, Oculars, Observability, Novae, NavStars, MissingStars, MeteorShowersMgr, MeteorShowers, LensDistortionEstimator, HelloStelModule, Exoplanets, EquationOfTime, Calendars, ArchaeoLines, AngleMeasure, and StelMovementMgr.
|
inlinevirtual |
Return the value defining the order of call for the given action For example if stars.callOrder[ActionDraw] == 10 and constellation.callOrder[ActionDraw] == 11, the stars module will be drawn before the constellations.
actionName | the name of the action for which we want the call order |
Reimplemented in ScreenImageMgr, StelSkyLayerMgr, StelMovementMgr, ZodiacalLight, ToastMgr, StarMgr, SporadicMeteorMgr, SpecialMarkersMgr, SolarSystem, NomenclatureMgr, NebulaMgr, MilkyWay, MarkerMgr, LandscapeMgr, LabelMgr, HipsMgr, HighlightMgr, GridLinesMgr, CustomObjectMgr, ConstellationMgr, AsterismMgr, TextUserInterface, TelescopeControl, Supernovae, SimpleDrawLine, Scenery3d, Satellites, RemoteSync, RemoteControl, Quasars, Pulsars, PointerCoordinates, Oculus, Oculars, Observability, Novae, NavStars, MissingStars, MeteorShowersMgr, LensDistortionEstimator, HelloStelModule, Exoplanets, EquationOfTime, Calendars, ArchaeoLines, and AngleMeasure.
|
inlinevirtual |
Return module-specific settings.
This can be useful mostly by plugins which may want to keep their settings to their own files. The default implementation returns a null pointer!
|
inlinevirtual |
Handle key events.
Please note that most of the interactions will be done through the GUI module.
e | the Key event |
Reimplemented in StelMovementMgr, RemoteControl, Scenery3d, TextUserInterface, ArchaeoLines, and AngleMeasure.
|
inlinevirtual |
Handle mouse clicks.
Please note that most of the interactions will be done through the GUI module.
Reimplemented in LensDistortionEstimator, StelMovementMgr, Oculars, AngleMeasure, and CustomObjectMgr.
|
inlinevirtual |
Handle mouse moves.
Please note that most of the interactions will be done through the GUI module.
Reimplemented in LensDistortionEstimator, StelMovementMgr, and AngleMeasure.
|
inlinevirtual |
Handle mouse wheel.
Please note that most of the interactions will be done through the GUI module.
Reimplemented in StelMovementMgr.
|
inlinevirtual |
Handle pinch gesture events.
scale | the value of the pinch gesture. |
started | define whether the pinch has just started. |
Reimplemented in StelMovementMgr.
|
pure virtual |
Initialize itself.
If the initialization takes significant time, the progress should be displayed on the loading bar.
Implemented in MeteorShowers, ScreenImageMgr, StelSkyLayerMgr, StelObjectMgr, StelMovementMgr, ZodiacalLight, ToastMgr, StarMgr, SporadicMeteorMgr, SpecificTimeMgr, SpecialMarkersMgr, SolarSystem, NomenclatureMgr, NebulaMgr, MilkyWay, MarkerMgr, LandscapeMgr, LabelMgr, HipsMgr, HighlightMgr, GridLinesMgr, StelGeodesicGridDrawer, CustomObjectMgr, ConstellationMgr, AsterismMgr, TextUserInterface, TelescopeControl, Supernovae, SolarSystemEditor, SimpleDrawLine, Scenery3d, Satellites, RemoteSync, RemoteControl, Quasars, Pulsars, PointerCoordinates, OnlineQueries, Oculus, Oculars, Observability, Novae, NavStars, MissingStars, MeteorShowersMgr, LensDistortionEstimator, HelloStelModule, Exoplanets, EquationOfTime, Calendars, ArchaeoLines, and AngleMeasure.
|
inlinevirtual |
Update the module with respect to the time.
deltaTime | the time increment in second since last call. |
Reimplemented in StelMovementMgr, Calendars, ScreenImageMgr, ZodiacalLight, ToastMgr, StarMgr, SporadicMeteorMgr, SpecialMarkersMgr, SolarSystem, NomenclatureMgr, NebulaMgr, MilkyWay, MarkerMgr, LandscapeMgr, LabelMgr, HipsMgr, GridLinesMgr, ConstellationMgr, AsterismMgr, TelescopeControl, Scenery3d, Satellites, RemoteSync, RemoteControl, Oculus, NavStars, MeteorShowersMgr, MeteorShowers, Exoplanets, ArchaeoLines, and AngleMeasure.