epoc32/include/mw/aknquerycontrol.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002-2008 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@2
     5
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.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:  Implementation of Query control and List query control.
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
williamr@2
    18
williamr@2
    19
#ifndef AKNQUERYCONTROL_H
williamr@2
    20
#define AKNQUERYCONTROL_H
williamr@2
    21
williamr@2
    22
//  INCLUDES
williamr@2
    23
#include <akncontrol.h>
williamr@2
    24
#include <gulbordr.h>
williamr@2
    25
williamr@2
    26
#include <eikedwin.h>
williamr@2
    27
#include <eikseced.h>
williamr@2
    28
#include <eikmfne.h>
williamr@2
    29
#include <aknnumseced.h>
williamr@2
    30
#include <aknnumedwin.h>
williamr@2
    31
#include <eikfpne.h>
williamr@2
    32
williamr@2
    33
#include <eikimage.h>   
williamr@2
    34
#include <eikedwob.h>
williamr@2
    35
williamr@2
    36
#include <aknutils.h>
williamr@2
    37
#include <aknpanic.h>
williamr@2
    38
williamr@2
    39
#include <aknipfed.h>
williamr@2
    40
#include <lbsposition.h>
williamr@2
    41
williamr@2
    42
//  FORWARD DECLARATIONS
williamr@2
    43
class CAknQueryControl;
williamr@2
    44
class TAknQueryEcsObserver;
williamr@2
    45
class CAknEcsDetector;
williamr@2
    46
class CAknBitmapAnimation;
williamr@2
    47
class CAknTextControl;
williamr@2
    48
class CAknQueryEditIndicator;
williamr@2
    49
class MLAFIndex;
williamr@2
    50
class MAknEditingStateIndicator;
williamr@2
    51
class TInetAddr;
williamr@2
    52
class CAknQueryExtension;
williamr@2
    53
class TAknWindowLineLayout;
williamr@2
    54
class CAknButton;
williamr@2
    55
class CAknQueryControlExtension;
williamr@2
    56
class CAknLocationEditor;
williamr@2
    57
/**
williamr@2
    58
* MAknQueryControlObserver
williamr@2
    59
*   Callback class for CAknQueryDialog
williamr@2
    60
*/
williamr@2
    61
class MAknQueryControlObserver
williamr@2
    62
    {
williamr@2
    63
public:
williamr@2
    64
    /**
williamr@2
    65
    * Enumeration for query control events
williamr@2
    66
    */
williamr@2
    67
    enum TQueryControlEvent
williamr@2
    68
        {
williamr@2
    69
        EQueryControltSizeChanging,
williamr@2
    70
        EQueryControlEditorStateChanging,
williamr@2
    71
        EEmergencyCallAttempted
williamr@2
    72
        };
williamr@2
    73
williamr@2
    74
    /**
williamr@2
    75
    * Enumeration for editor validation status
williamr@2
    76
    */
williamr@2
    77
    enum TQueryValidationStatus
williamr@2
    78
        {
williamr@2
    79
        EEditorValueValid = KErrNone,
williamr@2
    80
        EEditorValueTooSmall,
williamr@2
    81
        EEditorValueTooLarge,
williamr@2
    82
        EEditorValueNotParsed,
williamr@2
    83
        EEditorEmpty
williamr@2
    84
        };
williamr@2
    85
williamr@2
    86
public:
williamr@2
    87
    /**
williamr@2
    88
    * Gets called when editor sends size event
williamr@2
    89
    */
williamr@2
    90
    virtual TBool HandleQueryEditorSizeEventL(CAknQueryControl* aQueryControl, TQueryControlEvent aEventType)=0;
williamr@2
    91
    /**
williamr@2
    92
    * Gets called when editor sends state event
williamr@2
    93
    */
williamr@2
    94
    virtual TBool HandleQueryEditorStateEventL(CAknQueryControl* aQueryControl, TQueryControlEvent aEventType, TQueryValidationStatus aStatus)=0;
williamr@2
    95
    };
williamr@2
    96
williamr@2
    97
/**
williamr@2
    98
 * The control for a query dialog.
williamr@2
    99
 *
williamr@2
   100
 * Manage layout of elements in a query dialog:- the text, the image 
williamr@2
   101
 * and the editors.
williamr@2
   102
 *
williamr@2
   103
 * @see CAknQueryDialog, CAknText
williamr@2
   104
 */
williamr@2
   105
