epoc32/include/mw/eikcapc.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) 1997-2009 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
#if !defined(__EIKCAPC_H__)
williamr@2
    20
#define __EIKCAPC_H__
williamr@2
    21
williamr@2
    22
#if !defined(__COECNTRL_H__)
williamr@2
    23
#include <coecntrl.h>
williamr@2
    24
#endif
williamr@2
    25
williamr@2
    26
#if !defined(__FEPBASE_H__)
williamr@2
    27
#include <fepbase.h>
williamr@2
    28
#endif
williamr@2
    29
williamr@2
    30
#if !defined(__EIKLABEL_H__)
williamr@2
    31
#include <eiklabel.h>
williamr@2
    32
#endif
williamr@2
    33
williamr@2
    34
#include <eikdialg.h>
williamr@2
    35
#include <eikdpage.h>
williamr@2
    36
williamr@2
    37
#include <AknControl.h>
williamr@4
    38
#include <aknsconstants.h>
williamr@2
    39
williamr@2
    40
class CEikImage ;
williamr@2
    41
class CEikDialogPage;
williamr@2
    42
// Forward declaration of types used in layout routines.
williamr@2
    43
class CAknPopupField;
williamr@2
    44
class CAknSlider;
williamr@2
    45
class CEikEdwin;
williamr@2
    46
class CEikMfne; 
williamr@2
    47
class CEikSecretEditor;
williamr@2
    48
class CEikCapCLabel ;
williamr@2
    49
class CEikCapCExtension;
williamr@2
    50
class MPointerEventObserver;
williamr@2
    51
class MAknsControlContext;
williamr@2
    52
williamr@2
    53
/** CaptionedControl
williamr@2
    54
 *
williamr@2
    55
 * CaptionedControl is part of the dialogs. All dialogs and forms use captionedcontrol
williamr@2
    56
 * as a control for one DLG_LINE. Each DLG_LINE has one captionedcontrol in it.
williamr@2
    57
 * 
williamr@2
    58
 * Rectangle of the captionedcontrol is single form field / form line or DLG_LINE's
williamr@2
    59
 * rectangle dependent on the dialog type.
williamr@2
    60
 */
williamr@2
    61
