idlehomescreen/examples/mcsexample/src/MCSExampleAppUi.cpp
author jake
Mon, 02 Aug 2010 12:02:47 +0300
branchRCL_3
changeset 70 d12a7ea0f775
permissions -rw-r--r--
Example applications for various Homescreen APIs.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
70
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     1
/*
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     3
* All rights reserved.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     4
* This component and the accompanying materials are made available
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     6
* which accompanies this distribution, and is available
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     8
*
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
     9
* Initial Contributors:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    11
*
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    12
* Contributors:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    13
*
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    14
* Description:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    15
*
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    16
*/
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    17
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    18
// INCLUDE FILES
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    19
#include <avkon.hrh>
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    20
#include <aknmessagequerydialog.h>
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    21
#include <aknnotewrappers.h>
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    22
#include <stringloader.h>
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    23
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    24
#include <MCSExample_0xEB753B18.rsg>
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    25
#include "MCSExample.hrh"
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    26
#include "MCSExample.pan"
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    27
#include "MCSExampleApplication.h"
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    28
#include "MCSExampleAppUi.h"
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    29
#include "MCSExampleAppView.h"
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    30
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    31
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    32
// ============================ MEMBER FUNCTIONS ===============================
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    33
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    34
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    35
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    36
// CMCSExampleAppUi::ConstructL()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    37
// Symbian 2nd phase constructor can leave.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    38
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    39
//
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    40
void CMCSExampleAppUi::ConstructL()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    41
    {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    42
    // Initialise app UI with standard value.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    43
    BaseConstructL(CAknAppUi::EAknEnableSkin|CAknAppUi::EAknSingleClickCompatible);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    44
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    45
    // Create view object
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    46
    iAppView = CMCSExampleAppView::NewL(ClientRect());
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    47
    }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    48
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    49
// CMCSExampleAppUi::CMCSExampleAppUi()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    50
// C++ default constructor can NOT contain any code, that might leave.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    51
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    52
//
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    53
CMCSExampleAppUi::CMCSExampleAppUi()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    54
    {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    55
    // No implementation required
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    56
    }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    57
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    58
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    59
// CMCSExampleAppUi::~CMCSExampleAppUi()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    60
// Destructor.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    61
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    62
//
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    63
CMCSExampleAppUi::~CMCSExampleAppUi()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    64
    {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    65
    if (iAppView)
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    66
        {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    67
        delete iAppView;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    68
        iAppView = NULL;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    69
        }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    70
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    71
    }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    72
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    73
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    74
// CMCSExampleAppUi::HandleCommandL()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    75
// Takes care of command handling.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    76
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    77
//
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    78
void CMCSExampleAppUi::HandleCommandL(TInt aCommand)
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    79
    {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    80
    switch (aCommand)
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    81
        {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    82
        case EEikCmdExit:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    83
        case EAknSoftkeyExit:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    84
            Exit();
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    85
            break;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    86
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    87
        case ECommand1:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    88
            {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    89
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    90
            // Load a string from the resource file and display it
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    91
            HBufC* textResource = StringLoader::LoadLC(R_COMMAND1_TEXT);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    92
            CAknInformationNote* informationNote;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    93
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    94
            informationNote = new (ELeave) CAknInformationNote;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    95
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    96
            // Show the information Note with
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    97
            // textResource loaded with StringLoader.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    98
            informationNote->ExecuteLD(*textResource);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
    99
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   100
            // Pop HBuf from CleanUpStack and Destroy it.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   101
            CleanupStack::PopAndDestroy(textResource);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   102
            }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   103
            break;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   104
        case ECommand2:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   105
            {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   106
            iAppView->ListAllItemsL();
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   107
            }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   108
            break;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   109
        case EHelp:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   110
            {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   111
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   112
            }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   113
            break;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   114
        case EAbout:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   115
            {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   116
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   117
            CAknMessageQueryDialog* dlg =
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   118
                    new (ELeave) CAknMessageQueryDialog();
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   119
            dlg->PrepareLC(R_ABOUT_QUERY_DIALOG);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   120
            HBufC* title = iEikonEnv->AllocReadResourceLC(
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   121
                    R_ABOUT_DIALOG_TITLE);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   122
            dlg->QueryHeading()->SetTextL(*title);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   123
            CleanupStack::PopAndDestroy(); //title
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   124
            HBufC* msg = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TEXT);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   125
            dlg->SetMessageTextL(*msg);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   126
            CleanupStack::PopAndDestroy(); //msg
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   127
            dlg->RunLD();
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   128
            }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   129
            break;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   130
        default:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   131
            Panic( EMCSExampleUi);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   132
            break;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   133
        }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   134
    }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   135
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   136
//  Called by the framework when the application status pane
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   137
//  size is changed.  Passes the new client rectangle to the
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   138
//  AppView
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   139
// -----------------------------------------------------------------------------
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   140
//
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   141
void CMCSExampleAppUi::HandleStatusPaneSizeChange()
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   142
    {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   143
    iAppView->SetRect(ClientRect());
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   144
    }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   145
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   146
CArrayFix<TCoeHelpContext>* CMCSExampleAppUi::HelpContextL() const
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   147
    {
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   148
#warning "Please see comment about help and UID3..."
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   149
    // Note: Help will not work if the application uid3 is not in the
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   150
    // protected range.  The default uid3 range for projects created
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   151
    // from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so that they
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   152
    // can be self signed and installed on the device during testing.
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   153
    // Once you get your official uid3 from Symbian Ltd. and find/replace
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   154
    // all occurrences of uid3 in your project, the context help will
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   155
    // work. Alternatively, a patch now exists for the versions of 
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   156
    // HTML help compiler in SDKs and can be found here along with an FAQ:
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   157
    // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   158
#ifdef _HELP_AVAILABLE_
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   159
    CArrayFixFlat<TCoeHelpContext>* array = new(ELeave)CArrayFixFlat<TCoeHelpContext>(1);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   160
    CleanupStack::PushL(array);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   161
    array->AppendL(TCoeHelpContext(KUidMCSExampleApp, KGeneral_Information));
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   162
    CleanupStack::Pop(array);
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   163
    return array;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   164
#else
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   165
    return NULL;
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   166
#endif
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   167
    }
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   168
d12a7ea0f775 Example applications for various Homescreen APIs.
jake
parents:
diff changeset
   169
// End of File