class CAknQueryControl : public CAknControl , public MEikEdwinObserver , public MEikEdwinSizeObserver , public MCoeControlObserver
williamr@2
   106
    {
williamr@2
   107
public:
williamr@2
   108
williamr@2
   109
	DECLARE_TYPE_ID(0x10283143)    
williamr@2
   110
    
williamr@2
   111
    public:
williamr@2
   112
        /**
williamr@2
   113
        * Enumeration for indexing into control flags, which
williamr@2
   114
        * determine the control behaviour relative to a number
williamr@2
   115
        * of things, e.g. emergency control handling, displaying of 
williamr@2
   116
        * edit indicator, enabling of predictive text, etc
williamr@2
   117
        */
williamr@2
   118
        enum TQueryControlFlagBitIndices
williamr@2
   119
            {
williamr@2
   120
            /** Query supports emergency calls.
williamr@2
   121
            */
williamr@2
   122
            EEmergencyCallsEnabledByAPI,
williamr@2
   123
            /** Query doesn't support emergency calls.
williamr@2
   124
            */
williamr@2
   125
            EEmergencyCallsDisabledByAPI,
williamr@2
   126
            /** Predictive text input is allowed in the query.
williamr@2
   127
            */
williamr@2
   128
            EPredictiveTextEntryPermitted,
williamr@2
   129
            /** Editor indicators are not shown in the query.
williamr@2
   130
            */
williamr@2
   131
            EEditorIndicatorOff,
williamr@2
   132
            /** Additional support to ECS for CBA label change.
williamr@2
   133
            *   Must be enabled for touch full screen query for the
williamr@2
   134
            *   ECS to function properly.
williamr@2
   135
            */
williamr@2
   136
            EEmergencyCallsCBASupport
williamr@2
   137
            };
williamr@2
   138
williamr@2
   139
        /**
williamr@2
   140
         * Layout for queries can be done
williamr@2
   141
         * using the following methods. Each
williamr@2
   142
         * method is specified in a LAF section
williamr@2
   143
         */
williamr@2
   144
        enum TLayoutMethod 
williamr@2
   145
            {
williamr@2
   146
            EConfQueryLayoutM,             ///LAYOUT according to LAF specs for conf queries
williamr@2
   147
            EDataQueryLayoutM,             ///LAYOUT according to LAF specs for data queries
williamr@2
   148
            ECodeQueryLayoutM,             ///LAYOUT accoridng to LAF specs for code queries
williamr@2
   149
            ETimeQueryLayoutM,             ///LAYOUT according to LAF specs for time queries
williamr@2
   150
            EDateQueryLayoutM,             ///LAYOUT according to LAF specs for date queries
williamr@2
   151
            ECombinedCodeDataQueryLayoutM  ///LAYOUT according to LAF specs for combined code and data queries
williamr@2
   152
            };
williamr@2
   153
williamr@2
   154
    public:  // Constructors and destructor
williamr@2
   155
williamr@2
   156
        /**
williamr@2
   157
         * C++ Constructor.
williamr@2
   158
         */
williamr@2
   159
        IMPORT_C CAknQueryControl();
williamr@2
   160
williamr@2
   161
        /**
williamr@2
   162
         * C++ Destructor.
williamr@2
   163
         */
williamr@2
   164
        IMPORT_C virtual ~CAknQueryControl();
williamr@2
   165
williamr@2
   166
        /**
williamr@2
   167
         * Second phase constructor: loads contents of array from resources.
williamr@2
   168
         *
williamr@2
   169
         * @param aRea      resource reader pointed to a 
williamr@2
   170
         *                  query resource.
williamr@2
   171
         */
williamr@2
   172
        IMPORT_C void ConstructFromResourceL(TResourceReader& aRes);
williamr@2
   173
williamr@2
   174
    public: // New functions
williamr@2
   175
williamr@2
   176
        /**
williamr@2
   177
        * Set observer for query control.
williamr@2
   178
        *
williamr@2
   179
        * @param aQueryControlObserver  Pointer to oberver class 
williamr@2
   180
        */
williamr@2
   181
        IMPORT_C void SetQueryControlObserver(MAknQueryControlObserver* aQueryControlObserver);
williamr@2
   182
williamr@2
   183
        /**
williamr@2
   184
        * Read prompt text from resource and call SetPrompt if there was text for prompt.
williamr@2
   185
        *
williamr@2
   186
        * @param aRes   resource reader pointed to a query resource
williamr@2
   187
        */
williamr@2
   188
        IMPORT_C virtual void ReadPromptL(TResourceReader& aRes);
williamr@2
   189
williamr@2
   190
        /**
williamr@2
   191
        * Set prompt text for query. This call WrapToStringL.
williamr@2
   192
        *
williamr@2
   193
        * @param aDesC  Text for prompt
williamr@2
   194
        */
williamr@2
   195
        IMPORT_C virtual void SetPromptL(const TDesC& aDesC);
williamr@2
   196
williamr@2
   197
        /**
williamr@2
   198
        * Get text from text, secret text, numeric secret text snd phonenumber editor.
williamr@2
   199
        * 
williamr@2
   200
        * @param aDes   Address of variable where text returned.
williamr@2
   201
        */
williamr@2
   202
        IMPORT_C void GetText(TDes& aDes) const;
williamr@2
   203
williamr@2
   204
        /**
williamr@2
   205
        * Get time from date or time editors
williamr@2
   206
        * 
williamr@2
   207
        * @return Returns data from editor.
williamr@2
   208
        */
williamr@2
   209
        IMPORT_C TTime GetTime() const;
williamr@2
   210
williamr@2
   211
        /**
williamr@2
   212
        * Get number from number editor.
williamr@2
   213
        * 
williamr@2
   214
        * @return Returns number from editor
williamr@2
   215
        */
williamr@2
   216
        IMPORT_C TInt GetNumber() const;
williamr@2
   217
williamr@2
   218
        /**
williamr@2
   219
        * Get number from floating point editor.
williamr@2
   220
        * 
williamr@2
   221
        * @return Returns number from editor
williamr@2
   222
        */
williamr@2
   223
        IMPORT_C TReal GetFloatingPointNumberL() const;
williamr@2
   224
williamr@2
   225
        /**
williamr@2
   226
        * Get duration from duration editor
williamr@2
   227
        * 
williamr@2
   228
        * @return Return duration from editor.
williamr@2
   229
        */
williamr@2
   230
        IMPORT_C TTimeIntervalSeconds GetDuration() const;
williamr@2
   231
williamr@2
   232
williamr@2
   233
		/**
williamr@2
   234
		 * Get location from location editor
williamr@2
   235
		 *
williamr@2
   236
		 * Modifies aLocation in such way that either
williamr@2
   237
		 * longitude or latitude will change.
williamr@2
   238
		 */
williamr@2
   239
  	    IMPORT_C void GetLocation(TPosition &aLocation) const;
williamr@2
   240
williamr@2
   241
        /**
williamr@2
   242
        * Set text to text and phonenumber editor.
williamr@2
   243
        * 
williamr@2
   244
        * @param aDesC Text for editor
williamr@2
   245
        */
williamr@2
   246
        IMPORT_C void SetTextL(const TDesC& aDesC);
williamr@2
   247
williamr@2
   248
        /**
williamr@2
   249
        * Set date of time to editor
williamr@2
   250
        * 
williamr@2
   251
        * @param aTime Time or date to editor.
williamr@2
   252
        */
williamr@2
   253
        IMPORT_C void SetTime(TTime& aTime);
williamr@2
   254
williamr@2
   255
        /**
williamr@2
   256
        * Set duration to duration editor
williamr@2
   257
        * 
williamr@2
   258
        * @param aDuration  Duration to editor
williamr@2
   259
        */
williamr@2
   260
        IMPORT_C void SetDuration(TTimeIntervalSeconds& aDuration);
williamr@2
   261
williamr@2
   262
        /**
williamr@2
   263
        * Set number to number editor
williamr@2
   264
        * @param aNumber    Number to editor
williamr@2
   265
        *
williamr@2
   266
        */
williamr@2
   267
        IMPORT_C void SetNumberL(TInt aNumber);
williamr@2
   268
williamr@2
   269
         /**
williamr@2
   270
        * Set number to floating point editor
williamr@2
   271
        * @param aNumber    Number to editor
williamr@2
   272
        *
williamr@2
   273
        */
williamr@2
   274
        IMPORT_C void SetFloatingPointNumberL(const TReal* aNumber);
williamr@2
   275
williamr@2
   276
		/**
williamr@2
   277
		* Set location to location editor
williamr@2
   278
        *
williamr@2
   279
		* Modifies editor in such way that it'll start
williamr@2
   280
		* showing either longitude or latitude from
williamr@2
   281
		* the given location. It depends on resource file
williamr@2
   282
		* flags of the location editor which is used.
williamr@2
   283
		*
williamr@2
   284
		* @param aLocation Location to editor
williamr@2
   285
		*
williamr@2
   286
		*/
williamr@2
   287
		IMPORT_C void SetLocation(const TPosition &aLocation);
williamr@2
   288
williamr@2
   289
        /**
williamr@2
   290
        * Set max length of text to text editor. This will override length from resource
williamr@2
   291
        * @param aLength    Max length of text in editor
williamr@2
   292
        * 
williamr@2
   293
        */
williamr@2
   294
        IMPORT_C void SetTextEntryLength(TInt aLength);
williamr@2
   295
williamr@2
   296
        /**
williamr@2
   297
        * Return the max length of the text in the text editor
williamr@2
   298
        * @return max text length
williamr@2
   299
        */
williamr@2
   300
        IMPORT_C TInt GetTextEntryLength() const;
williamr@2
   301
williamr@2
   302
        /**
williamr@2
   303
        * Set minimum and maximum time or date to editor
williamr@2
   304
        * @param aMinimum   Minimum value 
williamr@2
   305
        * @param aMaximum   Maximum value
williamr@2
   306
        * 
williamr@2
   307
        */
williamr@2
   308
        IMPORT_C void SetMinimumAndMaximum(const TTime& aMinimum, const TTime& aMaximum);
williamr@2
   309
williamr@2
   310
        /**
williamr@2
   311
        * Set minimum and maximum duration to editor
williamr@2
   312
        * @param aMinimumDuration   Minimum value
williamr@2
   313
        * @param aMaximumDuration   Maximum value
williamr@2
   314
        */
williamr@2
   315
        IMPORT_C void SetMinimumAndMaximum(const TTimeIntervalSeconds& aMinimumDuration, const TTimeIntervalSeconds& aMaximumDuration);
williamr@2
   316
williamr@2
   317
        /**
williamr@2
   318
        * Set minimum and maximum number to editor
williamr@2
   319
        * @param aMinimumValue   Minimum value
williamr@2
   320
        * @param aMaximumValue   Maximum value
williamr@2
   321
        */
williamr@2
   322
        IMPORT_C void SetMinimumAndMaximum(TInt aMinimumValue, TInt aMaximumValue);
williamr@2
   323
williamr@2
   324
williamr@2
   325
        /**
williamr@2
   326
        * Checks if the given number in the editor is within the maximum and minimum values.
williamr@2
   327
        */
williamr@2
   328
        IMPORT_C TBool CheckNumber();
williamr@2
   329
        
williamr@2
   330
        /**
williamr@2
   331
        * Set the number of lines in the editor.
williamr@2
   332
        *
williamr@2
   333
        * @param aNum Number of lines in the editor
williamr@2
   334
        */
williamr@2
   335
        IMPORT_C void SetNumberOfEditorLines(TInt aNum);
williamr@2
   336
williamr@2
   337
        /**
williamr@2
   338
        * Set minimum and maximum number to floating point editor
williamr@2
   339
        * @param aMinimumValue   Minimum value
williamr@2
   340
        * @param aMaximumValue   Maximum value
williamr@2
   341
        */
williamr@2
   342
        IMPORT_C void SetMinimumAndMaximum(const TReal& aMinimumValue, const TReal& aMaximumValue);
williamr@2
   343
        /**
williamr@2
   344
        * Get text length from editor.
williamr@2
   345
        * 
williamr@2
   346
        * @return Length of text from editor
williamr@2
   347
        */
williamr@2
   348
        IMPORT_C TInt GetTextLength() const;
williamr@2
   349
williamr@2
   350
        /**
williamr@2
   351
        * Return number of editor lines
williamr@2
   352
        *
williamr@2
   353
        * @return Number lines in the editor
williamr@2
   354
        */
williamr@2
   355
williamr@2
   356
        IMPORT_C TInt NbrOfEditorLines() const;
williamr@2
   357
williamr@2
   358
williamr@2
   359
        /**
williamr@2
   360
        * Return number of prompt lines
williamr@2
   361
        * 
williamr@2
   362
        * @return Number of lines in the prompt
williamr@2
   363
        */
williamr@2
   364
        IMPORT_C TInt NbrOfPromptLines() const;
williamr@2
   365
williamr@2
   366
        /**
williamr@2
   367
        * Get pointer to query controls control (editor)
williamr@2
   368
        *
williamr@2
   369
        * @param aLayout    Controls layout (for one line queries use
williamr@2
   370
        *                   EDataLayout, ECodeLayout... and for
williamr@2
   371
        *                   multiline queries use
williamr@2
   372
        *                   EMultiDataFirstEdwin, EMultiDataSecondEdwin...)
williamr@2
   373
        * @return           Pointer to control, NULL if not found 
williamr@2
   374
        */
williamr@2
   375
        IMPORT_C virtual CCoeControl* ControlByLayoutOrNull(TInt aLayout);
williamr@2
   376
williamr@2
   377
        /**
williamr@2
   378
        * Sets and overrides other image or animation
williamr@2
   379
        * Takes ownership of aImage
williamr@2
   380
        */
williamr@2
   381
        IMPORT_C void SetImageL(CEikImage* aImage);
williamr@2
   382
williamr@2
   383
        /**
williamr@2
   384
        * Sets and overrides other image or animation
williamr@2
   385
        */
williamr@2
   386
        IMPORT_C void SetImageL(const TDesC& aImageFile,
williamr@2
   387
                                TInt aBmpId, TInt aBmpMaskId);
williamr@2
   388
        /**
williamr@2
   389
        * Sets and overrides other animation
williamr@2
   390
        * 
williamr@2
   391
        */
williamr@2
   392
        IMPORT_C void SetAnimationL(TInt aResource);
williamr@2
   393
williamr@2
   394
        /**
williamr@2
   395
        * starts animation if one present
williamr@2
   396
        * 
williamr@2
   397
        */
williamr@2
   398
        IMPORT_C void StartAnimationL();
williamr@2
   399
williamr@2
   400
        /**
williamr@2
   401
        * stops animation if one present
williamr@2
   402
        * 
williamr@2
   403
        * @return error code
williamr@2
   404
        */
williamr@2
   405
        IMPORT_C TInt CancelAnimation();
williamr@2
   406
williamr@2
   407
        /**
williamr@2
   408
        * This cancels the query.  Used when the query control has to get abandon the query
williamr@2
   409
        * for some reason
williamr@2
   410
        */
williamr@2
   411
        void CancelQueryL();
williamr@2
   412
williamr@2
   413
        /**
williamr@2
   414
        *   @return true if the content of the editor is valid, false otherwise
williamr@2
   415
        */
williamr@2
   416
        TBool EditorContentIsValidL() const;
williamr@2
   417
williamr@2
   418
        /**
williamr@2
   419
        * This transfers CAknQueryControl's flags set by the dialog and then uses them.
williamr@2
   420
        * The method must be called after all the contained controls are constructed;
williamr@2
   421
        * Inside PreLayoutDynamicInitL is recommended.
williamr@2
   422
        * 
williamr@2
   423
        * @param flag pattern to set and then act on.
williamr@2
   424
        */
williamr@2
   425
        void SetAndUseFlagsL( TBitFlags16 aFlags );
williamr@2
   426
williamr@2
   427
    public: // Functions from CCoeControl
williamr@2
   428
    
williamr@2
   429
        /**
williamr@2
   430
        * From CCoeControl  Handle key events. When a key event occurs, 
williamr@2
   431
        *                   CONE calls this function for each control on the control stack, 
williamr@2
   432
        *                   until one of them returns EKeyWasConsumed to indicate that it processed the key event.  
williamr@2
   433
        * @param aKeyEvent  The key event.
williamr@2
   434
        * @param aType      The type of the event: EEventKey, EEventKeyUp or EEventKeyDown.
williamr@2
   435
        * @return           Indicates whether or not the key event was used by this control.
williamr@2
   436
        */
williamr@2
   437
        IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType);
