diff -r 000000000000 -r f72a12da539e idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,186 @@ +/* +* Copyright (c) 2005-2006 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: Wrapper class for CAknSkinnableClock +* +*/ + + + +#ifndef _XNCLOCKADAPTER_H +#define _XNCLOCKADAPTER_H + +// INCLUDES +#include "xncontroladapter.h" +#include + +// FORWARD DECLARATIONS +class CXnNodePluginIf; +class CXnClockControl; +class CAknLayoutFont; +class CFont; +class TRgb; + +// CLASS DECLARATION +/** +* @ingroup group_xnclockfactory +* @lib xnclockfactory.lib +* @since S60 +*/ +class CXnClockAdapter : public CXnControlAdapter, + public MCoeMessageMonitorObserver + { +public: + enum TClockFont + { + EDigitalFont, + EAmPmFont, + EDateFont + }; + +public: // constructor and destructor + /** + * 2 phase construction. + */ + static CXnClockAdapter* NewL( CXnControlAdapter* aParent, CXnNodePluginIf& aNode ); + + /** + * Destructor. + */ + ~CXnClockAdapter(); + +public: // New functions + + /** + * Gets font based on type + * + * @return Font based on aType, NULL if not found + */ + const CAknLayoutFont* FontL( const TInt aType ); + + /** + * Gets text color + * + * @return Text color + */ + const TRgb& TextColorL(); + + /** + * Gets date information + * + * @return A node which holds date information + */ + CXnNodePluginIf* Date() const; + + /** + * Gets day information + * + * @return A node which holds day information + */ + CXnNodePluginIf* Day() const; + + /** + * Calls DrawNow, if node is laidout + */ + void UpdateDisplay() const; + +public: // from base classes + + /** + * @see CXnControlAdapter documentation + */ + void DoHandlePropertyChangeL( CXnProperty* aProperty = NULL ); + + /* + * @see CXnControlAdapter documentation + */ + void SkinChanged(); + + /* + * @see CXnControlAdapter documentation + */ + void HandleScreenDeviceChangedL(); + + /* + * @see CCoeControl documentation + */ + void SizeChanged(); + + /** + * @see CCoeControl documentation + */ + void Draw( const TRect& aRect ) const; + + /** + * @see CCoeControl documentation + */ + void MakeVisible( TBool aVisible ); + +private: // from MCoeMessageMonitorObserver + /** + * @see MCoeMessageMonitorObserver documentation + */ + void MonitorWsMessage( const TWsEvent& aEvent ); + +private: // constructors + + /** + * C++ default constructor. + */ + CXnClockAdapter( CXnControlAdapter* aParent, CXnNodePluginIf& aNode ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + +private: // New functions + + /* + * Create font + */ + void CreateFontL( const TInt aType ); + + /* + * Create color + */ + void CreateColorL(); + +private: + // Parent control, not owned + CXnControlAdapter* iParent; + // UI node, not owned + CXnNodePluginIf& iNode; + // Digital clock date information, not owned + CXnNodePluginIf* iDate; + // Analog clock day information, not owned + CXnNodePluginIf* iDay; + // Clock control, owned + CXnClockControl* iClockControl; + // Digital clock font, not owned + CFont* iDigitalFont; + // AmPm font, not owned + CFont* iAmPmFont; + // Date font, not owned + CFont* iDateFont; + // Font color + TRgb iColor; + // Flag for initializing font color + TBool iColorSet; + // Flag indicating foreground state + TBool iForeground; + }; + +#endif // _XNCLOCKADAPTER_H + +// End of File