Changes: gps controller uses labels for fake gps
[ptas] / zouba / src / ui.h
1 #ifndef UI_H
2 #define UI_H
3
4 #include <QObject>
5
6 class QMainWindow;
7 class QWidget;
8 class QTableWidget;
9 class QButtonGroup;
10 class MessageTable;
11 class QHBoxLayout;
12 class QVBoxLayout;
13 class QGridLayout;
14 class QMenu;
15 class QAction;
16 class Location;
17
18 class Ui : public QObject
19 {
20   Q_OBJECT
21
22 public:
23   Ui();
24   ~Ui();
25   void setupUi( QMainWindow *mainWindow );
26
27   enum {
28     HomeButtonId=0,
29     WorkButtonId=1
30   };
31
32   enum {
33     ScreenWidth=800,
34     ScreenHeight=480
35   };
36
37   QWidget *centralWidget;
38   QButtonGroup *destinationButtons;
39   QTableWidget *routeTable;
40   static MessageTable *messageTable;
41   QHBoxLayout *mainLayout;
42   QGridLayout *buttonLayout;
43   QMenu       *menu;
44   QAction     *toggleMessagesAction;
45   QAction     *toggleFakeGpsAction;
46   QAction     *useLiveGpsAction;
47   bool        usingFakeGps;
48   bool        messagesShown;
49   QString     fakeLocationLabel;
50
51 Q_SIGNALS:
52   void homeAddressChanged( QString address );
53   void workAddressChanged( QString address );
54   void fakeGpsPressed( const QString &fakeLocationLabel );
55   void liveGpsPressed();
56
57 private Q_SLOTS:
58   void setHomeAddress();
59   void setWorkAddress();
60   void toggleMessages();
61   void toggleFakeGps();
62
63 private:
64   void useFakeGps();
65   void useLiveGps();
66   void hideMessages();
67   void showMessages();
68   void setAddress( const QString &label );
69 };
70 #endif //UI_H