williamr@2
   438
williamr@2
   439
        /**
williamr@2
   440
        * From CCoeControl  Give the control a mimimum size. 
williamr@2
   441
        * 
williamr@2
   442
        * @return           The minimum size required by the control.
williamr@2
   443
        */
williamr@2
   444
        IMPORT_C TSize MinimumSize();
williamr@2
   445
williamr@2
   446
        /**
williamr@2
   447
        * From CCoeControl  Added to pass-through focus-loss warnings.
williamr@2
   448
        *                   if not ready, this will leave.
williamr@2
   449
        * @return           Indicates whether or not the key event was used by this control.
williamr@2
   450
        */
williamr@2
   451
        void PrepareForFocusLossL();
williamr@2
   452
williamr@2
   453
        /**
williamr@2
   454
        * From CCoeControl  Added to pass-through focus-loss warnings.
williamr@2
   455
        *                   if not ready, this will leave.
williamr@2
   456
        * @return           Indicates whether or not the key event was used by this control.
williamr@2
   457
        */
williamr@2
   458
        void FocusChanged(TDrawNow aDrawNow);
williamr@2
   459
        
williamr@2
   460
        /**
williamr@2
   461
        * From MEikEdwinObserver
williamr@2
   462
        *
williamr@2
   463
        * @param aEdwin     Editor who sent the event
williamr@2
   464
        * @param aEventType Type of the event
williamr@2
   465
        */
