#include <QList>
#include <QMap>
-#include "windowmanager_adapter.h"
+#include "windowmanager_adaptor.h"
-typedef struct
-{
- int pid;
- QString processName;
-} SurfaceInfo;
-
-#ifdef __arm__
+#ifdef HAVE_IVI_LAYERMANAGEMENT_API
extern "C" {
-#include "ilm/ilm_control.h"
+#include <ilm/ilm_control.h>
}
#endif
public:
explicit WindowManager(QObject *parent = 0);
- QMutex callbackMutex;
-
~WindowManager();
+
+ void start();
private:
WindowmanagerAdaptor *mp_windowManagerAdaptor;
- QMap<int, QList<SimpleRect> > m_layouts;
- QMap<int, QString> m_layoutNames;
+ QList<Layout> m_layouts;
+ QList<int> m_surfaces;
+ QMap<int, unsigned int> *mp_layoutAreaToSurfaceIdAssignment;
+
int m_currentLayout;
+
void dumpScene();
-#ifdef __arm__
+#ifdef HAVE_IVI_LAYERMANAGEMENT_API
void createNewLayer(int layerId);
void addSurfaceToLayer(int surfaceId, int layerId);
-
- 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();
+
public:
static void* myThis;
-#ifdef __arm__
+#ifdef HAVE_IVI_LAYERMANAGEMENT_API
// for general notifications
void notificationFunc_non_static(ilmObjectType object,
t_ilm_uint id,
public slots:
-// from windowmanager_adapter.h
+// from windowmanager_adaptor.h
+public: // PROPERTIES
+ 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<SimpleRect> &surfaceAreas);
+ int addLayout(int layoutId, const QString &layoutName, const QList<LayoutArea> &surfaceAreas);
+ int deleteLayoutById(int layoutId);
+ QList<Layout> getAllLayouts();
+ QList<int> getAllSurfacesOfProcess(int pid);
QList<int> getAvailableLayouts(int numberOfAppSurfaces);
- QList<SimplePoint> getAvailableSurfaces();
- int getLayout();
+ QList<int> getAvailableSurfaces();
QString getLayoutName(int layoutId);
- void setLayoutById(int layoutId);
- void setLayoutByName(const QString &layoutName);
- void setSurfaceToLayoutArea(int surfaceId, int layoutAreaId);
-
+ void hideLayer(int layer);
+ int setLayoutById(int layoutId);
+ int setLayoutByName(const QString &layoutName);
+ int setSurfaceToLayoutArea(int surfaceId, int layoutAreaId);
+ void showLayer(int layer);
+
+Q_SIGNALS: // SIGNALS
+ void surfaceVisibilityChanged(int surfaceId, bool visible);
};