diff -r 000000000000 -r 2f259fa3e83a classicui_pub/input_frame_api/inc/akninfrm.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_pub/input_frame_api/inc/akninfrm.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,241 @@ +/* +* Copyright (c) 2002 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: +* +*/ + + +// INCLUDES +#ifndef __AKNINFRM_H__ +#define __AKNINFRM_H__ + + +#include +#include +#include +#include +#include +#include + +class CAknsFrameBackgroundControlContext; +class CAknsBasicBackgroundControlContext; +// CLASS DECLARATION +/** +* Implements an input frame which can contain any @c CCoeControl. +* The input frame can have additional icon and/or info text. +* @since Series60 0.9 +*/ +NONSHARABLE_CLASS(CAknInputFrame) : public CEikBorderedControl, public MCoeControlObserver + { +public: + + /** + * Default C++ constructor. + */ + CAknInputFrame(); + + /** + * Destructor. Frees all resources owned by the object prior to its + * destruction. + */ + IMPORT_C ~CAknInputFrame(); + + /** + * Two-phased constructor. + * @param aField Control which will be located inside the input frame + * @param aComponentOwner Defines whether the ownership of the control will + * be transferred or not. + * @param aBitmapfile Bitmap file name and path. + * @param aBitmapId Bitmap Id. + * @param aMaskId Bitmap Mask Id. + * @param aFlags Flags. + * @return a Pointer to the new @c CAknInputFrame object. + */ + IMPORT_C static CAknInputFrame* NewL(CCoeControl* aField,TBool aComponentOwner, + const TDesC& aBitmapfile, TInt aBitmapId, TInt aMaskId, + TUint32 aFlags = 0 ); + /** + * Two-phased constructor. + * @param aField Control which will be located inside the input frame + * @param aComponentOwner Defines whether the ownership of the control is + * transferred or not. + * @param aIcon Bitmap file name and path. + * @param aFlags Flags. + * @return a Pointer to the new @c CAknInputFrame object. + */ + IMPORT_C static CAknInputFrame* NewL(CCoeControl* aField,TBool aComponentOwner, + CGulIcon* aIcon, TUint32 aFlags = 0 ); + /** + * Returns apointer to field. + * @return a Pointer to the control, which is located inside the input frame. + */ + IMPORT_C CCoeControl* Field() const; + + /** + * Sets additional info text to input frame. + * @param aText Info text to be added in the input frame. + * @deprecated + */ + IMPORT_C void SetInfoTextL(const TDesC& aText); + + /** + * Sets the lines visible or invisible. + * @param aText @c ETrue to make the line visible, @c EFalse to make it + * invisible. + */ + IMPORT_C void SetLineState(TBool aLineVisible); + + /** + * Sets new icon to input frame. + * @param aIcon a Pointer to the new icon. Ownership is transffered which + * means that object is deleted in @c CAknInputFrame::~CAknInputFrame(). + */ + void SetIcon(CGulIcon* aIcon); + + /** + * Get flags of current input frame. + * @return flags. + * @since Series 60 5.0 + */ + TUint Flags() const; + + /** + * Set new flags to current input frame. + * @param aNewFlags is new flag. + * @since Series 60 5.0 + */ + void SetFlags( TUint aNewFlags ); + +public: //from MCoeControlObserver + + /** + * Handles focus changes. This is called by the UI Control Framework to + * notify that an event occured in observed input frame. + * @param aControl The control where event has happened. + * @param aEventType a Type of the event. + */ + IMPORT_C void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType); + +public: //from CCoeControl + + /** + * Handles key events. + * @param aKeyEvent The key event. + * @param aType The type of the event: @c EEventKey, @c EEventKeyUp or + * @c EEventKeyDown. + * @return Indicates whether or not the key event was used by this control. + */ + IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * Tells the minimum size of the control. + * @return The minimum size of the control. + */ + IMPORT_C TSize MinimumSize(); + + /** + * The second phase constructor: constructs input frame from resources. + * @param The resource reader. + */ + IMPORT_C void ConstructFromResourceL(TResourceReader& aReader); + + /** + * Sets the implementation of this control context in this input frame. + * It is a layout background of the frame item. + * @since Series 60 2.1 + * @param Pointer to the context. + */ + IMPORT_C void SetInputContext(CAknsFrameBackgroundControlContext* aContext); + + /** + * From CCoeControl. Handles a change to the control's resources. + * @param aType A message UID value. + */ + void HandleResourceChange( TInt aType ); + +private: // From CCoeControl + void SizeChanged(); + void FocusChanged(TDrawNow aDrawNow); + void Draw(const TRect& aRect) const; + void PrepareForFocusLossL(); + +private: + void BaseConstructL(CCoeControl* aField, TBool aOwner, TUint32 aFlags); + void ConstructL(CCoeControl* aField, TBool aOwner, const TDesC& aFileName, TInt aBitmapId, TInt aMaskId, TUint32 aFlags); + void ConstructL(CCoeControl* aField, TBool aOwner, CGulIcon* aIcon, TUint32 aFlags); + void CreateIconL(); + +public: + /** Enumeration flags for different layouts. */ + enum TInputFrameFlags + { + /** a Standard layout. */ + EOwnsField=0x40, + /** a Popup layoyt. */ + EPopupLayout=0x80, + /** a Pinboard layout. */ + EPinbLayout=0x100, + /** a ClockAppLayout. */ + EClockAppLayout=0x200, + /** a Layout without lines. */ + EFixedFindWithoutLine = 0x400, + /** a Layout that shows indicator.*/ + EShowIndicators = 0x800, + /** A layout used by list query. */ + EPopupWindowLayout=0x1000, + /** A List query with embedded softkeys. */ + EPopupWindowEmbeddedSoftkeys = 0x4000 + }; + +private: + enum TInfrmPrivateFlags + { + EOwnsInputContext = 0x2000 + }; + + CGulIcon* iIcon; + TUint32 iFlags; + TAknLayoutRect iMagnIconPos; // position of the looking glass icon + // sizeof(Taknlayoutrect)=20 sizeof(TRect)=16 sizeof(CCoeControl*)=4 sizeof TAknsItemID=8 + TRect iOutlineRect; // was first 16 bytes of TAknLayoutRect iOutlineRect; + + CCoeControl *iField; // bytes 0..3 of TAknLayoutRect iUnused7; + CAknsFrameBackgroundControlContext *iPopupFindCC; // bytes 4..7 of TAknLayoutRect iUnused7; + CAknsFrameBackgroundControlContext *iInputContext; // bytes 8..11 of TAknLayoutRect iUnused7; + TAknsItemID iIconSkinID; // bytes 12..19 of TAknLayoutRect iUnused7; + CAknsBasicBackgroundControlContext *iPopupListCC; // was TAny* iExtension; // not used + + + // these are unused + TAknLayoutRect iUnUsed1; + TAknLayoutRect iUnUsed2; + TAknLayoutRect iUnused3; + TAknLayoutRect iUnused4; + TAknLayoutRect iUnused5; + TAknLayoutRect iUnused6; + + TAny* iSpare; // WAS CEikLabel* iInfoText; + TAny* iSpare2; // was last 4 bytes of TAknLayoutRect iOutlineRect; + + HBufC* iFileName; + TInt iBitmapId; + TInt iMaskId; + + }; + + +#endif + + +