williamr@2
   466
        IMPORT_C void HandleEdwinEventL(CEikEdwin* aEdwin,TEdwinEvent aEventType);
williamr@2
   467
williamr@2
   468
    public:// Functions from MEikEdwinSizeObserver
williamr@2
   469
williamr@2
   470
        /**
williamr@2
   471
        * From MEikEdwinObserver
williamr@2
   472
        *
williamr@2
   473
        * @param aEdwin                 Editor who's size has changed
williamr@2
   474
        * @param aEventType             Type of the size event
williamr@2
   475
        * @param aDesirableEdwinSize    Desirable size of the edwin
williamr@2
   476
        */
williamr@2
   477
        IMPORT_C TBool HandleEdwinSizeEventL(CEikEdwin* aEdwin, TEdwinSizeEvent aEventType, TSize aDesirableEdwinSize);
williamr@2
   478
williamr@2
   479
    public:// Functions from MCoeControlObserver
williamr@2
   480
williamr@2
   481
        /**
williamr@2
   482
        * From MCoeControlObserver
williamr@2
   483
        * @param aControl   Control who caused the event
williamr@2
   484
        * @param aEventType Type of the event
williamr@2
   485
        */
williamr@2
   486
        IMPORT_C void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
williamr@2
   487
williamr@2
   488
    public:
williamr@2
   489
        /**
williamr@2
   490
        * @return Layout indication
williamr@2
   491
        *
williamr@2
   492
        * At the moment the layout is a good indication of the query type (PIN,number,etc)
williamr@2
   493
        * The query dialog uses this information to determine query type in order to
williamr@2
   494
        * process key events in a way dependent on the query type. These key events
williamr@2
   495
        * can't be processes by the control directly because they involve actions only
williamr@2
   496
        * the dialog can perform
williamr@2
   497
        */
williamr@2
   498
        inline TInt QueryType() const { return iQueryType; } 
williamr@2
   499
williamr@2
   500
        /**
williamr@2
   501
        * Return window layout depending on Layout 
williamr@2
   502
        * Window layout is done by the dialog
williamr@2
   503
        */
williamr@2
   504
        virtual void WindowLayout( TAknWindowLineLayout& aLayout ) const;
williamr@2
   505
    
williamr@2
   506
    public:// Functions from CCoeControl
williamr@2
   507
        /**
williamr@2
   508
        * From CCoeControl  Count number of controls contained in a compound control.  
williamr@2
   509
        *  
williamr@2
   510
        * @return           The number of component controls contained by this control.           
williamr@2
   511
        */
williamr@2
   512
        TInt CountComponentControls() const;
williamr@2
   513
williamr@2
   514
        /**
williamr@2
   515
        * From CCoeControl  Get the components of a compound control.
williamr@2
   516
        *                   It returns one of the control's component controls, identified by aIndex.
williamr@2
   517
        * @param anIndex    The index of the control to get.        
williamr@2
   518
        * @return           The component control with an index of aIndex.
williamr@2
   519
        */
