classicui_plat/notes_api/inc/AknNoteDialog.h
author hgs
Fri, 23 Jul 2010 17:08:56 +0800
changeset 45 667edd0b8678
permissions -rw-r--r--
201029
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*     Provides the CAknDialog-derived interface to Avkon Notes.
hgs
parents:
diff changeset
    16
*
hgs
parents:
diff changeset
    17
*/
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef __AKNNOTEDIALOG__
hgs
parents:
diff changeset
    21
#define __AKNNOTEDIALOG__
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include <eikdialg.h>
hgs
parents:
diff changeset
    24
#include "avkon.hrh"
hgs
parents:
diff changeset
    25
class CEikImage;
hgs
parents:
diff changeset
    26
class CAknKeySoundSystem;
hgs
parents:
diff changeset
    27
class CAknNoteControl;
hgs
parents:
diff changeset
    28
class CAknNoteAttributes;
hgs
parents:
diff changeset
    29
class CAknNoteDialogExtension;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
/**
hgs
parents:
diff changeset
    33
 * The note dialog.
hgs
parents:
diff changeset
    34
 *
hgs
parents:
diff changeset
    35
 * Displays a note to the user for: <UL> <LI> Giving notifications. </LI>
hgs
parents:
diff changeset
    36
 * <LI> Asking questions. </LI> <LI> Showing progress. </LI> </UL>
hgs
parents:
diff changeset
    37
 *
hgs
parents:
diff changeset
    38
 * @see CAknNoteControl, CAknNoteAttributes, CAknText
hgs
parents:
diff changeset
    39
 */
hgs
parents:
diff changeset
    40
