--- 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