browserui/browser/FavouritesSrc/BrowserBookmarksGotoPane.cpp
changeset 51 48e827313edd
parent 37 481242ead638
child 53 f427d27b98d8
--- a/browserui/browser/FavouritesSrc/BrowserBookmarksGotoPane.cpp	Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,855 +0,0 @@
-/*
-* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:
-*      Implementation of CBrowserBookmarksGotoPane.
-*
-*
-*/
-
-
-// INCLUDE FILES
-#include <Browser_Platform_Variant.hrh>
-
-#include <akninfrm.h>
-#include <eikedwin.h>
-#include <favouriteslimits.h>
-
-#include <aknconsts.h>
-#include <akneditstateindicator.h>
-#include <AknsListBoxBackgroundControlContext.h>
-#include <AknsFrameBackgroundControlContext.h>
-
-#include <BrowserNG.rsg>
-
-#include <AknsUtils.h>
-#include <AppApacLayout.cdl.h>
-#include <AppLayout.cdl.h>
-#include <AknLayout.cdl.h>
-
-#include "BrowserBookmarksGotoPane.h"
-#include "BrowserUtil.h"
-#include "commonconstants.h"
-#include "BrowserAdaptiveListPopup.h"
-#include "WmlBrowserBuild.h" //feature manager
-#include "browser.hrh"
-#include "BrowserAppUi.h"
-#include "BrowserFavouritesView.h"
-#include "Preferences.h"
-#include <Featmgr.h>
-#include "BrowserUiSDKCRKeys.h"
-
-#include <eikpriv.rsg>
-#include <BARSREAD.H>
-
-#include <AknLayout2ScalableDef.h>
-#include <aknlayoutfont.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-
-#include <StringLoader.h>
-#include <skinlayout.cdl.h>
-using namespace SkinLayout;
-
-// CONSTANTS
-const TInt EUseSkinContext = 0x01;
-const TInt EParentAbsolute = 0x02;
-const TInt KRightSpace = 10; //space in pixels left at the end of text editor.
-// CONSTANTS
-const TInt KMaxTitleLength = 512;
-_LIT(KAddressText,"http://www.");
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::NewL
-// ---------------------------------------------------------
-//
-CBrowserBookmarksGotoPane* CBrowserBookmarksGotoPane::NewL
-        (
-        const CCoeControl& aParent,
-        CBrowserFavouritesView* aContentView,
-        const TDesC& aBitmapfile,
-        TInt aIconBitmapId,
-        TInt aIconMaskId,
-        TBool aPopupListStatus,
-        TBool aSearchPaneMode
-        )
-    {
-    CBrowserBookmarksGotoPane* gotoPane =
-        new(ELeave) CBrowserBookmarksGotoPane(aContentView, aSearchPaneMode);
-    CleanupStack::PushL( gotoPane );
-    gotoPane->ConstructL( aParent, aBitmapfile, aIconBitmapId, aIconMaskId, aPopupListStatus );
-    CleanupStack::Pop();    // gotoPane
-    return gotoPane;
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::~CBrowserBookmarksGotoPane
-// ---------------------------------------------------------
-//
-CBrowserBookmarksGotoPane::~CBrowserBookmarksGotoPane()
-    {
-    delete iEditor;
-    delete iInputFrame;
-    delete iSkinContext;
-    delete iInputContext;
-    delete iBAdaptiveListPopup;
-    delete iDefaultSearchText;
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::BeginEditingL()
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::BeginEditingL()
-    {
-    if ( !iFrozen )
-        {
-        // If its a GoTo Pane Mode.
-        if( !iSearchPaneMode )
-            {
-            if( iView->ApiProvider().Preferences().SearchFeature() )
-                {
-                // If there is no text, then we need to place back
-                // the default text, else preserve the previously
-                // typed text.
-                HBufC* text = iEditor->GetTextInHBufL();
-                if( !text )
-                    {
-                    SetTextL( KWWWString );
-                    }
-                else
-                    {
-                    delete text;
-                    }
-                }
-            else
-                SetTextL( KWWWString );
-            }
-        else
-            {
-            if( iView->ApiProvider().Preferences().SearchFeature()  )
-                {
-                //Clear searchpane on focus if default text is there
-                HBufC* text = iEditor->GetTextInHBufL();
-                if ( text )
-                    {
-                    CleanupStack::PushL( text );
-                    if ( !text->Compare( iDefaultSearchText->Des() ) )
-                        {
-                        iEditor->SetTextL( &KNullDesC );
-                        }
-                    CleanupStack::PopAndDestroy( text );
-                    }
-                }
-            }
-
-        MakeVisible( ETrue );
-        SetEditingL( ETrue );
-        iEditor->SetCursorPosL( iEditor->TextLength(), EFalse );
-        if (AknLayoutUtils::PenEnabled()
-                &&  ( !iView->ApiProvider().Preferences().SearchFeature())  )
-            {
-            ActivateVkbL();
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::CancelEditingL()
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::CancelEditingL()
-    {
-    if ( !iFrozen )
-        {
-        // Clear selection when focus moved, only
-        // affects when both the editors are visible.
-        // no need for condition.
-        TInt pos = iEditor->CursorPos();
-        iEditor->SetSelectionL(pos,pos);
-        SetEditingL( EFalse );
-
-        // Cancel Adaptive List popup if its active
-        if ( NULL != iBAdaptiveListPopup)
-            {
-            iBAdaptiveListPopup->SetDirectoryModeL( ETrue );
-            iBAdaptiveListPopup->HidePopupL();
-            }
-        }
-
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::SetTextL
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::SetTextL
-( const TDesC& aText, TBool aClipToFit /*=ETrue*/, TBool aCancelEditing )
-    {
-
-    CFbsFont * font = NULL;
-
-    if ( !iFrozen )
-        {
-        if ( aClipToFit && aText.Length() )
-            {
-            // Allocate 3 chars more (make sure "..." fits).
-            HBufC* buf = HBufC::NewLC( aText.Length() + 3 );
-            *buf = aText;
-            TPtr ptr( buf->Des() );
-            CTextView* textView = iEditor->TextView();
-            if ( textView )
-                {
-                //The Textview does not use the iConEnv->NormalFont() for drawing so we can not use it for measurement.
-                //Textview uses the default char format font for drawing. See bug: EHCN-6U59SN
-                TBuf<KMaxTypefaceNameLength> typeface;
-                CEikonEnv::Static()->ReadResource(typeface,R_EIK_DEFAULT_CHAR_FORMAT_TYPEFACE);
-                TResourceReader reader;
-                CEikonEnv::Static()->CreateResourceReaderLC(reader,R_EIK_DEFAULT_CHAR_FORMAT_HEIGHT);
-                TInt height =  reader.ReadInt16();
-                CleanupStack::PopAndDestroy(); // reader
-
-                TFontSpec fontSpec(typeface, height);
-                CEikonEnv::Static()->ScreenDevice()->GetNearestFontInTwips((CFont*&)font, fontSpec);
-
-                AknTextUtils::ClipToFit
-                    (
-                    ptr,
-                    *font,
-                    textView->ViewRect().Width() - KRightSpace
-                    );
-                }
-            iEditor->SetTextL( &ptr );
-            CleanupStack::PopAndDestroy();  // buf
-            }
-        else
-            {
-            if( iSearchPaneMode )
-                {
-                iEditor->SetTextL( &aText );
-                }
-            else
-                {
-                if ( aText.Length() )
-                    {
-                    iEditor->SetTextL( &aText );
-                    }
-                else
-                    {
-                    TBufC<16> buf(KAddressText);
-                    HBufC* tmpBuf = NULL;
-                    tmpBuf = buf.AllocLC();
-                    iEditor->SetTextL( tmpBuf );
-                    CleanupStack::PopAndDestroy(); // tmpBuf
-                    }
-                }
-            }
-
-        iEditor->SetCursorPosL( iEditor->TextLength(), EFalse );
-        if ( !iEverFocused )
-            {
-            iEditor->SetFocus( ETrue );
-            }
-
-        if ( !iEverFocused )
-            {
-            iEditor->SetFocus( IsFocused() );
-            iEverFocused = ETrue;
-            }
-            SetEditingL( !aCancelEditing );
-            DrawDeferred();
-        }
-
-      // release font if it was used
-      if (font != NULL)
-          {
-          CEikonEnv::Static()->ScreenDevice()->ReleaseFont(font);
-          }
-
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::GetTextL
-// ---------------------------------------------------------
-//
-HBufC* CBrowserBookmarksGotoPane::GetTextL()
-    {
-    HBufC* text = HBufC::NewL( iEditor->TextLength() + 1 );
-    TPtr ptr = text->Des();
-    iEditor->GetText( ptr );
-    ptr.ZeroTerminate();
-    if( !iSearchPaneMode )
-        {
-        Util::EncodeSpaces(text);
-        }
-
-    return text;
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::SetObserver
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::SetGPObserver
-( MBookmarksGotoPaneObserver* aObserver )
-    {
-    /*__ASSERT_DEBUG( !iGPObserver, \
-        Util::Panic( Util::EGotoPaneObserverAlreadySet ) );*/
-    iGPObserver = aObserver;
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::SetLineState
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::SetLineState( TBool aLineVisible )
-    {
-    iInputFrame->SetLineState( aLineVisible );
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::OfferKeyEventL
-// ---------------------------------------------------------
-//
-// Note:
-//
-//   Below, there are several keys in the ISO-Latin-1 range that we
-//   exclude from use in a URL:
-//
-//     - EStdKeyDevice10 0xC9  E-accent acute         Northwest
-//     - EStdKeyDevice11 0xCA  E-accent circumflex    Northeast
-//     - EStdKeyDevice12 0xCB  E-umlaut               Southeast
-//     - EStdKeyDevice13 0xCC  I-accent grave         Southwest
-//
-//   While these ought to be vaguely acceptable in certain parts of a URL,
-//   they are also used by some navigation drivers as our "diagonal event"
-//   codes so turn up as the user navigates the cursor. Because of this,
-//   today, we prevent them from being inserted as characters. There's
-//   a second set of code ranges (in the 0x8XXX range) that's also defined
-//   for these events; if the driver writers ever manage to get all of
-//   the navigation drivers using this "out-of-band" range, we can
-//   eliminate filtering the ISO-Latin-1 range of characters that we
-//   do here.
-//
-//
-
-TKeyResponse CBrowserBookmarksGotoPane::OfferKeyEventL
-( const TKeyEvent& aKeyEvent, TEventCode aType )
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    TChar iInputChar = TChar( aKeyEvent.iScanCode );
-
-
-    if ( iBAdaptiveListPopup )
-        {
-        response = iBAdaptiveListPopup->OfferKeyEventL( aKeyEvent, aType );
-        }
-
-    if ( iEditing && response != EKeyWasConsumed)
-        {
-        // Editing; most keys simply forwarded to the editor.
-        switch ( aKeyEvent.iCode )
-            {
-            case EKeyOK:
-                {
-                response = EKeyWasConsumed;     // MSK is now handled through HandleCommand in BrowserBookmarksView
-                break;
-                }
-
-            case EKeyRightUpArrow:              // Northeast
-            case EStdKeyDevice11:               //   : Extra KeyEvent supports diagonal event simulator wedge
-            case EKeyRightDownArrow:            // Southeast
-            case EStdKeyDevice12:               //   : Extra KeyEvent supports diagonal event simulator wedge
-            case EKeyLeftDownArrow:             // Southwest
-            case EStdKeyDevice13:               //   : Extra KeyEvent supports diagonal event simulator wedge
-            case EKeyLeftUpArrow:               // Northwest
-            case EStdKeyDevice10:               //   : Extra KeyEvent supports diagonal event simulator wedge
-                {                               // Here, "eat" all of the diagonals so they have no effect...
-                response = EKeyWasConsumed;
-                break;
-                }
-
-            case EKeyEnter:
-                // Handle EnterKey as "GOTO" for Touch, VKB's enter key
-                if ( AknLayoutUtils::PenEnabled() )
-                        {
-                        CBrowserAppUi::Static()->ActiveView()->HandleCommandL(EWmlCmdGotoPaneGoTo);
-                        // In case of search feature, we need to pass EKeyWasConsumed for EKeyEnter
-                        if ( iView->ApiProvider().Preferences().SearchFeature() )
-                            {
-                            response = EKeyWasConsumed;
-                            }
-                        break;
-                        }
-
-            // Else *FALL THROUGH* to default in case Pen is not enabled.
-            default:
-                {
-                response = iEditor->OfferKeyEventL(aKeyEvent, aType );
-                break;
-                }
-            }
-
-         // In the absence of search feature
-         // Force key event to be consumed if you're editing
-         // regardless of what's happened to it.
-         //
-         // This forces user to press cancel to continue other tasks
-         if ( !iView->ApiProvider().Preferences().SearchFeature() )
-             {
-             response = EKeyWasConsumed;
-             }
-        }
-    else if ( response != EKeyWasConsumed )
-        {
-        // Key consumed yet? If not, process onwards...
-        if ( (aKeyEvent.iScanCode == EStdKeyHash)  ||
-                ( aKeyEvent.iModifiers &
-                ( EModifierShift | EModifierLeftShift | EModifierRightShift |
-                EModifierCtrl | EModifierLeftCtrl | EModifierRightCtrl ) ) )
-            {
-
-            // Hash key press will be used for Mark/UnMark functionality
-            // Let Platform Listbox handle this.
-            response = EKeyWasNotConsumed;
-            }
-
-        //
-        // Not currently editing the GoTo pane.
-        // Catch alpha and numeric to pop
-        // up goto pane
-        //
-        // Only popup the GoTo Pane with a KeyDown event.
-        // Otherwise, if browser is pushed to the backround (but still active)
-        // in favor of the App Shell, A long "0" press will reactivate the browser and
-        // leave a KeyUp to (wrongly) pop the pane up
-        //
-        // Note that we exclude Unicode 0xC4 and 0xC5 which
-        // are defined as EStdkeyYes and EStdkeyNo. These
-        // map to the Send and End keys respectively. Normally,
-        // 0xC4 and 0xC5 can be considered alpha digits, but we
-        // exclude them so that they will not pop the GoTo pane
-        //
-        // We do the same thing for all of the diagonal motion events
-        //   so they have no effect either.
-        //
-        // Otherwise, key event is generated again (to channel through FEP)
-        //
-        else if (    !iFrozen
-                  && aType == EEventKeyDown
-                  && iInputChar.IsAlphaDigit()          // We want alpha numeric keys to popup goto pane
-                  && iInputChar != EStdKeyYes           // Ignore Send (green key)
-                  && iInputChar != EStdKeyNo            // Ignore End (red key)
-                  && iInputChar != EKeyRightUpArrow     // Ignore Northeast
-                  && iInputChar != EStdKeyDevice11      //   : Extra KeyEvent supports diagonal event simulator wedge
-                  && iInputChar != EKeyRightDownArrow   // Ignore Southeast
-                  && iInputChar != EStdKeyDevice12      //   : Extra KeyEvent supports diagonal event simulator wedge
-                  && iInputChar != EKeyLeftDownArrow    // Ignore Southwest
-                  && iInputChar != EStdKeyDevice13      //   : Extra KeyEvent supports diagonal event simulator wedge
-                  && iInputChar != EKeyLeftUpArrow      // Ignore Northwest
-                  && iInputChar != EStdKeyDevice10 )    //   : Extra KeyEvent supports diagonal event simulator wedge
-            {
-            // These keys activate the Goto Pane.
-            // We'll consume the key event so it ends here
-            response = EKeyWasConsumed;
-
-            BeginEditingL();
-
-            iEditor->SetCursorPosL( iEditor->TextLength(), EFalse );
-            iCoeEnv->SyncNotifyFocusObserversOfChangeInFocus();
-            iCoeEnv->SimulateKeyEventL( aKeyEvent, aType );
-            }
-        else
-            {
-            // Other keys do not activate the Goto Pane.
-            // Let someone else take the key event
-            response = EKeyWasNotConsumed;
-            }
-        }
-    return response;
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::CountComponentControls
-// ---------------------------------------------------------
-//
-TInt CBrowserBookmarksGotoPane::CountComponentControls() const
-    {
-    return 2;
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::ComponentControl
-// ---------------------------------------------------------
-//
-CCoeControl* CBrowserBookmarksGotoPane::ComponentControl
-( TInt aIndex ) const
-    {
-    switch ( aIndex )
-        {
-        case 0:
-            {
-            return iInputFrame;
-            }
-
-        case 1:
-            {
-            return iEditor;
-            }
-
-        default:
-            {
-            return NULL;
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::FocusChanged
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::FocusChanged( TDrawNow aDrawNow )
-    {
-    iEditor->SetFocus( IsFocused(), aDrawNow );
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::CBrowserBookmarksGotoPane
-// ---------------------------------------------------------
-//
-CBrowserBookmarksGotoPane::CBrowserBookmarksGotoPane(CBrowserFavouritesView* aView, TBool aSearchPaneMode)
-:   iView( aView ),
-    iEditing( EFalse ),
-    iFrozen( EFalse ),
-    iBAdaptiveListPopup( NULL ),
-    iSearchPaneMode( aSearchPaneMode )
-    {
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::ConstructL
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::ConstructL ( const CCoeControl& aParent, const TDesC& aBitmapfile,
-        TInt aIconBitmapId, TInt aIconMaskId, TBool aPopupListStatus )
-
-    {
-    SetContainerWindowL( aParent ); // This is now non-window owning control
-    SetMopParent(const_cast<CCoeControl*>(&aParent));
-    iEditor = new (ELeave) CEikEdwin;
-    iInputFrame = CAknInputFrame::NewL( iEditor, EFalse, aBitmapfile,
-                                    aIconBitmapId, aIconMaskId, 0 );
-    iInputFrame->SetContainerWindowL( *this );
-    iEditor->SetContainerWindowL( *this );
-    AknEditUtils::ConstructEditingL(iEditor, KFavouritesMaxUrlGotoPaneDefine, 1, EAknEditorCharactersLowerCase, EAknEditorAlignRight, EFalse, ETrue, EFalse);
-    iEditor->AddFlagToUserFlags( CEikEdwin::EAlwaysShowSelection );
-    iEditor->SetBorder( TGulBorder::ENone );
-    iEditor->SetAknEditorCase( EAknEditorLowerCase );
-    iEditor->SetAknEditorInputMode( EAknEditorTextInputMode );
-    iEditor->SetSkinBackgroundControlContextL(NULL);
-    if (AVKONAPAC)
-        {
-        // Disallow chinese input.
-        iEditor->SetAknEditorAllowedInputModes( EAknEditorTextInputMode | EAknEditorNumericInputMode );
-        }
-
-    // In Search Mode we allow all types of inputs
-    TInt editorFlags( (iSearchPaneMode ? EAknEditorFlagDefault : EAknEditorFlagLatinInputModesOnly) | EAknEditorFlagUseSCTNumericCharmap );
-
-    // Always disable T9 input for goto url
-    editorFlags = (editorFlags | EAknEditorFlagNoT9);
-
-    iEditor->SetAknEditorFlags( editorFlags );
-
-
-    iEditor->SetAknEditorPermittedCaseModes( EAknEditorUpperCase | EAknEditorLowerCase );
-
-    iEditor->CreateTextViewL();
-    SetupSkinContextL();
-    iEditing = EFalse;
-    TBool searchFeature = iView->ApiProvider().Preferences().SearchFeature();
-    if ( searchFeature )
-        {
-        HBufC* searchProvider = HBufC::NewLC( KMaxTitleLength );
-        TPtr searchProviderPtr = searchProvider->Des();
-
-        iView->ApiProvider().Preferences().GetStringValueL( KBrowserSearchProviderTitle,
-            KMaxTitleLength , searchProviderPtr);
-        if( searchProvider->Length() == 0 )
-            {
-            iDefaultSearchText = StringLoader::LoadL( R_IS_WEB_SEARCH );
-            }
-        else
-            {
-            iDefaultSearchText = searchProvider->AllocL();
-            }
-        CleanupStack::PopAndDestroy(searchProvider);
-        }
-
-    //adaptive popuplist
-    iBAdaptiveListPopup = NULL;
-    if( aPopupListStatus && AUTOCOMP ) //ask the feature manager
-        {
-        iBAdaptiveListPopup= new (ELeave) CBrowserAdaptiveListPopup(
-            iEditor, this, EBookmarksGotoPane, searchFeature);
-        iBAdaptiveListPopup->ConstructL();
-        iEditor->SetObserver( iBAdaptiveListPopup );
-        if (iView)
-            {
-            iBAdaptiveListPopup->SetUrlSuffixList(iView->ApiProvider().Preferences().URLSuffixList());
-            iBAdaptiveListPopup->SetMaxRecentUrls(iView->ApiProvider().Preferences().MaxRecentUrls());
-            }
-        }
-
-    ActivateL();
-    MakeVisible( EFalse );
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::SizeChanged
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::SizeChanged()
-    {
-    TAknLayoutRect layoutRectTemp;
-    TAknWindowLineLayout windowLayoutTmp, windowLayoutTmp2;
-
-    windowLayoutTmp = AknLayout::Find_pane_elements_Line_4();
-    windowLayoutTmp2 = windowLayoutTmp;
-    layoutRectTemp.LayoutRect( Rect(), windowLayoutTmp2 );
-    iEditor->SetRect( layoutRectTemp.Rect() );
-    iInputFrame->SetRect( Rect() );
-    TRAP_IGNORE(SetupSkinContextL());
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::SetEditingL
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::SetEditingL( TBool aEditing )
-    {
-    if ( aEditing != iEditing )
-        {
-        iEditing = aEditing;
-        SetFocus( iEditing );
-        if ( iGPObserver )
-            {
-            iGPObserver->HandleBookmarksGotoPaneEventL
-                (
-                this,
-                MBookmarksGotoPaneObserver::EEventEditingModeChanged
-                );
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::PopupList
-// ---------------------------------------------------------
-//
-CBrowserAdaptiveListPopup* CBrowserBookmarksGotoPane::PopupList()
-    {
-    return iBAdaptiveListPopup;
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::HandleResourceChange
-// ---------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::HandleResourceChange( TInt aType )
-    {
-    CCoeControl::HandleResourceChange( aType );
-
-    if ( iBAdaptiveListPopup )
-        {
-        iBAdaptiveListPopup->HandleResourceChange( aType );
-        }
-    }
-
-// ---------------------------------------------------------
-// CBrowserBookmarksGotoPane::MopSupplyObject
-// ---------------------------------------------------------
-//
-TTypeUid::Ptr CBrowserBookmarksGotoPane::MopSupplyObject( TTypeUid aId )
-    {
-    return MAknsControlContext::SupplyMopObject( aId, iSkinContext );
-    }
-
-// ----------------------------------------------------------------------------
-// CBrowserBookmarksGotoPane::Editor
-// ----------------------------------------------------------------------------
-CEikEdwin* CBrowserBookmarksGotoPane::Editor() const
-    {
-    return iEditor;
-    }
-
-// ----------------------------------------------------------------------------
-// CBrowserBookmarksGotoPane::HandlePointerEventL
-// ----------------------------------------------------------------------------
-//
-void CBrowserBookmarksGotoPane::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    if (AknLayoutUtils::PenEnabled())
-        {
-        if(iEditor && Rect().Contains(aPointerEvent.iPosition))
-            {
-            iEditor->HandlePointerEventL(aPointerEvent);
-            if ( !iEditing )
-                {
-                SetEditingL( ETrue );
-                iCoeEnv->SyncNotifyFocusObserversOfChangeInFocus();
-                CBrowserAppUi::Static()->UpdateCbaL();
-                }
-            }
-        else
-            {
-            // pointer outside of control
-            CBrowserAppUi::Static()->ActiveView()->HandleCommandL(EWmlCmdGotoPaneCancel);
-            }
-        }
-    }
-// ----------------------------------------------------------------------------
-// CBrowserBookmarksGotoPane::SetupSkinContextL
-// ----------------------------------------------------------------------------
-void CBrowserBookmarksGotoPane::SetupSkinContextL()
-    {
-    TAknsItemID tileIID = KAknsIIDQsnBgColumnA;
-
-    TAknWindowLineLayout tile =
-        Column_background_and_list_slice_skin_placing_Line_2();
-
-    TAknLayoutRect mainPane;
-    mainPane.LayoutRect(
-        iAvkonAppUi->ApplicationRect(),
-        AKN_LAYOUT_WINDOW_main_pane( iAvkonAppUi->ApplicationRect(),
-                                     0, 0, 1) );
-    TAknLayoutRect listRect;
-    listRect.LayoutRect( mainPane.Rect(), AknLayout::list_gen_pane(0) );
-
-    TAknLayoutRect tileRect;
-    tileRect.LayoutRect(mainPane.Rect(), tile);
-
-    if ( !iSkinContext )
-        {
-        iSkinContext = CAknsListBoxBackgroundControlContext::NewL(
-            KAknsIIDQsnBgAreaMainListGene,
-            listRect.Rect(),
-            EUseSkinContext & EParentAbsolute,
-            tileIID,
-            tileRect.Rect() );
-        }
-    else
-        {
-        iSkinContext->SetRect( listRect.Rect() );
-        }
-
-
-    if ( !iInputContext )
-        {
-        iInputContext = CAknsFrameBackgroundControlContext::NewL(
-            KAknsIIDQsnFrInput, TRect(0,0,0,0),TRect(0,0,0,0),EFalse );
-        }
-
-    iInputFrame->SetInputContext(iInputContext);
-    iEditor->SetSkinBackgroundControlContextL(iInputContext);
-
-    }
-
-// ----------------------------------------------------------------------------
-// CBrowserBookmarksGotoPane::ActivateVkbL
-// ----------------------------------------------------------------------------
-void CBrowserBookmarksGotoPane::ActivateVkbL()
-    {
-    if (iEditor && iEditor->TextView())
-        {
-        // make sure observer is set
-        iCoeEnv->SyncNotifyFocusObserversOfChangeInFocus();
-
-        // simulate pointer event to force VKB
-
-        // first get point at cursor location
-        TInt pos = iEditor->CursorPos();
-        CTextView* textView = iEditor->TextView();
-        TPoint curPos;
-        textView->DocPosToXyPosL(pos, curPos);
-
-        TPointerEvent pe;
-        pe.iPosition = curPos;
-
-        pe.iType = TPointerEvent::EButton1Down;
-        iEditor->HandlePointerEventL(pe);
-
-        // VKB will only activate if nothing selected
-        iEditor->SetSelectionL(pos, pos);
-
-        pe.iType = TPointerEvent::EButton1Up;
-        iEditor->HandlePointerEventL(pe);
-        iEditor->SetCursorPosL( iEditor->TextLength(), EFalse );
-
-        }
-    }
-
-
-// ----------------------------------------------------------------------------
-// CBrowserBookmarksGotoPane::SetTextModeItalic
-// ----------------------------------------------------------------------------
-void CBrowserBookmarksGotoPane::SetTextModeItalicL( )
-    {
-
-    // Editor Control is laid in a scalable way, so we need to get the correct font
-    // specification for setting CharFormatLayer, We could have used GetNearestFontInTwips,
-    // as done above in SetTextL() but it does not provide correct fonts for editor.
-    // We do not need to set the FontPosture back to EPostureUpright ( Normal ), as it
-    // is automatically handled by AknLayoutUtils::LayoutEdwinScalable called by
-    // iInputFrame->SetRect(), which overwrites all the properties for Editor.
-
-    TAknTextComponentLayout   editorLayout;
-    TBool apac( AknLayoutUtils::Variant() == EApacVariant && ( CAknInputFrame::EShowIndicators ) );
-    editorLayout = AknLayoutScalable_Avkon::input_find_pane_t1( apac ? 1: 0 );
-    TAknTextLineLayout lineLayout = editorLayout.LayoutLine();
-    TInt fontid =  lineLayout.FontId();
-    const CAknLayoutFont *font = AknLayoutUtils::LayoutFontFromId( fontid  );
-
-    TCharFormat charFormat;
-    TCharFormatMask charFormatMask;
-    charFormat.iFontSpec = font->FontSpecInTwips();
-    charFormat.iFontSpec.iFontStyle.SetPosture( EPostureItalic );
-    charFormatMask.SetAttrib(EAttFontTypeface);
-    charFormatMask.SetAttrib(EAttFontHeight);
-    charFormatMask.SetAttrib(EAttFontStrokeWeight);
-    charFormatMask.SetAttrib(EAttFontPosture);
-
-    // Owner ship of charFormatLayer is taken by Editor
-    CCharFormatLayer* charFormatLayer = NULL;
-    charFormatLayer = CCharFormatLayer::NewL(charFormat,charFormatMask);
-    iEditor->SetCharFormatLayer(charFormatLayer);
-   }
-
-// ----------------------------------------------------------------------------
-// CBrowserBookmarksGotoPane::SetVKBFlag
-// ----------------------------------------------------------------------------
-void CBrowserBookmarksGotoPane::SetVKBFlag( TBool aVKBFlag )
-    {
-#if defined(BRDO_SEARCH_INTEGRATION_FF)
-    if( aVKBFlag )
-        {
-        iEditor->RemoveFlagFromUserFlags( CEikEdwin::EAvkonDisableVKB );
-        }
-    else
-        {
-        iEditor->AddFlagToUserFlags( CEikEdwin::EAvkonDisableVKB );
-        }
-#endif
-    }
-// End of File