meetingui/meetingrequestviewers/src/CMRMsgBaseControlAdapter.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:36:22 +0300
branchRCL_3
changeset 15 9711e452b5e9
parent 0 f979ecb2b13e
permissions -rw-r--r--
Revision: 201015 Kit: 201017

/*
* Copyright (c) 2002 - 2004 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:   BaseControl adapter
*
*/




// INCLUDE FILES
#include    "CMRMsgBaseControlAdapter.h"
#include    <MsgBaseControl.h>
#include    <MsgEditorView.h>  // CMsgEditorView
#include 	<MsgEditorCommon.h>
#include	<CRichBio.h>

// ============================ MEMBER FUNCTIONS ===============================

// -----------------------------------------------------------------------------
// CMRMsgBaseControlAdapter::CMRMsgBaseControlAdapter
// C++ constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
CMRMsgBaseControlAdapter::CMRMsgBaseControlAdapter(
    CRichBio& aBaseControl)
    :iBaseControl(aBaseControl)
    {
    }

// -----------------------------------------------------------------------------
// CMRMsgBaseControlAdapter::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CMRMsgBaseControlAdapter::ConstructL()
    {
    iControlType = EMsgBodyControl;
    }

// -----------------------------------------------------------------------------
// CMRMsgBaseControlAdapter::NewL
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CMRMsgBaseControlAdapter* CMRMsgBaseControlAdapter::NewL(
	CMsgEditorView* aParent,
    CRichBio& aControl)
    {	
    CMRMsgBaseControlAdapter* self = new(
        ELeave ) CMRMsgBaseControlAdapter(aControl);

    CleanupStack::PushL( self );
    self->ConstructL();
    aControl.ConstructL(aParent);
    aControl.SetContainerWindowL(*aParent);
    CleanupStack::Pop(); // self
    return self;
    }


// Destructor
CMRMsgBaseControlAdapter::~CMRMsgBaseControlAdapter()
    {
    }

// -----------------------------------------------------------------------------
// CMRMsgBaseControlAdapter::NotifyViewEvent
// -----------------------------------------------------------------------------
//
void CMRMsgBaseControlAdapter::NotifyViewEvent(
    TMsgViewEvent /*aEvent*/, TInt /*aParam*/ )
    {
    }

// -----------------------------------------------------------------------------
// CMRMsgBaseControlAdapter::CurrentLineRect
// -----------------------------------------------------------------------------
//
TRect CMRMsgBaseControlAdapter::CurrentLineRect()
    {
    return iBaseControl.CurrentLineRect();
    }

void CMRMsgBaseControlAdapter::SetAndGetSizeL(TSize& aSize)
    {
    TInt componentAdjustment = MsgEditorCommons::MsgBaseLineOffset();
    aSize.iHeight -= componentAdjustment;
    TPoint pos = Position() - TPoint(0,componentAdjustment);
    SetExtent(pos, aSize); 
    iBaseControl.SetAndGetSizeL( aSize );
    }
void CMRMsgBaseControlAdapter::ClipboardL(TMsgClipboardFunc /*aFunc*/)
    {
    //empty
    }
void CMRMsgBaseControlAdapter::EditL(TMsgEditFunc /*aFunc*/)
    {
    //empty
    }

// -----------------------------------------------------------------------------
// CMRMsgBaseControlAdapter::IsFocusChangePossible
// -----------------------------------------------------------------------------
//
TBool CMRMsgBaseControlAdapter::IsFocusChangePossible(
    TMsgFocusDirection /*aDirection*/) const
    {
    return IsCursorLocation(EMsgTop);
    }

// -----------------------------------------------------------------------------
// CMRMsgBaseControlAdapter::IsCursorLocation
// -----------------------------------------------------------------------------
//
TBool CMRMsgBaseControlAdapter::IsCursorLocation(
    TMsgCursorLocation aLocation) const
    {
	return iBaseControl.IsCursorLocation( aLocation );
	}   
    
TUint32 CMRMsgBaseControlAdapter::EditPermission() const
    {
    return 0;
    }

TInt CMRMsgBaseControlAdapter::CountComponentControls() const
    {
    return 1;// iControl
    }

CCoeControl* CMRMsgBaseControlAdapter::ComponentControl(TInt /*aIndex*/) const
    {
    return &iBaseControl;
    }

void CMRMsgBaseControlAdapter::SizeChanged()
    {
    iBaseControl.SetExtent(Position(), iBaseControl.Size());
    }

void CMRMsgBaseControlAdapter::FocusChanged(TDrawNow aDrawNow)
    {
    iBaseControl.SetFocus(IsFocused(), aDrawNow);
    }

TInt CMRMsgBaseControlAdapter::VirtualHeight()
    {
    return iBaseControl.VirtualHeight();
    }

TInt CMRMsgBaseControlAdapter::VirtualVisibleTop()
    {
    return iBaseControl.VirtualVisibleTop();
    }

void CMRMsgBaseControlAdapter::HandleResourceChange(TInt aType)
    {
    iBaseControl.HandleResourceChange( aType );
    }

TKeyResponse CMRMsgBaseControlAdapter::OfferKeyEventL(
    const TKeyEvent& aKeyEvent,TEventCode aType)
    {
	return iBaseControl.OfferKeyEventL(aKeyEvent, aType);	
    }

void CMRMsgBaseControlAdapter::PrepareForReadOnly(TBool /*aReadOnly*/)
    {
    }

//  End of File