ebcfea29963d6401adc139f98ce6d9ebe517b7bb
[apps/homescreen.git] / homescreen / src / mainwindow.h
1 /*
2  * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef MAINWINDOW_H
18 #define MAINWINDOW_H
19
20 #include <QMainWindow>
21 #include "daynightmode_proxy.h"
22 #include "proximity_adaptor.h"
23
24 #include "homescreencontrolinterface.h"
25
26 #include "statusbarwidget.h"
27 #include "controlbarwidget.h"
28 #include "settingswidget.h"
29 //#include "applauncher.h"
30 #include "popupwidget.h"
31
32 #include "layouthandler.h"
33
34
35 namespace Ui {
36 class MainWindow;
37 }
38
39 class MainWindow : public QMainWindow
40 {
41     Q_OBJECT
42
43 public:
44     explicit MainWindow(QWidget *parent = 0);
45     ~MainWindow();
46
47 // day/night mode
48 public Q_SLOTS:
49     void dayNightModeSlot(int mode);
50
51 // from proximity_adaptor.h
52 public Q_SLOTS:
53     void setObjectDetected(bool detected);
54
55 public slots:
56     void updateColorScheme();
57
58 protected:
59     // called when the translator loaded a new language set
60     void changeEvent(QEvent* event);
61
62
63 private:
64     Ui::MainWindow *mp_ui;
65
66     StatusBarWidget *mp_statusBarWidget;
67     org::agl::daynightmode *mp_dBusDayNightMode_StatusBarWidget;
68     ControlBarWidget *mp_controlBarWidget;
69     org::agl::daynightmode *mp_dBusDayNightMode_ControlBarWidget;
70     SettingsWidget *mp_settingsWidget;
71     //AppLauncherWidget *mp_applauncherwidget;
72     PopupWidget *mp_popupWidget;
73
74     LayoutHandler *mp_layoutHandler;
75
76     org::agl::daynightmode *mp_dBusDayNightModeProxy;
77
78     ProximityAdaptor *mp_proximityAdaptor;
79
80     HomeScreenControlInterface *mp_homeScreenControlInterface;
81 };
82
83 #endif // MAINWINDOW_H