Stellarium 0.13.3
StelGui.hpp
1 /*
2  * Stellarium
3  * Copyright (C) 2008 Fabien Chereau
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
18  */
19 
20 #ifndef _STELGUI_HPP_
21 #define _STELGUI_HPP_
22 
23 #include "StelModule.hpp"
24 #include "StelObject.hpp"
25 #include "StelGuiBase.hpp"
26 #include "StelStyle.hpp"
27 
28 #include <QGraphicsTextItem>
29 
30 class QGraphicsSceneMouseEvent;
31 class QTimeLine;
32 class StelButton;
33 class BottomStelBar;
34 class InfoPanel;
36 class DateTimeDialog;
37 class HelpDialog;
38 class LocationDialog;
39 class SearchDialog;
40 class ViewDialog;
41 class ShortcutsDialog;
42 #ifdef ENABLE_SCRIPT_CONSOLE
43 class ScriptConsole;
44 #endif
45 
49 class StelGui : public QObject, public StelGuiBase
50 {
51  Q_OBJECT
52  Q_PROPERTY(bool visible READ getVisible WRITE setVisible)
53  Q_PROPERTY(bool autoHideHorizontalButtonBar READ getAutoHideHorizontalButtonBar WRITE setAutoHideHorizontalButtonBar)
54  Q_PROPERTY(bool autoHideVerticalButtonBar READ getAutoHideVerticalButtonBar WRITE setAutoHideVerticalButtonBar)
55 
56 public:
57  friend class ViewDialog;
58 
59  StelGui();
60  virtual ~StelGui();
61 
63  // Methods defined in the StelModule class
65  virtual void init(QGraphicsWidget* topLevelGraphicsWidget);
66  void update();
67 
68  StelStyle getStelStyle() const {return currentStelStyle;}
69 
71  // Methods specific to the StelGui class
73  void loadStyle(const QString& fileName);
74 
76  BottomStelBar* getButtonBar() const;
77 
79  class LeftStelBar* getWindowsButtonBar() const;
80 
83  class SkyGui* getSkyGui() const;
84 
86  bool getFlagShowFlipButtons() const;
87 
90 
92  bool initComplete(void) const;
93 
94 #ifdef ENABLE_SCRIPT_CONSOLE
95  ScriptConsole* getScriptConsole() {return scriptConsole;}
96 #endif
97 
99  virtual void forceRefreshGui();
100 
101  virtual void setVisible(bool b);
102 
103  virtual bool getVisible() const;
104 
105  virtual bool isCurrentlyUsed() const;
106 
107  virtual void setInfoTextFilters(const StelObject::InfoStringGroup& aflags);
108  virtual const StelObject::InfoStringGroup& getInfoTextFilters() const;
109 
110 public slots:
112  void setFlagShowFlipButtons(bool b);
113 
116 
117  void setFlagShowDecimalDegrees(bool b);
118 
120  bool getAutoHideHorizontalButtonBar() const;
126  void setAutoHideHorizontalButtonBar(bool b);
127 
129  bool getAutoHideVerticalButtonBar() const;
135  void setAutoHideVerticalButtonBar(bool b);
136 
137 #ifndef DISABLE_SCRIPTING
138  void setScriptKeys(bool b);
140  void increaseScriptSpeed();
141  void decreaseScriptSpeed();
142  void setRealScriptSpeed();
143  void stopScript();
144  void pauseScript();
145  void resumeScript();
146 #endif
147 
149  void setGuiVisible(bool);
150 
151 private slots:
152  void reloadStyle();
153 #ifndef DISABLE_SCRIPTING
154  void scriptStarted();
155  void scriptStopped();
156 #endif
157  void setStelStyle(const QString& section);
159  void quit();
160  void updateI18n();
161  void copySelectedObjectInfo(void);
162 
163 private:
165  StelAction* getAction(const QString& actionName);
166 
167  QGraphicsWidget* topLevelGraphicsWidget;
168 
169  class SkyGui* skyGui;
170 
171  StelButton* buttonTimeRewind;
172  StelButton* buttonTimeRealTimeSpeed;
173  StelButton* buttonTimeCurrent;
174  StelButton* buttonTimeForward;
175 
176  StelButton* buttonGotoSelectedObject;
177 
178  LocationDialog* locationDialog;
179  HelpDialog* helpDialog;
180  DateTimeDialog* dateTimeDialog;
181  SearchDialog* searchDialog;
182  ViewDialog* viewDialog;
183  ShortcutsDialog* shortcutsDialog;
184  ConfigurationDialog* configurationDialog;
185 #ifdef ENABLE_SCRIPT_CONSOLE
186  ScriptConsole* scriptConsole;
187 #endif
188 
189  bool flagShowFlipButtons;
190  StelButton* flipVert;
191  StelButton* flipHoriz;
192 
193  bool flagShowNebulaBackgroundButton;
194  StelButton* btShowNebulaeBackground;
195 
196  bool initDone;
197 
198  QSizeF savedProgressBarSize;
199 
200  // Currently used StelStyle
201  StelStyle currentStelStyle;
202 };
203 
204 
205 #endif // _STELGUI_HPP_
void setFlagShowFlipButtons(bool b)
Define whether the buttons toggling image flip should be visible.
void setGuiVisible(bool)
Hide or show the GUI. Public so it can be called from scripts.
virtual void setInfoTextFilters(const StelObject::InfoStringGroup &aflags)
Get a pointer on the info panel used to display selected object info.
virtual bool isCurrentlyUsed() const
Show wether the Gui is currently used.
void setFlagShowNebulaBackgroundButton(bool b)
Define whether the button toggling nebulae background should be visible.
bool getFlagShowNebulaBackgroundButton() const
Get whether the button toggling nebulae background is visible.
bool getAutoHideHorizontalButtonBar() const
Get the auto-hide status of the horizontal toolbar.
void setAutoHideHorizontalButtonBar(bool b)
Set the auto-hide status of the horizontal toolbar.
class SkyGui * getSkyGui() const
Get the SkyGui instance (useful for adding other interface elements).
virtual void setVisible(bool b)
Show whether the GUI is visible.
virtual void forceRefreshGui()
Used to force a refreshing of the GUI elements such as the button bars.
void setScriptKeys(bool b)
change keys when a script is running / not running
Abstract class defining the base interface for all GUIs.
Definition: StelGuiBase.hpp:30
virtual bool getVisible() const
Get the current visible status of the GUI.
bool getAutoHideVerticalButtonBar() const
Get the auto-hide status of the vertical toolbar.
The informations about the currently selected object.
Definition: SkyGui.hpp:37
A Button Graphicsitem for use in Stellarium's graphic widgets.
The class managing the layout for button bars, selected object info and loading bars.
Definition: SkyGui.hpp:53
BottomStelBar * getButtonBar() const
Get the button bar at the bottom of the screen.
bool getFlagShowFlipButtons() const
Get whether the buttons toggling image flip are visible.
bool initComplete(void) const
returns true if the gui has completed init process.
void setAutoHideVerticalButtonBar(bool b)
Set the auto-hide status of the vertical toolbar.
virtual void init(QGraphicsWidget *topLevelGraphicsWidget)
Initialize the StelGui object.
Holds the information related to a color style for GUI and modules of Stellarium. ...
Definition: StelStyle.hpp:28
Main class for the GUI based on QGraphicView.
Definition: StelGui.hpp:49
The sky object search dialog.
void loadStyle(const QString &fileName)
Load a Qt style sheet to define the widgets style.
class LeftStelBar * getWindowsButtonBar() const
Get the button bar of the left of the screen.