diff -r 000000000000 -r f72a12da539e idlehomescreen/exths/inc/pluginif/extrstandbyscrutil.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/exths/inc/pluginif/extrstandbyscrutil.inl Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,112 @@ +/* +* Copyright (c) 2005-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: Define the Util API for a external standby screen +* +*/ + + + +// INCLUDES +#include +#include + +// ----------------------------------------------------------------------------- +// CExtrStandbyScr::Draw +// ----------------------------------------------------------------------------- +// +inline void CExtrStandbyScr::Draw(const TRect& /*aRect*/) const + { + if (IsDimmed()) + { + return ; + } + + TRect rect( Rect() ); + + CWindowGc& gc = SystemGc(); + + MAknsControlContext* cc = AknsDrawUtils::ControlContext( this ); + MAknsSkinInstance* aknsInst = AknsUtils::SkinInstance(); + + // draw(clear) background + //AknsDrawUtils::Background( aknsInst, cc, gc, rect ); + // Draw background starting from correct offset. May cause flicker if derived class + // has not registered control position with AknsUtils::RegisterControlPosition + AknsDrawUtils::Background( aknsInst, cc, this, gc, rect ); + + if( IsFocused() ) + { + // draw highlight + TAknLayoutRect highlightParentRect; + highlightParentRect.LayoutRect( rect, + AknLayout::Highlight_for_other_Active_Idle_items_Line_1( rect ) ); + + TAknLayoutRect highlightRectCenter; + highlightRectCenter.LayoutRect( highlightParentRect.Rect(), + SkinLayout::List_highlight_skin_placing__general__Line_1( highlightParentRect.Rect() ) ); + + TAknLayoutRect highlightRectTl; + highlightRectTl.LayoutRect( highlightParentRect.Rect(), + SkinLayout::List_highlight_skin_placing__general__Line_2() ); + + TAknLayoutRect highlightRectBr; + highlightRectBr.LayoutRect( highlightParentRect.Rect(), + SkinLayout::List_highlight_skin_placing__general__Line_5() ); + + TRect highlightRect( highlightRectTl.Rect().iTl, highlightRectBr.Rect().iBr ); + + if( !AknsDrawUtils::DrawFrame( aknsInst, + gc, + highlightRect, + highlightRectCenter.Rect(), + KAknsIIDQsnFrList, + KAknsIIDQsnFrListCenter ) ) + { + // no skin - draw normal list pane highlight + TAknLayoutRect highlighRect; + + // shadow + highlighRect.LayoutRect( highlightParentRect.Rect(), + AknLayout::List_pane_highlight_graphics__various__Line_1( highlightParentRect.Rect() ) ); + highlighRect.DrawRect( gc ); + + // highlight + highlighRect.LayoutRect( highlightParentRect.Rect(), + AknLayout::List_pane_highlight_graphics__various__Line_2( highlightParentRect.Rect() ) ); + highlighRect.DrawRect( gc ); + } + } + + TAknLayoutRect separatorRect; + separatorRect.LayoutRect( rect, AknLayout::First_general_event_elements_Line_1() ); + + TRgb lineColour( separatorRect.Color() ); + + AknsUtils::GetCachedColor( aknsInst, + lineColour, + KAknsIIDQsnLineColors, + EAknsCIQsnLineColorsCG6 /* column separator lines */ ); + + gc.SetPenColor( lineColour ); + gc.SetPenStyle( CWindowGc::ESolidPen ); + + TInt separatorWidth( separatorRect.Rect().Width() -1 ); + TPoint dot( separatorRect.Rect().iTl ); + + for( ; dot.iX < separatorWidth; dot.iX+=2 ) + { + // draw the dots + gc.Plot( dot ); + } + }