williamr@2
   520
        CCoeControl* ComponentControl(TInt anIndex) const;
williamr@2
   521
williamr@2
   522
        /**
williamr@2
   523
        * From CCoeControl.     
williamr@2
   524
        * Handles pointer events
williamr@2
   525
        */
williamr@2
   526
    	IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   527
    	
williamr@2
   528
    	IMPORT_C void HandleResourceChange(TInt aType); 
williamr@2
   529
williamr@2
   530
    public:
williamr@2
   531
        /**
williamr@2
   532
         * Manage indexes into LAF tables
williamr@2
   533
         */
williamr@2
   534
        class TIndex 
williamr@2
   535
        {   
williamr@2
   536
        public:     
williamr@2
   537
            TIndex(TInt aNumberOfPromptLines);  
williamr@2
   538
        
williamr@2
   539
        public: 
williamr@2
   540
            TInt PromptLine() const;    
williamr@2
   541
            
williamr@2
   542
        public: 
williamr@2
   543
            TInt DQPWindowTextsLine2(TInt aLineNum) const;  
williamr@2
   544
            TInt PNWindow() const;  
williamr@2
   545
            TInt PQDWindow(TInt aLineNum) const;    
williamr@2
   546
            TInt PQCWindow() const;
williamr@2
   547
            
williamr@2
   548
        private:    
williamr@2
   549
            void SelfTest() const;  
williamr@2
   550
williamr@2
   551
        private:    
williamr@2
   552
            TInt  iNumberOfPromptLines; 
williamr@2
   553
        };  
williamr@2
   554
williamr@2
   555
    protected:
williamr@2
   556
        /**
williamr@2
   557
        * From CCoeControl  Respond to size changed. This function is called by CONE whenever SetExtentL(), 
williamr@2
   558
        *                   SetSizeL(), SetRectL(), SetCornerAndSizeL(), or SetExtentToWholeScreenL() 
williamr@2
   559
        *                   are called on the control.   
williamr@2
   560
        */
williamr@2
   561
        void SizeChanged();
williamr@2
   562
williamr@2
   563
        /**
williamr@2
   564
        * From CCoeControl  Draw a control.  
williamr@2
   565
        *
williamr@2
   566
        * @param aRect      The region of the control to be redrawn.   
williamr@2
   567
        */
williamr@2
   568
        void Draw(const TRect& aRect) const;
williamr@2
   569
williamr@2
   570
        /**
williamr@2
   571
        * From MObjectProvider
williamr@2
   572
        */
williamr@2
   573
        TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
williamr@2
   574
williamr@2
   575
        /**
williamr@2
   576
        * Perform layout by calling SizeChanged 
williamr@2
   577
        *   
williamr@2
   578
        */
williamr@2
   579
        void Layout();
williamr@2
   580
williamr@2
   581
    protected:
williamr@2
   582
        /**
williamr@2
   583
         * Determine the line widths for the prompt, depends on layout
williamr@2
   584
         */
williamr@2
   585
        virtual void SetLineWidthsL();
williamr@2
   586
williamr@2
   587
        /**
williamr@2
   588
         * After having read the query type from resource. This method is
williamr@2
   589
         * called in CostructFromResourceL()
williamr@2
   590
         *
williamr@2
   591
         * @see ConstructFromResourceL()
williamr@2
   592
         */
williamr@2
   593
        virtual void ConstructQueryL(TResourceReader& aRes);
williamr@2
   594
williamr@2
   595
        /**
williamr@2
   596
         * Layout rectangle (shift up and left by margins)
williamr@2
   597
         */
williamr@2
   598
        virtual TRect LayoutRect();
williamr@2
   599
williamr@2
   600
        /**
williamr@2
   601
         * Return the rect that is used by the dialog for layout
williamr@2
   602
         * This can be determined using LAF values and is equal to 
williamr@2
   603
         * TPoint(0,0) plus the control size plus the margins
williamr@2
   604
         */
williamr@2
   605
        TRect DialogRect() const;
williamr@2
   606
williamr@2
   607
        /**
williamr@2
   608
         * Return the size of the dialog. This equals to the control 
williamr@2
   609
         * size plus the margins.
williamr@2
   610
         */
williamr@2
   611
        TSize DialogSize() const;
williamr@2
   612
        
williamr@2
   613
        /**
williamr@2
   614
         * Calculates the size of the dialog. This can be determined
williamr@2
   615
         * using LAF values and is equal to the control size plus
williamr@2
   616
         * the margins.
williamr@2
   617
         */
williamr@2
   618
        void DialogSizeChanged();
williamr@2
   619
williamr@2
   620
    protected:
williamr@2
   621
        /**
williamr@2
   622
         * Layout the query prompt
williamr@2
   623
         */
williamr@2
   624
        virtual void LayoutPrompt(const TLayoutMethod& aLayoutM);
williamr@2
   625
williamr@2
   626
        /**
williamr@2
   627
         * Layout the image or the animation
williamr@2
   628
         */
williamr@2
   629
        virtual void LayoutImageOrAnim(const TLayoutMethod& aLayoutM);
williamr@2
   630
        
williamr@2
   631
        /**
williamr@2
   632
         * Layout the text editor
williamr@2
   633
         */
williamr@2
   634
        virtual void LayoutEditor(const TLayoutMethod& aLayoutM);
williamr@2
   635
williamr@2
   636
        /**
williamr@2
   637
         * Layout the editor frame
williamr@2
   638
         */
williamr@2
   639
        virtual void LayoutEditorFrame(const TLayoutMethod& aLayoutM);
williamr@2
   640
williamr@2
   641
        /**
williamr@2
   642
         * Layout the editor state indicator icons
williamr@2
   643
         */
williamr@2
   644
        virtual void LayoutEditorIndicator(const TLayoutMethod& aLayoutM);
williamr@2
   645
williamr@2
   646
    protected:
williamr@2
   647
williamr@2
   648
        /**
williamr@2
   649
        * Get the extension object instance, if any exists.
williamr@2
   650
        */
williamr@2
   651
        CAknQueryExtension* QueryExtension() const;
williamr@2
   652
williamr@2
   653
        /**
williamr@2
   654
        * Draw editor frame and shadows
williamr@2
   655
        */
williamr@2
   656
        void DrawEditorFrame(CWindowGc& aGc,TRect& aRect) const;
williamr@2
   657
    
