textinput/peninputhwrtrui/src/truicontainerbase.cpp
changeset 40 2cb9bae34d17
parent 31 f1bdd6b078d1
child 49 37f5d84451bd
--- a/textinput/peninputhwrtrui/src/truicontainerbase.cpp	Tue Jul 06 14:38:41 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,434 +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 CTruiContainerBase
-*
-*/
-
-
-#include <AknDef.h>
-#include <aknbutton.h>
-#include <barsread.h>
-#include <akntoolbar.h>
-#include <e32property.h>
-#include <AvkonInternalCRKeys.h>
-#include <eikapp.h>
-#include <AknsUtils.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <gulicon.h>
-#include <aknview.h>
-#include <s32stor.h>
-
-#include "truicontainerbase.h"
-#include "truiappui.h"
-
-_LIT( KChangeLine, "\n" );
-
-const TSize KHwrBoxSizeLandscape = TSize( 200, 200 );
-
-// ======== MEMBER FUNCTIONS ========
-
-CTruiContainerBase::CTruiContainerBase()
-    {
-    iAppUi = static_cast<CTruiAppUi*>( iAvkonViewAppUi );
-    iEngine = iAppUi->HwrEngine();
-    }
-
-CTruiContainerBase::~CTruiContainerBase()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Get the origin size in which input the model for preset symbols. 
-// ---------------------------------------------------------------------------
-//
-TSize CTruiContainerBase::OriginSymbolSize()
-    {   
-    TRect rect = iAvkonViewAppUi->ClientRect();
-    
-    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();
-    
-    // hwr_training_write_pane
-    TAknWindowComponentLayout write_pane_layout = 
-               AknLayoutScalable_Apps::hwr_training_write_pane( 2 );
-    TAknLayoutRect write_pane_layout_rect;
-    write_pane_layout_rect.LayoutRect( main_pane_rect, write_pane_layout );
-    
-    TAknWindowComponentLayout drawable_rect_layout = 
-               AknLayoutScalable_Apps::hwr_training_write_pane_g7( 0 );
-    TAknLayoutRect drawable_rect_layout_rect;
-    drawable_rect_layout_rect.LayoutRect( write_pane_layout_rect.Rect(), 
-                                          drawable_rect_layout );
-    return drawable_rect_layout_rect.Rect().Size();
-    }
-
-// ---------------------------------------------------------------------------
-// Wrap the text to fit the minisize of Label.
-// ---------------------------------------------------------------------------
-//
-TInt CTruiContainerBase::WrapLabelText( const CEikLabel* aLabel, 
-                                            const TDesC& aText,
-                                            TInt aMaxLines, 
-                                            HBufC* aWrappedText )
-    {
-    return DoWrapLabelText( aLabel->Font(), aLabel->Size().iWidth, aText, 
-                            aMaxLines, aWrappedText );
-    }
-
-// ---------------------------------------------------------------------------
-// Wrap the text to fit the minisize of Label.
-// ---------------------------------------------------------------------------
-//
-TInt CTruiContainerBase::WrapLabelText(  const TAknLayoutText& aLayoutText,
-                                         const TDesC& aText,
-                                         TInt aMaxLines, 
-                                         HBufC* aWrappedText )
-    {
-    const CFont* font = aLayoutText.Font();
-    TInt width = aLayoutText.TextRect().Size().iWidth;
-    return DoWrapLabelText( font, width, aText, aMaxLines, aWrappedText );
-    }    
-
-// ---------------------------------------------------------------------------
-// Wrap the text to fit the minisize of Label.
-// ---------------------------------------------------------------------------
-//
-void CTruiContainerBase::WrapLabelTextL(  const CFont* aFont, const TDesC& aText,
-    const RArray<TInt>& aLineWidthArray, 
-    HBufC* aWrappedText )
-    {    
-    if ( aWrappedText && aLineWidthArray.Count() > 0 )
-        {
-        CArrayFixFlat<TInt>* lineWidthArray = new (ELeave) 
-                                CArrayFixFlat<TInt>( aLineWidthArray.Count() );
-        CleanupStack::PushL( lineWidthArray );
-        // Create line array        
-        for ( TInt i = 0; i < aLineWidthArray.Count(); i++ )
-            {
-            lineWidthArray->AppendL( aLineWidthArray[i] );
-            }
-        // Do wrap and clip
-        TPtr wrappedTextPtr = aWrappedText->Des();
-        AknTextUtils::WrapToStringAndClipL( aText, *lineWidthArray, *aFont, 
-            wrappedTextPtr );        
-        CleanupStack::PopAndDestroy( lineWidthArray );
-        }    
-    }    
-
-// ---------------------------------------------------------------------------
-// Create skin specified button from resource.
-// ---------------------------------------------------------------------------
-//
-CAknButton* CTruiContainerBase::CreateButtonL( TInt aResourceId, 
-                                               const CCoeControl* aParent, 
-                                               MCoeControlObserver* aObserver )
-    {
-    TResourceReader reader;
-    iEikonEnv->CreateResourceReaderLC( reader, aResourceId );
-    CAknButton* button = ConstructButtonFromResourceL( reader );
-    if ( aParent )
-        {
-        button->SetContainerWindowL( *aParent );
-        }   
-    if ( aObserver )
-        {
-        button->SetObserver( aObserver );    
-        }    
-    CleanupStack::PopAndDestroy(); // reader    
-    return button;
-    }
-
-// ---------------------------------------------------------------------------
-// Add skin specified buttons into toolbar.
-// ---------------------------------------------------------------------------
-//
-void CTruiContainerBase::AddButtonsToToolbarL( CAknToolbar* aToolbar, TInt aResourceId )
-    {
-    TResourceReader reader;
-    iEikonEnv->CreateResourceReaderLC( reader, aResourceId );
-    const TInt buttonCount = reader.ReadInt16();
-    for ( TInt i = 0; i < buttonCount; i++ )
-        {
-        // Create each toolbar item
-        TInt controlType = reader.ReadInt16();
-        TInt commandId = reader.ReadInt16();
-        reader.ReadInt16(); // flags
-        reader.ReadInt16(); // length        
-        CAknButton* button = ConstructButtonFromResourceL( reader );
-        aToolbar->AddItemL( button, controlType, commandId, 0, i );       
-        }
-    CleanupStack::PopAndDestroy(); // reader    
-    }
-
-// ---------------------------------------------------------------------------
-// Return current keyboard mode.
-// ---------------------------------------------------------------------------
-// 
-TInt CTruiContainerBase::CurrentKeyBoardModeL()
-    {
-    RProperty keyboardProperty;
-    CleanupClosePushL( keyboardProperty );
-    User::LeaveIfError( keyboardProperty.Attach( KCRUidAvkon, 
-                                                 KAknQwertyInputModeActive ) );
-    TInt keyboardMode = 0;
-    keyboardProperty.Get( keyboardMode );    
-    CleanupStack::PopAndDestroy( &keyboardProperty ); 
-    return keyboardMode;
-    }
-
-// ---------------------------------------------------------------------------
-// Read setting from ini file to decide if display wizard view.
-// ---------------------------------------------------------------------------
-// 
-void CTruiContainerBase::GetSettingFromIniFileL( TUint32 aKey, TInt& aValue )
-    {
-    CDictionaryStore* iniFile = iAppUi->Application()->OpenIniFileLC( iEikonEnv->FsSession() );
-    RDictionaryReadStream readSteam;
-    readSteam.OpenLC( *iniFile, TUid::Uid( aKey ) );
-    TInt16 value;
-    readSteam >> value;
-    aValue = value;
-    CleanupStack::PopAndDestroy( &readSteam );
-    CleanupStack::PopAndDestroy( iniFile );    
-    }
-
-// ---------------------------------------------------------------------------
-// Save settings into file.
-// ---------------------------------------------------------------------------
-// 
-void CTruiContainerBase::SaveSettingIntoIniFileL( TUint32 aKey, TInt aValue )
-    {
-    CDictionaryStore* iniFile = 
-                 iAppUi->Application()->OpenIniFileLC( iEikonEnv->FsSession() );
-    RDictionaryWriteStream stream;
-    stream.AssignLC( *iniFile, TUid::Uid( aKey ) );
-    stream << (TInt16)aValue;
-    stream.CommitL();
-    iniFile->CommitL();
-    CleanupStack::PopAndDestroy( &stream );
-    CleanupStack::PopAndDestroy( iniFile );
-    }
-
-// ---------------------------------------------------------------------------
-// Get cached color of skin for label control
-// ---------------------------------------------------------------------------
-// 
-TInt CTruiContainerBase::GetCachedLabelTextColor( TRgb& aColor )
-    {
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    // Set pen color to the color of test in main area
-    return AknsUtils::GetCachedColor( skin,
-                                      aColor,
-                                      KAknsIIDQsnTextColors,
-                                      EAknsCIQsnTextColorsCG6 );
-    }
-
-// ---------------------------------------------------------------------------
-// Get cached color of skin for icon
-// ---------------------------------------------------------------------------
-// 
-TInt CTruiContainerBase::GetCachedIcontColor( TRgb& aColor, 
-                                              const TAknsItemID& aColorId, 
-                                              TInt aColorIndex )
-    {
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    // Set pen color to the color of test in main area
-    return AknsUtils::GetCachedColor( skin,
-                                      aColor,
-                                      aColorId,
-                                      aColorIndex );
-    }
-
-// ---------------------------------------------------------------------------
-// Create skin specified button from resource.
-// ---------------------------------------------------------------------------
-//
-CAknButton* CTruiContainerBase::ConstructButtonFromResourceL( TResourceReader& aReader )
-    {
-    TInt flags = aReader.ReadInt16();
-    TPtrC helpText = aReader.ReadTPtrC();
-    TPtrC fileName = aReader.ReadTPtrC();
-    TInt bmpId = aReader.ReadInt16();    
-    TInt bmpMaskId = aReader.ReadInt16();
-    TInt pressId = aReader.ReadInt16();
-    TInt pressMaskId = aReader.ReadInt16();
-    TInt mainItemId = aReader.ReadInt32();
-    TInt minorItemId = aReader.ReadInt32();
-    TInt mainItemPressId = aReader.ReadInt32();
-    TInt minorItemPressId = aReader.ReadInt32();
-    
-    CGulIcon* icon = NULL;
-    TInt length = fileName.Length();
-    if ( fileName.Length() )
-        {
-        TAknsItemID aknItemId = { mainItemId, minorItemId };        
-        
-        // Create icon
-        CFbsBitmap* bitmap;
-        CFbsBitmap* bitmapm;
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        AknsUtils::CreateColorIconL( skin,
-                                     aknItemId,
-                                     KAknsIIDQsnIconColors,
-                                     EAknsCIQsnIconColorsCG30,
-                                     bitmap,
-                                     bitmapm,
-                                     fileName,
-                                     bmpId,
-                                     bmpMaskId,
-                                     KRgbBlack );
-        CleanupStack::PushL( bitmap );
-        CleanupStack::PushL( bitmapm );
-        icon = CGulIcon::NewL( bitmap, bitmapm ); // Ownership transfered
-        CleanupStack::Pop( bitmapm );
-        CleanupStack::Pop( bitmap );        
-        }
-    CleanupStack::PushL( icon );
-    CAknButton* button =  CAknButton::NewL ( icon, 
-                                             NULL,
-                                             NULL,
-                                             NULL,
-                                             KNullDesC, 
-                                             helpText, 
-                                             flags,
-                                             NULL );
-    CleanupStack::Pop( icon );
-    return button;    
-    }
-
-// ---------------------------------------------------------------------------
-// Construct icons from resource.
-// ---------------------------------------------------------------------------
-//
-CGulIcon* CTruiContainerBase::ConstructIconFromResourceL( TInt aResourceId )
-    {
-    TResourceReader reader;
-    iEikonEnv->CreateResourceReaderLC( reader, aResourceId );
-    TInt flags = reader.ReadInt16();
-    TPtrC helpText = reader.ReadTPtrC();
-    TPtrC fileName = reader.ReadTPtrC();
-    TInt bmpId = reader.ReadInt16();    
-    TInt bmpMaskId = reader.ReadInt16();
-    TInt pressId = reader.ReadInt16();
-    TInt pressMaskId = reader.ReadInt16();
-    TInt mainItemId = reader.ReadInt32();
-    TInt minorItemId = reader.ReadInt32();
-    TInt mainItemPressId = reader.ReadInt32();
-    TInt minorItemPressId = reader.ReadInt32();
-    
-    TAknsItemID aknItemId = { mainItemId, minorItemId };    
-    
-    // Create icon
-    CFbsBitmap* bitmap;
-    CFbsBitmap* bitmapm;
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    AknsUtils::CreateColorIconL( skin,
-                                 aknItemId,
-                                 KAknsIIDQsnIconColors,                                 
-                                 EAknsCIQsnIconColorsCG30,
-                                 bitmap,
-                                 bitmapm,
-                                 fileName,
-                                 bmpId,
-                                 bmpMaskId,
-                                 KRgbBlack );
-    CleanupStack::PushL( bitmap );
-    CleanupStack::PushL( bitmapm );
-    CGulIcon* icon = CGulIcon::NewL( bitmap, bitmapm ); // Ownership transfered
-    CleanupStack::Pop( bitmapm );
-    CleanupStack::Pop( bitmap );    
-    CleanupStack::PopAndDestroy(); // reader  
-    return icon;      
-    }
-
-// ---------------------------------------------------------------------------
-// Wrap the text to fit the minisize of Label.
-// ---------------------------------------------------------------------------
-//
-TInt CTruiContainerBase::DoWrapLabelText(  const CFont* aFont, TInt aWidth,
-                                           const TDesC& aText, TInt aMaxLines, 
-                                           HBufC* aWrappedText )
-    {        
-    TInt lineCount;
-    TInt startPos = 0;
-    TInt lines = 1;
-    if ( aWidth <= 0 || !aWrappedText )
-        {
-        return 0;
-        }    
-    TPtrC subText = aText.Mid( startPos, aText.Length() - startPos );    
-    TPtr newTextPtr = aWrappedText->Des();
-    newTextPtr.Copy( KNullDesC ); 
-    while ( ( lineCount = aFont->TextCount( subText, aWidth ) ) < subText.Length() )
-        {
-        // Need to wrap
-        if ( ++lines > aMaxLines )
-            {
-            // Check if it is up to maximum line
-            break;
-            }
-        // get the last char of every line
-        TChar nextCharLine = aText[ startPos + lineCount ];
-        
-        // Decide at which position insert the \n
-        if ( nextCharLine == TChar( ' ' ) )
-            {
-            // Replace nextCharLine with \n
-            newTextPtr.Append( subText.Mid( 0, lineCount ) );
-            newTextPtr.Append( KChangeLine );
-            // And move the startPos for the next loop.
-            startPos += lineCount + 1;
-            }
-        else
-            {
-            // Go forward to find " " and replace it with \n
-            // And move the startPos for the next loop.
-            TPtrC subTextPtr = subText.Mid( 0, lineCount );
-            TInt pos = subTextPtr.LocateReverse( TChar( ' ' ) );
-            if ( pos != KErrNotFound )
-                {
-                newTextPtr.Append( subTextPtr.Left( pos ) );
-                newTextPtr.Append( KChangeLine );
-                startPos += pos + 1;
-                }
-            else
-                {
-                newTextPtr.Append( subTextPtr );
-                newTextPtr.Append( KChangeLine );
-                startPos += lineCount;
-                }
-            }
-        subText.Set( aText.Mid( startPos, aText.Length() - startPos ) );
-        }
-    newTextPtr.Append( subText );
-    return lines;
-    }
-        
-// ---------------------------------------------------------------------------
-// From class CCoeControl.
-// Handles a change to the control's resources.
-// ---------------------------------------------------------------------------
-//
-void CTruiContainerBase::HandleResourceChange( TInt aType )
-    {
-    CCoeControl::HandleResourceChange( aType );
-    if ( aType==KEikDynamicLayoutVariantSwitch && iView )
-        {
-        SetRect( iView->ClientRect() );            
-        }     
-    }