X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=staging%2FHomeScreen.git;a=blobdiff_plain;f=WindowManager%2Fsrc%2Fwindowmanager.hpp;h=027344bee0561ca0a794d2475db9df565c64af70;hp=ee779aa89202825aa00ab33383aba1f8914880c5;hb=9ca0a50d021a8d6e12cfb8f04671ba3dd389f92d;hpb=0a468d9b5ae7b3e5ba106facf17698d89b1ce200 diff --git a/WindowManager/src/windowmanager.hpp b/WindowManager/src/windowmanager.hpp index ee779aa..027344b 100644 --- a/WindowManager/src/windowmanager.hpp +++ b/WindowManager/src/windowmanager.hpp @@ -18,6 +18,10 @@ #define WINDOWMANAGER_HPP #include +#include +#include + +#include "windowmanager_adapter.h" #ifdef __arm__ @@ -26,19 +30,39 @@ extern "C" { } #endif - class WindowManager : public QObject { Q_OBJECT + public: explicit WindowManager(QObject *parent = 0); ~WindowManager(); + + void start(); private: + WindowmanagerAdaptor *mp_windowManagerAdaptor; + QList m_layouts; + QList m_surfaces; + QMap *mp_layoutAreaToSurfaceIdAssignment; + + int m_currentLayout; + int m_homeScreenPid; + int m_homeScreenSurfaceId; + + void dumpScene(); + +#ifdef __arm__ + void createNewLayer(int layerId); + void addSurfaceToLayer(int surfaceId, int layerId); +#endif + void updateScreen(); public: + static void* myThis; #ifdef __arm__ + // for general notifications void notificationFunc_non_static(ilmObjectType object, t_ilm_uint id, t_ilm_bool created); @@ -46,9 +70,42 @@ public: t_ilm_uint id, t_ilm_bool created, void* user_data); + + + // for surface notifications + void surfaceCallbackFunction_non_static(t_ilm_surface surface, + struct ilmSurfaceProperties* surfaceProperties, + t_ilm_notification_mask mask); + static void surfaceCallbackFunction_static(t_ilm_surface surface, + struct ilmSurfaceProperties* surfaceProperties, + t_ilm_notification_mask mask); + #endif public slots: + +// from windowmanager_adapter.h +public: // PROPERTIES + Q_PROPERTY(int homeScreenPid READ homeScreenPid WRITE setHomeScreenPid) + int homeScreenPid() const; + void setHomeScreenPid(int value); + + Q_PROPERTY(int layoutId READ layoutId) + int layoutId() const; + + Q_PROPERTY(QString layoutName READ layoutName) + QString layoutName() const; + +public Q_SLOTS: // METHODS + int addLayout(int layoutId, const QString &layoutName, const QList &surfaceAreas); + QList getAllLayouts(); + QList getAvailableLayouts(int numberOfAppSurfaces); + QList getAvailableSurfaces(); + QString getLayoutName(int layoutId); + int setLayoutById(int layoutId); + int setLayoutByName(const QString &layoutName); + int setSurfaceToLayoutArea(int surfaceId, int layoutAreaId); }; + #endif // WINDOWMANAGER_HPP