williamr@2
   658
    private:        
williamr@2
   659
williamr@2
   660
        /**
williamr@2
   661
        * This transfers CAknQueryControl's flags set by the dialog
williamr@2
   662
        * 
williamr@2
   663
        * @param flag pattern to set 
williamr@2
   664
        *
williamr@2
   665
        */
williamr@2
   666
        void SetFlags( TBitFlags16 aFlags );
williamr@2
   667
williamr@2
   668
        /** 
williamr@2
   669
        * This acts on the Query control flags that are set from CAknQueryDialog
williamr@2
   670
        *
williamr@2
   671
        */
williamr@2
   672
        void DeployFlagsL();
williamr@2
   673
williamr@2
   674
        /**
williamr@2
   675
        * Call CAknTextControl::ParseTextL
williamr@2
   676
        *
williamr@2
   677
        */
williamr@2
   678
        void DoSetPromptL();
williamr@2
   679
williamr@2
   680
        static TInt StaticPictographCallBack( TAny* aPtr );
williamr@2
   681
        void PictographCallBack();
williamr@2
   682
        
williamr@2
   683
        /**
williamr@2
   684
        * Checks if this query control should contain embedded virtual keypad.
williamr@2
   685
        *
williamr@2
   686
        * @return ETrue if embedded virtual keypad should be used.
williamr@2
   687
        */
williamr@2
   688
        TBool EmbeddedVirtualInput() const;
williamr@2
   689
        
williamr@2
   690
        /**
williamr@2
   691
        * Returns pointer to dialog.
williamr@2
   692
        *
williamr@2
   693
        * @return Pointer to dialog if it exists.
williamr@2
   694
        */
williamr@2
   695
        CEikDialog* Dialog() const;
williamr@2
   696
        
williamr@2
   697
        /**
williamr@2
   698
        * Creates increment and decrement buttons.
williamr@2
   699
        *
williamr@2
   700
        */
williamr@2
   701
        void CreateIncAndDecButtonsL();
williamr@2
   702
        
williamr@2
   703
        /**
williamr@2
   704
        * Creates backspace button.
williamr@2
   705
        *
williamr@2
   706
        */
williamr@2
   707
        void CreateBackspaceButtonL();
williamr@2
   708
        
williamr@2
   709
        /**
williamr@2
   710
        * Layouts the query prompt in case of Full Screen Query.
williamr@2
   711
        *
williamr@2
   712
        */
williamr@2
   713
        void LayoutEditorForFullScreen( const TLayoutMethod& /*aLayoutM*/ );
williamr@2
   714
        
williamr@2
   715
        /**
williamr@2
   716
        * Layout the text editor in case of Full Screen Query.
williamr@2
   717
        *
williamr@2
   718
        */
williamr@2
   719
        void LayoutPromptForFullScreen();
williamr@2
   720
williamr@2
   721
williamr@2
   722
williamr@2
   723
williamr@2
   724
    private:
williamr@2
   725
        /**
williamr@2
   726
        * From CAknControl
williamr@2
   727
        */
williamr@2
   728
        IMPORT_C void* ExtensionInterface( TUid aInterface );
williamr@2
   729
	protected:
williamr@2
   730
		CAknLocationEditor *&LocationEd();
williamr@2
   731
		CAknLocationEditor *LocationEd() const;
williamr@2
   732
    
williamr@2
   733
    public:       
williamr@2
   734
        /**
williamr@2
   735
        *   Return prompt needed by FEP to query dialog
williamr@2
   736
        */
williamr@2
   737
        void GetCaption( TDes& aCaption ) const;
williamr@2
   738
        
williamr@2
   739
        /**
williamr@2
   740
        * Sets the ECS CBA visibility in the query.
williamr@2
   741
        * 
williamr@2
   742
        * TBool  aVisible  @c ETrue if an ECS number is entered to the
williamr@2
   743
        *                  query, @c EFalse otherwise.
williamr@2
   744
        */ 
williamr@2
   745
        void SetEcsCbaVisibleL( TBool aVisible );
williamr@2
   746
        
williamr@2
   747
        /**
williamr@2
   748
        * Attempts to make an emergency call if a valid emergency
williamr@2
   749
        * number has been entered to the query.
williamr@2
   750
        */
williamr@2
   751
        void AttemptEmergencyCallL();
williamr@2
   752
        
williamr@2
   753
    protected:
williamr@2
   754
        /// Control for prompt text
williamr@2
   755
        CAknTextControl*  iPrompt;
williamr@2
   756
        /// Editor indicator icons 
williamr@2
   757
        CAknQueryEditIndicator*  iEditIndicator;
williamr@2
   758
        /// Edwin editor
williamr@2
   759
        CEikEdwin*               iEdwin;
williamr@2
   760
        /// Date editor
williamr@2
   761
        CEikDateEditor*          iDateEdwin;
williamr@2
   762
        /// Time editor
williamr@2
   763
        CEikTimeEditor*          iTimeEdwin;
williamr@2
   764
        /// Duration editor
williamr@2
   765
        CEikDurationEditor*      iDurationEdwin;
williamr@2
   766
        /// Secret editor
williamr@2
   767
        CEikSecretEditor*        iSecretEd;
williamr@2
   768
        /// Integer editor
williamr@2
   769
        CAknIntegerEdwin*        iNumberEdwin; 
williamr@2
   770
        /// Numeric secret editor
williamr@2
   771
        CAknNumericSecretEditor* iPinEdwin;
williamr@2
   772
        // Floating point editor
williamr@2
   773
        CEikFloatingPointEditor* iFloatingPointEditor;
williamr@2
   774
        // Image
williamr@2
   775
        CEikImage*               iImage;
williamr@2
   776
        /// Control id
williamr@2
   777
        TInt                     iControl;
williamr@2
   778
        // Layoutrect for Mfne
williamr@2
   779
        TAknLayoutRect           iLayoutMfne;
williamr@2
   780
        // Emergency call detector
williamr@2
   781
        CAknEcsDetector*         iEcsDetector;
williamr@2
   782
        // Emergency call observer
williamr@2
   783
        TAknQueryEcsObserver*    iEcsObserver;
williamr@2
   784
        // Flags for emergency call support and other things
williamr@2
   785
        TBitFlags16              iFlags;
williamr@2
   786
        TUint16                  iSpare_1; // padding
williamr@2
   787
        // Animation
