New layer management in WindowManager. Three layers are created. One for the HomeScre...
[staging/HomeScreen.git] / WindowManager / src / windowmanager.hpp
index ef19f4e..027344b 100644 (file)
 #include "windowmanager_adapter.h"
 
 
-typedef struct
-{
-    int pid;
-    QString processName;
-} SurfaceInfo;
-
 #ifdef __arm__
 extern "C" {
 #include "ilm/ilm_control.h"
@@ -47,27 +41,22 @@ public:
     void start();
 private:
     WindowmanagerAdaptor *mp_windowManagerAdaptor;
-    QMap<int, QList<SimpleRect> > m_layouts;
-    QMap<int, QString> m_layoutNames;
-    QMap<int, bool> m_layoutFullScreen;
-    QMap<int, int> m_layoutFullScreenAssociated;
+    QList<Layout> m_layouts;
+    QList<int> m_surfaces;
+    QMap<int, unsigned int> *mp_layoutAreaToSurfaceIdAssignment;
+
     int m_currentLayout;
-    void dumpScene();
     int m_homeScreenPid;
+    int m_homeScreenSurfaceId;
+
+    void dumpScene();
 
 #ifdef __arm__
     void createNewLayer(int layerId);
     void addSurfaceToLayer(int surfaceId, int layerId);
-    void updateScreen();
-
-
-    QMap<t_ilm_uint, SurfaceInfo> *mp_surfaces;
-    /* one layer per pid is created
-    where the surfaces are added that are created by the process */
-    QList<int> *mp_processLayers;
 #endif
+    void updateScreen();
 
-    QMap<int, unsigned int> *mp_layoutAreaToPidAssignment;
 
 public:
     static void* myThis;
@@ -96,18 +85,26 @@ 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, bool isFullScreen, int associatedFullScreenLayout, const QList<SimpleRect> &surfaceAreas);
-    int getAssociatedFullScreenLayout(int layoutId);
+    int addLayout(int layoutId, const QString &layoutName, const QList<LayoutArea> &surfaceAreas);
+    QList<Layout> getAllLayouts();
     QList<int> getAvailableLayouts(int numberOfAppSurfaces);
-    QList<SimplePoint> getAvailableSurfaces();
-    int getLayout();
+    QList<int> getAvailableSurfaces();
     QString getLayoutName(int layoutId);
-    bool isLayoutFullScreen(int layoutId);
-    void setLayoutById(int layoutId);
-    void setLayoutByName(const QString &layoutName);
-    void setPidToLayoutArea(int pid, int layoutAreaId);
-
+    int setLayoutById(int layoutId);
+    int setLayoutByName(const QString &layoutName);
+    int setSurfaceToLayoutArea(int surfaceId, int layoutAreaId);
 };