class CAknNoteDialog : public CEikDialog
hgs
parents:
diff changeset
    41
{
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
public:
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
    /**
hgs
parents:
diff changeset
    46
     * The timeout in microseconds for automatically deleting the dialog.
hgs
parents:
diff changeset
    47
     */
hgs
parents:
diff changeset
    48
    enum TTimeout {
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
        /** 
hgs
parents:
diff changeset
    51
         * Deprecated (not used).
hgs
parents:
diff changeset
    52
         * 
hgs
parents:
diff changeset
    53
         * @deprecated
hgs
parents:
diff changeset
    54
         */
hgs
parents:
diff changeset
    55
    EUndefinedTimeout = 0,   
hgs
parents:
diff changeset
    56
    /// No timeout  
hgs
parents:
diff changeset
    57
    ENoTimeout = 0,         
hgs
parents:
diff changeset
    58
    /// 1.5 seconds 
hgs
parents:
diff changeset
    59
    EShortTimeout = 1500000,
hgs
parents:
diff changeset
    60
    /// 3 seconds
hgs
parents:
diff changeset
    61
    ELongTimeout = 3000000,
hgs
parents:
diff changeset
    62
    /// 0.5 second
hgs
parents:
diff changeset
    63
    EShortestTimeout = 500000   
hgs
parents:
diff changeset
    64
    };
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    /**
hgs
parents:
diff changeset
    67
    * The tone played before the dialog is shown.
hgs
parents:
diff changeset
    68
    *
hgs
parents:
diff changeset
    69
    * Application specific tones may be played by casting the application
hgs
parents:
diff changeset
    70
    * defined Sound ID (SID), to @c TTone.
hgs
parents:
diff changeset
    71
    */
hgs
parents:
diff changeset
    72
    enum TTone {
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
        /** No tone is played. */
hgs
parents:
diff changeset
    75
        ENoTone = 0,		
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
        /** A confirmation tone is played. */
hgs
parents:
diff changeset
    78
        EConfirmationTone = EAvkonSIDConfirmationTone, 
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
        /** A warning tone is played. */
hgs
parents:
diff changeset
    81
        EWarningTone = EAvkonSIDWarningTone,      
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
        /** An error tone is played. */
hgs
parents:
diff changeset
    84
        EErrorTone = EAvkonSIDErrorTone         
hgs
parents:
diff changeset
    85
    };
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
public:
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    /**
hgs
parents:
diff changeset
    90
     * C++ default constructor. 
hgs
parents:
diff changeset
    91
     *
hgs
parents:
diff changeset
    92
     * Initialises the tone to @c ENoTone and the timeout to @c ENoTimeout. 
hgs
parents:
diff changeset
    93
     *
hgs
parents:
diff changeset
    94
     * @see @c TTone, @c TTimeout.
hgs
parents:
diff changeset
    95
     */
hgs
parents:
diff changeset
    96
    IMPORT_C CAknNoteDialog();
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
    /**
hgs
parents:
diff changeset
    99
     * C++ default constructor.
hgs
parents:
diff changeset
   100
     *
hgs
parents:
diff changeset
   101
     * Initialises the tone to @c aTone and the timeout to @c aTimeout. 
hgs
parents:
diff changeset
   102
     *
hgs
parents:
diff changeset
   103
     * @param aTone The tone to be played.
hgs
parents:
diff changeset
   104
     * @param aTimeout The timeout (microseconds). Default is @c ENoTimeout.
hgs
parents:
diff changeset
   105
     * @see @c TTone, @c TTimeout.
hgs
parents:
diff changeset
   106
     */
hgs
parents:
diff changeset
   107
    IMPORT_C CAknNoteDialog(const TTone& aTone, 
hgs
parents:
diff changeset
   108
                            const TTimeout& aTimeout = ENoTimeout);
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
    /**
hgs
parents:
diff changeset
   111
     * C++ default constructor.
hgs
parents:
diff changeset
   112
     *
hgs
parents:
diff changeset
   113
     * Initialises the tone to @c aTone and the timeout to @c aTimeout. 
hgs
parents:
diff changeset
   114
     * Accepts a pointer to @c CEikDialog*. This must be the address of 
hgs
parents:
diff changeset
   115
     * the dialog pointer. When the dialog deletes itself after a timeout, 
hgs
parents:
diff changeset
   116
     * the address pointed to by this pointer is set to NULL. The dialog must
hgs
parents:
diff changeset
   117
     * not be on the stack, it must be on the heap!
hgs
parents:
diff changeset
   118
     *
hgs
parents:
diff changeset
   119
     * @param aSelfPtr Pointer to the address of the dialog.
hgs
parents:
diff changeset
   120
     * @param aTone = @c ENoTone The tone. 
hgs
parents:
diff changeset
   121
     * @param aTimeout = @c ENoTimeout The timeout (microseconds). 
hgs
parents:
diff changeset
   122
     * @see @c TTone, @c TTimeout.
hgs
parents:
diff changeset
   123
     */
hgs
parents:
diff changeset
   124
    IMPORT_C CAknNoteDialog(CEikDialog** aSelfPtr, 
hgs
parents:
diff changeset
   125
                            const TTone& aTone = ENoTone, 
hgs
parents:
diff changeset
   126
                            const TTimeout& aTimeout = ENoTimeout);
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
    /**
hgs
parents:
diff changeset
   129
     * Destructor. 
hgs
parents:
diff changeset
   130
     *
hgs
parents:
diff changeset
   131
     * Deletes timer and control attributes. If the self pointer is not null, 
hgs
parents:
diff changeset
   132
     * sets the pointer to point to NULL. 
hgs
parents:
diff changeset
   133
     */
hgs
parents:
diff changeset
   134
    IMPORT_C virtual ~CAknNoteDialog();
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    /**
hgs
parents:
diff changeset
   137
     * Sets the dialog timeout. 
hgs
parents:
diff changeset
   138
     *
hgs
parents:
diff changeset
   139
     * @see @c TTimeout.
hgs
parents:
diff changeset
   140
     * @param aTimeout The dialog timeout.
hgs
parents:
diff changeset
   141
     */
hgs
parents:
diff changeset
   142
    IMPORT_C void SetTimeout(const TTimeout& aTimeout);
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
    /**
hgs
parents:
diff changeset
   145
     * Sets the dialog tone .
hgs
parents:
diff changeset
   146
     *
hgs
parents:
diff changeset
   147
     * @see @c TTone.
hgs
parents:
diff changeset
   148
     * @param aTone The dialog tone.
hgs
parents:
diff changeset
   149
     */
hgs
parents:
diff changeset
   150
    IMPORT_C void SetTone(const TTone& aTone);
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
    /**
hgs
parents:
diff changeset
   153
     * Enables or disables text wrapping. 
hgs
parents:
diff changeset
   154
     *
hgs
parents:
diff changeset
   155
     * Enables or disables text wrapping depending on the values
hgs
parents:
diff changeset
   156
     * of @c aEnabled (true enables text wrapping). When text wrapping is
hgs
parents:
diff changeset
   157
     * disabled a new line in the note dialog starts only after a newline 
hgs
parents:
diff changeset
   158
     * character in the note text. If a line does not fit into the dialog 
hgs
parents:
diff changeset
   159
     * width it is clipped (the last character is replaced with an 
hgs
parents:
diff changeset
   160
     * ellipsis sign).
hgs
parents:
diff changeset
   161
     *
hgs
parents:
diff changeset
   162
     * This method must be called before @c SetTextL as it only influences 
hgs
parents:
diff changeset
   163
     * the wrapping of text that it is yet to be set via API.
hgs
parents:
diff changeset
   164
     *
hgs
parents:
diff changeset
   165
     * @param aEnabled @c ETrue for enabling text wrapping, @c EFalse for 
hgs
parents:
diff changeset
   166
     *        disabling it.
hgs
parents:
diff changeset
   167
     */
hgs
parents:
diff changeset
   168
    IMPORT_C void SetTextWrapping(TBool aEnabled);
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    /**
hgs
parents:
diff changeset
   171
     * Enables or disables all text processing done by the dialog.
hgs
parents:
diff changeset
   172
     * This includes text wrapping, text truncation
hgs
parents:
diff changeset
   173
     * and reordering of bidirectional text.
hgs
parents:
diff changeset
   174
     *
hgs
parents:
diff changeset
   175
     * By default, it is enabled.
hgs
parents:
diff changeset
   176
     *
hgs
parents:
diff changeset
   177
     * If text processing is disabled, lines are broken only at explicit 
hgs
parents:
diff changeset
   178
     * line end characters and they are not truncated, but drawn as long
hgs
parents:
diff changeset
   179
     * as they fit. Also, the dialog does not handle reordering of 
hgs
parents:
diff changeset
   180
     * the bidirectional text.
hgs
parents:
diff changeset
   181
     *
hgs
parents:
diff changeset
   182
     * This method must be called before the text is set.
hgs
parents:
diff changeset
   183
     *
hgs
parents:
diff changeset
   184
     * @param aEnabled Enables or disables all text processing.
hgs
parents:
diff changeset
   185
     */
hgs
parents:
diff changeset
   186
    IMPORT_C void SetTextProcessing(TBool aEnabled);
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
    /**
hgs
parents:
diff changeset
   189
     * Set the dialog image. 
hgs
parents:
diff changeset
   190
     *
hgs
parents:
diff changeset
   191
     * Change the image in the note control. Override the image which was 
hgs
parents:
diff changeset
   192
     * set in the resource file. The dialog takes ownership of the pointer.
hgs
parents:
diff changeset
   193
     * The note image is the big image or icon which is top right. 
hgs
parents:
diff changeset
   194
     *
hgs
parents:
diff changeset
   195
     * @param aImage Pointer to the new image. 
hgs
parents:
diff changeset
   196
     */
hgs
parents:
diff changeset
   197
    IMPORT_C void SetImageL(CEikImage* aImage);
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
    /**
hgs
parents:
diff changeset
   200
     * Sets the dialog icon. 
hgs
parents:
diff changeset
   201
     *
hgs
parents:
diff changeset
   202
     * Changes the number type icon in the note control. 
hgs
parents:
diff changeset
   203
     *
hgs
parents:
diff changeset
   204
     * Overrides the icon which was set in the resource file. The dialog takes 
hgs
parents:
diff changeset
   205
     * ownership of the pointer The numbertype icon is the small icon which 
hgs
parents:
diff changeset
   206
     * is bottom left in the note (thumbnail icon). 
hgs
parents:
diff changeset
   207
     * 
hgs
parents:
diff changeset
   208
     * @param aIcon Pointer to the icon.
hgs
parents:
diff changeset
   209
     */
hgs
parents:
diff changeset
   210
    IMPORT_C void SetIconL(CEikImage* aIcon);
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
    /**
hgs
parents:
diff changeset
   213
     * Sets the number in the dialog text. 
hgs
parents:
diff changeset
   214
     *
hgs
parents:
diff changeset
   215
     * Sets a number in the note text. If the text specified in the resource 
hgs
parents:
diff changeset
   216
     * file or via  @c SetTextL() has a \%d in it, e.g. "You have \%d new 
hgs
parents:
diff changeset
   217
     * messages", this number is inserted at the location specified by \%d.  
hgs
parents:
diff changeset
   218
     *
hgs
parents:
diff changeset
   219
     * @param aNumber The number to be inserted in the text.
hgs
parents:
diff changeset
   220
     */
hgs
parents:
diff changeset
   221
    IMPORT_C void SetTextNumberL(TInt aNumber);
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
    /**
hgs
parents:
diff changeset
   224
     * Sets the text plurality for the dialog. 
hgs
parents:
diff changeset
   225
     *
hgs
parents:
diff changeset
   226
     * Indicates whether to use plural or singular text. These texts must 
hgs
parents:
diff changeset
   227
     * have been specified in the resource file.
hgs
parents:
diff changeset
   228
     *
hgs
parents:
diff changeset
   229
     * @see @c SetTextNumberL().
hgs
parents:
diff changeset
   230
     * @param isPlural @c ETrue if plural text should be used, 
hgs
parents:
diff changeset
   231
     *        @c EFalse otherwise.
hgs
parents:
diff changeset
   232
     */
hgs
parents:
diff changeset
   233
    IMPORT_C void SetTextPluralityL(const TBool isPlural);
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
    /**
hgs
parents:
diff changeset
   236
     * Sets the dialog text.
hgs
parents:
diff changeset
   237
     *
hgs
parents:
diff changeset
   238
     * This method can set a formatted text, 
hgs
parents:
diff changeset
   239
     * e.g. "You have 1 new message". It can however set an 
hgs
parents:
diff changeset
   240
     * unformatted text as well, e.g. "You have \%d messages". The plurality of
hgs
parents:
diff changeset
   241
     * the dialog must be previously specified - if not singular 
hgs
parents:
diff changeset
   242
     * plurality is used unless there was no singular text specified in the 
hgs
parents:
diff changeset
   243
     * resource file.
hgs
parents:
diff changeset
   244
     *
hgs
parents:
diff changeset
   245
     * @see @c SetTextNumberL(), @c SetTextPluralityL().
hgs
parents:
diff changeset
   246
     * @param aLabel The note text.
hgs
parents:
diff changeset
   247
     */
hgs
parents:
diff changeset
   248
    IMPORT_C void SetTextL(const TDesC& aLabel);
hgs
parents:
diff changeset
   249
hgs
parents:
diff changeset
   250
    /**
hgs
parents:
diff changeset
   251
     * From @c CCoeControl.
hgs
parents:
diff changeset
   252
     * 
hgs
parents:
diff changeset
   253
     * Handles key events. 
hgs
parents:
diff changeset
   254
     *
hgs
parents:
diff changeset
   255
     * Any event which is not a key press is forwarded to 
hgs
parents:
diff changeset
   256
     * @c CEikDialog::OfferKeyEventL.
hgs
parents:
diff changeset
   257
     '
hgs
parents:
diff changeset
   258
     * Short key press dismiss the note by calling @c StaticDeleteL.
hgs
parents:
diff changeset
   259
     *
hgs
parents:
diff changeset
   260
     * @see @c StaticDeleteL(), @c TKeyEvent, @c TEventCode.
hgs
parents:
diff changeset
   261
     * @param aKeyEvent Key event details.
hgs
parents:
diff changeset
   262
     * @param aType Type of event (key down, key press, key release, etc).
hgs
parents:
diff changeset
   263
     * @return Indicates whether or not the key event was used 
hgs
parents:
diff changeset
   264
     *         by this control. @c EKeyWasConsumed if the control takes action
hgs
parents:
diff changeset
   265
     *         on the key event or @c EKeyWasNotConsumed otherwise.
hgs
parents:
diff changeset
   266
     */
hgs
parents:
diff changeset
   267
    IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
hgs
parents:
diff changeset
   268
                                         TEventCode aType);
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
    /**
hgs
parents:
diff changeset
   271
     * From @c CCoeControl.
hgs
parents:
diff changeset
   272
     * 
hgs
parents:
diff changeset
   273
     * Handles a change to the control's resources of type @c aType
hgs
parents:
diff changeset
   274
     * which are shared across the environment, e.g. colors or fonts.
hgs
parents:
diff changeset
   275
     *
hgs
parents:
diff changeset
   276
     * @param aType Target resource type.
hgs
parents:
diff changeset
   277
     */