williamr@2
   788
        CAknBitmapAnimation*     iAnimation;
williamr@2
   789
        // Pointer to query control observer
williamr@2
   790
        MAknQueryControlObserver* iQueryControlObserver;
williamr@2
   791
        // Query type
williamr@2
   792
        TInt                      iQueryType;
williamr@2
   793
        // Layout rect for editor's vertical shadow
williamr@2
   794
        TAknLayoutRect            iEditorVerShadow;
williamr@2
   795
        // Layout rect for editor's horizontal shadow
williamr@2
   796
        TAknLayoutRect            iEditorHorShadow;
williamr@2
   797
        // Layout rect for editor's frame
williamr@2
   798
        TAknLayoutRect            iEditorFrame;
williamr@2
   799
    
williamr@2
   800
        TInt       iNumberOfEditorLines; ///Maximum number of lines in the editor
williamr@2
   801
williamr@2
   802
        TBool      iHasEditor;   //False for confirmation queries (default), 
williamr@2
   803
                                 //true for all other queries 
williamr@2
   804
williamr@2
   805
        CArrayFixFlat<TInt>* iLineWidths; ///Widths of prompt lines (in pixels)
williamr@2
   806
        
williamr@2
   807
        CAknButton* iIncreaseValueButton;  //Reserved for plus button for MFNE editors
williamr@2
   808
        CAknButton* iDecreaseValueButton;  //Reserved for minus button for MFNE editors
williamr@2
   809
williamr@2
   810
        TSize iDialogSize;                 // Dialog size
williamr@2
   811
	private:
williamr@2
   812
		CAknQueryControlExtension *iExtension;
williamr@2
   813
    private:
williamr@2
   814
        TInt iSpare[1];
williamr@2
   815
    };
williamr@2
   816
williamr@2
   817
williamr@2
   818
williamr@2
   819
/**
williamr@2
   820
 * The extended control for a query dialog.
williamr@2
   821
 * ip and fixed point editors
williamr@2
   822
 *
williamr@2
   823
 * Manage layout of elements in a query dialog:- the text, the image 
williamr@2
   824
 * and the editors.
williamr@2
   825
 *
williamr@2
   826
 * @see CAknQueryDialog, CAknText
williamr@2
   827
 * @since 2.1
williamr@2
   828
 */ 
williamr@2
   829
williamr@2
   830
class CAknExtQueryControl : public CAknQueryControl
williamr@2
   831
    {
williamr@2
   832
    
williamr@2
   833
    public:  // Constructors and destructor
williamr@2
   834
williamr@2
   835
        /**
williamr@2
   836
         * C++ Constructor.
williamr@2
   837
         */
williamr@2
   838
        IMPORT_C CAknExtQueryControl();
williamr@2
   839
williamr@2
   840
        /**
williamr@2
   841
         * C++ Destructor.
williamr@2
   842
         */
williamr@2
   843
        IMPORT_C virtual ~CAknExtQueryControl();      
williamr@2
   844
williamr@2
   845
    public: //New functions
williamr@2
   846
williamr@2
   847
        /**
williamr@2
   848
        * Get ip address from ip editor.
williamr@2
   849
        * 
williamr@2
   850
        * @return Returns data from editor
williamr@2
   851
        */
williamr@2
   852
        IMPORT_C TInetAddr GetInetAddress() const;
williamr@2
   853
williamr@2
   854
        /**
williamr@2
   855
        * Set ip address to editor
williamr@2
   856
        * 
williamr@2
   857
        * @param aInetAddress to editor.
williamr@2
   858
        */
williamr@2
   859
        IMPORT_C void SetInetAddress(TInetAddr& aInetAddress);
williamr@2
   860
williamr@2
   861
        /**
williamr@2
   862
        * Get number from fixed point editor.
williamr@2
   863
        * 
williamr@2
   864
        * @return Returns number from editor
williamr@2
   865
        */
williamr@2
   866
        IMPORT_C TInt GetFixedPointNumber() const;
williamr@2
   867
williamr@2
   868
         /**
williamr@2
   869
        * Set number to fixed point editor
williamr@2
   870
        * @param aNumber    Number to editor
williamr@2
   871
        *
williamr@2
   872
        */
williamr@2
   873
        IMPORT_C void SetFixedPointNumberL(const TInt* aNumber);
williamr@2
   874
williamr@2
   875
williamr@2
   876
    public: // from CAknQueryControl
williamr@2
   877
williamr@2
   878
        /**
williamr@2
   879
        * Set minimum and maximum ip address to editor
williamr@2
   880
        * @param aMinimum   Minimum value 
williamr@2
   881
        * @param aMaximum   Maximum value
williamr@2
   882
        * 
williamr@2
   883
        */
williamr@2
   884
        IMPORT_C void SetMinimumAndMaximum(const TInetAddr& aMinimumAddress, const TInetAddr& aMaximumAddress);
williamr@2
   885
williamr@2
   886
        /**
williamr@2
   887
        * Set minimum and maximum fixed point number to editor
williamr@2
   888
        * @param aMinimumValue   Minimum value
williamr@2
   889
        * @param aMaximumValue   Maximum value
williamr@2
   890
        */
williamr@2
   891
        IMPORT_C void SetMinimumAndMaximum(TInt aMinimumValue, TInt aMaximumValue);
williamr@2
   892
williamr@2
   893
williamr@2
   894
        /**
williamr@2
   895
        * Get pointer to query controls control (editor)
williamr@2
   896
        *
williamr@2
   897
        * @param aLayout    Controls layout (for one line queries use
williamr@2
   898
        *                   EDataLayout, ECodeLayout... and for
williamr@2
   899
        *                   multiline queries use
williamr@2
   900
        *                   EMultiDataFirstEdwin, EMultiDataSecondEdwin...)
williamr@2
   901
        * @return           Pointer to control, NULL if not found 
williamr@2
   902
        */
williamr@2
   903
        IMPORT_C virtual CCoeControl* ControlByLayoutOrNull(TInt aLayout);
williamr@2
   904
williamr@2
   905
        /**
williamr@2
   906
        *   @return true if the content of the editor is valid, false otherwise
williamr@2
   907
        */
williamr@2
   908
        TBool EditorContentIsValidL() const;
williamr@2
   909
williamr@2
   910
        /**
williamr@2
   911
        * This transfers CAknQueryControl's flags set by the dialog and then uses them.
williamr@2
   912
        * The method must be called after all the contained controls are constructed;
williamr@2
   913
        * Inside PreLayoutDynamicInitL is recommended.
williamr@2
   914
        * 
williamr@2
   915
        * @param flag pattern to set and then act on.
williamr@2
   916
        */
williamr@2
   917
        void SetAndUseFlagsL( TBitFlags16 aFlags );
williamr@2
   918
williamr@2
   919
    public: // Functions from CCoeControl
williamr@2
   920
williamr@2
   921
        /**
williamr@2
   922
        * From CCoeControl  Added to pass-through focus-loss warnings.
williamr@2
   923
        *                   if not ready, this will leave.
williamr@2
   924
        * @return           Indicates whether or not the key event was used by this control.
williamr@2
   925
        */
williamr@2
   926
        void PrepareForFocusLossL();
williamr@2
   927
williamr@2
   928
        /**
williamr@2
   929
        * From CCoeControl  Added to pass-through focus-loss warnings.
williamr@2
   930
        *                   if not ready, this will leave.
williamr@2
   931
        * @return           Indicates whether or not the key event was used by this control.
williamr@2
   932
        */
williamr@2
   933
        void FocusChanged(TDrawNow aDrawNow);
williamr@2
   934
        
williamr@2
   935
williamr@2
   936
    public:// Functions from MCoeControlObserver
williamr@2
   937
williamr@2
   938
        /**
williamr@2
   939
        * From MCoeControlObserver
williamr@2
   940
        * @param aControl   Control who caused the event
williamr@2
   941
        * @param aEventType Type of the event
williamr@2
   942
        */
williamr@2
   943
        IMPORT_C void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
williamr@2
   944
williamr@2
   945
    
williamr@2
   946
    public:// Functions from CCoeControl
williamr@2
   947
        /**
williamr@2
   948
        * From CCoeControl  Count number of controls contained in a compound control.  
williamr@2
   949
        *  
williamr@2
   950
        * @return           The number of component controls contained by this control.           
williamr@2
   951
        */
williamr@2
   952
        TInt CountComponentControls() const;
williamr@2
   953
williamr@2
   954
        /**
williamr@2
   955
        * From CCoeControl  Get the components of a compound control.
williamr@2
   956
        *                   It returns one of the control's component controls, identified by aIndex.
williamr@2
   957
        * @param anIndex    The index of the control to get.        
williamr@2
   958
        * @return           The component control with an index of aIndex.
williamr@2
   959
        */
williamr@2
   960
        CCoeControl* ComponentControl(TInt anIndex) const;
williamr@2
   961
williamr@2
   962
    	/**
williamr@2
   963
    	* From CCoeControl. Handles pointer event.
williamr@2
   964
    	* @param aPointerEvent Pointer event to be handled.
williamr@2
   965
    	*/
williamr@2
   966
    	IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);    