class CEikCaptionedControl : public CAknControl, public MCoeCaptionRetrieverForFep, public MCoeControlObserver
williamr@2
    62
    {
williamr@2
    63
    friend class CEikCapCExtension;
williamr@2
    64
public:
williamr@2
    65
    enum TSpaceSharingFlags
williamr@2
    66
        {
williamr@2
    67
        EIfTooSmallCtlGetsWidthLast         =0x0,
williamr@2
    68
        EIfTooSmallCtlGetsWidthFirst        =0x1,
williamr@2
    69
        EIfTooSmallCtlGetsEqualShareOfWidth =0x2,
williamr@2
    70
        EIfTooBigCtlStaysMinHeight          =0x4,
williamr@2
    71
        EIfTooBigCtlStaysMinWidth           =0x8,
williamr@2
    72
        EIfTooBigCtlStaysMinSize            =0xc,
williamr@2
    73
        EIfTooSmallDontStrech               =0x10
williamr@2
    74
        };
williamr@2
    75
    enum TCaptionExpandingState
williamr@2
    76
        {
williamr@2
    77
        EInitial = 0,
williamr@2
    78
        EExtended =1,
williamr@2
    79
        ERetracted =2
williamr@2
    80
        };
williamr@2
    81
williamr@2
    82
public:
williamr@2
    83
 	/** Constructor
williamr@2
    84
 	 */	
williamr@2
    85
    IMPORT_C CEikCaptionedControl();
williamr@2
    86
    /** Destructor
williamr@2
    87
     */
williamr@2
    88
    IMPORT_C ~CEikCaptionedControl();
williamr@2
    89
public: // new functions
williamr@2
    90
	/** SetUsesEars() sets a flag Uses Ears.
williamr@2
    91
	 */
williamr@2
    92
    IMPORT_C void SetUsesEars();
williamr@2
    93
    /** SetSpaceSharingFlags() sets flags for space sharing
williamr@2
    94
     */
williamr@2
    95
    IMPORT_C void SetSpaceSharingFlags(TInt aFlags);
williamr@2
    96
    /** SetExtraAscent() modifies layout to include extra ascent for fonts
williamr@2
    97
     */
williamr@2
    98
    IMPORT_C void SetExtraAscent();
williamr@2
    99
    /** SetCaptionL() Sets label of the DLG_LINE
williamr@2
   100
     * @param aText Descriptor
williamr@2
   101
     */
williamr@2
   102
    IMPORT_C void SetCaptionL(const TDesC& aText);
williamr@2
   103
    /** SetTrailerL() Sets trailer
williamr@2
   104
     * Should not be used
williamr@2
   105
     * @param aText Descriptor
williamr@2
   106
     */
williamr@2
   107
    IMPORT_C void SetTrailerL(const TDesC& aText);
williamr@2
   108
	/** Sets the captionedcontrol to be currently focused or not
williamr@2
   109
     * @param aSelected whether captionedcontrol is focused
williamr@2
   110
	 */
williamr@2
   111
    IMPORT_C void SetCurrent(TBool aSelected);
williamr@2
   112
	/** Updates captionedcontrol's dimmed state
williamr@2
   113
	 */
williamr@2
   114
    IMPORT_C void CheckDimmedDisplayState();
williamr@2
   115
	/** Sets minimumsizes to zero
williamr@2
   116
	 */
williamr@2
   117
    IMPORT_C void ResetMinimumSizes();
williamr@2
   118
	/** Whether captionedcontrol is latent
williamr@2
   119
	 *
williamr@2
   120
	 * @return true if is latent
williamr@2
   121
	 */
williamr@2
   122
    IMPORT_C TBool IsLatent() const;
williamr@2
   123
	/** Sets captionedcontrol latent status
williamr@2
   124
	 */
williamr@2
   125
    IMPORT_C void SetLatent(TBool aLatent);
williamr@2
   126
	/** Whether captionedcontrol has latent group following it
williamr@2
   127
     * @returns true if has latent group following
williamr@2
   128
	 */
williamr@2
   129
    IMPORT_C TBool LatentGroupLineFollows() const;
williamr@2
   130
	/** Sets latent group following flag
williamr@2
   131
     * @param aLglf true if latent group following
williamr@2
   132
	 */
williamr@2
   133
    IMPORT_C void SetLatentGroupLineFollows(TBool aLglf);
williamr@2
   134
	/** Whether there is a divider after the captionedcontrol
williamr@2
   135
	 */
williamr@2
   136
    IMPORT_C TBool DividerAfter() const;
williamr@2
   137
    /** Sets divider after the captionedcontrol
williamr@2
   138
     */
williamr@2
   139
    IMPORT_C void SetDividerAfter(TBool aDividerAfter);
williamr@2
   140
    /** Whether captionedcontrol consumes enter key
williamr@2
   141
     */
williamr@2
   142
    IMPORT_C TBool TakesEnterKey() const;
williamr@2
   143
    /** Sets captionedcontrol to take enter key
williamr@2
   144
     * @param aTakesEnter true if takes enter key, false if not
williamr@2
   145
     */
williamr@2
   146
    IMPORT_C void SetTakesEnterKey(TBool aTakesEnter);
williamr@2
   147
    /** Whether offers hot keys
williamr@2
   148
     * @return boolean true if offers hotkeys
williamr@2
   149
     */
williamr@2
   150
    IMPORT_C TBool OfferHotKeys() const;
williamr@2
   151
    /** Sets captionedcontrol to offer hotkeys
williamr@2
   152
     */
williamr@2
   153
    IMPORT_C void SetOfferHotKeys(TBool aOffer);
williamr@2
   154
    
williamr@2
   155
williamr@2
   156
    /**
williamr@2
   157
     * From MCoeControlObserver:
williamr@2
   158
     * Acts upon changes in the hosted control's state. 
williamr@2
   159
     * 
williamr@2
   160
     * This class's implementation handles events from MFNE editor editing
williamr@2
   161
     * buttons in touch enabled builds
williamr@2
   162
     *
williamr@2
   163
     * @param	aControl	The control changing its state (not used)
williamr@2
   164
     * @param	aEventType	The type of control event 
williamr@2
   165
     */
williamr@2
   166
	IMPORT_C virtual void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
williamr@2
   167
	
williamr@2
   168
public:
williamr@2
   169
    TInt MaximumNumberOfControlLinesOnVisiblePage() const;
williamr@2
   170
	TInt NumberOfLines() const;
williamr@2
   171
	TInt NumberOfLinesForScrollBar() const;
williamr@2
   172
public:
williamr@2
   173
    TBool ControlIsAnEdwin(TInt aControlType) const;
williamr@2
   174
    TBool ControlIsAMfne(TInt aControlType) const;
williamr@2
   175
    TBool ControlIsAPopfield(TInt aControlType) const;
williamr@2
   176
    TBool ControlIsASecretEditor(TInt aControlType) const;
williamr@2
   177
    TBool ControlIsASlider(TInt aControlType) const;
williamr@2
   178
    TBool ControlIsAColourSelGrid(TInt aControlType) const;
williamr@2
   179
	TInt ControlType() const;
williamr@2
   180
williamr@2
   181
public: // from CCoeControl
williamr@2
   182
    /** MinimumSize() returns minimum size of the control
williamr@2
   183
     */
williamr@2
   184
    IMPORT_C TSize MinimumSize();
williamr@2
   185
    /** ConstructFromResourceL() constructs the captionedcontrol from DLG_LINE resource
williamr@2
   186
     *
williamr@2
   187
     * usually called with the following code:
williamr@2
   188
     * TResourceReader reader;
williamr@2
   189
     * iCoeEnv->CreateResourceReaderLC(reader, resId);
williamr@2
   190
     * control->ConstructFromResourceL(reader);
williamr@2
   191
     * CleanupStack::PopAndDestroy();
williamr@2
   192
     */
williamr@2
   193
    IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
williamr@2
   194
    /** OfferKeyEventL() handles key events
williamr@2
   195
     */
williamr@2
   196
    IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
williamr@2
   197
    /** GetColorUseListL() gets color use list
williamr@2
   198
     */
williamr@2
   199
    IMPORT_C virtual void GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const; // not available before Release 005u
williamr@2
   200
    /** HandleResourceChange handles several kinds of resource change event
williamr@2
   201
     */
williamr@2
   202
    IMPORT_C virtual void HandleResourceChange(TInt aType);         // not available before Release 005u
williamr@2
   203
    /** Provides ability to get input capabilities needed for fep
williamr@2
   204
     */
williamr@2
   205
    IMPORT_C TCoeInputCapabilities InputCapabilities() const;
williamr@2
   206
    /** SetDimmed sets captionedcontrol to dimmed state
williamr@2
   207
     */
williamr@2
   208
    IMPORT_C void SetDimmed(TBool aDimmed);
williamr@2
   209
    /** HandlePointerEventL handles touch pointer events
williamr@2
   210
     */
williamr@2
   211
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   212
public:
williamr@2
   213
    void RegisterPageWithCaptionControl(CEikDialogPage* aPage);
williamr@2
   214
williamr@2
   215
public: // internal layout properties
williamr@2
   216
	//void SetProperties(const TRegion &aRegion, const RArray<TCapCProperty> &aProperties);
williamr@2
   217
	//TRect Line(TInt aLineIndex); // text line rectangles
williamr@2
   218
	//TInt LineIndex(TPoint aPoint);
williamr@2
   219
	//TPoint LineControlPoint(TInt aLineIndex);
williamr@2
   220
	//RArray<TInt> LineIndexesIntersecting(TRect aRect);
williamr@2
   221
	//void SetProperty(TInt aLine, TCapCProperty &aProperty);
williamr@2
   222
	//void ClearProperty(TInt aLine, TCapCProperty &aProperty);
williamr@2
   223
	//TCapCProperty Properties(TInt aLine);
williamr@2
   224
	//void LineRegions(TRegion &aRegion);
williamr@2
   225
	//void SetVisibleArea(TRect aRect);
williamr@2
   226
	//void RemoveVisibleArea();
williamr@2
   227
private: // from CCoeControl
williamr@2
   228
    IMPORT_C TInt CountComponentControls() const;
williamr@2
   229
    IMPORT_C CCoeControl* ComponentControl(TInt aIndex) const;
williamr@2
   230
    IMPORT_C void SizeChanged();
williamr@2
   231
    IMPORT_C void FocusChanged(TDrawNow aDrawNow);
williamr@2
   232
protected: // from CCoeControl
williamr@2
   233
    IMPORT_C void Draw(const TRect& aRect) const;
williamr@2
   234
    IMPORT_C void WriteInternalStateL(RWriteStream& aWriteStream) const;
williamr@2
   235
private: // from CCoeControl
williamr@2
   236
    IMPORT_C void Reserved_2();
williamr@2
   237
    // from MCoeCaptionRetrieverForFep
williamr@2
   238
    IMPORT_C virtual void GetCaptionForFep(TDes& aCaption) const;
williamr@2
   239
    IMPORT_C virtual void MCoeCaptionRetrieverForFep_Reserved_1();
williamr@2
   240
    IMPORT_C virtual void MCoeCaptionRetrieverForFep_Reserved_2();
williamr@2
   241
private:
williamr@2
   242
    /**
williamr@2
   243
    * From CAknControl
williamr@2
   244
    */
williamr@2
   245
    IMPORT_C void* ExtensionInterface( TUid aInterface );
williamr@2
   246
williamr@2
   247
protected: // from MObjectProvider
williamr@2
   248
    IMPORT_C TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
williamr@2
   249
williamr@2
   250
public:
williamr@2
   251
    /** SetToolTipTextL() sets tooltip text
williamr@2
   252
     * @param aText descriptor for tooltip text
williamr@2
   253
     */
williamr@2
   254
      
williamr@2
   255
    IMPORT_C void SetToolTipTextL( const TDesC& aText ) ;
williamr@2
   256
    /** Ability to query tooltip text string
williamr@2
   257
     */
williamr@2
   258
    IMPORT_C const TDesC* ToolTipText() const ;
williamr@2
   259
    /** SetBitmapFromFileL() sets icon contents for the captionedcontrol
williamr@2
   260
     */
williamr@2
   261
    IMPORT_C void SetBitmapFromFileL( const TDesC& aFilename,TInt aMainId,TInt aMaskId =-1 ) ;
williamr@2
   262
    /** SetEditable sets captionedcontrol to editable state
williamr@2
   263
     */
williamr@2
   264
    IMPORT_C void SetEditableL( TBool aEditable, TBool aShowEmptyFields = ETrue ) ;
williamr@2
   265
    
williamr@2
   266
    IMPORT_C void SetFormFlags( TInt aFlags ) ;
williamr@2
   267
    void GetAknLayoutValuesL() ;  // Visible within DLL only.
williamr@2
   268
    TBool HasSeparator() const;
williamr@2
   269
    /** GetFullCaptionText() gets caption descriptor
williamr@2
   270
     *
williamr@2
   271
     */
williamr@2
   272
    IMPORT_C const TPtrC GetFullCaptionText() const;
williamr@2
   273
    TBool   IsDisplayable() const;
williamr@2
   274
    /** 
williamr@2
   275
     * Allows clients of CEikCaptionedControl to turn off drawing 
williamr@2
   276
     * of white background of captionedcontrol.
williamr@2
   277
     *
williamr@2
   278
     * @since 2.1
williamr@2
   279
     */
williamr@2
   280
    IMPORT_C void SetDrawNoWhiteBackground(TBool aEnabled); // for list queries with find.
williamr@2
   281
williamr@2
   282
    /**
williamr@2
   283
    * In case of an editor control residing in a form,
williamr@2
   284
    * sets up a pictograph animation callback to redraw the form highlight
williamr@2
   285
    * control when pictograph animations are updated.
williamr@2
   286
    */
williamr@2
   287
    void SetPictographCallBack();
williamr@2
   288
    
williamr@2
   289
    /**
williamr@2
   290
    * Sets icon and sets its size.
williamr@2
   291
    * @param aBitmap a bitmap which has already been loaded. Must not be NULL.
williamr@2
   292
    * @param aMask a mask bitmap which has already been loaded. Can be NULL.
williamr@2
   293
    * Takes ownership of the bitmap objects.
williamr@2
   294
    * @since 2.8
williamr@2
   295
    */
williamr@2
   296
    IMPORT_C void SetIconL( CFbsBitmap* aBitmap, CFbsBitmap* aMask ); 
williamr@2
   297
williamr@2
   298
    /**
williamr@2
   299
     * Sets one of the two small indicator icons
williamr@2
   300
     * @param aIcon a index 0 or 1 depending on which icon to set
williamr@2
   301
     * @param aBitmap a bitmap pointer or NULL
williamr@2
   302
     * @param aMask a mask pointer or NULL
williamr@2
   303
     */
williamr@2
   304
	IMPORT_C void SetIndicatorIconL( TInt aIcon, CFbsBitmap *aBitmap, CFbsBitmap *aMask );
williamr@2
   305
williamr@2
   306
    /** SetPointerEventObserver
williamr@2
   307
     * Low level observer for touch related pointer events.
williamr@2
   308
     * This can be used to receive low level pointer events.
williamr@2
   309
     */
williamr@2
   310
	IMPORT_C void SetPointerEventObserver(MPointerEventObserver *aObserver);
williamr@2
   311
	MPointerEventObserver *PointerEventObserver() const;
williamr@4
   312
	
williamr@4
   313
    /** Sets the captionedcontrol to be currently focused or not.
williamr@4
   314
     * @param aSelected whether captionedcontrol is focused
williamr@4
   315
     * @param aRedraw whether redraw is needed or not
williamr@4
   316
     */    
williamr@4
   317
    void SetCurrent(TBool aSelected, TBool aRedraw );
williamr@4
   318
    
williamr@2
   319
protected:
williamr@2
   320
    TRect ViewRect() const;
williamr@2
   321
    TRect EditRect() const;
williamr@2
   322
williamr@2
   323
private:
williamr@2
   324
    enum TWhichEars
williamr@2
   325
        {
williamr@2
   326
        ENoEar=0x00,
williamr@2
   327
        ELeftEar=0x01,
williamr@2
   328
        ERightEar=0x02,
williamr@2
   329
        EBothEars=0x03
williamr@2
   330
        };
williamr@2
   331
private: // new functions
williamr@2
   332
    TInt WidthForEars(TInt aWidthRemaining) const;
williamr@2
   333
    void DrawEarsNow(TWhichEars aEar) const;
williamr@2
   334
    void DrawEars(TWhichEars aEar) const;
williamr@2
   335
    void DrawSingleEar(TWhichEars aEar,TBool aPressed) const;
williamr@2
   336
    TRect EarRect(TWhichEars aEar) const;
williamr@2
   337
    void FireEarL(TWhichEars aEar,TInt aEarRepeat);
williamr@2
   338
    TInt SquashComponentWidth(TInt& aTotalWidth,const TInt aComponentWidthHint);
williamr@2
   339
    void StretchComponents();
williamr@2
   340
    void SetVertEdgeSpacing( TInt aVertEdgeSpacing );
williamr@2
   341
    void SetHorzEdgeSpacing( TInt aHorzEdgeSpacing );
williamr@2
   342
    void SquashComponents();
williamr@2
   343
    void CalculateNumberOfLinesForControl( TInt aLines ) ;
williamr@2
   344
    void SizeDialogComponents() ;
williamr@2
   345
    void PositionDialogComponents() ;
williamr@2
   346
    static TInt PictographAnimationCallBack( TAny* aPtr );
williamr@2
   347
    /**
williamr@2
   348
    * Sets a size for a bitmap that has already been loaded.
williamr@2
   349
    * @since 2.8
williamr@2
   350
    */    
williamr@2
   351
    void SetIconSizeL(CFbsBitmap* aBitmap);
williamr@2
   352
    /**
williamr@2
   353
    * Gets control context for the given control
williamr@2
   354
    * @param aDialog a dialog to get context for
williamr@2
   355
    * If aDialog provided does not exist, TODO
williamr@2
   356
    */
williamr@2
   357
    MAknsControlContext* GetDialogControlContext(const CCoeControl* aDialog) const;
williamr@2
   358
williamr@2
   359
    /**
williamr@2
   360
     * Searches recursively for control's parents until it finds a window owning control
williamr@2
   361
     */
williamr@2
   362
    const CCoeControl* WindowOwningParent() const;
williamr@2
   363
williamr@2
   364
public:
williamr@2
   365
    /**
williamr@2
   366
     * Positions form components in accordance with dialog page flags. 
williamr@2
   367
     * If the dialog instance is not registered, them flags set with SetFormFlags() are used. 
williamr@2
   368
     */	
williamr@2
   369
    void PositionFormComponents();
williamr@2
   370
    void ScrollBackEditor();
williamr@2
   371
    
williamr@2
   372
public:
williamr@2
   373
    void DrawClosingLine() const;
williamr@2
   374
	const CEikDialogPage* DialogPage() const { return iDialogPage; }
williamr@2
   375
	void SetPartiallyVisible( TBool aPVisible );
williamr@2
   376
    TBool PressedDownState() const;
williamr@2
   377
	void SetPressedDownState( TBool aPressed );
williamr@2
   378
private:
williamr@2
   379
    TSize EditorControlSize() const ;
williamr@2
   380
    void SetElementBrushColorsL( TRgb aColor ) ;
williamr@2
   381
    void SetElementTextColorsL( TRgb aColor ) ;
williamr@2
   382
williamr@2
   383
    TBool ShowBitmap() const;
williamr@2
   384
    void  LayoutBitmap(const TRect& aRect);
williamr@2
   385
    void  LayoutCaption(const TRect& aRect);
williamr@2
   386
    void DoFormCaptionSettingsL(const TDesC& aText);
williamr@2
   387
private:
williamr@2
   388
    static void FormLayoutControlBitmap(CEikImage* aBitmap, const TRect& aParent, TBool aIsEditable, TBool aSingleLayout, TInt aNumberOfLines);
williamr@4
   389
    void FormLayoutControlEdwin(CEikEdwin* aEdwin, const TRect& aParent, TBool aIsEditable, TBool aSingleLayout, TInt aNumberOfLines, TBool aBitmapPresent, TBool aIsFocused);
williamr@4
   390
    void FormLayoutControlLabel(CEikLabel* aSlider, const TRect& aParent, TBool aIsEditable, TBool aSingleLayout, TInt aNumberOfLines, TBool aLayoutWithBitmap, TBool aIsFocused, TInt aIconCount);
williamr@4
   391
    void FormLayoutControlMfne(CEikMfne* aMfne,  const TRect& aParent, TBool aIsEditable, TBool aSingleLayout, TInt aNumberOfLines, TBool aBitmapPresent, TBool aIsFocused );
williamr@4
   392
    void FormLayoutControlPopfield(CAknPopupField* aPopfield, const TRect& aParent, TBool aIsEditable, TBool aSingleLayout, TInt aNumberOfLines, TBool aBitmapPresent, TBool aIsFocused);
williamr@4
   393
    void FormLayoutControlSecretEditor(CEikSecretEditor* aSecretEd, const TRect& aParent, TBool aIsEditable, TBool aSingleLayout, TInt aNumberOfLines, TBool aBitmapPresent, TBool aIsFocused );
williamr@2
   394
    static void FormLayoutControlSlider(CAknSlider* aSlider, const TRect& aParent, TBool aIsEditable, TBool aSingleLayout, TInt aNumberOfLines, TBool aBitmapPresent);
williamr@2
   395
    static void ConvertViewRectToEditRect(TRect& aRect);
williamr@2
   396
    static void ConvertEditRectToViewRect(TRect& aRect);
williamr@2
   397
williamr@2
   398
    /*	
williamr@2
   399
    *
williamr@2
   400
    * Access method for use in a CAknForm context. 
williamr@2
   401
    *
williamr@2
   402
    * @return   Enumeration for layout for the CAknForm
williamr@2
   403
    *           Layout value is received from owning CEikDialogPage, if it is not defined then EEikFormUseDoubleSpacedFormat flag is checked.
williamr@2
   404
    *           Default value is CEikDialogPage::ESingle
williamr@2
   405
    */
williamr@2
   406
    CEikDialogPage::TFormLayoutSelection FormLayout() const;
williamr@2
   407
williamr@2
   408
    /**
williamr@2
   409
    * Draws the separator between (at the top of current ) caption control(s)
williamr@2
   410
    *
williamr@2
   411
    * @param    gc  Current graphics contect
williamr@2
   412
    */
williamr@2
   413
    void DrawFormSeparator( CWindowGc& gc ) const;
williamr@2
   414
williamr@2
   415
    /**
williamr@2
   416
    * Constructs the extension object.
williamr@2
   417
    * There is no base constructL, so it is necessary to call this in several places
williamr@2
   418
    */
williamr@2
   419
    void ConstructExtensionL() ;
williamr@2
   420
williamr@2
   421
    void DrawAsSkinnedForm( CWindowGc& aGc, const TRect& aRect ) const;
williamr@2
   422
    void LayoutSkinControlContexts();
williamr@2
   423
    TBool DrawingSkins() const;
williamr@2
   424
    void DrawAsForm( const TRect& aRect ) const;
williamr@2
   425
    void DrawAsEikonDialog( const TRect& aRect ) const;
williamr@2
   426
    void DrawAsFormInEditMode( const TRect& aRect ) const;
williamr@2
   427
    void DrawAsFormInViewMode( const TRect& aRect ) const;
williamr@2
   428
    void DrawAsFormUnFocusedLine( const TRect& aRect ) const;
williamr@4
   429
    
williamr@4
   430
    /**
williamr@4
   431
     * Returns correct text color index.
williamr@4
   432
     *
williamr@4
   433
     * @since S60 5.2
williamr@4
   434
     * @return Text color index.
williamr@4
   435
     */
williamr@4
   436
    TAknsQsnTextColorsIndex TextColorIndex() const;
williamr@2
   437
williamr@2
   438
public:
williamr@2
   439
    CCoeControl* iControl;
williamr@2
   440
    CEikCapCLabel* iCaption;
williamr@2
   441
    HBufC* iCaptionText;
williamr@2
   442
williamr@2
   443
    CEikLabel* iTrailer;
williamr@2
   444
    TInt iId;
williamr@2
   445
    TInt iControlType;
williamr@2
   446
    TAny* iReturnValue;
williamr@2
   447
    TBool iIsFormControl ;
williamr@2
   448
    CEikImage* iBitmap ;
williamr@2
   449
    TBool iIsEditable ;
williamr@2
   450
williamr@2
   451
private:
williamr@2
   452
    TBool iHasAppendedEditIndicator;
williamr@2
   453
    TSize iMinSize;
williamr@2
   454
    TInt  iCapCFlags;
williamr@2
   455
    TInt  iCaptionWidth;
williamr@2
   456
    TInt  iFullWidth;
williamr@2
   457
    TSize iNormalSize ;
williamr@2
   458
    HBufC*iToolTipText ;
williamr@2
   459
    TBool iDoNotDisplay ;
williamr@2
   460
williamr@2
   461
    TInt iVertEdgeSpacing ;
williamr@2
   462
    TInt iHorzEdgeSpacing ;
williamr@2
   463
    TInt iOriginalHeight ;
williamr@2
   464
williamr@2
   465
    TSize iEditorControlSize ;
williamr@2
   466
    TInt iNumberOfLines ;
williamr@2
   467
williamr@2
   468
    friend class CEikCapCArray;
williamr@2
   469
williamr@2
   470
    enum { ENotSupplied = -1 } ;
williamr@2
   471
    TInt iFlags ;
williamr@2
   472
williamr@2
   473
    TBool iRefresh ;
williamr@2
   474
williamr@2
   475
    TInt iCaptionFontId ;
williamr@2
   476
    TInt iEditorFontId ;
williamr@2
   477
    TInt iVerticalLineXPosition; //iAknTopSpacing ;         
williamr@2
   478
    CCoeControl* iHighlightControl;
williamr@2
   479
    CEikCapCExtension* iExtension ;  // BC extension for additional Data members.
williamr@2
   480
    TInt iAknFormControlHeight ;
williamr@2
   481
    TInt iAknFormControlWidth ;
williamr@2
   482
    TInt iPenColor ;
williamr@2
   483
    TInt iShadowColor ;
williamr@2
   484
    TBool iIsCurrentLine;
williamr@2
   485
    CEikDialogPage* iDialogPage;
williamr@2
   486
williamr@2
   487
williamr@2
   488
    };