hgs
parents:
diff changeset
   278
    IMPORT_C void HandleResourceChange(TInt aType);
hgs
parents:
diff changeset
   279
hgs
parents:
diff changeset
   280
    /**
hgs
parents:
diff changeset
   281
     * Do layout and draw the note dialog. 
hgs
parents:
diff changeset
   282
     *
hgs
parents:
diff changeset
   283
     * Needed when changing control components (e.g. the text) dynamically. 
hgs
parents:
diff changeset
   284
     * This is needed because the size of the dialog might change 
hgs
parents:
diff changeset
   285
     * (e.g. because of bigger text displayed in more lines, etc.)  
hgs
parents:
diff changeset
   286
     * Set methods call @c LayoutAndDraw() if there is a change that
hgs
parents:
diff changeset
   287
     * might affect the dialog layout (e.g. text becames bigger and hence
hgs
parents:
diff changeset
   288
     * requires an extra line).
hgs
parents:
diff changeset
   289
     *
hgs
parents:
diff changeset
   290
     * Derived classes that implement this kind of methods should call
hgs
parents:
diff changeset
   291
     * @c LayoutAndDraw().
hgs
parents:
diff changeset
   292
     */
hgs
parents:
diff changeset
   293
    IMPORT_C void LayoutAndDraw();
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
    /**
hgs
parents:
diff changeset
   296
     * From @ CEikDialog. 
hgs
parents:
diff changeset
   297
     *
hgs
parents:
diff changeset
   298
     * Executes a dialog.
hgs
parents:
diff changeset
   299
     *
hgs
parents:
diff changeset
   300
     * Plays a tone (if one was defined) and simulates user activity.
hgs
parents:
diff changeset
   301
     * Forwards call to @c CEikDialog::RunLD().
hgs
parents:
diff changeset
   302
     *
hgs
parents:
diff changeset
   303
     * @return The ID of the button used to dismiss the dialog.
hgs
parents:
diff changeset
   304
     */