williamr@2
   967
williamr@2
   968
    public:
williamr@2
   969
        /**
williamr@2
   970
         * Manage indexes into LAF tables
williamr@2
   971
         */
williamr@2
   972
        class TIndex 
williamr@2
   973
        {   
williamr@2
   974
        public:     
williamr@2
   975
            TIndex(TInt aNumberOfPromptLines);  
williamr@2
   976
        
williamr@2
   977
        public: 
williamr@2
   978
            TInt PromptLine() const;    
williamr@2
   979
            
williamr@2
   980
        public: 
williamr@2
   981
            TInt DQPWindowTextsLine2(TInt aLineNum) const;  
williamr@2
   982
            TInt PNWindow() const;  
williamr@2
   983
            TInt PQDWindow(TInt aLineNum) const;    
williamr@2
   984
            
williamr@2
   985
        private:    
williamr@2
   986
            void SelfTest() const;  
williamr@2
   987
williamr@2
   988
        private:    
williamr@2
   989
            TInt  iNumberOfPromptLines; 
williamr@2
   990
        };  
williamr@2
   991
williamr@2
   992
williamr@2
   993
    protected:
williamr@2
   994
        
williamr@2
   995
        /**
williamr@2
   996
         * After having read the query type from resource. This method is
williamr@2
   997
         * called in CostructFromResourceL()
williamr@2
   998
         *
williamr@2
   999
         * @see ConstructFromResourceL()
williamr@2
  1000
         */
williamr@2
  1001
        virtual void ConstructQueryL(TResourceReader& aRes);
williamr@2
  1002
williamr@2
  1003
    protected:
williamr@2
  1004
                
williamr@2
  1005
        /**
williamr@2
  1006
         * Layout the text editor
williamr@2
  1007
         */
williamr@2
  1008
        virtual void LayoutEditor(const TLayoutMethod& aLayoutM);
williamr@2
  1009
williamr@2
  1010
    private:
williamr@2
  1011
williamr@2
  1012
        /**
williamr@2
  1013
        * From CAknControl
williamr@2
  1014
        */
williamr@2
  1015
        IMPORT_C void* ExtensionInterface( TUid aInterface );        
williamr@2
  1016
williamr@2
  1017
    private:
williamr@2
  1018
williamr@2
  1019
        /**
williamr@2
  1020
        * This transfers CAknQueryControl's flags set by the dialog
williamr@2
  1021
        * 
williamr@2
  1022
        * @param flag pattern to set 
williamr@2
  1023
        *
williamr@2
  1024
        */
williamr@2
  1025
        void SetFlags( TBitFlags16 aFlags );
williamr@2
  1026
williamr@2
  1027
        /** 
williamr@2
  1028
        * This acts on the Query control flags that are set from CAknQueryDialog
williamr@2
  1029
        *
williamr@2
  1030
        */
williamr@2
  1031
        void DeployFlagsL();
williamr@2
  1032
williamr@2
  1033
        static TInt StaticPictographCallBack( TAny* aPtr );
williamr@2
  1034
        void PictographCallBack();
williamr@2
  1035
williamr@2
  1036
    protected:
williamr@2
  1037
        // editors
williamr@2
  1038
        CAknIpFieldEditor*      iIpEditor;
williamr@2
  1039
        CEikFixedPointEditor*   iFixedPointEditor;
williamr@2
  1040
    private:
williamr@2
  1041
williamr@2
  1042
        TAny*                   iSpare_1;
williamr@2
  1043
        TAny*                   iSpare_2;
williamr@2
  1044
    };
williamr@2
  1045
williamr@2
  1046
williamr@2
  1047
#endif