textinput/peninputhwrtrui/src/truitextsettingpagecontainer.cpp
changeset 27 694fa80c203c
parent 24 fc42a86c98e3
child 35 0f326f2e628e
--- a/textinput/peninputhwrtrui/src/truitextsettingpagecontainer.cpp	Wed Jun 23 04:57:58 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,343 +0,0 @@
-/*
-* Copyright (c) 2007 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:  Implement of class CTruiTextSettingPageContainer
-*
-*/
-
-
-#include <aknlayoutscalable_apps.cdl.h>
-#include <AknsControlContext.h>
-#include <AknPreviewPopUpController.h>
-#include <AknPreviewPopUpObserver.h>
-#include <layoutmetadata.cdl.h>
-
-#include "truitextsettingpagecontainer.h"
-#include "truihwrbox.h"
-#include "truiappui.h"
-#include "truiengine.h"
-#include "truishortcutsview.h"
-#include "truiapplication.h"
-#include "truiinfomessageview.h"
-#include "truishortcuteditview.h"
-#include "truishortcutedittextview.h"
-#include "trui.hrh"
-#include "truicontainerbase.h"
-
-// Initialized size for hwrbox
-const TSize KHwrboxSize = TSize( 100, 100 );
-
-// The x-cordination of hwrbox pos
-const TInt KHwrBoxPosPortraitX = 60;
-const TInt KHwrBoxPosLandscapeX = 100;
-
-const TInt KPopupWindowVarity = 1;
-
-const TInt KParaDelimiterSize = 1;
-
-_LIT( KParaDelimiterFormat, "%c" );
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Constructor.
-// ---------------------------------------------------------------------------
-//
-CTruiTextSettingPageContainer::CTruiTextSettingPageContainer
-                ( TInt aResourceID, TDes& aText, TInt aTextSettingPageFlags )
-             :CAknTextSettingPage( aResourceID, aText, aTextSettingPageFlags )
-    {  
-    }
-    
-// ---------------------------------------------------------------------------
-// Perform the second phase construction of a CTruiMainViewContainer object.
-// ---------------------------------------------------------------------------
-//
-void CTruiTextSettingPageContainer::ConstructL( const TRect& aRect, TBool aEnableHwrBox )
-    {
-    CAknTextSettingPage::ConstructL();
-    TextControl()->SetObserver( this );
-    // Check character model 
-    CEikEdwin* edwin = static_cast<CEikEdwin*>( EditorControl() );
-    HBufC* shortcutText = edwin->GetTextInHBufL();    
-    if ( shortcutText )
-        {        
-        // Replace paragraph seperator to line break
-        TPtr ptr = shortcutText->Des();
-        TBuf<KParaDelimiterSize> paraDelimiter;
-        paraDelimiter.Format( KParaDelimiterFormat, EKeyEnter ); 
-        AknTextUtils::ReplaceCharacters( ptr, paraDelimiter, 
-                                TChar( CEditableText::EParagraphDelimiter ) );
-        CleanupStack::PushL( shortcutText );
-        edwin->SetTextL( shortcutText );
-        CleanupStack::PopAndDestroy( shortcutText );
-        }    
-        
-    if ( aEnableHwrBox )
-        {
-        CTruiAppUi* appUi = static_cast<CTruiAppUi*>( iAvkonViewAppUi );
-        CTruiEngine* engine = appUi->HwrEngine();
-        if ( engine->CheckShortcutModel( engine->Shortcut() ) )
-            {
-            // Create hwrbox            
-            iHwrBox = CTruiHwrBox::NewL( NULL, NULL );
-            iHwrBox->SetHwrBoxFlag( CTruiHwrBox::ENoFrameHwrBox 
-                                    | CTruiHwrBox::EReadOnlyHwrBox);
-            
-            // Create preview popup
-            iPopupController = CAknPreviewPopUpController::NewL
-                      ( *iHwrBox, CAknPreviewPopUpController::EPermanentMode );            
-            iPopupController->AddObserverL( *this );
-            // Set guide line
-            iHwrBox->SetDisplayBottomGuideLine( ETrue );
-            if ( engine->CurrentLanguageScript() == EMainViewSubmenuHebrew )
-                {
-                iHwrBox->SetDisplayTopGuideLine( ETrue );
-                }
-            iPopupController->SetPopUpShowDelay( 0 );            
-            }                          
-        }
-    SetRect( aRect );
-    if ( iPopupController )
-        {
-        iPopupController->ShowPopUp();
-        }    
-    ActivateL();
-    }
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CTruiTextSettingPageContainer* CTruiTextSettingPageContainer::NewL
-                                                ( TInt aResourceId, 
-                                                  TDes& aText,
-                                                  const TRect& aRect,
-                                                  TBool aEnableHwrBox,
-                                                  TInt aTextSettingPageFlags )
-    {
-    CTruiTextSettingPageContainer* self = CTruiTextSettingPageContainer::NewLC
-                                                  ( aResourceId, aText,
-                                                    aRect,
-                                                    aEnableHwrBox,
-                                                    aTextSettingPageFlags );
-    CleanupStack::Pop( self );
-    return self;
-    }
-    
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CTruiTextSettingPageContainer* CTruiTextSettingPageContainer::NewLC
-                                                ( TInt aResourceId, 
-                                                  TDes& aText, 
-                                                  const TRect& aRect,
-                                                  TBool aEnableHwrBox,
-                                                  TInt aTextSettingPageFlags )
-    {
-    CTruiTextSettingPageContainer* self = new (ELeave) 
-                                          CTruiTextSettingPageContainer
-                                                 ( aResourceId, aText,
-                                                   aTextSettingPageFlags );
-    CleanupStack::PushL( self );
-    self->ConstructL( aRect, aEnableHwrBox );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-
-CTruiTextSettingPageContainer::~CTruiTextSettingPageContainer()
-    {
-    delete iPopupController;
-    delete iHwrBox;
-    }
-    
-// ---------------------------------------------------------------------------
-// Responds to changes to the size and position of the contents of this control.
-// ---------------------------------------------------------------------------
-//
-void CTruiTextSettingPageContainer::SizeChanged()
-    {
-    CAknTextSettingPage::SizeChanged();
-    
-    if ( iHwrBox )
-        {
-        // caculate main pane
-        TRect rect = Rect();    
-        TAknWindowComponentLayout main_pane_layout = 
-                                AknLayoutScalable_Apps::main_hwr_training_pane();
-        TAknLayoutRect main_pane_layout_rect;
-        main_pane_layout_rect.LayoutRect( rect, main_pane_layout );
-        TRect main_pane_rect = main_pane_layout_rect.Rect();
-        
-        // Calculate popup_hwr_training_preview_window
-        TAknWindowComponentLayout preview_popup_layout = 
-                   AknLayoutScalable_Apps::popup_hwr_training_preview_window
-                                                         ( KPopupWindowVarity );
-        TAknLayoutRect preview_popup_layout_rect;
-        preview_popup_layout_rect.LayoutRect( main_pane_rect, preview_popup_layout );
-                
-        TPoint labelPos = TextLabel()->PositionRelativeToScreen();
-        TPoint hwrPos = TPoint( 0, 0 );
-        if ( TBidiText::ScriptDirectionality( User::Language() )
-                                              ==  TBidiText::ELeftToRight )
-            {
-            TInt offset = Layout_Meta_Data::IsLandscapeOrientation() ?
-                          KHwrBoxPosLandscapeX : KHwrBoxPosPortraitX;
-            hwrPos = labelPos + TPoint( offset, TextLabel()->Size().iHeight );
-            }
-        else
-            {
-            hwrPos = labelPos + TPoint( TextLabel()->Size().iWidth, 
-                            		TextLabel()->Size().iHeight );
-            }
-
-        iHwrBox->SetSize( preview_popup_layout_rect.Rect().Size() );
-        iPopupController->SetPosition( hwrPos );
-        }
-    }
-    
-// ---------------------------------------------------------------------------
-// Processes events from the softkeys.     
-// ---------------------------------------------------------------------------
-//
-void CTruiTextSettingPageContainer::ProcessCommandL( TInt aCommandId )
-    {
-    HideMenu();    
-    switch ( aCommandId )
-        {
-        case EAknSoftkeyOk:
-        case EAknSoftkeySelect:
-            {
-            // Get the current text in setting page
-            CTruiAppUi* appUi = static_cast<CTruiAppUi*>( iAvkonViewAppUi );
-            CTruiEngine* engine = appUi->HwrEngine();
-            CEikEdwin* edwin = static_cast<CEikEdwin*>( EditorControl() );
-            HBufC* shortcutText = edwin->GetTextInHBufL();
-            CleanupStack::PushL( shortcutText );
-            // Replace paragraph seperator to line break            
-            TPtr ptr = shortcutText->Des();
-            TBuf<KParaDelimiterSize> paraDelimiter;
-            paraDelimiter.Format( KParaDelimiterFormat, CEditableText::EParagraphDelimiter );
-            AknTextUtils::ReplaceCharacters( ptr, paraDelimiter, TChar( EKeyEnter ) );
-            // Update new text
-            engine->ChangeShortcutTextL( *shortcutText );
-            // Recalculate selected index of shortcut list
-            // Update shortcut list
-            engine->UpdateShortcutListL();
-            // Find the current shortcut's index in shortcut list
-            TInt index = 0;
-            CDesCArray* shortcutList = engine->ShortcutTextList();
-            if ( shortcutList )
-                {                
-                TInt ret = 0;
-                ret = shortcutList->Find( *shortcutText, index );
-                if ( ret == KErrNotFound )
-                    {
-                    TInt oldIndex = engine->CurrentSelectedIndex();
-                    index = ( oldIndex > shortcutList->Count() ) 
-                                       ? shortcutList->Count() : oldIndex;
-                    }
-                }
-            // Set current index in Engine
-            engine->SetCurrentSelectedIndex( index + 1 );           
-            CleanupStack::PopAndDestroy( shortcutText );            
-            // Store the content of setting page
-            UpdateSettingL();
-            CTruiShortcutEditTextView* view = 
-                                     static_cast<CTruiShortcutEditTextView*>
-                              ( appUi->View( KTruiShortcutEditTextViewId ) );
-            if ( view->StartViewId() == 
-                        TVwsViewId( KUidtruiApp, KTruiInfoMessageViewId ) )
-                {
-                ProcessCommandL( EAknSoftkeyNext );
-                }
-            else
-                {
-                // Switch to shortcuts view.
-                iAvkonViewAppUi->ActivateLocalViewL
-                                            ( view->StartViewId().iViewUid );
-                }
-            break;
-            }
-        case EAknSoftkeyCancel:
-            {
-            iAvkonViewAppUi->ActivateLocalViewL( KTruiShortcutsViewId );
-            break;
-            }
-        case EAknSoftkeyNext:
-            {
-            UpdateSettingL();
-            // Get the current text in setting page
-            CTruiAppUi* appUi = static_cast<CTruiAppUi*>( iAvkonViewAppUi );
-            CTruiEngine* engine = appUi->HwrEngine();
-            CEikEdwin* edwin = static_cast<CEikEdwin*>( EditorControl() );
-            HBufC* shortcutText = edwin->GetTextInHBufL();
-            CleanupStack::PushL( shortcutText );
-            // Replace paragraph seperator to line break            
-            TPtr ptr = shortcutText->Des();
-            TBuf<KParaDelimiterSize> paraDelimiter;
-            paraDelimiter.Format( KParaDelimiterFormat, CEditableText::EParagraphDelimiter );
-            AknTextUtils::ReplaceCharacters( ptr, paraDelimiter, TChar( EKeyEnter ) );
-            engine->SetShortcut( ptr );            
-            CleanupStack::PopAndDestroy( shortcutText );                        
-            iAvkonViewAppUi->ActivateLocalViewL( KTruiShortcutEditViewId );
-            break;
-            }
-        case EAknSoftkeyBack:
-            {
-            CTruiAppUi* appUi = static_cast<CTruiAppUi*>( iAvkonViewAppUi );
-            CTruiEngine* engine = appUi->HwrEngine();            
-            if ( engine->DisplayWizard() )
-                {
-                iAvkonViewAppUi->ActivateLocalViewL( KTruiInfoMessageViewId );
-                }
-            else
-                {
-                iAvkonViewAppUi->ActivateLocalViewL( KTruiShortcutsViewId );
-                }
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// From MAknPreviewPopUpObserver
-// Called by the preview popup when an appropriate event takes place.
-// ---------------------------------------------------------------------------
-// 
-void CTruiTextSettingPageContainer::HandlePreviewPopUpEventL(
-      CAknPreviewPopUpController* aController, TPreviewPopUpEvent aEvent )
-    {
-    if ( aController == iPopupController && aEvent == EPreviewPopUpShown )
-        {
-        CTruiAppUi* appUi = static_cast<CTruiAppUi*>( iAvkonViewAppUi );
-        CTruiEngine* engine = appUi->HwrEngine();
-        CEikEdwin* edwin = TextControl();
-        HBufC* shortcutText = edwin->GetTextInHBufL();
-        CleanupStack::PushL( shortcutText );
-        // Get character model
-        TUint unicode = 0;
-        TRAPD( err, engine->GetShortcutModelL( engine->Shortcut(), iHwrBox->Model(), unicode ) );
-        if ( err == KErrNone )
-            {
-            TSize refSize = CTruiContainerBase::OriginSymbolSize();
-            iHwrBox->ShowTrails( iHwrBox->Model(), ETrue, refSize );
-            }    
-        CleanupStack::PopAndDestroy( shortcutText );
-        }
-    }