classicui_plat/grids_api/inc/akncolourselectiongrid.h
author hgs
Thu, 09 Sep 2010 10:18:50 +0800
changeset 65 b959e31f70b5
parent 45 667edd0b8678
permissions -rw-r--r--
201035_2
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
*      This file defines the CAknColourSelectionGrid class
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
hgs
parents:
diff changeset
    21
#ifndef __AKNCOLOURSELECTIONGRID_H
hgs
parents:
diff changeset
    22
#define __AKNCOLOURSELECTIONGRID_H
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
//  INCLUDES
hgs
parents:
diff changeset
    25
#include <e32base.h>
hgs
parents:
diff changeset
    26
#include <AknDialog.h>
hgs
parents:
diff changeset
    27
#include <eiklbo.h>
hgs
parents:
diff changeset
    28
#include <coecobs.h>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    31
class CColorGrid;
hgs
parents:
diff changeset
    32
class CNoneField;
hgs
parents:
diff changeset
    33
class CAknGrid;
hgs
parents:
diff changeset
    34
class CAknColourSelectionGridExtension;
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
// CLASS DECLARATION
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
/**
hgs
parents:
diff changeset
    39
* Colour selection grid
hgs
parents:
diff changeset
    40
*
hgs
parents:
diff changeset
    41
* This class can be used when application offers to user
hgs
parents:
diff changeset
    42
* possibility to choose colour. There is also possibility to select
hgs
parents:
diff changeset
    43
* nothing.
hgs
parents:
diff changeset
    44
*
hgs
parents:
diff changeset
    45
* use example:
hgs
parents:
diff changeset
    46
*
hgs
parents:
diff changeset
    47
* TBool noneExist = ETrue;
hgs
parents:
diff changeset
    48
* TBool noneChosen = EFalse;
hgs
parents:
diff changeset
    49
* TRgb  colour = KRgbDarkGray;
hgs
parents:
diff changeset
    50
* CArrayFixFlat<TRgb>* colours = new(ELeave) CArrayFixFlat<TRgb>(6);
hgs
parents:
diff changeset
    51
*
hgs
parents:
diff changeset
    52
* colours->AppendL(KRgbBlack);
hgs
parents:
diff changeset
    53
* colours->AppendL(KRgbDarkGray);
hgs
parents:
diff changeset
    54
*
hgs
parents:
diff changeset
    55
*   CAknColourSelectionGrid *d = CAknColourSelectionGrid::NewL(
hgs
parents:
diff changeset
    56
*                                                 colours,
hgs
parents:
diff changeset
    57
*                                                 noneExist,
hgs
parents:
diff changeset
    58
*                                                 noneChosen,
hgs
parents:
diff changeset
    59
*                                                 colour);
hgs
parents:
diff changeset
    60
*
hgs
parents:
diff changeset
    61
*   d->ExecuteLD();
hgs
parents:
diff changeset
    62
*
hgs
parents:
diff changeset
    63
*
hgs
parents:
diff changeset
    64
*  @lib avkon
hgs
parents:
diff changeset
    65
*  @since 2.0
hgs
parents:
diff changeset
    66
*/
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
NONSHARABLE_CLASS(CAknColourSelectionGrid) : public CAknDialog, public MEikListBoxObserver
hgs
parents:
diff changeset
    69
    {
hgs
parents:
diff changeset
    70
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
        /**
hgs
parents:
diff changeset
    73
        * Two-phased constructor.
hgs
parents:
diff changeset
    74
        *
hgs
parents:
diff changeset
    75
        * NewL() Creates dialog
hgs
parents:
diff changeset
    76
        *
hgs
parents:
diff changeset
    77
        * @since 2.0
hgs
parents:
diff changeset
    78
        *
hgs
parents:
diff changeset
    79
        * @param aColours array of colors for grid
hgs
parents:
diff changeset
    80
        *
hgs
parents:
diff changeset
    81
        * @param aNoneExist boolean flag does none exist in dialog
hgs
parents:
diff changeset
    82
        *
hgs
parents:
diff changeset
    83
        * @param aNoneChosen Dialog sets boolean value is none chosen
hgs
parents:
diff changeset
    84
        * If value is EFalse in start, some colour will be active in start
hgs
parents:
diff changeset
    85
        *
hgs
parents:
diff changeset
    86
        * @param aColourChosen Dialog sets the value of color chosen
hgs
parents:
diff changeset
    87
        * If starting value aNoneChosen is EFalse, starting value of
hgs
parents:
diff changeset
    88
        * aColours tells witch colour is active when grid starts
hgs
parents:
diff changeset
    89
        *
hgs
parents:
diff changeset
    90
        */
hgs
parents:
diff changeset
    91
        IMPORT_C static CAknColourSelectionGrid* NewL(
hgs
parents:
diff changeset
    92
                            CArrayFixFlat<TRgb> *aColours,
hgs
parents:
diff changeset
    93
                            TBool aNoneExist,
hgs
parents:
diff changeset
    94
                            TBool& aNoneChosen,
hgs
parents:
diff changeset
    95
                            TRgb& aColourChosen);
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
        /**
hgs
parents:
diff changeset
    98
        * ExecuteLD() runs dialog, waits user to make his choise
hgs
parents:
diff changeset
    99
        * and destroys dialog
hgs
parents:
diff changeset
   100
        *
hgs
parents:
diff changeset
   101
        * @since 2.0
hgs
parents:
diff changeset
   102
        */
hgs
parents:
diff changeset
   103
        IMPORT_C TBool ExecuteLD();
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    private: // Constructor
hgs
parents:
diff changeset
   107
        /**
hgs
parents:
diff changeset
   108
        * C++ default constructor.
hgs
parents:
diff changeset
   109
        */
hgs
parents:
diff changeset
   110
        CAknColourSelectionGrid();
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    public: // Destructor
hgs
parents:
diff changeset
   114
        /**
hgs
parents:
diff changeset
   115
        * Destructor
hgs
parents:
diff changeset
   116
        */
hgs
parents:
diff changeset
   117
        IMPORT_C ~CAknColourSelectionGrid();
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    private: // New functions
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
        /**
hgs
parents:
diff changeset
   124
        * Grid() returns control to grid
hgs
parents:
diff changeset
   125
        *
hgs
parents:
diff changeset
   126
        * @since 2.0
hgs
parents:
diff changeset
   127
        * @return Control to grid
hgs
parents:
diff changeset
   128
        */
hgs
parents:
diff changeset
   129
        CAknGrid *Grid() const;
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
    private: // Functions from base classes
hgs
parents:
diff changeset
   133
        /**
hgs
parents:
diff changeset
   134
        * From CAknDialog.
hgs
parents:
diff changeset
   135
        *
hgs
parents:
diff changeset
   136
        * Handles key events
hgs
parents:
diff changeset
   137
        *
hgs
parents:
diff changeset
   138
        * @since 2.0
hgs
parents:
diff changeset
   139
        * @param aKeyEvent
hgs
parents:
diff changeset
   140
        * @param aType
hgs
parents:
diff changeset
   141
        * @return was the key event handled
hgs
parents:
diff changeset
   142
        */
hgs
parents:
diff changeset
   143
        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) ;
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
        /**
hgs
parents:
diff changeset
   146
        * From CAknDialog.
hgs
parents:
diff changeset
   147
        *
hgs
parents:
diff changeset
   148
        * If ok is pressed, writes values for iColorChosen and iNoneChosen
hgs
parents:
diff changeset
   149
        *
hgs
parents:
diff changeset
   150
        * @since 2.0
hgs
parents:
diff changeset
   151
        * @param aKeycode
hgs
parents:
diff changeset
   152
        * @return allways ETrue
hgs
parents:
diff changeset
   153
        */
