epoc32/include/mw/akninfrm.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description: 
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
williamr@2
    18
williamr@2
    19
// INCLUDES
williamr@2
    20
#ifndef __AKNINFRM_H__
williamr@2
    21
#define __AKNINFRM_H__
williamr@2
    22
williamr@2
    23
williamr@2
    24
#include <eikdef.h>
williamr@2
    25
#include <eikbctrl.h>
williamr@2
    26
#include <gulicon.h>
williamr@2
    27
#include <eiklabel.h>
williamr@4
    28
#include <AknUtils.h>
williamr@2
    29
#include <avkon.rsg>
williamr@2
    30
williamr@2
    31
class CAknsFrameBackgroundControlContext;
williamr@2
    32
class CAknsBasicBackgroundControlContext;
williamr@2
    33
// CLASS DECLARATION
williamr@2
    34
/**
williamr@2
    35
* Implements an input frame which can contain any @c CCoeControl.
williamr@2
    36
* The input frame can have additional icon and/or info text.
williamr@2
    37
* @since Series60 0.9
williamr@2
    38
*/
williamr@2
    39
NONSHARABLE_CLASS(CAknInputFrame) : public CEikBorderedControl, public MCoeControlObserver
williamr@2
    40
    {
williamr@2
    41
public:
williamr@2
    42
    
williamr@2
    43
    /**
williamr@2
    44
    * Default C++ constructor.
williamr@2
    45
    */
williamr@2
    46
    CAknInputFrame();
williamr@2
    47
    
williamr@2
    48
    /**
williamr@2
    49
    * Destructor. Frees all resources owned by the object prior to its
williamr@2
    50
    * destruction.
williamr@2
    51
    */
williamr@2
    52
    IMPORT_C ~CAknInputFrame();
williamr@2
    53
        
williamr@2
    54
    /**
williamr@2
    55
    * Two-phased constructor.
williamr@2
    56
    * @param aField Control which will be located inside the input frame
williamr@2
    57
    * @param aComponentOwner Defines whether the ownership of the control will
williamr@2
    58
    * be transferred or not.
williamr@2
    59
    * @param aBitmapfile Bitmap file name and path.
williamr@2
    60
    * @param aBitmapId Bitmap Id.
williamr@2
    61
    * @param aMaskId Bitmap Mask Id.
williamr@2
    62
    * @param aFlags Flags.
williamr@2
    63
    * @return a Pointer to the new @c CAknInputFrame object.
williamr@2
    64
    */
williamr@2
    65
    IMPORT_C static CAknInputFrame* NewL(CCoeControl* aField,TBool aComponentOwner,
williamr@2
    66
                                         const TDesC& aBitmapfile, TInt aBitmapId, TInt aMaskId,
williamr@2
    67
                                         TUint32 aFlags = 0 );
williamr@2
    68
    /**
williamr@2
    69
    * Two-phased constructor.
williamr@2
    70
    * @param aField Control which will be located inside the input frame
williamr@2
    71
    * @param aComponentOwner Defines whether the ownership of the control is
williamr@2
    72
    * transferred or not.
williamr@2
    73
    * @param aIcon Bitmap file name and path.
williamr@2
    74
    * @param aFlags Flags.
williamr@2
    75
    * @return a Pointer to the new @c CAknInputFrame object.
williamr@2
    76
    */
williamr@2
    77
    IMPORT_C static CAknInputFrame* NewL(CCoeControl* aField,TBool aComponentOwner,
williamr@2
    78
                                         CGulIcon* aIcon, TUint32 aFlags = 0 );
williamr@2
    79
    /**
williamr@2
    80
    * Returns apointer to field.
williamr@2
    81
    * @return a Pointer to the control, which is located inside the input frame. 
williamr@2
    82
    */
williamr@2
    83
    IMPORT_C CCoeControl* Field() const;
williamr@2
    84
        
williamr@2
    85
    /**
williamr@2
    86
    * Sets additional info text to input frame.
williamr@2
    87
    * @param aText Info text to be added in the input frame.
williamr@2
    88
    * @deprecated
williamr@2
    89
    */
williamr@2
    90
    IMPORT_C void SetInfoTextL(const TDesC& aText);
williamr@2
    91
        
williamr@2
    92
    /**
williamr@2
    93
    * Sets the lines visible or invisible.
williamr@2
    94
    * @param aText @c ETrue to make the line visible, @c EFalse to make it
williamr@2
    95
    * invisible.
williamr@2
    96
    */
williamr@2
    97
    IMPORT_C void SetLineState(TBool aLineVisible);
williamr@2
    98
        
williamr@2
    99
    /**
williamr@2
   100
    * Sets new icon to input frame.
williamr@2
   101
    * @param aIcon a Pointer to the new icon. Ownership is transffered which 
williamr@2
   102
    * means that object is deleted in @c CAknInputFrame::~CAknInputFrame().
williamr@2
   103
    */
williamr@2
   104
    void SetIcon(CGulIcon* aIcon);
williamr@2
   105
williamr@2
   106
    /**
williamr@2
   107
     * Get flags of current input frame.
williamr@2
   108
     * @return flags.
williamr@2
   109
     * @since Series 60 5.0
williamr@2
   110
     */
williamr@2
   111
    TUint Flags() const;
williamr@2
   112
williamr@2
   113
    /**
williamr@2
   114
     * Set new flags to current input frame.
williamr@2
   115
     * @param aNewFlags is new flag.
williamr@2
   116
     * @since Series 60 5.0
williamr@2
   117
     */
williamr@2
   118
    void SetFlags( TUint aNewFlags );
williamr@2
   119
williamr@2
   120
public: //from MCoeControlObserver
williamr@2
   121
williamr@2
   122
    /**
williamr@2
   123
    * Handles focus changes. This is called by the UI Control Framework to 
williamr@2
   124
    * notify that an event occured in observed input frame.
williamr@2
   125
    * @param aControl The control where event has happened.
williamr@2
   126
    * @param aEventType a Type of the event.
williamr@2
   127
    */
williamr@2
   128
    IMPORT_C void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
williamr@2
   129
williamr@2
   130
public: //from CCoeControl
williamr@2
   131
williamr@2
   132
    /**
williamr@2
   133
    * Handles key events.
williamr@2
   134
    * @param aKeyEvent The key event.
williamr@2
   135
    * @param aType The type of the event: @c EEventKey, @c EEventKeyUp or 
williamr@2
   136
    * @c EEventKeyDown.
williamr@2
   137
    * @return Indicates whether or not the key event was used by this control. 
williamr@2
   138
    */
williamr@2
   139
    IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
williamr@2
   140
        
williamr@2
   141
    /**
williamr@2
   142
    * Tells the minimum size of the control.
williamr@2
   143
    * @return The minimum size of the control.
williamr@2
   144
    */
williamr@2
   145
    IMPORT_C TSize MinimumSize();
williamr@2
   146
        
williamr@2
   147
    /**
williamr@2
   148
    * The second phase constructor: constructs input frame from resources.
williamr@2
   149
    * @param The resource reader.
williamr@2
   150
    */
williamr@2
   151
    IMPORT_C void ConstructFromResourceL(TResourceReader& aReader); 
williamr@2
   152
        
williamr@2
   153
    /**
williamr@2
   154
    * Sets the implementation of this control context in this input frame.
williamr@2
   155
    * It is a layout background of the frame item. 
williamr@2
   156
    * @since Series 60 2.1
williamr@2
   157
    * @param Pointer to the context.
williamr@2
   158
    */
williamr@2
   159
    IMPORT_C void SetInputContext(CAknsFrameBackgroundControlContext* aContext);
williamr@2
   160
williamr@2
   161
  	/**
williamr@2
   162
   	* From CCoeControl. Handles a change to the control's resources.
williamr@2
   163
   	* @param aType A message UID value.
williamr@2
   164
   	*/
williamr@2
   165
   	void HandleResourceChange( TInt aType );
williamr@2
   166
williamr@2
   167
private: // From CCoeControl
williamr@2
   168
    void SizeChanged();
williamr@2
   169
    void FocusChanged(TDrawNow aDrawNow); 
williamr@2
   170
    void Draw(const TRect& aRect) const;
williamr@2
   171
    void PrepareForFocusLossL();
williamr@2
   172
williamr@2
   173
private:
williamr@2
   174
    void BaseConstructL(CCoeControl* aField, TBool aOwner, TUint32 aFlags);
williamr@2
   175
    void ConstructL(CCoeControl* aField, TBool aOwner, const TDesC& aFileName, TInt aBitmapId, TInt aMaskId, TUint32 aFlags);
williamr@2
   176
    void ConstructL(CCoeControl* aField, TBool aOwner, CGulIcon* aIcon, TUint32 aFlags);
williamr@2
   177
    void CreateIconL();
williamr@2
   178
williamr@2
   179
public:
williamr@2
   180
    /** Enumeration flags for different layouts.        */
williamr@2
   181
    enum TInputFrameFlags
williamr@2
   182
        {
williamr@2
   183
        /** a Standard layout. */
williamr@2
   184
        EOwnsField=0x40,
williamr@2
   185
        /** a Popup layoyt. */
williamr@2
   186
        EPopupLayout=0x80,
williamr@2
   187
        /** a Pinboard layout. */
williamr@2
   188
        EPinbLayout=0x100,
williamr@2
   189
        /** a ClockAppLayout. */
williamr@2
   190
        EClockAppLayout=0x200,
williamr@2
   191
        /** a Layout without lines. */
williamr@2
   192
        EFixedFindWithoutLine   = 0x400,
williamr@2
   193
        /** a Layout that shows indicator.*/
williamr@2
   194
        EShowIndicators         = 0x800,
williamr@2
   195
        /** A layout used by list query. */
williamr@4
   196
        EPopupWindowLayout=0x1000,
williamr@4
   197
        /** A List query with embedded softkeys. */
williamr@4
   198
        EPopupWindowEmbeddedSoftkeys = 0x4000
williamr@2
   199
        };
williamr@2
   200
    
williamr@2
   201
private:
williamr@2
   202
    enum TInfrmPrivateFlags
williamr@2
   203
        {
williamr@2
   204
        EOwnsInputContext = 0x2000
williamr@2
   205
        };
williamr@2
   206
williamr@2
   207
    CGulIcon*               iIcon;
williamr@2
   208
    TUint32                 iFlags;
williamr@2
   209
    TAknLayoutRect          iMagnIconPos;  // position of the looking glass icon
williamr@2
   210
    // sizeof(Taknlayoutrect)=20 sizeof(TRect)=16 sizeof(CCoeControl*)=4 sizeof TAknsItemID=8 
williamr@2
   211
    TRect                   iOutlineRect; // was first 16 bytes of TAknLayoutRect  iOutlineRect;
williamr@2
   212
williamr@2
   213
    CCoeControl             *iField;                           // bytes 0..3   of TAknLayoutRect iUnused7;
williamr@2
   214
    CAknsFrameBackgroundControlContext *iPopupFindCC;          // bytes 4..7   of TAknLayoutRect iUnused7;
williamr@2
   215
    CAknsFrameBackgroundControlContext *iInputContext;         // bytes 8..11  of TAknLayoutRect iUnused7;
williamr@2
   216
    TAknsItemID             iIconSkinID;                       // bytes 12..19 of TAknLayoutRect iUnused7;
williamr@2
   217
    CAknsBasicBackgroundControlContext *iPopupListCC;          // was TAny*   iExtension; // not used
williamr@2
   218
williamr@2
   219
williamr@2
   220
    // these are unused
williamr@2
   221
    TAknLayoutRect          iUnUsed1;
williamr@2
   222
    TAknLayoutRect          iUnUsed2;
williamr@2
   223
    TAknLayoutRect          iUnused3;
williamr@2
   224
    TAknLayoutRect          iUnused4;
williamr@2
   225
    TAknLayoutRect          iUnused5;
williamr@2
   226
    TAknLayoutRect          iUnused6;
williamr@2
   227
williamr@2
   228
    TAny*                   iSpare;     // WAS CEikLabel* iInfoText;
williamr@2
   229
    TAny*                   iSpare2;    // was last 4 bytes of TAknLayoutRect  iOutlineRect;
williamr@2
   230
    
williamr@2
   231
    HBufC*		            iFileName; 
williamr@2
   232
    TInt                    iBitmapId;
williamr@2
   233
    TInt                    iMaskId;
williamr@2
   234
williamr@2
   235
    };
williamr@2
   236
williamr@2
   237
williamr@2
   238
#endif
williamr@2
   239
williamr@2
   240
williamr@2
   241