X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=WindowManager%2Fsrc%2Fwindowmanager.cpp;h=1c0ddea49aa146cbfda9b69c4c29f7c7ef8ce3e4;hb=557bdea00ff9a398f0646fdcae653791c9cb640c;hp=ed38c49138be9861e75d0dc3bc218bb4a1b6a68d;hpb=bf0f33bec5ad705666dff6c821334524c1b81583;p=staging%2FHomeScreen.git diff --git a/WindowManager/src/windowmanager.cpp b/WindowManager/src/windowmanager.cpp index ed38c49..1c0ddea 100644 --- a/WindowManager/src/windowmanager.cpp +++ b/WindowManager/src/windowmanager.cpp @@ -28,8 +28,9 @@ // On top all applications in one layer. // On top of that, the popup layer. #define WINDOWMANAGER_LAYER_POPUP 100 -#define WINDOWMANAGER_LAYER_APPLICATIONS 101 -#define WINDOWMANAGER_LAYER_HOMESCREEN 102 +#define WINDOWMANAGER_LAYER_HOMESCREEN_OVERLAY 101 +#define WINDOWMANAGER_LAYER_APPLICATIONS 102 +#define WINDOWMANAGER_LAYER_HOMESCREEN 103 #define WINDOWMANAGER_LAYER_NUM 3 @@ -353,6 +354,7 @@ void WindowManager::surfaceCallbackFunction_non_static(t_ilm_surface surface, if (ILM_NOTIFICATION_CONTENT_AVAILABLE & mask) { qDebug("ILM_NOTIFICATION_CONTENT_AVAILABLE"); + updateScreen(); } if (ILM_NOTIFICATION_CONTENT_REMOVED & mask) { @@ -413,6 +415,37 @@ int WindowManager::addLayout(int layoutId, const QString &layoutName, const QLis return WINDOWMANAGER_NO_ERROR; } +int WindowManager::deleteLayoutById(int layoutId) +{ + qDebug("-=[deleteLayoutById]=-"); + qDebug("layoutId: %d", layoutId); + int result = WINDOWMANAGER_NO_ERROR; + + if (m_currentLayout == layoutId) + { + result = WINDOWMANAGER_ERROR_ID_IN_USE; + } + else + { + QList::iterator i = m_layouts.begin(); + result = WINDOWMANAGER_ERROR_ID_IN_USE; + while (i != m_layouts.constEnd()) + { + if (i->id == layoutId) + { + m_layouts.erase(i); + result = WINDOWMANAGER_NO_ERROR; + break; + } + + ++i; + } + } + + return result; +} + + QList WindowManager::getAllLayouts() { qDebug("-=[getAllLayouts]=-"); @@ -483,6 +516,27 @@ QString WindowManager::getLayoutName(int layoutId) return result; } +void WindowManager::hideLayer(int layer) +{ + qDebug("-=[hideLayer]=-"); + qDebug("layer %d", layer); + +#ifdef __arm__ + if (0 == layer) + { + ilm_layerSetVisibility(WINDOWMANAGER_LAYER_POPUP, ILM_FALSE); + } + if (1 == layer) + { + ilm_layerSetVisibility(WINDOWMANAGER_LAYER_APPLICATIONS, ILM_FALSE); + } + if (2 == layer) + { + ilm_layerSetVisibility(WINDOWMANAGER_LAYER_HOMESCREEN, ILM_FALSE); + } + ilm_commitChanges(); +#endif +} int WindowManager::setLayoutById(int layoutId) { @@ -536,3 +590,25 @@ int WindowManager::setSurfaceToLayoutArea(int surfaceId, int layoutAreaId) return result; } + +void WindowManager::showLayer(int layer) +{ + qDebug("-=[showLayer]=-"); + qDebug("layer %d", layer); + +#ifdef __arm__ + if (0 == layer) + { + ilm_layerSetVisibility(WINDOWMANAGER_LAYER_POPUP, ILM_TRUE); + } + if (1 == layer) + { + ilm_layerSetVisibility(WINDOWMANAGER_LAYER_APPLICATIONS, ILM_TRUE); + } + if (2 == layer) + { + ilm_layerSetVisibility(WINDOWMANAGER_LAYER_HOMESCREEN, ILM_TRUE); + } + ilm_commitChanges(); +#endif +}