diff -r fc42a86c98e3 -r 694fa80c203c textinput/peninputhwrtrui/src/truiinfomessagecontainer.cpp --- a/textinput/peninputhwrtrui/src/truiinfomessagecontainer.cpp Wed Jun 23 04:57:58 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,316 +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 CTruiInfoMessageContainer -* -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "truiinfomessagecontainer.h" -#include "truiappradiobutton.h" -#include "truiappui.h" -#include "truiengine.h" -#include "truicontainerbase.h" - -// Varity of instruct pane both for landscape and portrait -const TInt KVarityInstructPane = 4; - -// Varity of list pane both for landscape and portrait -const TInt KVarityListPane = 2; - -// Varity of symbol option pane both for landscape and portrait -const TInt KVaritySymbolOptionPane = 2; - -// Varity of list symbol option pane both for landscape and portrait -const TInt KVarityListSymbolOptionPane = 1; - - -// ======== MEMBER FUNCTIONS ======== - -CTruiInfoMessageContainer::CTruiInfoMessageContainer() - { - } - -void CTruiInfoMessageContainer::ConstructL( const TRect& aRect ) - { - // Initialize control array - InitComponentArrayL(); - - // Set parent control or owning window - CreateWindowL(); - - // Initialize controls - InitializeControlsL(); - - iLabelText = iEikonEnv->AllocReadResourceL( R_TRUI_INFOMAESSAGEVIEW_MESSAGE ); - iEdwin->SetTextL( iLabelText ); - - SetRect( aRect ); - ActivateL(); - - iBackGround = CAknsBasicBackgroundControlContext::NewL - ( KAknsIIDQsnBgAreaMain, Rect(), EFalse); - iEdwin->SetSkinBackgroundControlContextL( iBackGround ); - } - -CTruiInfoMessageContainer* CTruiInfoMessageContainer::NewL( const TRect& aRect ) - { - CTruiInfoMessageContainer* self = CTruiInfoMessageContainer::NewLC( aRect ); - CleanupStack::Pop( self ); - return self; - } - -CTruiInfoMessageContainer* CTruiInfoMessageContainer::NewLC( const TRect& aRect ) - { - CTruiInfoMessageContainer* self = new (ELeave) CTruiInfoMessageContainer(); - CleanupStack::PushL( self ); - self->ConstructL( aRect ); - return self; - } - -CTruiInfoMessageContainer::~CTruiInfoMessageContainer() - { - delete iBackGround; - delete iLabelText; - } - -// --------------------------------------------------------------------------- -// Do something before exit. -// --------------------------------------------------------------------------- -// -void CTruiInfoMessageContainer::PrepareToExitL() - { - // Save checkbox setting - const RArray& statusArray = - iRadioButtonContainer->StatusArray(); - TBool isDisplayed = statusArray.Count() && statusArray[0] ? EFalse : ETrue; - iEngine->SetDisplayWizard( isDisplayed ); - if ( statusArray.Count() ) - { - SaveSettingIntoIniFileL( KAlwaysDisplayWizardKey, statusArray[0] ); - } - } - -// --------------------------------------------------------------------------- -// Create controls to be displayed in this container. -// --------------------------------------------------------------------------- -// -void CTruiInfoMessageContainer::InitializeControlsL() - { - iRadioButtonContainer = CTruiRadioButton::NewL( this, - CTruiRadioButton:: ECheckBox ); - Components().AppendLC( iRadioButtonContainer ); - CleanupStack::Pop( iRadioButtonContainer ); - - HBufC* radioText1 = iEikonEnv->AllocReadResourceLC - ( R_TRUI_INFOMAESSAGEVIEW_CHECKBOX_TEXT ); - iRadioButtonContainer->AddItem( radioText1, CTruiRadioButton::ENonSelected ); - CleanupStack::Pop( radioText1 ); // transfered ownership - iRadioButtonContainer->HandleItemAdditionL(); - - iEdwin = new (ELeave) CEikEdwin; - iEdwin->ConstructL(); - iEdwin->SetReadOnly( ETrue ); - Components().AppendLC( iEdwin ); - CleanupStack::Pop( iEdwin ); - - } - -// --------------------------------------------------------------------------- -// Create label and display it in the container. -// --------------------------------------------------------------------------- -// -CEikLabel* CTruiInfoMessageContainer::CreateLabelL( const CCoeControl* aParent ) - { - CEikLabel* aknLabel = new (ELeave) CEikLabel(); - CleanupStack::PushL( aknLabel ); - aknLabel->SetContainerWindowL( *aParent ); - aknLabel->ActivateL(); - CleanupStack::Pop( aknLabel ); - return aknLabel; - } - - -// --------------------------------------------------------------------------- -// From class CCoeControl. -// Responds to changes to the size and position of the contents of this control. -// --------------------------------------------------------------------------- -// -void CTruiInfoMessageContainer::SizeChanged() - { - 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(); - - // hwr_training_instruct_pane - TAknWindowComponentLayout instruct_pane_layout = - AknLayoutScalable_Apps::hwr_training_instruct_pane( KVarityInstructPane ); - TAknLayoutRect instruct_pane_layout_rect; - instruct_pane_layout_rect.LayoutRect( main_pane_rect, instruct_pane_layout ); - iInstructPaneRect = instruct_pane_layout_rect.Rect(); - - // count of text rows - TInt count = AknLayoutScalable_Apps:: - list_single_hwr_training_instruct_pane_ParamLimits( KVarityListPane ) - .LastRow() + 1; - - // array contains all text rows in help screen - RArray textLayoutArray; - for( TInt i = 0; i < count; i++ ) - { - // pane area for each row - TAknWindowComponentLayout each_row_layout = - AknLayoutScalable_Apps::list_single_hwr_training_instruct_pane - ( KVarityListPane, 0, i ); - TAknLayoutRect each_row_layout_rect; - each_row_layout_rect.LayoutRect( iInstructPaneRect, - each_row_layout ); - // smaller pane for text itself - TAknTextComponentLayout each_row_text_layout = - AknLayoutScalable_Apps::list_single_hwr_training_instruct_pane_t1(); - - // composition of two latter componets - TAknTextComponentLayout textCompCompositionWiz = - TAknWindowComponentLayout::ComposeText( - each_row_layout, each_row_text_layout ); - - TRAPD( error, textLayoutArray.AppendL( textCompCompositionWiz ) ); - // if error in append function, then just exit the loop - if ( error != KErrNone ) - { - break; - } - } - iMultilineLayout = TAknTextComponentLayout::Multiline( textLayoutArray ); - textLayoutArray.Close(); - - // Do layout for edwin - AknLayoutUtils::LayoutEdwin( iEdwin, - iInstructPaneRect, - iMultilineLayout, - EAknsCIQsnTextColorsCG6 ); - - // Do layout for radio button - // hwr_training_instruct_pane - TAknWindowComponentLayout symbol_option_pane = - AknLayoutScalable_Apps::main_hwr_training_symbol_option_pane - ( KVaritySymbolOptionPane ); - TAknLayoutRect symbol_option_pane_layout_rect; - symbol_option_pane_layout_rect.LayoutRect( main_pane_rect, symbol_option_pane ); - - TAknWindowComponentLayout list_option_pane = - AknLayoutScalable_Apps::list_single_hwr_training_symbol_option_pane - ( KVarityListSymbolOptionPane ); - TAknLayoutRect list_option_pane_layout_rect; - list_option_pane_layout_rect.LayoutRect( symbol_option_pane_layout_rect.Rect(), - list_option_pane ); - // Create multiline text for radion button - // count of text rows - TInt radionLines = AknLayoutScalable_Apps:: - list_single_hwr_training_symbol_option_pane_ParamLimits - ( KVarityListSymbolOptionPane ) - .LastRow() + 1; - - // array contains all text rows in help screen - RArray radionTextLayoutArray; - for( TInt i = 0; i < radionLines; i++ ) - { - // pane area for each row - TAknWindowComponentLayout each_row_layout = - AknLayoutScalable_Apps::list_single_hwr_training_symbol_option_pane - ( KVarityListSymbolOptionPane, 0, i ); - TAknLayoutRect each_row_layout_rect; - each_row_layout_rect.LayoutRect( symbol_option_pane_layout_rect.Rect(), - each_row_layout ); - // smaller pane for text itself - TAknTextComponentLayout each_row_text_layout = - AknLayoutScalable_Apps::list_single_hwr_training_symbol_option_pane_t1(); - - // composition of two latter componets - TAknTextComponentLayout textCompCompositionWiz = - TAknWindowComponentLayout::ComposeText( - each_row_layout, each_row_text_layout ); - - TRAPD( error, radionTextLayoutArray.AppendL( textCompCompositionWiz ) ); - // if error in append function, then just exit the loop - if ( error != KErrNone ) - { - break; - } - } - TAknMultiLineTextLayout radioMultilineLayout - = TAknTextComponentLayout::Multiline( radionTextLayoutArray ); - radionTextLayoutArray.Close(); - iRadioButtonContainer->SetMultilineLayout( radioMultilineLayout ); - iRadioButtonContainer->SetRect( symbol_option_pane_layout_rect.Rect() ); - - if ( iBackGround ) - { - iBackGround->SetRect( Rect() ); - } - } - -// --------------------------------------------------------------------------- -// Draw. -// --------------------------------------------------------------------------- -// -void CTruiInfoMessageContainer::Draw( const TRect& /*aRect*/ ) const - { - // Get the standard graphics context - CWindowGc& gc = SystemGc(); - // Gets the control's extent - TRect rect( Rect()); - // Clears the screen - gc.Clear( rect ); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - if ( AknsDrawUtils::HasBitmapBackground( skin, iBackGround ) ) - { - AknsDrawUtils::Background( skin, iBackGround, gc, rect ); - } - } -// --------------------------------------------------------------------------- -// From class CCoeControl. -// Handles a change to the control's resources. -// --------------------------------------------------------------------------- -// -void CTruiInfoMessageContainer::HandleResourceChange( TInt aType ) - { - CTruiContainerBase::HandleResourceChange( aType ); - if ( aType == KAknsMessageSkinChange ) - { - if ( iEdwin ) - { - // Do layout for edwin - AknLayoutUtils::LayoutEdwin( iEdwin, - iInstructPaneRect, - iMultilineLayout, - EAknsCIQsnTextColorsCG6 ); - } - } - }