homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsmainwindow.cpp
author hgs
Wed, 06 Oct 2010 16:06:24 +0300
changeset 97 66b5fe3c07fd
parent 90 3ac3aaebaee5
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description: Menu view.
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <HbMainWindow>
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <HbView>
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <HbInstance>
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include "hsmainwindow.h"
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "hsmenuview.h"
86
hgs
parents: 71
diff changeset
    23
#include "hsmenumodewrapper.h"
90
hgs
parents: 86
diff changeset
    24
#include "hsscene.h"
hgs
parents: 86
diff changeset
    25
#include "hspage.h"
hgs
parents: 86
diff changeset
    26
#include "hspagevisual.h"
hgs
parents: 86
diff changeset
    27
#include "hswallpaper.h"
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
/*!
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
 Constructor
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
 */
63
hgs
parents: 62
diff changeset
    31
62
hgs
parents: 51
diff changeset
    32
hgs
parents: 51
diff changeset
    33
hgs
parents: 51
diff changeset
    34
/*
hgs
parents: 51
diff changeset
    35
 * A word about HsMainWindow class.
hgs
parents: 51
diff changeset
    36
 * This is not an utility class. It was designed to isolate HbMainWindow connected code, so
hgs
parents: 51
diff changeset
    37
 * it can be substitued in MT for application library. Unfortunately it seems to be the best
hgs
parents: 51
diff changeset
    38
 * way to cope with HbMainWindow problem in MT.  
hgs
parents: 51
diff changeset
    39
 */
hgs
parents: 51
diff changeset
    40
hgs
parents: 51
diff changeset
    41
86
hgs
parents: 71
diff changeset
    42
HsMainWindow::HsMainWindow(HsMenuModeWrapper* wrapper):mMenuMode(wrapper) 
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
{
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
}
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
/*!
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
 Destructor
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
 */
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
HsMainWindow::~HsMainWindow()
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
{
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
}
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
/*!
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
 Add the \menuView to first instance of HbMainWindow registered in HbInstance.
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
 \param view View to be added to HbMainWindow.
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
*/
69
hgs
parents: 63
diff changeset
    57
void HsMainWindow::setCurrentView(HbView *view)
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
{
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    59
    HSMENUTEST_FUNC_ENTRY("HsMainWindow::setCurrentView");
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    HbMainWindow *const hbW(
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
        HbInstance::instance()->allMainWindows().value(0));
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    
86
hgs
parents: 71
diff changeset
    63
    if (mMenuMode && mMenuMode->getHsMenuMode() == Hs::AddHsMenuMode) {
hgs
parents: 71
diff changeset
    64
        view->setTitle(hbTrId("txt_applib_title_select_item"));
hgs
parents: 71
diff changeset
    65
    } else {
hgs
parents: 71
diff changeset
    66
        view->setTitle(hbTrId("txt_applib_title_applications"));
hgs
parents: 71
diff changeset
    67
    }
hgs
parents: 71
diff changeset
    68
        
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
    if (!hbW->views().contains(view)) {
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
        hbW->addView(view);
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
    }
86
hgs
parents: 71
diff changeset
    72
    
90
hgs
parents: 86
diff changeset
    73
    // For some reason all visible items will pe rendered even they are outside of the viewport
hgs
parents: 86
diff changeset
    74
    // Hide inactive pages and wallpapers to make screen shot faster
hgs
parents: 86
diff changeset
    75
    HsScene *scene(HsScene::instance()); 	
hgs
parents: 86
diff changeset
    76
    QList<HsPage *> pages(scene->pages());
hgs
parents: 86
diff changeset
    77
    foreach (HsPage *p, pages) {
hgs
parents: 86
diff changeset
    78
        if (p != scene->activePage()) {
hgs
parents: 86
diff changeset
    79
        		p->wallpaper()->hide();
hgs
parents: 86
diff changeset
    80
            p->visual()->hide();
hgs
parents: 86
diff changeset
    81
        } 
hgs
parents: 86
diff changeset
    82
    }
71
hgs
parents: 69
diff changeset
    83
    bool animate  = !hbW->isObscured();       
90
hgs
parents: 86
diff changeset
    84
    // source view will be rendered to cache
86
hgs
parents: 71
diff changeset
    85
    hbW->setCurrentView(view, animate, Hb::ViewSwitchCachedFullScreen);
90
hgs
parents: 86
diff changeset
    86
   	// restore previous
hgs
parents: 86
diff changeset
    87
   	foreach (HsPage *p, pages) {
hgs
parents: 86
diff changeset
    88
        if (p != scene->activePage()) {
hgs
parents: 86
diff changeset
    89
        		p->wallpaper()->show();
hgs
parents: 86
diff changeset
    90
            p->visual()->show();
hgs
parents: 86
diff changeset
    91
        } 
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    92
    }
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    93
    HSMENUTEST_FUNC_EXIT("HsMainWindow::setCurrentView");
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
}