hgs
parents:
diff changeset
   305
    IMPORT_C virtual TInt RunLD();
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
hgs
parents:
diff changeset
   308
    /**
hgs
parents:
diff changeset
   309
     * From @c CEikDialog. 
hgs
parents:
diff changeset
   310
     *
hgs
parents:
diff changeset
   311
     * Exits a sleeping dialog without deleting it.
hgs
parents:
diff changeset
   312
     */
hgs
parents:
diff changeset
   313
    IMPORT_C void ExitSleepingDialog();
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
protected:
hgs
parents:
diff changeset
   316
hgs
parents:
diff changeset
   317
    /**
hgs
parents:
diff changeset
   318
     * From @c CEikDialog. 
hgs
parents:
diff changeset
   319
     *
hgs
parents:
diff changeset
   320
     * Sets the size and the position for the layout. 
hgs
parents:
diff changeset
   321
     *
hgs
parents:
diff changeset
   322
     * The dialog height and width are retrieved from the control  
hgs
parents:
diff changeset
   323
     * (if it exists already).If it does not exist, then default values 
hgs
parents:
diff changeset
   324
     * are used. The client rect is obtained from the application UI. 
hgs
parents:
diff changeset
   325
     * @c AknLayoutUtils::LayoutControl  is then executed using the client
hgs
parents:
diff changeset
   326
     * rect and the note width and height.
hgs
parents:
diff changeset
   327
     * 
hgs
parents:
diff changeset
   328
     * @see @c AknLayoutUtils::LayoutControl().
hgs
parents:
diff changeset
   329
     * @param aSize Not used. 
hgs
parents:
diff changeset
   330
     */
hgs
parents:
diff changeset
   331
    IMPORT_C void SetSizeAndPosition(const TSize& aSize);
hgs
parents:
diff changeset
   332
hgs
parents:
diff changeset
   333
    /**
hgs
parents:
diff changeset
   334
     * From @c CEikDialog. 
hgs
parents:
diff changeset
   335
     *
hgs
parents:
diff changeset
   336
     * Performs dynamic operations before the layout. 
hgs
parents:
diff changeset
   337
     *
hgs
parents:
diff changeset
   338
     * Called by the Uikon framework before the dialog layout is executed, this
hgs
parents:
diff changeset
   339
     * method can be overrwritten to perform specific operations.
hgs
parents:
diff changeset
   340
     *
hgs
parents:
diff changeset
   341
     * The following operations are performed:- <UL> <LI> The control attributes
hgs
parents:
diff changeset
   342
     * are transferred to the control. The local control attributes are copied 
hgs
parents:
diff changeset
   343
     * into the real control attributes. The local attributes are then deleted.
hgs
parents:
diff changeset
   344
     * </LI> <LI> If a timeout has been specified the timer is started. The 
hgs
parents:
diff changeset
   345
     * callback is StaticDeleteL. </LI> <LI> </LI> </UL> 
hgs
parents:
diff changeset
   346
     * 
hgs
parents:
diff changeset
   347
     * @see @c CAknNoteAttributes, @c TTimer, @c SetEditableL().
hgs
parents:
diff changeset
   348
     */
