X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=staging%2FHomeScreen.git;a=blobdiff_plain;f=HomeScreen%2Fsrc%2Flayouthandler.cpp;h=3bfe533ce9c1e608ec8dda0f2e243e1528d0a89a;hp=81bc1063809a3f9322b537764909df38a870e6f0;hb=9ca0a50d021a8d6e12cfb8f04671ba3dd389f92d;hpb=ca4026b34ab8cc32dbe49c3a6272aa01733baf12 diff --git a/HomeScreen/src/layouthandler.cpp b/HomeScreen/src/layouthandler.cpp index 81bc106..3bfe533 100644 --- a/HomeScreen/src/layouthandler.cpp +++ b/HomeScreen/src/layouthandler.cpp @@ -4,14 +4,16 @@ LayoutHandler::LayoutHandler(QObject *parent) : QObject(parent), mp_dBusWindowManagerProxy(0), mp_dBusPopupProxy(0), - m_visibleApps(), - m_invisibleApps(), - m_requestsToBeVisibleApps() + m_visibleSurfaces(), + m_invisibleSurfaces(), + m_requestsToBeVisibleSurfaces() { qDBusRegisterMetaType(); qDBusRegisterMetaType >(); - qDBusRegisterMetaType(); - qDBusRegisterMetaType >(); + qDBusRegisterMetaType(); + qDBusRegisterMetaType >(); + qDBusRegisterMetaType(); + qDBusRegisterMetaType >(); qDebug("D-Bus: connect to org.agl.windowmanager /windowmanager"); mp_dBusWindowManagerProxy = new org::agl::windowmanager("org.agl.windowmanager", @@ -34,10 +36,8 @@ LayoutHandler::~LayoutHandler() void LayoutHandler::setUpLayouts() { qDebug("setUpLayouts"); - QList surfaceAreas; - SimpleRect surfaceArea; - bool isFullScreen; - int associatedFullScreenLayout; + QList surfaceAreas; + LayoutArea surfaceArea; const int SCREEN_WIDTH = 1080; const int SCREEN_HEIGHT = 1920; @@ -61,10 +61,7 @@ void LayoutHandler::setUpLayouts() surfaceAreas.append(surfaceArea); - isFullScreen = false; - associatedFullScreenLayout = 4; - - mp_dBusWindowManagerProxy->addLayout(1, "one app", isFullScreen, associatedFullScreenLayout, surfaceAreas); + mp_dBusWindowManagerProxy->addLayout(1, "one app", surfaceAreas); surfaceAreas.clear(); @@ -88,10 +85,7 @@ void LayoutHandler::setUpLayouts() surfaceAreas.append(surfaceArea); - isFullScreen = false; - associatedFullScreenLayout = -1; - - mp_dBusWindowManagerProxy->addLayout(2, "top on bottom", isFullScreen, associatedFullScreenLayout, surfaceAreas); + mp_dBusWindowManagerProxy->addLayout(2, "top on bottom", surfaceAreas); surfaceAreas.clear(); @@ -115,72 +109,48 @@ void LayoutHandler::setUpLayouts() surfaceAreas.append(surfaceArea); - isFullScreen = false; - associatedFullScreenLayout = -1; - - mp_dBusWindowManagerProxy->addLayout(3, "side by side", isFullScreen, associatedFullScreenLayout, surfaceAreas); - - - surfaceAreas.clear(); - - // layout 4: - // one app surface full screen, no statusbar, no control bar - surfaceArea.x = 0; - surfaceArea.y = 0; - surfaceArea.width = SCREEN_WIDTH; - surfaceArea.height = SCREEN_HEIGHT; - - surfaceAreas.append(surfaceArea); - - isFullScreen = true; - associatedFullScreenLayout = 1; - - mp_dBusWindowManagerProxy->addLayout(4, "one app full screen", isFullScreen, associatedFullScreenLayout, surfaceAreas); - - - surfaceAreas.clear(); - + mp_dBusWindowManagerProxy->addLayout(3, "side by side", surfaceAreas); } -void LayoutHandler::makeMeVisible(int pid) +void LayoutHandler::makeMeVisible(int surfaceId) { - qDebug("makeMeVisible %d", pid); - m_requestsToBeVisibleApps.append(pid); + qDebug("makeMeVisible %d", surfaceId); + m_requestsToBeVisibleSurfaces.append(surfaceId); - qDebug("m_visibleApps %d", m_visibleApps.size()); - qDebug("m_invisibleApps %d", m_invisibleApps.size()); - qDebug("m_requestsToBeVisibleApps %d", m_requestsToBeVisibleApps.size()); + qDebug("m_visibleSurfaces %d", m_visibleSurfaces.size()); + qDebug("m_invisibleSurfaces %d", m_invisibleSurfaces.size()); + qDebug("m_requestsToBeVisibleSurfaces %d", m_requestsToBeVisibleSurfaces.size()); - QList availableLayouts = mp_dBusWindowManagerProxy->getAvailableLayouts(m_visibleApps.size() + m_requestsToBeVisibleApps.size()); + QList availableLayouts = mp_dBusWindowManagerProxy->getAvailableLayouts(m_visibleSurfaces.size() + m_requestsToBeVisibleSurfaces.size()); if (0 == availableLayouts.size()) { // no layout fits the need! // replace the last app qDebug("no layout fits the need!"); - qDebug("replace the last app"); + qDebug("replace the last surface"); - m_invisibleApps.append(m_visibleApps.last()); - m_visibleApps.removeLast(); + m_invisibleSurfaces.append(m_visibleSurfaces.last()); + m_visibleSurfaces.removeLast(); - m_visibleApps.append(m_requestsToBeVisibleApps); - m_requestsToBeVisibleApps.clear(); + m_visibleSurfaces.append(m_requestsToBeVisibleSurfaces); + m_requestsToBeVisibleSurfaces.clear(); - for (int i = 0; i < m_visibleApps.size(); ++i) + for (int i = 0; i < m_visibleSurfaces.size(); ++i) { - mp_dBusWindowManagerProxy->setPidToLayoutArea(m_visibleApps.at(i), i); + mp_dBusWindowManagerProxy->setSurfaceToLayoutArea(m_visibleSurfaces.at(i), i); } } if (1 == availableLayouts.size()) { // switch to new layout qDebug("switch to new layout %d", availableLayouts.at(0)); - m_visibleApps.append(m_requestsToBeVisibleApps); - m_requestsToBeVisibleApps.clear(); + m_visibleSurfaces.append(m_requestsToBeVisibleSurfaces); + m_requestsToBeVisibleSurfaces.clear(); mp_dBusWindowManagerProxy->setLayoutById(availableLayouts.at(0)); - for (int i = 0; i < m_visibleApps.size(); ++i) + for (int i = 0; i < m_visibleSurfaces.size(); ++i) { - mp_dBusWindowManagerProxy->setPidToLayoutArea(m_visibleApps.at(i), i); + mp_dBusWindowManagerProxy->setSurfaceToLayoutArea(m_visibleSurfaces.at(i), i); } } if (1 < availableLayouts.size()) @@ -202,32 +172,18 @@ void LayoutHandler::makeMeVisible(int pid) void LayoutHandler::toggleFullscreen() { qDebug("toggleFullscreen"); - int currentLayout = mp_dBusWindowManagerProxy->getLayout(); - int associatedFullScreenLayout = mp_dBusWindowManagerProxy->getAssociatedFullScreenLayout(currentLayout); - if (-1 != associatedFullScreenLayout) - { - mp_dBusWindowManagerProxy->setLayoutById(associatedFullScreenLayout); - for (int i = 0; i < m_visibleApps.size(); ++i) - { - mp_dBusWindowManagerProxy->setPidToLayoutArea(m_visibleApps.at(i), i); - } - } - else - { - qDebug("no associatedFullScreenLayout. Cannot switch to full screen."); - } } void LayoutHandler::setLayoutByName(QString layoutName) { // switch to new layout qDebug("setLayout: switch to new layout %s", layoutName.toStdString().c_str()); - m_visibleApps.append(m_requestsToBeVisibleApps); - m_requestsToBeVisibleApps.clear(); + m_visibleSurfaces.append(m_requestsToBeVisibleSurfaces); + m_requestsToBeVisibleSurfaces.clear(); mp_dBusWindowManagerProxy->setLayoutByName(layoutName); - for (int i = 0; i < m_visibleApps.size(); ++i) + for (int i = 0; i < m_visibleSurfaces.size(); ++i) { - mp_dBusWindowManagerProxy->setPidToLayoutArea(i, i); + mp_dBusWindowManagerProxy->setSurfaceToLayoutArea(i, i); } }