X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=WindowManager%2Fsrc%2Fwindowmanager.hpp;h=70ae31af6d70ebcf2d5422762f0eb232239c5fab;hb=a136e38ca1a7c85523b039e59fb9692f4932df2e;hp=027344bee0561ca0a794d2475db9df565c64af70;hpb=9ca0a50d021a8d6e12cfb8f04671ba3dd389f92d;p=staging%2FHomeScreen.git diff --git a/WindowManager/src/windowmanager.hpp b/WindowManager/src/windowmanager.hpp index 027344b..70ae31a 100644 --- a/WindowManager/src/windowmanager.hpp +++ b/WindowManager/src/windowmanager.hpp @@ -21,39 +21,51 @@ #include #include -#include "windowmanager_adapter.h" +#include "windowmanager_adaptor.h" - -#ifdef __arm__ -extern "C" { -#include "ilm/ilm_control.h" -} +#ifdef HAVE_IVI_LAYERMANAGEMENT_API +#include #endif - class WindowManager : public QObject { Q_OBJECT public: - explicit WindowManager(QObject *parent = 0); + explicit WindowManager(int displayId, 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; + + int m_screenId; + unsigned int m_screenWidth; + unsigned int m_screenHeight; void dumpScene(); -#ifdef __arm__ - void createNewLayer(int layerId); - void addSurfaceToLayer(int surfaceId, int layerId); +#ifdef HAVE_IVI_LAYERMANAGEMENT_API + t_ilm_layer* m_showLayers; + QMap m_appSurfaces; + QMap m_appLayers; + int getLayerRenderOrder(t_ilm_layer* id_array); + + void createNewLayer(const int layerId); + + t_ilm_layer getAppLayerID(const pid_t pid); + + pid_t m_pending_to_show; + + void addSurface(const t_ilm_surface surfaceId); + t_ilm_layer addSurfaceToAppLayer(pid_t pid, const int surfaceId); + void addSurfaceToLayer(const int surfaceId, const int layerId); + + void configureHomeScreenMainSurface(const t_ilm_surface surface, const t_ilm_int width, const t_ilm_int height); + void configureAppSurface(const pid_t pid, const t_ilm_surface surface, const t_ilm_int width, const t_ilm_int height); #endif void updateScreen(); @@ -61,7 +73,7 @@ private: public: static void* myThis; -#ifdef __arm__ +#ifdef HAVE_IVI_LAYERMANAGEMENT_API // for general notifications void notificationFunc_non_static(ilmObjectType object, t_ilm_uint id, @@ -84,12 +96,8 @@ public: public slots: -// from windowmanager_adapter.h +// from windowmanager_adaptor.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; @@ -98,14 +106,21 @@ public: // PROPERTIES public Q_SLOTS: // METHODS int addLayout(int layoutId, const QString &layoutName, const QList &surfaceAreas); + int deleteLayoutById(int layoutId); QList getAllLayouts(); + // QList getAllSurfacesOfProcess(int pid); QList getAvailableLayouts(int numberOfAppSurfaces); - QList getAvailableSurfaces(); + // QList getAvailableSurfaces(); QString getLayoutName(int layoutId); + void hideLayer(int layer); int setLayoutById(int layoutId); int setLayoutByName(const QString &layoutName); int setSurfaceToLayoutArea(int surfaceId, int layoutAreaId); -}; + void showLayer(int layer); + void showAppLayer(int pid); +Q_SIGNALS: // SIGNALS + void surfaceVisibilityChanged(int surfaceId, bool visible); +}; #endif // WINDOWMANAGER_HPP