hgs
parents:
diff changeset
   349
    IMPORT_C void PreLayoutDynInitL(void);
hgs
parents:
diff changeset
   350
hgs
parents:
diff changeset
   351
    /**
hgs
parents:
diff changeset
   352
     * From @c CEikDialog. 
hgs
parents:
diff changeset
   353
     *
hgs
parents:
diff changeset
   354
     * Performs dynamic operations after the layout. 
hgs
parents:
diff changeset
   355
     *
hgs
parents:
diff changeset
   356
     * Called by the Uikon framework after the dialog layout is executed, this
hgs
parents:
diff changeset
   357
     * method can be overrwritten to perform specific operations.
hgs
parents:
diff changeset
   358
     *
hgs
parents:
diff changeset
   359
     * The following operations are performed:- <UL> <LI> @c StartAnimationL()
hgs
parents:
diff changeset
   360
     * is called. </LI> </UL> 
hgs
parents:
diff changeset
   361
     * 
hgs
parents:
diff changeset
   362
     * @see @c CAknNoteControl::StartAnimationL().
hgs
parents:
diff changeset
   363
     */
hgs
parents:
diff changeset
   364
    IMPORT_C void PostLayoutDynInitL();
hgs
parents:
diff changeset
   365
hgs
parents:
diff changeset
   366
    /**
hgs
parents:
diff changeset
   367
     * Plays a tone. 
hgs
parents:
diff changeset
   368
     *
hgs
parents:
diff changeset
   369
     * The tone must be previously specified. The sound ID is set 
hgs
parents:
diff changeset
   370
     * depending on the tone type. The tone is played using 
hgs
parents:
diff changeset
   371
     * @c CAknKeySoundSystem::playSound(). Derived classes must call this 
hgs
parents:
diff changeset
   372
     * method if they override @c RunLD() and they wish to play a tone. 
hgs
parents:
diff changeset
   373
     *
hgs
parents:
diff changeset
   374
     * @panic EAknPanicNullPointer
hgs
parents:
diff changeset
   375
     * @see @c TTone, @c CAknKeySoundSystem, @c CAknNoteDialog::RunLD().
hgs
parents:
diff changeset
   376
     */
hgs
parents:
diff changeset
   377
    IMPORT_C void PlayTone();
hgs
parents:
diff changeset
   378
hgs
parents:
diff changeset
   379
    /**
hgs
parents:
diff changeset
   380
     * Indicates that there is user activity. 
hgs
parents:
diff changeset
   381
     *
hgs
parents:
diff changeset
   382
     * Resets timers which are monitoring user inactivity. This will disable 
hgs
parents:
diff changeset
   383
     * functionality that checks for user inactivity by listening to 
hgs
parents:
diff changeset
   384
     * these timers.
hgs
parents:
diff changeset
   385
     *
hgs
parents:
diff changeset
   386
     * Derived classes must call this method if they override @c RunLD()
hgs
parents:
diff changeset
   387
     * and they wish to report user activity in order to dismiss applications
hgs
parents:
diff changeset
   388
     * such as the screen saver.
hgs
parents:
diff changeset
   389
     *
hgs
parents:
diff changeset
   390
     * @see @c User::ResetInactivityTime().
hgs
parents:
diff changeset
   391
     */
hgs
parents:
diff changeset
   392
    IMPORT_C void ReportUserActivity() const;
hgs
parents:
diff changeset
   393
hgs
parents:
diff changeset
   394
    /**
hgs
parents:
diff changeset
   395
     * Deletes the note dialog.
hgs
parents:
diff changeset
   396
     *
hgs
parents:
diff changeset
   397
     * Called when the timer completes, this method deletes the dialog. A
hgs
parents:
diff changeset
   398
     * @c reinterpret_cast to @c CAknNoteDialog* is performed on aThis. If the
hgs
parents:
diff changeset
   399
     * dialog is not a sleeping note then it is deleted. If it is a sleeping
hgs
parents:
diff changeset
   400
     * dialog then the timer is stopped, @c OkToExitL() is called with 
hgs
parents:
diff changeset
   401
     * @c KErrCancel and @c ExitSleepingDialog is executed. 
hgs
parents:
diff changeset
   402
     * 
hgs
parents:
diff changeset
   403
     * @see @c TTimer, @c OkToExitL(), @c ExitSleepingDialog().
hgs
parents:
diff changeset
   404
     * @param aThis Pointer to the dialog.
hgs
parents:
diff changeset
   405
     * @return Always returns @c EFalse.
hgs
parents:
diff changeset
   406
     */
hgs
parents:
diff changeset
   407
    IMPORT_C static TInt StaticDeleteL(TAny* aThis);
hgs
parents:
diff changeset
   408
hgs
parents:
diff changeset
   409
    /**
hgs
parents:
diff changeset
   410
     * Gets the control attributes.
hgs
parents:
diff changeset
   411
     *
hgs
parents:
diff changeset
   412
     * If the control has already been created this method return the 
hgs
parents:
diff changeset
   413
     * attributes stored inside the control. If not then the local 
hgs
parents:
diff changeset
   414
     * attributes are returned. The local attributes are transferred to the 
hgs
parents:
diff changeset
   415
     * control in @c PreLayoutDynInitL().
hgs
parents:
diff changeset
   416
     *
hgs
parents:
diff changeset
   417
     * Derived classes should use this method when trying to access the control
hgs
parents:
diff changeset
   418
     * attributes.
hgs
parents:
diff changeset
   419
     * 
hgs
parents:
diff changeset
   420
     * @return Control attributes.
hgs
parents:
diff changeset
   421
     */