hgs
parents:
diff changeset
   154
        TBool OkToExitL(TInt aKeycode);
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
        /**
hgs
parents:
diff changeset
   157
        * From CEikDialog
hgs
parents:
diff changeset
   158
        * @since 2.0
hgs
parents:
diff changeset
   159
        */
hgs
parents:
diff changeset
   160
        void  PreLayoutDynInitL();
hgs
parents:
diff changeset
   161
        /**
hgs
parents:
diff changeset
   162
        * From CEikDialog
hgs
parents:
diff changeset
   163
        * @since 2.0
hgs
parents:
diff changeset
   164
        */
hgs
parents:
diff changeset
   165
        void  PostLayoutDynInitL();
hgs
parents:
diff changeset
   166
        /**
hgs
parents:
diff changeset
   167
        * From CEikDialog
hgs
parents:
diff changeset
   168
        * @since 2.0
hgs
parents:
diff changeset
   169
        * @param aControlType
hgs
parents:
diff changeset
   170
        * @return created control
hgs
parents:
diff changeset
   171
        */
hgs
parents:
diff changeset
   172
        SEikControlInfo CreateCustomControlL(TInt aControlType);
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
        /**
hgs
parents:
diff changeset
   175
        * From CEikDialog
hgs
parents:
diff changeset
   176
        * @since 2.0
hgs
parents:
diff changeset
   177
        * @param aSize not in use
hgs
parents:
diff changeset
   178
        */
