messagingappbase/msgeditor/viewsrc/MsgEditorKeyCatcher.cpp
author hgs
Thu, 04 Nov 2010 02:02:03 +0530
changeset 81 2043ea884c04
parent 79 2981cb3aa489
permissions -rw-r--r--
201044_03
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
79
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  MsgEditorKeyCatcher implementation
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
// ========== INCLUDE FILES ================================
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <eikenv.h>
hgs
parents:
diff changeset
    23
#include <eikappui.h>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include "MsgEditorKeyCatcher.h"
hgs
parents:
diff changeset
    26
#include "MsgAddressControlEditor.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// ========== EXTERNAL DATA STRUCTURES =====================
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// ========== EXTERNAL FUNCTION PROTOTYPES =================
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// ========== CONSTANTS ====================================
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
// ========== MACROS =======================================
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
// ========== LOCAL CONSTANTS AND MACROS ===================
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
// ========== MODULE DATA STRUCTURES =======================
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
// ========== LOCAL FUNCTION PROTOTYPES ====================
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// ========== LOCAL FUNCTIONS ==============================
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// ========== MEMBER FUNCTIONS =============================
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
// ---------------------------------------------------------
hgs
parents:
diff changeset
    47
// CMsgEditorKeyCatcher::ConstructL
hgs
parents:
diff changeset
    48
//
hgs
parents:
diff changeset
    49
// 2nd phase constructor.
hgs
parents:
diff changeset
    50
// ---------------------------------------------------------
hgs
parents:
diff changeset
    51
//
hgs
parents:
diff changeset
    52
void CMsgEditorKeyCatcher::ConstructL( CMsgAddressControlEditor* aEditor )
hgs
parents:
diff changeset
    53
    {
hgs
parents:
diff changeset
    54
    CreateWindowL();
hgs
parents:
diff changeset
    55
    SetNonFocusing();
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
#ifdef RD_SCALABLE_UI_V2
hgs
parents:
diff changeset
    58
    SetPointerCapture( EFalse );
hgs
parents:
diff changeset
    59
#endif // RD_SCALABLE_UI_V2
hgs
parents:
diff changeset
    60
    
hgs
parents:
diff changeset
    61
    RWindow& window=Window();
hgs
parents:
diff changeset
    62
    window.SetOrdinalPosition( 0, ECoeWinPriorityFep );
hgs
parents:
diff changeset
    63
    TPoint fepControlPos( 0, 0 );
hgs
parents:
diff changeset
    64
    SetExtent( fepControlPos, TSize( 0, 0 ) );
hgs
parents:
diff changeset
    65
    window.SetNonFading( ETrue );
hgs
parents:
diff changeset
    66
    iEikonEnv->EikAppUi()->AddToStackL(
hgs
parents:
diff changeset
    67
        this,
hgs
parents:
diff changeset
    68
        ECoeStackPriorityFep + 10,
hgs
parents:
diff changeset
    69
        ECoeStackFlagRefusesFocus | ECoeStackFlagSharable );
hgs
parents:
diff changeset
    70
    iEditor = aEditor;
hgs
parents:
diff changeset
    71
    }
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
// ---------------------------------------------------------
hgs
parents:
diff changeset
    74
// CMsgEditorKeyCatcher::CMsgEditorKeyCatcher
hgs
parents:
diff changeset
    75
//
hgs
parents:
diff changeset
    76
// Constructor.
hgs
parents:
diff changeset
    77
// ---------------------------------------------------------
hgs
parents:
diff changeset
    78
//
hgs
parents:
diff changeset
    79
CMsgEditorKeyCatcher::CMsgEditorKeyCatcher()
hgs
parents:
diff changeset
    80
    {
hgs
parents:
diff changeset
    81
    }
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
// ---------------------------------------------------------
hgs
parents:
diff changeset
    84
// CMsgEditorKeyCatcher::~CMsgEditorKeyCatcher
hgs
parents:
diff changeset
    85
//
hgs
parents:
diff changeset
    86
// Destructor.
hgs
parents:
diff changeset
    87
// ---------------------------------------------------------
hgs
parents:
diff changeset
    88
//
hgs
parents:
diff changeset
    89
CMsgEditorKeyCatcher::~CMsgEditorKeyCatcher()
hgs
parents:
diff changeset
    90
    {
hgs
parents:
diff changeset
    91
    iEikonEnv->EikAppUi()->RemoveFromStack( this );
hgs
parents:
diff changeset
    92
    }
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
// ---------------------------------------------------------
hgs
parents:
diff changeset
    95
// CMsgEditorKeyCatcher::OfferKeyEventL
hgs
parents:
diff changeset
    96
//
hgs
parents:
diff changeset
    97
// Handles key event.
hgs
parents:
diff changeset
    98
// ---------------------------------------------------------
hgs
parents:
diff changeset
    99
//
hgs
parents:
diff changeset
   100
TKeyResponse CMsgEditorKeyCatcher::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
hgs
parents:
diff changeset
   101
    {
hgs
parents:
diff changeset
   102
    if ( aType == EEventKey )
hgs
parents:
diff changeset
   103
        {
hgs
parents:
diff changeset
   104
        // All printable characters except # which means user is changing case.
hgs
parents:
diff changeset
   105
        // SCT of address control contains less characters, however.
hgs
parents:
diff changeset
   106
        // There is a drawback here: pressing cancel in SCT still may add delimiters.
hgs
parents:
diff changeset
   107
        if(aKeyEvent.iCode == ';')
hgs
parents:
diff changeset
   108
          {
hgs
parents:
diff changeset
   109
        	return EKeyWasNotConsumed;
hgs
parents:
diff changeset
   110
          }
hgs
parents:
diff changeset
   111
        else if ( aKeyEvent.iCode >= 32 && aKeyEvent.iCode <= 255 &&
hgs
parents:
diff changeset
   112
	          aKeyEvent.iCode != '#')
hgs
parents:
diff changeset
   113
          {
hgs
parents:
diff changeset
   114
            iEditor->PreInsertEditorFormattingL( aKeyEvent );
hgs
parents:
diff changeset
   115
            return EKeyWasNotConsumed;
hgs
parents:
diff changeset
   116
            }
hgs
parents:
diff changeset
   117
        }
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
    return EKeyWasNotConsumed;
hgs
parents:
diff changeset
   120
    }
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
//  End of File