hgs
parents:
diff changeset
   422
    IMPORT_C CAknNoteAttributes* ControlAttributes();
hgs
parents:
diff changeset
   423
hgs
parents:
diff changeset
   424
    /**
hgs
parents:
diff changeset
   425
     * Transfers the control attributes from the dialog to the control.
hgs
parents:
diff changeset
   426
     *
hgs
parents:
diff changeset
   427
     * Must be called by derived classes in @c PreLayoutDynInitL()
hgs
parents:
diff changeset
   428
     * if this method is not called then the set of API methods that were
hgs
parents:
diff changeset
   429
     * invoked before the control is created will not work.
hgs
parents:
diff changeset
   430
     */
hgs
parents:
diff changeset
   431
    IMPORT_C void TransferControlAttributes();
hgs
parents:
diff changeset
   432
hgs
parents:
diff changeset
   433
    /**
hgs
parents:
diff changeset
   434
     * Gets the used sound system.
hgs
parents:
diff changeset
   435
     *
hgs
parents:
diff changeset
   436
     * Calls @c iEikonEnv->AppUi()->KeySounds() and returns the pointer 
hgs
parents:
diff changeset
   437
     * returned by the called method. If there is no application UI 
hgs
parents:
diff changeset
   438
     * return @c NULL. 
hgs
parents:
diff changeset
   439
     *
hgs
parents:
diff changeset
   440
     * @see @c CAknKeySoundSystem, @c CAknAppUi.
hgs
parents:
diff changeset
   441
     * @return Pointer to the used @c CAknKeySoundSystem or @c NULL.
hgs
parents:
diff changeset
   442
     * @panic EAknPanicNullPointer
hgs
parents:
diff changeset
   443
     */
hgs
parents:
diff changeset
   444
    IMPORT_C CAknKeySoundSystem* SoundSystem() const;
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
    /**
hgs
parents:
diff changeset
   447
     * Gets the Note control. 
hgs
parents:
diff changeset
   448
     *
hgs
parents:
diff changeset
   449
     * Returns the first control on the active page, which is of type
hgs
parents:
diff changeset
   450
     * @c CAknNoteControl. If no control is found (usually because the 
hgs
parents:
diff changeset
   451
     * control has not been created yet) then this method returns @c NULL.
hgs
parents:
diff changeset
   452
     *
hgs
parents:
diff changeset
   453
     * Derived classes must use this method to get access to the note
hgs
parents:
diff changeset
   454
     * control.
hgs
parents:
diff changeset
   455
     *
hgs
parents:
diff changeset
   456
     * @return Pointer to the note control or @c NULL.
hgs
parents:
diff changeset
   457
     */
hgs
parents:
diff changeset
   458
    IMPORT_C CAknNoteControl* NoteControl();
hgs
parents:
diff changeset
   459
hgs
parents:
diff changeset
   460
private:
hgs
parents:
diff changeset
   461
    
hgs
parents:
diff changeset
   462
    void DbgCheckSelfPtr(CEikDialog** aSelfPtr);
hgs
parents:
diff changeset
   463
hgs
parents:
diff changeset
   464
protected:
hgs
parents:
diff changeset
   465
hgs
parents:
diff changeset
   466
    /**
hgs
parents:
diff changeset
   467
     * Note timeout timer.
hgs
parents:
diff changeset
   468
     */ 
hgs
parents:
diff changeset
   469
    CPeriodic*          iTimer;		
hgs
parents:
diff changeset
   470
hgs
parents:
diff changeset
   471
    /** 
hgs
parents:
diff changeset
   472
     * Note timeout in microseconds.
hgs
parents:
diff changeset
   473
     */ 
hgs
parents:
diff changeset
   474
    TInt                iTimeoutInMicroseconds; 
hgs
parents:
diff changeset
   475
hgs
parents:
diff changeset
   476
    /**
hgs
parents:
diff changeset
   477
     * Used for notes that are not modal. 
hgs
parents:
diff changeset
   478
     * The calling application has no way of knowing 
hgs
parents:
diff changeset
   479
     * when the note is deleted. 
hgs
parents:
diff changeset
   480
     */
hgs
parents:
diff changeset
   481
    CEikDialog**        iSelfPtr; 
hgs
parents:
diff changeset
   482
hgs
parents:
diff changeset
   483
    /**
hgs
parents:
diff changeset
   484
     * The tone to be played. 
hgs
parents:
diff changeset
   485
     */
hgs
parents:
diff changeset
   486
    TTone               iTone;	
hgs
parents:
diff changeset
   487
hgs
parents:
diff changeset
   488
    /**
hgs
parents:
diff changeset
   489
     * Note control attributes.
hgs
parents:
diff changeset
   490
     */
hgs
parents:
diff changeset
   491
    CAknNoteAttributes* iControlAttributes;  
hgs
parents:
diff changeset
   492
hgs
parents:
diff changeset
   493
private:
hgs
parents:
diff changeset
   494
hgs
parents:
diff changeset
   495
    //TInt iSpare; 
hgs
parents:
diff changeset
   496
    CAknNoteDialogExtension* iNoteExtension;
hgs
parents:
diff changeset
   497
hgs
parents:
diff changeset
   498
public:
hgs
parents:
diff changeset
   499
