meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp
branchRCL_3
changeset 64 3533d4323edc
child 80 726fba06891a
equal deleted inserted replaced
63:d189ee25cf9d 64:3533d4323edc
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  ESMR subject field implementation
       
    15  *
       
    16 */
       
    17 
       
    18 #include "cesmrsubjectfield.h"
       
    19 #include "cmrimage.h"
       
    20 #include "nmrlayoutmanager.h"
       
    21 #include "cesmreditor.h"
       
    22 #include "mesmrtitlepaneobserver.h"
       
    23 #include "cesmrglobalnote.h"
       
    24 #include "esmrfieldbuilderdef.h"
       
    25 #include "nmrcolormanager.h"
       
    26 #include "nmrbitmapmanager.h"
       
    27 #include "mesmrlistobserver.h"
       
    28 
       
    29 #include <calentry.h>
       
    30 #include <StringLoader.h>
       
    31 #include <AknsConstants.h>
       
    32 #include <esmrgui.rsg>
       
    33 #include <AknsBasicBackgroundControlContext.h>
       
    34 #include <eikmfne.h>
       
    35 
       
    36 #include "emailtrace.h"
       
    37 
       
    38 // ======== MEMBER FUNCTIONS ========
       
    39 
       
    40 // ---------------------------------------------------------------------------
       
    41 // CESMRSubjectField::CESMRSubjectField
       
    42 // ---------------------------------------------------------------------------
       
    43 //
       
    44 CESMRSubjectField::CESMRSubjectField()
       
    45     {
       
    46     FUNC_LOG;
       
    47     SetFocusType( EESMRHighlightFocus );
       
    48     }
       
    49 
       
    50 // ---------------------------------------------------------------------------
       
    51 // CESMRSubjectField::~CESMRSubjectField
       
    52 // ---------------------------------------------------------------------------
       
    53 //
       
    54 CESMRSubjectField::~CESMRSubjectField( )
       
    55     {
       
    56     FUNC_LOG;
       
    57     delete iFieldIcon;
       
    58     delete iBgControlContext;
       
    59     delete iPriorityIcon;
       
    60     }
       
    61 
       
    62 // ---------------------------------------------------------------------------
       
    63 // CESMRSubjectField::ConstructL
       
    64 // ---------------------------------------------------------------------------
       
    65 //
       
    66 void CESMRSubjectField::ConstructL( TESMREntryFieldId aId, TInt aTextId,
       
    67         NMRBitmapManager::TMRBitmapId aIconID )
       
    68     {
       
    69     FUNC_LOG;
       
    70     SetFieldId( aId );
       
    71 
       
    72     iFieldIcon = CMRImage::NewL( aIconID );
       
    73     iFieldIcon->SetParent( this );
       
    74     
       
    75     iSubject = CESMREditor::NewL ( this, 1, KMaxTextLength,
       
    76             CEikEdwin::EResizable | CEikEdwin::EAvkonEditor | EAknEditorFlagNoLRNavigation);
       
    77     iSubject->SetEdwinSizeObserver ( this );
       
    78     iSubject->SetEdwinObserver( this );
       
    79     iSubject->SetParent( this );
       
    80 
       
    81     CESMRField::ConstructL( iSubject );  // iSubject ownership transfered
       
    82 
       
    83     HBufC* buf = StringLoader::LoadLC ( aTextId );
       
    84     iSubject->SetDefaultTextL( buf ); // ownership transferred
       
    85     CleanupStack::Pop( buf );
       
    86     
       
    87     // Setting background instead of theme skin  
       
    88     NMRBitmapManager::TMRBitmapStruct bitmapStruct;
       
    89     bitmapStruct = NMRBitmapManager::GetBitmapStruct( 
       
    90             NMRBitmapManager::EMRBitmapInputCenter );
       
    91 
       
    92     TRect initialisationRect( 0, 0, 0, 0 );
       
    93     iBgControlContext = 
       
    94                 CAknsBasicBackgroundControlContext::NewL( 
       
    95                         bitmapStruct.iItemId,
       
    96                         initialisationRect, 
       
    97                         EFalse );
       
    98                 
       
    99     iSubject->SetSkinBackgroundControlContextL( iBgControlContext );
       
   100     
       
   101     iCurrentPriority = EFSCalenMRPriorityNormal;
       
   102     }
       
   103 
       
   104 // ---------------------------------------------------------------------------
       
   105 // CESMRSubjectField::NewL
       
   106 // ---------------------------------------------------------------------------
       
   107 //
       
   108 CESMRSubjectField* CESMRSubjectField::NewL( TFieldType aType )
       
   109     {
       
   110     FUNC_LOG;
       
   111     CESMRSubjectField* self = new( ELeave )CESMRSubjectField;
       
   112     CleanupStack::PushL ( self );
       
   113     if ( aType == ETypeSubject )
       
   114         {
       
   115         self->ConstructL( EESMRFieldSubject,
       
   116         R_QTN_MEET_REQ_SUBJECT_FIELD,
       
   117         NMRBitmapManager::EMRBitmapSubject );
       
   118         }
       
   119     else
       
   120         {
       
   121         self->ConstructL( EESMRFieldOccasion,
       
   122         R_QTN_CALENDAR_ANNIVERSARY_TYPE_OCCASION,
       
   123         NMRBitmapManager::EMRBitmapOccasion );
       
   124         }
       
   125     CleanupStack::Pop( self );
       
   126     return self;
       
   127     }
       
   128 
       
   129 // ---------------------------------------------------------------------------
       
   130 // CESMRSubjectField::MinimumSize
       
   131 // ---------------------------------------------------------------------------
       
   132 //
       
   133 TSize CESMRSubjectField::MinimumSize()
       
   134     {
       
   135     TRect parentRect( Parent()->Rect() );
       
   136     
       
   137     TRect fieldRect = 
       
   138        NMRLayoutManager::GetFieldLayoutRect( parentRect, 1 ).Rect();
       
   139 
       
   140     TRect editorRect( NMRLayoutManager::GetLayoutText( 
       
   141        fieldRect, 
       
   142        NMRLayoutManager::EMRTextLayoutTextEditor ).TextRect() );
       
   143     
       
   144     if( iPriorityIcon )
       
   145         {
       
   146 		editorRect = NMRLayoutManager::GetLayoutText( 
       
   147 			   fieldRect, 
       
   148 			   NMRLayoutManager::EMRTextLayoutSingleRowEditorText ).TextRect();
       
   149         }
       
   150  
       
   151     // Adjust field size so that there's room for expandable editor.
       
   152     fieldRect.Resize( 0, iSize.iHeight - editorRect.Height() );
       
   153     
       
   154     return fieldRect.Size();
       
   155     }
       
   156 
       
   157 // ---------------------------------------------------------------------------
       
   158 // CESMRSubjectField::InitializeL
       
   159 // ---------------------------------------------------------------------------
       
   160 //
       
   161 void CESMRSubjectField::InitializeL()
       
   162     {
       
   163     FUNC_LOG;
       
   164     // Do nothing
       
   165     }
       
   166 
       
   167 // ---------------------------------------------------------------------------
       
   168 // CESMRSubjectField::InternalizeL
       
   169 // ---------------------------------------------------------------------------
       
   170 //
       
   171 void CESMRSubjectField::InternalizeL( MESMRCalEntry& aEntry )
       
   172     {
       
   173     FUNC_LOG;
       
   174     CCalEntry& entry = aEntry.Entry ( );
       
   175     HBufC* subject = entry.SummaryL().AllocLC ( );
       
   176 
       
   177     // if there is no text available, don't overwrite the default text
       
   178     // with empty descriptor.
       
   179     if ( subject->Length ( )> 0 )
       
   180         {
       
   181         iSubject->ClearSelectionAndSetTextL ( *subject );
       
   182         if ( iTitlePaneObserver )
       
   183             {
       
   184             iTitlePaneObserver->UpdateTitlePaneTextL( *subject );
       
   185             }
       
   186         }
       
   187     
       
   188     if( entry.PriorityL() != EFSCalenMRPriorityNormal &&
       
   189             entry.EntryTypeL() == CCalEntry::EAppt )
       
   190         {
       
   191         SetPriorityIconL( entry.PriorityL() );
       
   192         }
       
   193 
       
   194     // this is needed to be re-called here, otherwise the CEikEdwin
       
   195     // does not get correctly instantiated with default text
       
   196     iSubject->FocusChanged( EDrawNow );
       
   197 
       
   198     CleanupStack::PopAndDestroy ( subject );
       
   199     }
       
   200 
       
   201 // ---------------------------------------------------------------------------
       
   202 // CESMRSubjectField::ExternalizeL
       
   203 // ---------------------------------------------------------------------------
       
   204 //
       
   205 void CESMRSubjectField::ExternalizeL( MESMRCalEntry& aEntry )
       
   206     {
       
   207     FUNC_LOG;
       
   208     HBufC* subject = iSubject->GetTextInHBufL ( );
       
   209     
       
   210     CCalEntry& entry = aEntry.Entry();
       
   211     
       
   212     if ( subject )
       
   213         {
       
   214         CleanupStack::PushL ( subject );
       
   215 
       
   216         // externalize the text only if it differs from the
       
   217         // default text. In other words, default text is not
       
   218         // externalized.
       
   219         if ( iSubject->DefaultText().Compare (*subject )!= 0 )
       
   220             {
       
   221             entry.SetSummaryL( *subject );
       
   222             }
       
   223 
       
   224         CleanupStack::PopAndDestroy( subject );
       
   225         }
       
   226     else
       
   227         {
       
   228         entry.SetSummaryL( KNullDesC );
       
   229         }
       
   230 
       
   231     entry.SetPriorityL( iCurrentPriority );
       
   232     }
       
   233 
       
   234 // ---------------------------------------------------------------------------
       
   235 // CESMRSubjectField::SetOutlineFocusL
       
   236 // ---------------------------------------------------------------------------
       
   237 //
       
   238 void CESMRSubjectField::SetOutlineFocusL( TBool aFocus )
       
   239     {
       
   240     FUNC_LOG;
       
   241     CESMRField::SetOutlineFocusL ( aFocus );
       
   242 
       
   243     if ( aFocus ) //Focus is gained on the field
       
   244         {
       
   245         ChangeMiddleSoftKeyL( EESMRCmdSaveMR,R_QTN_MSK_SAVE );
       
   246         }
       
   247     }
       
   248 
       
   249 // ---------------------------------------------------------------------------
       
   250 // CESMRSubjectField::HandleEdwinSizeEventL
       
   251 // ---------------------------------------------------------------------------
       
   252 //
       
   253 TBool CESMRSubjectField::HandleEdwinSizeEventL( CEikEdwin* aEdwin,
       
   254         TEdwinSizeEvent /*aType*/, TSize aSize )
       
   255     {
       
   256     FUNC_LOG;
       
   257     TBool reDraw( EFalse );
       
   258     
       
   259     if( iSize != aSize )
       
   260         {
       
   261         // Let's save the required size for the iSubject
       
   262         iSize = aSize;
       
   263             
       
   264         if ( iObserver && aEdwin == iSubject )
       
   265            {
       
   266            iObserver->ControlSizeChanged( this );
       
   267            reDraw = ETrue;
       
   268            }
       
   269         
       
   270         if( iSubject->LineCount() != iLineCount )
       
   271             {
       
   272             // Line count has changed, the whole component needs
       
   273             // to be redrawn
       
   274             DrawDeferred();
       
   275             iLineCount = iSubject->LineCount();
       
   276             }
       
   277         }
       
   278     return reDraw;
       
   279     }
       
   280 
       
   281 // ---------------------------------------------------------------------------
       
   282 // CESMRSubjectField::HandleEdwinEventL
       
   283 // ---------------------------------------------------------------------------
       
   284 //
       
   285 void CESMRSubjectField::HandleEdwinEventL( CEikEdwin *aEdwin, TEdwinEvent aEventType )
       
   286     {
       
   287     FUNC_LOG;
       
   288     if ( iTitlePaneObserver &&
       
   289          aEdwin == iSubject &&
       
   290          aEventType == EEventTextUpdate )
       
   291         {
       
   292         HBufC* text = iSubject->GetTextInHBufL();
       
   293         if ( text )
       
   294             {
       
   295             CleanupStack::PushL( text );
       
   296             
       
   297             iTitlePaneObserver->UpdateTitlePaneTextL( *text );
       
   298             
       
   299             TInt textLength( text->Length() );
       
   300             if ( iSubject->GetLimitLength() <= textLength )
       
   301                 {
       
   302                 NotifyEventAsyncL( EESMRCmdSizeExceeded );
       
   303                 }  
       
   304             
       
   305             CleanupStack::PopAndDestroy( text );
       
   306             }
       
   307         else
       
   308             {
       
   309             iTitlePaneObserver->UpdateTitlePaneTextL( KNullDesC );
       
   310             }
       
   311         }
       
   312     }
       
   313 
       
   314 // ---------------------------------------------------------------------------
       
   315 // CESMRSubjectField::SetTitlePaneObserver
       
   316 // ---------------------------------------------------------------------------
       
   317 //
       
   318 void CESMRSubjectField::SetTitlePaneObserver( MESMRTitlePaneObserver* aObserver )
       
   319     {
       
   320     FUNC_LOG;
       
   321     iTitlePaneObserver = aObserver;
       
   322     }
       
   323 
       
   324 // ---------------------------------------------------------------------------
       
   325 // CESMRSubjectField::GetCursorLineVerticalPos
       
   326 // ---------------------------------------------------------------------------
       
   327 //
       
   328 void CESMRSubjectField::GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower)
       
   329     {
       
   330     aLower = iSubject->CurrentLineNumber() * iSubject->RowHeight();
       
   331     aUpper = aLower - iSubject->RowHeight();
       
   332     }
       
   333 
       
   334 // ---------------------------------------------------------------------------
       
   335 // CESMRSubjectField::ListObserverSet
       
   336 // ---------------------------------------------------------------------------
       
   337 //
       
   338 void CESMRSubjectField::ListObserverSet()
       
   339     {
       
   340     FUNC_LOG;
       
   341     iSubject->SetListObserver( iObserver );
       
   342     }
       
   343 
       
   344 // ---------------------------------------------------------------------------
       
   345 // CESMRSubjectField::ExecuteGenericCommandL
       
   346 // ---------------------------------------------------------------------------
       
   347 //
       
   348 TBool CESMRSubjectField::ExecuteGenericCommandL(
       
   349         TInt aCommand )
       
   350     {
       
   351     FUNC_LOG;
       
   352     TBool isUsed( EFalse );
       
   353     switch ( aCommand )
       
   354         {
       
   355         case EESMRCmdPriorityHigh:
       
   356             {
       
   357             SetPriorityIconL( EFSCalenMRPriorityHigh );
       
   358             isUsed = ETrue;
       
   359             break;
       
   360             }
       
   361         case EESMRCmdPriorityNormal:
       
   362             {
       
   363             SetPriorityIconL( EFSCalenMRPriorityNormal );
       
   364             isUsed = ETrue;
       
   365             break;
       
   366             }
       
   367         case EESMRCmdPriorityLow:
       
   368             {
       
   369             SetPriorityIconL( EFSCalenMRPriorityLow );
       
   370             isUsed = ETrue;
       
   371             break;
       
   372             }
       
   373             
       
   374         case EESMRCmdSizeExceeded:
       
   375             {
       
   376             CESMRGlobalNote::ExecuteL ( 
       
   377                     CESMRGlobalNote::EESMRCannotDisplayMuchMore );
       
   378             
       
   379             HBufC* text = iSubject->GetTextInHBufL();
       
   380             CleanupDeletePushL( text );
       
   381             if ( text )
       
   382                 {    
       
   383                 TInt curPos = iSubject->CursorPos();        
       
   384                 if( curPos > iSubject->GetLimitLength() - 1 )
       
   385                     curPos = iSubject->GetLimitLength() - 1;
       
   386                 HBufC* newText = 
       
   387                     text->Des().Mid( 0, iSubject->GetLimitLength() - 1 ).AllocLC();     
       
   388                 
       
   389                 iSubject->SetTextL ( newText );
       
   390                 CleanupStack::PopAndDestroy( newText );
       
   391                 newText = NULL;
       
   392                 
       
   393                 iSubject->SetCursorPosL (curPos, EFalse );
       
   394                 iSubject->HandleTextChangedL();
       
   395                 iSubject->UpdateScrollBarsL();
       
   396                 SetFocus(ETrue);
       
   397                 }
       
   398             CleanupStack::PopAndDestroy( text );
       
   399             isUsed = ETrue;
       
   400             break;
       
   401             }
       
   402         default:
       
   403             {
       
   404             break;
       
   405             }
       
   406         }
       
   407     return isUsed;
       
   408     }
       
   409 
       
   410 // ---------------------------------------------------------------------------
       
   411 // CESMRSubjectField::CountComponentControls
       
   412 // ---------------------------------------------------------------------------
       
   413 //
       
   414 TInt CESMRSubjectField::CountComponentControls() const
       
   415     {
       
   416     TInt count( 0 );
       
   417     if ( iFieldIcon )
       
   418         {
       
   419         ++count;
       
   420         }
       
   421 
       
   422     if ( iSubject )
       
   423         {
       
   424         ++count;
       
   425         }
       
   426     
       
   427     if ( iPriorityIcon )
       
   428         {
       
   429         ++count;
       
   430         }
       
   431     return count;
       
   432     }
       
   433 
       
   434 // ---------------------------------------------------------------------------
       
   435 // CESMRSubjectField::ComponentControl
       
   436 // ---------------------------------------------------------------------------
       
   437 //
       
   438 CCoeControl* CESMRSubjectField::ComponentControl( 
       
   439         TInt aIndex ) const
       
   440     {
       
   441     switch ( aIndex )
       
   442         {
       
   443         case 0:
       
   444             return iFieldIcon;
       
   445         case 1:
       
   446             return iSubject;
       
   447         case 2:
       
   448             return iPriorityIcon;
       
   449         default:
       
   450             return NULL;
       
   451         }
       
   452     }
       
   453 
       
   454 // ---------------------------------------------------------------------------
       
   455 // CESMRSubjectField::SizeChanged
       
   456 // ---------------------------------------------------------------------------
       
   457 //
       
   458 void CESMRSubjectField::SizeChanged( )
       
   459     {
       
   460     TRect rect( Rect() );
       
   461 
       
   462     TAknLayoutRect rowLayoutRect( 
       
   463             NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 ) );
       
   464     TRect rowRect( rowLayoutRect.Rect() );
       
   465     
       
   466     // Layouting field icon
       
   467     if( iFieldIcon )
       
   468         {
       
   469         TAknWindowComponentLayout iconLayout( 
       
   470             NMRLayoutManager::GetWindowComponentLayout( 
       
   471                     NMRLayoutManager::EMRLayoutSingleRowAColumnGraphic ) );
       
   472         AknLayoutUtils::LayoutControl( iFieldIcon, rowRect, iconLayout );
       
   473         }
       
   474     
       
   475     // Layouting priority icon
       
   476     if( iPriorityIcon )
       
   477         {
       
   478         TAknWindowComponentLayout iconLayout( 
       
   479                 NMRLayoutManager::GetWindowComponentLayout( 
       
   480                     NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
       
   481         AknLayoutUtils::LayoutImage( iPriorityIcon, rowRect, iconLayout );
       
   482         }
       
   483 
       
   484     TAknLayoutText editorLayoutText;
       
   485 
       
   486     if( iPriorityIcon )
       
   487         {
       
   488         editorLayoutText = NMRLayoutManager::GetLayoutText( rowRect, 
       
   489                     NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
       
   490         }
       
   491     else
       
   492         {
       
   493         editorLayoutText = NMRLayoutManager::GetLayoutText( rowRect, 
       
   494                     NMRLayoutManager::EMRTextLayoutTextEditor );
       
   495         }
       
   496     
       
   497     // Layouting editor field
       
   498     TRect editorRect( editorLayoutText.TextRect() );
       
   499 
       
   500     // Resize height according to actual height required by edwin.
       
   501     editorRect.Resize( 0, iSize.iHeight - editorRect.Height() );
       
   502     iSubject->SetRect( editorRect );  
       
   503     
       
   504     // Try setting font. Failures are ignored.
       
   505     TRAP_IGNORE( iSubject->SetFontL( editorLayoutText.Font() ) );
       
   506     
       
   507     // Layouting focus
       
   508     TRect bgRect( TPoint( editorRect.iTl.iX, editorRect.iTl.iY ), 
       
   509             editorRect.Size() );
       
   510     
       
   511     // Move focus rect so that it's relative to field's position.
       
   512     bgRect.Move( -Position() );
       
   513     SetFocusRect( bgRect );    
       
   514     }
       
   515 
       
   516 // ---------------------------------------------------------------------------
       
   517 // CESMRSubjectField::SetContainerWindowL
       
   518 // ---------------------------------------------------------------------------
       
   519 //
       
   520 void CESMRSubjectField::SetContainerWindowL( 
       
   521         const CCoeControl& aContainer )
       
   522     {
       
   523     CCoeControl::SetContainerWindowL( aContainer );
       
   524     iSubject->SetContainerWindowL( aContainer );
       
   525     
       
   526     iSubject->SetParent( this );
       
   527     }
       
   528 
       
   529 // ---------------------------------------------------------------------------
       
   530 // CESMRSubjectField::OfferKeyEventL()
       
   531 // ---------------------------------------------------------------------------
       
   532 //
       
   533 TKeyResponse CESMRSubjectField::OfferKeyEventL(
       
   534         const TKeyEvent& aEvent,
       
   535         TEventCode aType )
       
   536     {
       
   537     FUNC_LOG;
       
   538     TKeyResponse response( EKeyWasNotConsumed);
       
   539     response = iSubject->OfferKeyEventL ( aEvent, aType );
       
   540 
       
   541     if ( aType == EEventKey && 
       
   542     		( aEvent.iScanCode != EStdKeyUpArrow &&
       
   543 			  aEvent.iScanCode != EStdKeyDownArrow ))
       
   544     	{       
       
   545         iSubject->DrawDeferred();
       
   546     	}
       
   547     return response;
       
   548     }
       
   549 
       
   550 // ---------------------------------------------------------------------------
       
   551 // CESMRSubjectField::SetPriorityIconL
       
   552 // ---------------------------------------------------------------------------
       
   553 //
       
   554 void CESMRSubjectField::SetPriorityIconL( TUint aPriority )
       
   555     {
       
   556     switch ( aPriority )
       
   557         {
       
   558         case EFSCalenMRPriorityHigh:
       
   559             {
       
   560             delete iPriorityIcon;
       
   561             iPriorityIcon = NULL;
       
   562             
       
   563             iPriorityIcon = CMRImage::NewL( 
       
   564                   NMRBitmapManager::EMRBitmapPriorityHigh,
       
   565                   this,
       
   566                   ETrue );
       
   567             iPriorityIcon->SetParent( this );
       
   568             if( iCurrentPriority == EFSCalenMRPriorityNormal )
       
   569             	{
       
   570 				SizeChanged();
       
   571             	}
       
   572             iCurrentPriority = EFSCalenMRPriorityHigh;
       
   573             break;
       
   574             }
       
   575           
       
   576         case EFSCalenMRPriorityNormal:
       
   577             {
       
   578             delete iPriorityIcon;
       
   579             iPriorityIcon = NULL;
       
   580             if( iCurrentPriority != EFSCalenMRPriorityNormal )
       
   581 				{
       
   582 				SizeChanged();
       
   583 				}
       
   584             iCurrentPriority = EFSCalenMRPriorityNormal;
       
   585             break;
       
   586             }
       
   587           
       
   588         case EFSCalenMRPriorityLow:
       
   589             {
       
   590             delete iPriorityIcon;
       
   591             iPriorityIcon = NULL;
       
   592             
       
   593             iPriorityIcon = CMRImage::NewL( 
       
   594                   NMRBitmapManager::EMRBitmapPriorityLow );
       
   595             iPriorityIcon->SetParent( this );  
       
   596             if( iCurrentPriority == EFSCalenMRPriorityNormal )
       
   597 				{
       
   598 				SizeChanged();
       
   599 				}
       
   600             iCurrentPriority = EFSCalenMRPriorityLow;
       
   601             break;
       
   602             }
       
   603         default:
       
   604             {
       
   605             break;
       
   606             }
       
   607         }
       
   608     }
       
   609 
       
   610 // EOF