hgs
parents:
diff changeset
   179
        virtual void SetSizeAndPosition(const TSize& aSize);
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
        /**
hgs
parents:
diff changeset
   182
        * From CCoeControl
hgs
parents:
diff changeset
   183
        * @since 2.0
hgs
parents:
diff changeset
   184
        */
hgs
parents:
diff changeset
   185
        virtual void ActivateL();
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
        /**
hgs
parents:
diff changeset
   189
        * From MEikListBoxObserver
hgs
parents:
diff changeset
   190
        * Handles list box events
hgs
parents:
diff changeset
   191
        * @param aListBox pointer to observed listbox
hgs
parents:
diff changeset
   192
        * @param aEventType Event to be handled
hgs
parents:
diff changeset
   193
        */
hgs
parents:
diff changeset
   194
        void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
    public:
hgs
parents:
diff changeset
   197
        /**
hgs
parents:
diff changeset
   198
        * From MCoeControlObserver
hgs
parents:
diff changeset
   199
        * Handles control events from nonebutton.
hgs
parents:
diff changeset
   200
        * @param aControl Pointer to observed control
hgs
parents:
diff changeset
   201
        * @param aEventType type of event to be handled
hgs
parents:
diff changeset
   202
        */
hgs
parents:
diff changeset
   203
        void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
        /**
hgs
parents:
diff changeset
   206
        * From MDialogPageObserver
hgs
parents:
diff changeset
   207
        * Handles dialogpage events
hgs
parents:
diff changeset
   208
        * @param aEventID event to be handled
hgs
parents:
diff changeset
   209
        */
hgs
parents:
diff changeset
   210
        void HandleDialogPageEventL(TInt aEventID);
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
        /**
hgs
parents:
diff changeset
   213
        * From CoeControl
hgs
parents:
diff changeset
   214
        * @since 3.2
hgs
parents:
diff changeset
   215
        * Handles pointer events
hgs
parents:
diff changeset
   216
        */
hgs
parents:
diff changeset
   217
        IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
    private: // Data
hgs
parents:
diff changeset
   220
        CColorGrid* iGrid;
hgs
parents:
diff changeset
   221
        CNoneField* iNoneBox;
hgs
parents:
diff changeset
   222
        TInt iIndex;
hgs
parents:
diff changeset
   223
        CFbsBitmap* iBitmap;
hgs
parents:
diff changeset
   224
        TBool iNoneExist;
hgs
parents:
diff changeset
   225
        TBool* iNoneChosen;
hgs
parents:
diff changeset
   226
        TRgb* iColourChosen;
hgs
parents:
diff changeset
   227
        CArrayFixFlat<TRgb>* iColours;
hgs
parents:
diff changeset
   228
        TInt iWsBufferRequestID;
hgs
parents:
diff changeset
   229
        CAknColourSelectionGridExtension *iExtension;
hgs
parents:
diff changeset
   230
    };
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
#endif  // __AKNCOLOURSELECTIONGRID_H