hgs
parents:
diff changeset
   500
    /**
hgs
parents:
diff changeset
   501
     * Set timeout, tone, resource ID and then initialize and launch 
hgs
parents:
diff changeset
   502
     * the dialog. 
hgs
parents:
diff changeset
   503
     * 
hgs
parents:
diff changeset
   504
     * This method is deprecated and should not be used.
hgs
parents:
diff changeset
   505
     * 
hgs
parents:
diff changeset
   506
     * @deprecated
hgs
parents:
diff changeset
   507
     * @param aTimeout Wanted timeout in microseconds.
hgs
parents:
diff changeset
   508
     * @param aTone Alarm tone.
hgs
parents:
diff changeset
   509
     * @param aResourceID The ID of the wanted resource.
hgs
parents:
diff changeset
   510
     * @return Zero, unless it is a waiting dialog. For a waiting dialog,
hgs
parents:
diff changeset
   511
     *         the return value is the ID of the button that closed the dialog,
hgs
parents:
diff changeset
   512
     *         or zero if it was the cancel button (@c EEikBidCancel).
hgs
parents:
diff changeset
   513
     */
hgs
parents:
diff changeset
   514
    IMPORT_C TInt ExecuteDlgLD(const TTimeout aTimeout,
hgs
parents:
diff changeset
   515
                               const TTone aTone,
hgs
parents:
diff changeset
   516
                               TInt aResourceID);
hgs
parents:
diff changeset
   517
hgs
parents:
diff changeset
   518
    /**
hgs
parents:
diff changeset
   519
     * Set tone, resource ID and then initialize and launch 
hgs
parents:
diff changeset
   520
     * the dialog. 
hgs
parents:
diff changeset
   521
     * 
hgs
parents:
diff changeset
   522
     * This method is deprecated and should not be used.
hgs
parents:
diff changeset
   523
     * 
hgs
parents:
diff changeset
   524
     * @deprecated
hgs
parents:
diff changeset
   525
     * @param aTone Alarm tone.
hgs
parents:
diff changeset
   526
     * @param aResourceID The ID of the wanted resource.
hgs
parents:
diff changeset
   527
     * @return Zero, unless it is a waiting dialog. For a waiting dialog,
hgs
parents:
diff changeset
   528
     *         the return value is the ID of the button that closed the dialog,
hgs
parents:
diff changeset
   529
     *         or zero if it was the cancel button (@c EEikBidCancel).
hgs
parents:
diff changeset
   530
     */
hgs
parents:
diff changeset
   531
    IMPORT_C TInt ExecuteDlgLD(const TTone aTone,TInt aResourceID);
hgs
parents:
diff changeset
   532
hgs
parents:
diff changeset
   533
    /**
hgs
parents:
diff changeset
   534
     * Set note control ID, resource ID and then initialize and launch 
hgs
parents:
diff changeset
   535
     * the dialog. 
hgs
parents:
diff changeset
   536
     * 
hgs
parents:
diff changeset
   537
     * This method is deprecated and should not be used.
hgs
parents:
diff changeset
   538
     * 
hgs
parents:
diff changeset
   539
     * @deprecated
hgs
parents:
diff changeset
   540
     * @param aResourceId The ID of the wanted resource.
hgs
parents:
diff changeset
   541
     * @param aNoteControlId Not used. 
hgs
parents:
diff changeset
   542
     * @return Zero, unless it is a waiting dialog. For a waiting dialog,
hgs
parents:
diff changeset
   543
     *         the return value is the ID of the button that closed the dialog,
hgs
parents:
diff changeset
   544
     *         or zero if it was the cancel button (@c EEikBidCancel).
hgs
parents:
diff changeset
   545
     */
hgs
parents:
diff changeset
   546
    IMPORT_C TInt ExecuteDlgLD(TInt aResourceId, TInt aNoteControlId=0);
hgs
parents:
diff changeset
   547
hgs
parents:
diff changeset
   548
    /**
hgs
parents:
diff changeset
   549
     * Set timeout and tone and run the dialog.
hgs
parents:
diff changeset
   550
     *
hgs
parents:
diff changeset
   551
     * This method is deprecated and should not be used.
hgs
parents:
diff changeset
   552
     *
hgs
parents:
diff changeset
   553
     * @deprecated
hgs
parents:
diff changeset
   554
     * @param aTimeout Wanted timeout in microseconds.
hgs
parents:
diff changeset
   555
     * @param aTone Wanted alarm tone.
hgs
parents:
diff changeset
   556
     * @return The ID of the button used to dismiss the dialog.
hgs
parents:
diff changeset
   557
     */
hgs
parents:
diff changeset
   558
    IMPORT_C TInt RunDlgLD(const TTimeout aTimeout,const TTone aTone);
hgs
parents:
diff changeset
   559
hgs
parents:
diff changeset
   560
    /**
hgs
parents:
diff changeset
   561
     * Set tone and run the dialog.
hgs
parents:
diff changeset
   562
     *
hgs
parents:
diff changeset
   563
     * This method is deprecated and should not be used.
hgs
parents:
diff changeset
   564
     *
hgs
parents:
diff changeset
   565
     * @deprecated
hgs
parents:
diff changeset
   566
     * @param aTone Wanted alarm tone.
hgs
parents:
diff changeset
   567
     * @return The ID of the button used to dismiss the dialog.
hgs
parents:
diff changeset
   568
     */    
hgs
parents:
diff changeset
   569
    IMPORT_C TInt RunDlgLD(const TTone aTone);
hgs
parents:
diff changeset
   570
