#define WINDOWMANAGER_HPP
#include <QObject>
+#include <QList>
+#include <QMap>
+
+#include "windowmanager_adapter.h"
#ifdef __arm__
}
#endif
-
class WindowManager : public QObject
{
Q_OBJECT
+
public:
explicit WindowManager(QObject *parent = 0);
~WindowManager();
+
+ void start();
private:
+ WindowmanagerAdaptor *mp_windowManagerAdaptor;
+ QList<Layout> m_layouts;
+ QList<int> m_surfaces;
+ QMap<int, unsigned int> *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);
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<LayoutArea> &surfaceAreas);
+ QList<Layout> getAllLayouts();
+ QList<int> getAvailableLayouts(int numberOfAppSurfaces);
+ QList<int> getAvailableSurfaces();
+ QString getLayoutName(int layoutId);
+ int setLayoutById(int layoutId);
+ int setLayoutByName(const QString &layoutName);
+ int setSurfaceToLayoutArea(int surfaceId, int layoutAreaId);
};
+
#endif // WINDOWMANAGER_HPP