diff -r c8382f7b54ef -r 726fba06891a meetingrequest/mrgui/src/cmrresponsedialogview.cpp --- a/meetingrequest/mrgui/src/cmrresponsedialogview.cpp Wed Sep 15 11:52:37 2010 +0300 +++ b/meetingrequest/mrgui/src/cmrresponsedialogview.cpp Wed Oct 13 14:11:15 2010 +0300 @@ -15,11 +15,16 @@ * */ #include "cmrresponsedialogview.h" +#include "nmrcolormanager.h" +#include "nmrlayoutmanager.h" + // System includes #include #include #include #include +#include +#include // DEBUG #include "emailtrace.h" @@ -156,6 +161,11 @@ iEditor->SetSize( Rect().Size() ); iEditor->SetSkinBackgroundControlContextL( iBgContext ); iEditor->EnableCcpuSupportL(ETrue); + CEikScrollBarFrame* scrollBar = iEditor->CreateScrollBarFrameL(); + scrollBar->SetScrollBarVisibilityL( + CEikScrollBarFrame::EOff, + CEikScrollBarFrame::EAuto ); + iEditor->TextLayout()->RestrictScrollToTopsOfLines( EFalse ); } // --------------------------------------------------------------------------- @@ -166,10 +176,27 @@ { FUNC_LOG; CCoeControl::HandleResourceChange( aType ); + TInt error = KErrNone; - if ( aType == KEikDynamicLayoutVariantSwitch ) + switch ( aType ) { - iEditor->SetRect( Rect() ); + case KAknsMessageSkinChange: + case KEikMessageColorSchemeChange: + { + TAknLayoutText editorLayoutText = NMRLayoutManager::GetLayoutText( + Rect(), + NMRLayoutManager::EMRTextLayoutMultiRowTextEditor ); + TRAP( error, SetFontL( editorLayoutText.Font() ) ); + if ( error != KErrNone ) + { + iCoeEnv->HandleError( error ); + } + break; + } + case KEikDynamicLayoutVariantSwitch: + { + iEditor->SetRect( Rect() ); + } } } @@ -179,18 +206,95 @@ // void CESMRResponseDialogView::SizeChanged() { - if(iBgContext) - { - iBgContext->SetRect(Rect()); - if ( &Window() ) + if(iBgContext) + { + iBgContext->SetRect(Rect()); + if ( &Window() ) + { + iBgContext->SetParentPos( PositionRelativeToScreen() ); + } + } + if( iEditor ) + { + TRect r = Rect(); + TInt scrollbarWidth = iEditor->ScrollBarFrame()-> + ScrollBarBreadth(CEikScrollBar::EVertical); + TInt editorWidth = r.Width() - scrollbarWidth; + TPoint upperLeftCorner = TPoint(0, 0); + iEditor->SetExtent(upperLeftCorner, TSize(editorWidth, r.Height())); + + TAknLayoutText editorLayoutText = NMRLayoutManager::GetLayoutText( + r, + NMRLayoutManager::EMRTextLayoutMultiRowTextEditor ); + + TInt error = KErrNone; + TRAP( error, SetFontL( editorLayoutText.Font() ) ); + if ( error != KErrNone ) { - iBgContext->SetParentPos( PositionRelativeToScreen() ); + iCoeEnv->HandleError( error ); } - } - if( iEditor ) - { - iEditor->SetRect( Rect() ); - } + } + } + +// --------------------------------------------------------------------------- +// CESMRResponseDialogView::MinimumSize() +// --------------------------------------------------------------------------- +// +TSize CESMRResponseDialogView::MinimumSize() + { + FUNC_LOG; + TRect rect; + AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect ); + return rect.Size(); } +// --------------------------------------------------------------------------- +// CESMRResponseDialogView::SetFontL() +// --------------------------------------------------------------------------- +// +void CESMRResponseDialogView::SetFontL( const CFont* aFont ) + { + FUNC_LOG; + + TFontSpec fontSpec = aFont->FontSpecInTwips(); + + CParaFormat* paraFormat = CParaFormat::NewLC(); + TParaFormatMask paraFormatMask; + paraFormat->iLineSpacingControl = CParaFormat::ELineSpacingExactlyInPixels; + + paraFormatMask.SetAttrib( EAttLineSpacing ); + paraFormat->iHorizontalAlignment = CParaFormat::ELeftAlign; + if ( AknLayoutUtils::LayoutMirrored() ) + { + paraFormat->iHorizontalAlignment = CParaFormat::ERightAlign; + } + paraFormatMask.SetAttrib( EAttAlignment ); + + TCharFormat charFormat; + TCharFormatMask formatMask; + charFormat.iFontSpec = fontSpec; + + formatMask.SetAttrib( EAttFontTypeface ); + formatMask.SetAttrib( EAttFontHeight ); + formatMask.SetAttrib( EAttFontPosture ); + formatMask.SetAttrib( EAttFontStrokeWeight ); + formatMask.SetAttrib( EAttFontHighlightColor ); + formatMask.SetAttrib( EAttColor ); + + charFormat.iFontPresentation.iTextColor = NMRColorManager::Color( + NMRColorManager::EMRMainAreaTextColor ); + charFormat.iFontPresentation.iHighlightColor = + NMRColorManager::Color( NMRColorManager::EMRCutCopyPasteHighlightColor ); + + CParaFormatLayer* paraFormatLayer = + CParaFormatLayer::NewL( paraFormat, paraFormatMask ); + CleanupStack::PushL( paraFormatLayer ); + CCharFormatLayer* charFormatLayer = + CCharFormatLayer::NewL( charFormat, formatMask ); + + iEditor->SetParaFormatLayer( paraFormatLayer ); + CleanupStack::Pop( paraFormatLayer ); + CleanupStack::PopAndDestroy( paraFormat ); + iEditor->SetCharFormatLayer( charFormatLayer ); + } // end of file