00001
00002
00003
00004
00005
00006
00007 #ifndef STATUS_BAR_H
00008 #define STATUS_BAR_H
00009
00010 #include <QComboBox>
00011 #include <QMap>
00012 #include <QObject>
00013 #include <QString>
00014 #include "StatusBarMode.h"
00015 #include "ZoomFactor.h"
00016
00017 class QFrame;
00018 class QStatusBar;
00019 class QTextEdit;
00020 class QTimer;
00021
00024 class StatusBar : public QObject
00025 {
00026 Q_OBJECT;
00027
00028 public:
00030 StatusBar(QStatusBar &statusBar);
00031 ~StatusBar();
00032
00034 void setCoordinates (const QString &coordsScreen,
00035 const QString &coordsGraph,
00036 const QString &resolutionGraph);
00037
00039 void setStatusBarMode (StatusBarMode statusBarMode);
00040
00042 void showTemporaryMessage(const QString &message);
00043
00045 StatusBarMode statusBarMode() const { return m_statusBarMode; }
00046
00048 void wakeUp ();
00049
00050 public slots:
00052 void slotZoom(int);
00053
00054 private slots:
00056 void slotComboUnits (const QString &);
00057
00059 void slotComboZoom (const QString &);
00060
00063 void slotStatusBarChanged(const QString &message);
00064
00066 void slotTimeout();
00067
00068 signals:
00070 void signalZoom (int);
00071
00072 private:
00073 StatusBar();
00074
00075 void createGroupUnits ();
00076 void createZoom ();
00077 void createZoomMaps ();
00078 void updateCoordsText ();
00079
00080 enum StatusBarUnits {
00081 STATUS_BAR_UNITS_COORDS_SCREEN,
00082 STATUS_BAR_UNITS_COORDS_GRAPH,
00083 STATUS_BAR_UNITS_RESOLUTION_GRAPH
00084 };
00085
00086 QStatusBar &m_statusBar;
00087
00088 QComboBox *m_cmbZoom;
00089
00090 QFrame *m_groupUnits;
00091 QComboBox *m_cmbUnits;
00092 QTextEdit *m_editCoords;
00093
00094 QString m_coordsScreen;
00095 QString m_coordsGraph;
00096 QString m_resolutionGraph;
00097
00098 StatusBarMode m_statusBarMode;
00099
00100 QTimer *m_timer;
00101
00102
00103 QMap<ZoomFactor, QString> m_zoomMapToLabel;
00104 QMap<QString, ZoomFactor> m_zoomMapFromLabel;
00105 };
00106
00107 #endif // STATUS_BAR_H