williamr@2
   489
williamr@2
   490
williamr@2
   491
/*
williamr@2
   492
 * Special Label Class which appends colon to label text
williamr@2
   493
 */
williamr@2
   494
williamr@2
   495
NONSHARABLE_CLASS(CEikCapCLabel) : public CEikLabel
williamr@2
   496
    {
williamr@2
   497
public :
williamr@2
   498
    CEikCapCLabel() ;
williamr@2
   499
    ~CEikCapCLabel() ;
williamr@2
   500
williamr@2
   501
    TBool ColonEnabled() const ;
williamr@2
   502
    void EnableColon( TBool aEnable ) ;
williamr@2
   503
williamr@2
   504
protected :
williamr@2
   505
    void Draw(const TRect& aRect) const ;
williamr@2
   506
    void DrawL(const TRect& aRect) ;
williamr@2
   507
williamr@2
   508
private:
williamr@2
   509
    TBool iIsColonEnabled ;
williamr@2
   510
    } ;
williamr@2
   511
williamr@2
   512
class MPointerEventObserver
williamr@2
   513
	{
williamr@2
   514
public:
williamr@2
   515
	virtual bool PointerEvent(CEikCaptionedControl *aControl, const TPointerEvent& aPointerEvent)=0;
williamr@2
   516
	};
williamr@2
   517
williamr@2
   518
#endif