hgs
parents:
diff changeset
   571
    /**
hgs
parents:
diff changeset
   572
     * Run the dialog.
hgs
parents:
diff changeset
   573
     *
hgs
parents:
diff changeset
   574
     * This method is deprecated and should not be used.
hgs
parents:
diff changeset
   575
     *
hgs
parents:
diff changeset
   576
     * @deprecated
hgs
parents:
diff changeset
   577
     * @return The ID of the button used to dismiss the dialog.
hgs
parents:
diff changeset
   578
     */    IMPORT_C TInt RunDlgLD();
hgs
parents:
diff changeset
   579
hgs
parents:
diff changeset
   580
    /**
hgs
parents:
diff changeset
   581
     * Set NoteControlID and run the dialog.
hgs
parents:
diff changeset
   582
     *
hgs
parents:
diff changeset
   583
     * This method is deprecated and should not be used.
hgs
parents:
diff changeset
   584
     *
hgs
parents:
diff changeset
   585
     * @deprecated
hgs
parents:
diff changeset
   586
     * @param aNoteControlId Not used.
hgs
parents:
diff changeset
   587
     * @return The ID of the button used to dismiss the dialog.
hgs
parents:
diff changeset
   588
     */    
hgs
parents:
diff changeset
   589
    IMPORT_C TInt RunDlgLD(TInt aNoteControlId);
hgs
parents:
diff changeset
   590
hgs
parents:
diff changeset
   591
    /** 
hgs
parents:
diff changeset
   592
     * Sets a new label for the specified dialog.
hgs
parents:
diff changeset
   593
     *
hgs
parents:
diff changeset
   594
     * This method is deprecated. @c SetTextL() method should be used 
hgs
parents:
diff changeset
   595
     * instead.
hgs
parents:
diff changeset
   596
     *
hgs
parents:
diff changeset
   597
     * @param aControlId Not used.
hgs
parents:
diff changeset
   598
     * @param aLabel The new label.
hgs
parents:
diff changeset
   599
     */ 
hgs
parents:
diff changeset
   600
    IMPORT_C void SetCurrentLabelL(TInt aControlId,const TDesC& aLabel);
hgs
parents:
diff changeset
   601
hgs
parents:
diff changeset
   602
private: 
hgs
parents:
diff changeset
   603
hgs
parents:
diff changeset
   604
    IMPORT_C virtual void CEikDialog_Reserved_1();
hgs
parents:
diff changeset
   605
hgs
parents:
diff changeset
   606
    IMPORT_C virtual void CEikDialog_Reserved_2();	
hgs
parents:
diff changeset
   607
hgs
parents:
diff changeset
   608
private: // new virtual function.
hgs
parents:
diff changeset
   609
hgs
parents:
diff changeset
   610
    IMPORT_C virtual void CAknNoteDialog_Reserved();
hgs
parents:
diff changeset
   611
hgs
parents:
diff changeset
   612
protected:
hgs
parents:
diff changeset
   613
hgs
parents:
diff changeset
   614
    // This method id reserved for CEikAlert usage
hgs
parents:
diff changeset
   615
    /** 
hgs
parents:
diff changeset
   616
     * Sets an indication that memory should not be allocated.
hgs
parents:
diff changeset
   617
     * 
hgs
parents:
diff changeset
   618
     * This method is reserved for CEikAlert usage.
hgs
parents:
diff changeset
   619
     */ 
hgs
parents:
diff changeset
   620
    IMPORT_C void SetNoMemoryAllocation();
hgs
parents:
diff changeset
   621
hgs
parents:
diff changeset
   622
hgs
parents:
diff changeset
   623
private: // from eikdialog
hgs
parents:
diff changeset
   624
hgs
parents:
diff changeset
   625
    IMPORT_C void SizeChanged();
hgs
parents:
diff changeset
   626
hgs
parents:
diff changeset
   627
    void SetSkinBackGroundRect(); 
hgs
parents:
diff changeset
   628
hgs
parents:
diff changeset
   629
private:
hgs
parents:
diff changeset
   630
hgs
parents:
diff changeset
   631
    void CreateExtensionL();
hgs
parents:
diff changeset
   632
hgs
parents:
diff changeset
   633
    static TInt CallbackStartAnimationL(TAny* aThis);
hgs
parents:
diff changeset
   634
hgs
parents:
diff changeset
   635
public:
hgs
parents:
diff changeset
   636
hgs
parents:
diff changeset
   637
    /**
hgs
parents:
diff changeset
   638
     * From @c CCoeControl.
hgs
parents:
diff changeset
   639
     *
hgs
parents:
diff changeset
   640
     * Processes the pointer event directed to the dialog.
hgs
parents:
diff changeset
   641
     * 
hgs
parents:
diff changeset
   642
     * @param aPointerEvent The pointer event directed to the notedialog.
hgs
parents:
diff changeset
   643
     */
hgs
parents:
diff changeset
   644
    IMPORT_C virtual void HandlePointerEventL(
hgs
parents:
diff changeset
   645
                                        const TPointerEvent& aPointerEvent);
hgs
parents:
diff changeset
   646
hgs
parents:
diff changeset
   647
private:
hgs
parents:
diff changeset
   648
hgs
parents:
diff changeset
   649
    /**
hgs
parents:
diff changeset
   650
    * From @c CAknControl.
hgs
parents:
diff changeset
   651
    */
hgs
parents:
diff changeset
   652
    IMPORT_C void* ExtensionInterface( TUid aInterface );
hgs
parents:
diff changeset
   653
    };
hgs
parents:
diff changeset
   654
hgs
parents:
diff changeset
   655
hgs
parents:
diff changeset
   656
#endif  // __AKNNOTEDIALOG__
hgs
parents:
diff changeset
   657
hgs
parents:
diff changeset
   658
// End of file