textinput/peninputfingerhwrar/src/peninputfingerhwrarsymboltable.cpp
branchRCL_3
changeset 10 6defe5d1bd39
parent 8 6ceef9a83b1a
child 19 5e18d8c489d6
equal deleted inserted replaced
8:6ceef9a83b1a 10:6defe5d1bd39
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    73     self->ConstructL();
    73     self->ConstructL();
    74     return self;
    74     return self;
    75     }
    75     }
    76 
    76 
    77 // ---------------------------------------------------------------------------
    77 // ---------------------------------------------------------------------------
       
    78 // C++ constructor.
       
    79 // ---------------------------------------------------------------------------
       
    80 //
       
    81 CPeninputArabicFingerHwrSymbolTable::CPeninputArabicFingerHwrSymbolTable( 
       
    82     CFepUiLayout* aFepUiLayout, TInt aControlId )
       
    83     : CControlGroup( aFepUiLayout, aControlId )
       
    84     {
       
    85 	SetControlType(ECtrlControlGroup|ECtrlTactileFeedback);
       
    86 	SetTactileFeedbackType(ETouchFeedbackSensitiveInput);
       
    87     }
       
    88 	
       
    89 // ---------------------------------------------------------------------------
    78 // c++ destructor
    90 // c++ destructor
    79 // ---------------------------------------------------------------------------
    91 // ---------------------------------------------------------------------------
    80 //
    92 //
    81 CPeninputArabicFingerHwrSymbolTable::~CPeninputArabicFingerHwrSymbolTable()
    93 CPeninputArabicFingerHwrSymbolTable::~CPeninputArabicFingerHwrSymbolTable()
    82     {
    94     {
    88 //
   100 //
    89 void CPeninputArabicFingerHwrSymbolTable::OpenSymbolTable()
   101 void CPeninputArabicFingerHwrSymbolTable::OpenSymbolTable()
    90     {
   102     {
    91     CapturePointer( ETrue );
   103     CapturePointer( ETrue );
    92     iPopupVisible = ETrue; 
   104     iPopupVisible = ETrue; 
    93 	UiLayout()->LockArea(UiLayout()->Rect(),this);
   105 	UiLayout()->LockArea(UiLayout()->Rect(),this);  
    94     NavigatePage(0,EPagePosPageNo);
   106     NavigatePage(0,EPagePosPageNo);
    95 	}
   107 	}
    96 
   108 
    97 // ---------------------------------------------------------------------------
   109 // ---------------------------------------------------------------------------
    98 // cancel the popup.
   110 // cancel the popup.
   128 	   {
   140 	   {
   129 	   ReportEvent(EHwrEventOutsideEvent);
   141 	   ReportEvent(EHwrEventOutsideEvent);
   130 	   }
   142 	   }
   131 	else
   143 	else
   132        {
   144        {
       
   145 	    #ifdef RD_TACTILE_FEEDBACK
       
   146         if (UiLayout()->SupportTactileFeedback())
       
   147             {
       
   148             UiLayout()->DoTactileFeedback(ETouchFeedbackSensitiveInput);
       
   149             }
       
   150         #endif //RD_TACTILE_FEEDBACK
   133 	   ctrl->UpdateArea(ctrl->Rect(),EFalse);
   151 	   ctrl->UpdateArea(ctrl->Rect(),EFalse);
   134 	   }	
   152 	   }	
   135 	   
   153 	   
   136     return ctrl;
   154     return ctrl;
   137     }
   155     }
   172 	    UpdateArea(iRect,EFalse);
   190 	    UpdateArea(iRect,EFalse);
   173 	    }
   191 	    }
   174 	
   192 	
   175     return ctrl;
   193     return ctrl;
   176     }
   194     }
   177 
       
   178 // ---------------------------------------------------------------------------
       
   179 // C++ constructor.
       
   180 // ---------------------------------------------------------------------------
       
   181 //
       
   182 CPeninputArabicFingerHwrSymbolTable::CPeninputArabicFingerHwrSymbolTable( 
       
   183     CFepUiLayout* aFepUiLayout, TInt aControlId )
       
   184     : CControlGroup( aFepUiLayout, aControlId )
       
   185     {
       
   186     }
       
   187     
   195     
   188 // ---------------------------------------------------------------------------
   196 // ---------------------------------------------------------------------------
   189 // Symbian second-phase constructor.
   197 // Symbian second-phase constructor.
   190 // ---------------------------------------------------------------------------
   198 // ---------------------------------------------------------------------------
   191 //
   199 //
   192 void CPeninputArabicFingerHwrSymbolTable::ConstructL()
   200 void CPeninputArabicFingerHwrSymbolTable::ConstructL()
   193     {
   201     {
   194     BaseConstructL(); 
   202     BaseConstructL(); 
   195 	
   203 	
   196     //disable border
   204     // disable border
   197     SetBorderSize( TSize(0,0) );
   205     SetBorderSize( TSize(0,0) );
   198     
   206     
       
   207 	// construct virtual keypad
   199 	CreateVirtualKeypadL();
   208 	CreateVirtualKeypadL();
   200 	
   209 	
       
   210 	// construct button group
   201     CreateButtonGroupL();
   211     CreateButtonGroupL();
   202     }
   212     }
   203 
   213 
       
   214 // ---------------------------------------------------------------------------
       
   215 // SizeChanged
       
   216 // ---------------------------------------------------------------------------
       
   217 //	
   204 void CPeninputArabicFingerHwrSymbolTable::SizeChanged(
   218 void CPeninputArabicFingerHwrSymbolTable::SizeChanged(
   205                      const TSize /*aKeypadSize*/, const TSize aButtonSize,
   219                      const TRect aVirtualKeypadRect, const RArray<TRect> aBtnRects,
   206                      const TInt aKeypadRow, const TInt aKeypadCol, TBool aIsLandscape)
   220                      const TInt aKeypadRow, const TInt aKeypadCol, TBool aIsLandscape)
   207     {
   221     {
   208 	iIsLandscape = aIsLandscape;
   222 	iIsLandscape = aIsLandscape;
   209 	
   223 	
   210 	// relayout the button group
   224 	// relayout the button group
   211 	TRect spaceBtnRect(iRect.iTl,iRect.iTl+TPoint(aButtonSize.iWidth,aButtonSize.iHeight));
   225 	TRect spaceBtnRect(aBtnRects[0]);
   212 	
   226 	
   213 	TInt pdx = (spaceBtnRect.Size().iWidth/3)/2;
   227 	TInt pdx = (spaceBtnRect.Size().iWidth/3)/2;
   214 	MoveIconButton(iSpaceBtn,spaceBtnRect,pdx,KSymbolButtonInnerPadding);
   228 	MoveIconButton(iSpaceBtn,spaceBtnRect,pdx,KSymbolButtonInnerPadding);
   215 	
   229 	
   216 	TRect pieceInnerRect = spaceBtnRect;
   230 	TRect pieceInnerRect = spaceBtnRect;
   217 	pieceInnerRect.Shrink(pdx*2,KSymbolButtonInnerPadding);
   231 	pieceInnerRect.Shrink(pdx*2,KSymbolButtonInnerPadding);
   218 	
   232 	
   219 	// that's a not good algrithm in funciton AknPenInputDrawUtils::Draw3PiecesColorIcon for drawing 3Pieces icons 
   233 	// that's a not good algrithm in funciton AknPenInputDrawUtils::Draw3PiecesColorIcon for drawing 3Pieces icons 
   220 	// as when the  outter rect's height was not equal to the inter rect's height, the target rects the left icons and right icons 
   234 	// as when the  outter rect's height was not equal to the inter rect's height, the target rects the left icons and right icons 
   221     // would be bitblited onto are Rect(0.0.0.0.0) [[which should not be that behavior]].
   235     // would be bitblited onto are set to be Rect(0.0.0.0.0) [[which should not be that behavior]].
   222 	// Please theck the codes: AknPenInputDrawUtils::Draw3PiecesColorIcon: this function should be Updated.
   236 	// Please theck the codes: AknPenInputDrawUtils::Draw3PiecesColorIcon: this function should be Updated.
   223 	iSpaceBtn->SetDraw3PieceFrameInfo(
   237 	iSpaceBtn->SetDraw3PieceFrameInfo(
   224 									  TDraw3PiecesFrame(KAknsIIDQgnIndiInputSpaceL,
   238 									  TDraw3PiecesFrame(KAknsIIDQgnIndiInputSpaceL,
   225 									  KAknsIIDQgnIndiInputSpaceMiddle,
   239 									  KAknsIIDQgnIndiInputSpaceMiddle,
   226 									  KAknsIIDQgnIndiInputSpaceR,
   240 									  KAknsIIDQgnIndiInputSpaceR,
   227 									  pieceInnerRect));
   241 									  pieceInnerRect));
   228 	TRect enterBtnRect = spaceBtnRect;
   242 	TRect enterBtnRect(aBtnRects[1]);
   229 	enterBtnRect.Move(TPoint(aButtonSize.iWidth,0));
       
   230 	
   243 	
   231 	MoveIconButton(iEnterBtn,enterBtnRect,pdx,KSymbolButtonInnerPadding);
   244 	MoveIconButton(iEnterBtn,enterBtnRect,pdx,KSymbolButtonInnerPadding);
   232 	
   245 	
   233 	TRect pageBtnRect = enterBtnRect;
   246 	TRect pageBtnRect(aBtnRects[2]);
   234 	pageBtnRect.Move(TPoint(aButtonSize.iWidth,0));
   247 
   235 	
       
   236 	if(aIsLandscape)
   248 	if(aIsLandscape)
   237 	    {
   249 	    {
   238 		i3Page1Btn->Hide(ETrue);
   250 	    i2Page1Btn->Hide(EFalse);
   239 		i3Page2Btn->Hide(ETrue);
   251 	    i2Page2Btn->Hide(EFalse);
   240 		i3Page3Btn->Hide(ETrue);
   252 	    
   241 		i2Page1Btn->Hide(EFalse);
   253 	    i3Page1Btn->Hide(ETrue);
   242 		i2Page2Btn->Hide(EFalse);
   254 	    i3Page2Btn->Hide(ETrue);
       
   255 	    i3Page3Btn->Hide(ETrue);
   243 		MoveIconButton(i2Page1Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   256 		MoveIconButton(i2Page1Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   244 	    MoveIconButton(i2Page2Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   257 	    MoveIconButton(i2Page2Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   245 		}
   258 		}
   246 	else
   259 	else
   247         {
   260         {
   248 		i2Page1Btn->Hide(EFalse);
   261 	    i2Page1Btn->Hide(ETrue);
   249 		i2Page2Btn->Hide(EFalse);
   262         i2Page2Btn->Hide(ETrue);
   250 		i3Page1Btn->Hide(EFalse);
   263         
   251         i3Page2Btn->Hide(ETrue);
   264         i3Page1Btn->Hide(EFalse);
   252         i3Page3Btn->Hide(ETrue);
   265         i3Page2Btn->Hide(EFalse);
       
   266         i3Page3Btn->Hide(EFalse);
   253 		MoveIconButton(i3Page1Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   267 		MoveIconButton(i3Page1Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   254 	    MoveIconButton(i3Page2Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   268 	    MoveIconButton(i3Page2Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   255 	    MoveIconButton(i3Page3Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   269 	    MoveIconButton(i3Page3Btn,pageBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding);
   256 		}	
   270 		}
   257 
   271     
   258 	// relayout the virtual key pad
   272 	// relayout the virtual key pad
   259 	TRect keypadRect = iRect;
   273 	iMutiPageKeypad->SetRect(aVirtualKeypadRect);
   260 	keypadRect.iTl = keypadRect.iTl + TPoint(0,aButtonSize.iHeight);
       
   261 	
       
   262 	iMutiPageKeypad->SetRect(keypadRect);
       
   263 	
   274 	
   264 	iMutiPageKeypad->UpdatePaging(aKeypadRow,aKeypadCol);
   275 	iMutiPageKeypad->UpdatePaging(aKeypadRow,aKeypadCol);
   265 	}
   276 	}
   266 	
   277 	
   267 // ---------------------------------------------------------------------------
   278 // ---------------------------------------------------------------------------
   279         spec );
   290         spec );
   280 
   291 
   281     AddControlL( iMutiPageKeypad );
   292     AddControlL( iMutiPageKeypad );
   282     iMutiPageKeypad->AddEventObserver( UiLayout() );
   293     iMutiPageKeypad->AddEventObserver( UiLayout() );
   283     
   294     
   284 	iMutiPageKeypad->SetKeySkinId( EKeyBmpNormal, KAknsIIDQsnFrKeypadButtonNormal );
   295 	iMutiPageKeypad->SetKeySkinId( EKeyBmpNormal, KAknsIIDQsnFrKeypadButtonFrNormal );
   285     iMutiPageKeypad->SetKeySkinId( EKeyBmpHighlight, KAknsIIDQsnFrKeypadButtonPressed );
   296     iMutiPageKeypad->SetKeySkinId( EKeyBmpHighlight, KAknsIIDQsnFrKeypadButtonFrPressed );
   286     iMutiPageKeypad->SetKeySkinId( EKeyBmpDim, KAknsIIDQsnFrKeypadButtonInactive );
   297     iMutiPageKeypad->SetKeySkinId( EKeyBmpDim, KAknsIIDQsnFrKeypadButtonFrInactive );
   287     iMutiPageKeypad->SetResourceId( KInvalidResId );
   298     iMutiPageKeypad->SetResourceId( KInvalidResId );
   288         
   299         
   289     iMutiPageKeypad->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG68 );
   300     iMutiPageKeypad->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG68 );
   290     iMutiPageKeypad->SetDrawOpaqueBackground( EFalse );    
   301     iMutiPageKeypad->SetDrawOpaqueBackground( EFalse );    
   291     }
   302     }
   350     }
   361     }
   351 
   362 
   352 void CPeninputArabicFingerHwrSymbolTable::OnActivate()
   363 void CPeninputArabicFingerHwrSymbolTable::OnActivate()
   353     {
   364     {
   354     CControlGroup::OnActivate();
   365     CControlGroup::OnActivate();
   355 	/*if(IsPopup())
       
   356 	    {
       
   357 	    CapturePointer( ETrue );
       
   358 	    NavigatePage(0,EPagePosPageNo);
       
   359 		}*/
       
   360 	}
   366 	}
   361 	
   367 
       
   368 // ---------------------------------------------------------------------------
       
   369 //  Read control's background info.
       
   370 // ---------------------------------------------------------------------------
       
   371 //	
       
   372 void CPeninputArabicFingerHwrSymbolTable::ConstructFromResourceL()
       
   373     {
       
   374 	if ( iResourceId == KInvalidResId )
       
   375         {
       
   376         User::Leave( KErrArgument );
       
   377         }
       
   378     
       
   379     TResourceReader reader;
       
   380     CCoeEnv::Static()->CreateResourceReaderLC( reader, iResourceId );
       
   381     
       
   382 	const TInt32 bgImageResId = reader.ReadInt32();
       
   383 	LoadBackgroundFromResourceL(bgImageResId);
       
   384 	
       
   385 	CleanupStack::PopAndDestroy( 1 ); //reader
       
   386 	
       
   387 	
       
   388 	CControlGroup::ConstructFromResourceL();
       
   389 	}
       
   390 	
       
   391 // ---------------------------------------------------------------------------
       
   392 //  Read control's background info.
       
   393 // ---------------------------------------------------------------------------
       
   394 //
       
   395 void CPeninputArabicFingerHwrSymbolTable::LoadBackgroundFromResourceL( const TInt aResId )
       
   396     {
       
   397     if ( aResId == 0 )
       
   398         return;
       
   399     
       
   400     if ( BackgroundBmp() )
       
   401         {
       
   402         CFbsBitmap* bkBmp = BackgroundBmp();
       
   403         delete bkBmp;   
       
   404         SetBackgroundBmp( NULL );
       
   405         }
       
   406     if ( BkMaskBmp() )
       
   407         {
       
   408         CFbsBitmap* bkMaskBmp = BkMaskBmp();
       
   409         delete bkMaskBmp;
       
   410         SetBackgroundMaskBmp( NULL );
       
   411         }    
       
   412 
       
   413     TResourceReader resReader;
       
   414     CCoeEnv::Static()->CreateResourceReaderLC( resReader, aResId ); 
       
   415      
       
   416     TPtrC bmpFileName = resReader.ReadTPtrC();
       
   417     TInt32 imgMajorSkinId = resReader.ReadInt32();
       
   418 
       
   419     TAknsItemID id;
       
   420     TInt skinitemid;
       
   421     
       
   422     MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
       
   423     const TInt16 bmpId = resReader.ReadInt16();
       
   424     const TInt16 bmpMskId = resReader.ReadInt16();
       
   425     skinitemid = resReader.ReadInt16();   
       
   426     id.Set( TInt( imgMajorSkinId ), skinitemid );
       
   427     
       
   428     if ( bmpId != KInvalidImg )
       
   429         {
       
   430         CFbsBitmap* backgroundImg = NULL;
       
   431         CFbsBitmap* backgroundMaskImg = NULL;
       
   432         if ( bmpMskId != KInvalidImg )
       
   433             {
       
   434             AknsUtils::CreateIconL( skininstance, id, backgroundImg,
       
   435                     backgroundMaskImg, bmpFileName, bmpId, bmpMskId );
       
   436             }
       
   437         else
       
   438             {
       
   439             AknsUtils::CreateIconL( skininstance, id, backgroundImg,
       
   440                     bmpFileName, bmpId );
       
   441             }
       
   442        
       
   443         SetBackgroundBmp( backgroundImg );
       
   444         SetBackgroundMaskBmp( backgroundMaskImg );           
       
   445         }
       
   446     CleanupStack::PopAndDestroy( 1 ); //reader
       
   447     }
       
   448 	
       
   449 // ---------------------------------------------------------------------------
       
   450 // Load virtual keys image
       
   451 // ---------------------------------------------------------------------------
       
   452 //	
   362 void CPeninputArabicFingerHwrSymbolTable::LoadVkbKeyImageL(TInt aResId, const TSize& aKeySize)
   453 void CPeninputArabicFingerHwrSymbolTable::LoadVkbKeyImageL(TInt aResId, const TSize& aKeySize)
   363     {
   454     {
   364 	TResourceReader reader;    
   455 	TResourceReader reader;    
   365     CCoeEnv::Static()->CreateResourceReaderLC( reader, aResId );      
   456     CCoeEnv::Static()->CreateResourceReaderLC( reader, aResId );      
   366     
   457     
   407             }       
   498             }       
   408         }
   499         }
   409     // Pop and destroy reader
   500     // Pop and destroy reader
   410     CleanupStack::PopAndDestroy( 1 );        
   501     CleanupStack::PopAndDestroy( 1 );        
   411 	}
   502 	}
   412 	
   503 
       
   504 // ---------------------------------------------------------------------------
       
   505 // Load virtual keys
       
   506 // ---------------------------------------------------------------------------
       
   507 //	
   413 void CPeninputArabicFingerHwrSymbolTable::LoadVirtualKeypadKeyL(const TInt aResId, const RArray<TRect>& aCellRects)
   508 void CPeninputArabicFingerHwrSymbolTable::LoadVirtualKeypadKeyL(const TInt aResId, const RArray<TRect>& aCellRects)
   414     {
   509     {
   415 	iMutiPageKeypad->SetResourceId(aResId);
   510 	iMutiPageKeypad->SetResourceId(aResId);
   416 	
   511 	
   417 	TResourceReader reader;
   512 	TResourceReader reader;
   432         else
   527         else
   433             {
   528             {
   434             CVirtualKey* vk = CreateVkbKeyL( reader, aCellRects[i%rectCount] );
   529             CVirtualKey* vk = CreateVkbKeyL( reader, aCellRects[i%rectCount] );
   435             CleanupStack::PushL( vk );
   530             CleanupStack::PushL( vk );
   436             iMutiPageKeypad->AddKeyL( vk );
   531             iMutiPageKeypad->AddKeyL( vk );
       
   532             
   437             CleanupStack::Pop( vk );
   533             CleanupStack::Pop( vk );
   438             }
   534             }
   439         }
   535         }
   440     
   536     
   441     CleanupStack::PopAndDestroy( 1 ); // reader
   537     CleanupStack::PopAndDestroy( 1 ); // reader
   474         vk = CVirtualKey::NewL( KNullDesC, keyscancode, aKeyRect, aKeyRect, 0 );
   570         vk = CVirtualKey::NewL( KNullDesC, keyscancode, aKeyRect, aKeyRect, 0 );
   475         }
   571         }
   476 
   572 
   477     CleanupStack::PopAndDestroy( keytexts ); //keytexts
   573     CleanupStack::PopAndDestroy( keytexts ); //keytexts
   478 
   574 
   479 
   575     
   480     TRect innerrect = aKeyRect;
   576     TRect innerrect = aKeyRect;
   481     innerrect.Shrink( TSize(10, 10) );
   577     innerrect.Shrink( TSize(10, 10) );
   482     vk->SetInnerRect( innerrect );
   578     vk->SetInnerRect( innerrect );
   483     
   579     
   484     return vk;
   580     return vk;
   485     }
   581     }
   486 
       
   487 
   582 
   488 // ---------------------------------------------------------------------------
   583 // ---------------------------------------------------------------------------
   489 // update virtual key info.
   584 // update virtual key info.
   490 // ---------------------------------------------------------------------------
   585 // ---------------------------------------------------------------------------
   491 //
   586 //
   522     innerrect.Shrink( TSize(10,10) );
   617     innerrect.Shrink( TSize(10,10) );
   523     aVirtualKey->SetInnerRect( innerrect );
   618     aVirtualKey->SetInnerRect( innerrect );
   524     }
   619     }
   525 
   620 
   526 // ---------------------------------------------------------------------------
   621 // ---------------------------------------------------------------------------
   527 // Change SCT page.
   622 // Navigate the symbol page
   528 // ---------------------------------------------------------------------------
   623 // ---------------------------------------------------------------------------
   529 //
   624 //
   530 void CPeninputArabicFingerHwrSymbolTable::NavigatePage( TInt aPageNo, TInt aPos )
   625 void CPeninputArabicFingerHwrSymbolTable::NavigatePage( TInt aPageNo, TInt aPos )
   531     {
   626     {
   532     switch ( aPos )
   627     switch ( aPos )
   562             
   657             
   563         default:
   658         default:
   564             break;
   659             break;
   565         }
   660         }
   566 		
   661 		
       
   662 	// Show page button
   567     UpdatePageButtonsUi();
   663     UpdatePageButtonsUi();
       
   664 	
       
   665 	// Draw the symbol table 
   568     Draw();
   666     Draw();
       
   667 	
       
   668 	// Update the feedback for the virtual key
   569     UpdateAllVirtualKeysFeedback();
   669     UpdateAllVirtualKeysFeedback();
       
   670 	
       
   671 	// Bitblt the whole symbol table to screen
   570 	UpdateArea(iRect);
   672 	UpdateArea(iRect);
   571     }
   673     }
   572 
   674 
   573 // ---------------------------------------------------------------------------
   675 // ---------------------------------------------------------------------------
   574 // sync sct paging buttons.
   676 // Show the button page which should be visible
   575 // ---------------------------------------------------------------------------
   677 // ---------------------------------------------------------------------------
   576 //
   678 //
   577 void CPeninputArabicFingerHwrSymbolTable::UpdatePageButtonsUi()
   679 void CPeninputArabicFingerHwrSymbolTable::UpdatePageButtonsUi()
   578     {
   680     {
   579     TInt curpage = iMutiPageKeypad->CurPageIndex();
   681     TInt curpage = iMutiPageKeypad->CurPageIndex();
   609         TBool enable = !vk->Dimmed() && ( page == curPage );
   711         TBool enable = !vk->Dimmed() && ( page == curPage );
   610         iMutiPageKeypad->EnableKeyFeedback( vk, enable );
   712         iMutiPageKeypad->EnableKeyFeedback( vk, enable );
   611         }
   713         }
   612     }
   714     }
   613 
   715 
       
   716 // ---------------------------------------------------------------------------
       
   717 //  Draw new content to the screen
       
   718 // ---------------------------------------------------------------------------
       
   719 //
       
   720 void CPeninputArabicFingerHwrSymbolTable::Draw()
       
   721     {
       
   722 	if(AbleToDraw())
       
   723         {
       
   724 		DrawOpaqueMaskBackground( Rect() );
       
   725 
       
   726 		if( BackgroundBmp() && BackgroundBmp()->SizeInPixels() != Rect().Size() )
       
   727 			{
       
   728 			AknIconUtils::SetSize(BackgroundBmp(), Rect().Size(), EAspectRatioNotPreserved);
       
   729 			}
       
   730         // draw background
       
   731 		DrawBackground();    
       
   732 		
       
   733         // draw group		
       
   734 		CControlGroup::Draw();
       
   735 		
       
   736 		// bitblt the new content to screen
       
   737 		UpdateArea(iRect);
       
   738 		}
       
   739 	}
       
   740 
   614 // End Of File
   741 // End Of File