dependencies/eikcba.h
author jake
Tue, 13 Apr 2010 15:07:27 +0300
branchv5backport
changeset 56 7b5c31fac191
parent 35 9d28e9ec8f22
permissions -rw-r--r--
Many of the components were not compilingm,because bld.inf had undefined flag #ifdef RD_CUSTOMIZABLE_AI. All the flags removed now. Components do not compile right away. E.g. many icons are missing and need to be copied from Symbian3. See example from MCSPlugin. Shortcut plugin does not need to be compiled as MCSPlugin replaces it.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     1
/*
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     2
* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     3
* All rights reserved.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     8
*
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     9
* Initial Contributors:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    11
*
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    12
* Contributors:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    13
*
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    14
* Description:  EIKON control button array and cba button class definitions.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    15
*
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    16
*/
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    17
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    18
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    19
#ifndef __EIKCBA_H__
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    20
#define __EIKCBA_H__
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    21
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    22
#include <eikctgrp.h>
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    23
#include <badesca.h>
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    24
#include <eikbtgrp.h>
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    25
#include <eiksbobs.h>
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    26
#include <eiksbfrm.h>
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    27
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    28
#include <eikimage.h>
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    29
#include <AknControl.h>
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    30
#include <AknsItemData.h> // TAknsItemID
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    31
#include <babitflags.h>   // TBitFlags
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    32
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    33
class CEikLabel;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    34
class CEikCbaButton;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    35
class CCoeBrushAndPenContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    36
class MEikCommandObserver;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    37
class TCoeColorUse;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    38
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    39
class CAknScrollBar;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    40
class TEikScrollBarModel;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    41
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    42
class CEikEnhancedCbaButton;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    43
class CEikCommandTable;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    44
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    45
class CAknsBasicBackgroundControlContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    46
class CAknsLayeredBackgroundControlContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    47
class CAknsMaskedLayerBackgroundControlContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    48
class CEikCbaExtension;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    49
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    50
const TInt KMaxCbaLabelLength = 32;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    51
const TInt KMaxButtonsInCommandTable = 4;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    52
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    53
/**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    54
 * Defines a Control Button Array control, used in Avkon to define the softkeys in the
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    55
 * control pane.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    56
 *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    57
 * @lib eikcoctl.lib
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    58
 * @since S60 0.9  
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    59
 */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    60
NONSHARABLE_CLASS(CEikCba) :
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    61
    public CEikControlGroup, 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    62
    public MEikEnhancedButtonGroup, 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    63
    public MEikScrollBarObserver,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    64
    public MCoeControlObserver
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    65
    {
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    66
public: 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    67
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    68
     * Declares an object type for a class, in order to allow the object
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    69
     * provider mechanism to locate and provide objects from the class.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    70
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    71
    DECLARE_TYPE_ID(0x101F4105)
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    72
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    73
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    74
     * Creates a new control button array.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    75
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    76
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    77
     * @param aPrevious Previous Cba, used in MinimumSize().
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    78
     * @param aCommandObserver Command observer for softkey events.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    79
     * @param aParentWg The parent window group.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    80
     * @return Control button array object.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    81
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    82
    static CEikCba* NewL(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    83
        const CEikCba* aPrevious, 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    84
        MEikCommandObserver* aCommandObserver, 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    85
        RWindowGroup* aParentWg);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    86
        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    87
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    88
     * Creates a new control button array.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    89
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    90
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    91
     * @param aResourceId A resource describing the Cba.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    92
     * @param aPrevious Previous Cba, used in MinimumSize().
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    93
     * @param aCommandObserver Command observer for softkey events.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    94
     * @param aParentWg The parent window group.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    95
     * @return Control button array object.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    96
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    97
    static CEikCba* NewL(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    98
        TInt aResourceId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    99
        const CEikCba* aPrevious,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   100
        MEikCommandObserver* aCommandObserver,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   101
        RWindowGroup* aParentWg);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   102
        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   103
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   104
     * Creates a new control button array.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   105
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   106
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   107
     * @param aPrevious Previous Cba, used in MinimumSize().
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   108
     * @param aCommandObserver Command observer for softkey events.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   109
     * @param aParentWg The parent window group.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   110
     * @return Control button array object.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   111
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   112
    static CEikCba* NewLC(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   113
        const CEikCba* aPrevious,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   114
        MEikCommandObserver* aCommandObserver,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   115
        RWindowGroup* aParentWg);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   116
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   117
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   118
     * Creates a new control button array
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   119
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   120
     * @since S60 5.2
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   121
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   122
     * @param aPrevious Previous Cba, used in MinimumSize()
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   123
     * @param aCommandObserver Command observer for softkey events
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   124
     * @param aParentWg The parent window group
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   125
     * @param aFlags CEikButtonGroupContainer::EIsEmbedded if CBA is embedded
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   126
     *               inside another control (popup/dialog/setting page)
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   127
     * @return Control button array object
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   128
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   129
    static CEikCba* NewLC(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   130
        const CEikCba* aPrevious,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   131
        MEikCommandObserver* aCommandObserver,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   132
        RWindowGroup* aParentWg, TUint aFlags );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   133
        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   134
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   135
     * Creates a new control button array.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   136
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   137
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   138
     * @param aResourceId A resource describing the Cba.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   139
     * @param aPrevious Previous Cba, used in MinimumSize().
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   140
     * @param aCommandObserver Command observer for softkey events.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   141
     * @param aParentWg The parent window group.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   142
     * @return Control button array object.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   143
     */         
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   144
    static CEikCba* NewLC(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   145
        TInt aResourceId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   146
        const CEikCba* aPrevious,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   147
        MEikCommandObserver* aCommandObserver,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   148
        RWindowGroup* aParentWg);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   149
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   150
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   151
     * Creates a new control button array
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   152
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   153
     * @since S60 5.2
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   154
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   155
     * @param aResourceId A resource describing the Cba
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   156
     * @param aPrevious Previous Cba, used in MinimumSize()
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   157
     * @param aCommandObserver Command observer for softkey events
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   158
     * @param aParentWg The parent window group
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   159
     * @param aFlags CEikButtonGroupContainer::EIsEmbedded if CBA is embedded
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   160
     *               inside another control (popup/dialog/setting page)
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   161
     * @return Control button array object
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   162
     */         
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   163
    static CEikCba* NewLC(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   164
        TInt aResourceId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   165
        const CEikCba* aPrevious,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   166
        MEikCommandObserver* aCommandObserver,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   167
        RWindowGroup* aParentWg, TUint aFlags );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   168
        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   169
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   170
     * Destructor.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   171
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   172
    ~CEikCba();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   173
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   174
public: // new methods
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   175
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   176
     * Gets the maximum number of buttons that can be supported by the device.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   177
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   178
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   179
     * @return The number of command buttons supported.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   180
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   181
    TInt MaxCommands() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   182
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   183
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   184
     * Updates the cba labels.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   185
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   186
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   187
     * @param aScrollerOn If this is set, the short labels are used instead 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   188
     *                    of the long ones. To be used if there is an (old style) 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   189
     *                    scroller between the softkeys.     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   190
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   191
    void UpdateCbaLabels(TBool aScrollerOn);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   192
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   193
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   194
     * For checking whether the middle softkey is supported in the platform.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   195
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   196
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   197
     * @return ETrue if the middle softkey is supported in the plaftorm.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   198
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   199
    TInt MSKEnabledInPlatform() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   200
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   201
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   202
     * Sets the scroll bar frame observer.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   203
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   204
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   205
     * @param aObserver The scroll bar frame observer.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   206
     */ 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   207
    void SetSBFrameObserver(MEikScrollBarObserver* aObserver);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   208
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   209
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   210
     * Sets the scroll bar model.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   211
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   212
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   213
     * @param aModel The scroll bar model.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   214
     */ 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   215
    void SetScrollBarModelL(TEikScrollBarModel* aModel);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   216
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   217
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   218
     * Returns the scroll bar frame.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   219
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   220
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   221
     * @return The scroll bar frame.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   222
     */ 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   223
    const CEikCbaScrollBarFrame* ScrollBarFrame() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   224
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   225
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   226
     * Returns the vertical scroll bar as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   227
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   228
     * @internal The vertical scroll bar as a control
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   229
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   230
    CAknScrollBar* VScrollBarAsControl();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   231
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   232
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   233
     * Replaces empty scroll bar with actual arrow head scroll bar.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   234
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   235
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   236
     * @since S60 3.0
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   237
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   238
    void CreateArrowHeadScrollBarL(); 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   239
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   240
     /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   241
     * For external set the MSK icon
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   242
     * Returns ETrue if option is ok, EFalse is not.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   243
     * @param aId icon bitmap IID
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   244
     * @param aBmpFile file path.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   245
     * @param aBmp Bitmap ID.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   246
     * @param aBmpM Bitmap mask ID.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   247
     * @param aEnable ETrue for set icon, EFalse for use default icon.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   248
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   249
    IMPORT_C TBool UpdateMSKIconL( 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   250
        const TAknsItemID& aId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   251
        const TDesC& aBmpFile,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   252
        const TInt32 aBmp,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   253
        const TInt32 aBmpM,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   254
        TBool aEnable);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   255
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   256
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   257
     * Enables or disables item specific softkey. If enabled then SK1's 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   258
     * visibility is determined by the screen content. If there's a list or 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   259
     * grid with visible highlight (i.e. highlight is brought visible via 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   260
     * hardware keys) on the display or SK1's associated command is 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   261
     * @c EAknSoftkeyOptions then SK1 is visible, otherwise it's hidden. This
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   262
     * method has no effect if the the application isn't single click enabled. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   263
     * Item specific softkey is enabled by default.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   264
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   265
     * @since S60 5.2
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   266
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   267
     * @param aEnable ETrue to enable item specific softkey, EFalse to disable.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   268
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   269
     IMPORT_C void EnableItemSpecificSoftkey( TBool aEnable );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   270
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   271
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   272
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   273
     * From CEikControlGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   274
     * Adds a wrapped control to the control group array at the given index position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   275
     * Overridden to prevent setting container window.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   276
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   277
     * @param aGroupControl The control to add to the group.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   278
     * @param aIndex The index for the added control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   279
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   280
    void InsertControlL(TEikGroupControl& aGroupControl, TInt aIndex);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   281
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   282
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   283
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   284
     * Sets a command button's text and command ID. Note that this implementation does 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   285
     * not support bitmap and mask.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   286
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   287
     * @param aPosition The position within the button group of the button to change. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   288
     * @param aCommandId Command ID the button will send.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   289
     * @param aText The text for the button.     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   290
     * @param aBitmap Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   291
     * @param aMask Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   292
     */     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   293
    void SetCommandL(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   294
        TInt aPosition,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   295
        TInt aCommandId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   296
        const TDesC* aText,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   297
        const CFbsBitmap* aBitmap,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   298
        const CFbsBitmap* aMask);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   299
        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   300
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   301
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   302
     * Sets a command button's text label and command ID. The text and command ID are all 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   303
     * read from resource. Note that this implementation does not support bitmap and mask.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   304
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   305
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   306
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   307
     * @param aPosition The position within the button group of the button to change.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   308
     * @param aResourceId Resource ID specifying the text and command ID.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   309
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   310
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   311
    void SetCommandL(TInt aPosition, TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   312
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   313
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   314
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   315
     * Initialises the group of command buttons from a resource.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   316
     * Note that this implementation does not support bitmap and mask.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   317
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   318
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   319
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   320
     * @param aResourceId ID of the resource structure specifying the command buttons.     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   321
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   322
    void SetCommandSetL(TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   323
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   324
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   325
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   326
     * Not supported.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   327
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   328
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   329
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   330
     * @param aPosition Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   331
     * @param aCommandId Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   332
     * @param aText Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   333
     * @param aBitmap Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   334
     * @param aMask Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   335
     * @leave KErrNotSupported If called.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   336
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   337
    void AddCommandL(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   338
        TInt aPosition,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   339
        TInt aCommandId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   340
        const TDesC* aText,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   341
        const CFbsBitmap* aBitmap,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   342
        const CFbsBitmap* aMask);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   343
       
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   344
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   345
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   346
     * Pushes a command button with text and a command ID onto a position's button stack.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   347
     * Note that this implementation does not support bitmap and mask.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   348
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   349
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   350
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   351
     * @param aPosition The position in the button group at which to add the command button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   352
     * @param aCommandId Command ID the button will send.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   353
     * @param aText Text for the button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   354
     * @param aBitmap Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   355
     * @param aMask Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   356
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   357
    void AddCommandToStackL(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   358
        TInt aPosition,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   359
        TInt aCommandId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   360
        const TDesC* aText,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   361
        const CFbsBitmap* aBitmap,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   362
        const CFbsBitmap* aMask);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   363
       
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   364
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   365
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   366
     * Pushes a command button onto a position's button stack. The text and command ID are all 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   367
     * read from resource. Note that this implementation does not support bitmap and mask.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   368
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   369
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   370
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   371
     * @param aPosition The position in the button group at which to push the command button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   372
     * @param aResourceId ID of a resource specifying the text and command ID.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   373
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   374
    void AddCommandToStackL(TInt aPosition, TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   375
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   376
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   377
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   378
     * As with SetCommandL() but for a set of buttons, also allows the previous command button 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   379
     * to be retrieved by calling RemoveCommand(). Note that this implementation does not 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   380
     * support bitmap and mask.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   381
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   382
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   383
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   384
     * @param aResourceId Resource describing the set of command buttons.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   385
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   386
    void AddCommandSetToStackL(TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   387
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   388
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   389
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   390
     * Not supported.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   391
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   392
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   393
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   394
     * @param aCommandId Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   395
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   396
    void SetDefaultCommand(TInt aCommandId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   397
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   398
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   399
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   400
     * Calculates minimum size required to display the buttons defined in the 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   401
     * specified resource structure.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   402
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   403
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   404
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   405
     * @param aResourceId The ID of the resource structure describing the button group.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   406
     * @return Minimum size required to display the button group defined in the specified 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   407
     *         resource structure.     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   408
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   409
    TSize CalcMinimumSizeL(TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   410
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   411
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   412
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   413
     * Removes the command identified by aCommandId, in position aPosition in the 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   414
     * group, from the command stack. Automatically retrieves the previous command 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   415
     * details. Commands are added to the stack by calling AddCommandToStackL.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   416
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   417
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   418
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   419
     * @param aPosition The position in the button group from which to remove the 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   420
     *                  command button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   421
     * @param aCommandId Command ID.     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   422
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   423
    void RemoveCommandFromStack(TInt aPosition, TInt aCommandId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   424
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   425
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   426
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   427
     * Returns the command position by command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   428
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   429
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   430
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   431
     * @param aCommandId The button's command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   432
     * @return The command position in the button group.     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   433
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   434
    TInt CommandPos(TInt aCommandId) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   435
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   436
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   437
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   438
     * Dims or undims a button without drawing it. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   439
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   440
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   441
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   442
     * @param aCommandId Command ID of the button to change.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   443
     * @param aDimmed ETrue to dim the specified command. EFalse to undim the specified command.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   444
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   445
    void DimCommand(TInt aCommandId, TBool aDimmed);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   446
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   447
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   448
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   449
     * Determines whether the button with the specified command ID is dimmed. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   450
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   451
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   452
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   453
     * @param aCommandId The command ID.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   454
     * @return ETrue if the specified command is dimmed. EFalse if the specified command is 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   455
     *               not dimmed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   456
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   457
    TBool IsCommandDimmed(TInt aCommandId) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   458
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   459
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   460
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   461
     * Makes the button with the specified id either visible, or invisible. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   462
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   463
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   464
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   465
     * @param aCommandId Specifies the button to alter.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   466
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   467
     * @param aVisible ETrue to make the specified button visible. EFalse to make the specified
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   468
     *                 button invisible.     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   469
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   470
    void MakeCommandVisible(TInt aCommandId, TBool aVisible);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   471
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   472
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   473
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   474
     * Tests whether the button with the specified command ID is visible.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   475
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   476
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   477
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   478
     * @param aCommandId Specifies the button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   479
     * @return ETrue if the specified button is visible. EFalse if the specified button is 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   480
     *               not visible.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   481
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   482
    TBool IsCommandVisible(TInt aCommandId) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   483
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   484
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   485
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   486
     * Not supported.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   487
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   488
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   489
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   490
     * @param aCommandId Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   491
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   492
    void AnimateCommand(TInt aCommandId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   493
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   494
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   495
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   496
     * Returns the button group as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   497
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   498
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   499
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   500
     * @return The button group as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   501
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   502
    CCoeControl* AsControl();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   503
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   504
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   505
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   506
     * Returns the button group as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   507
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   508
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   509
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   510
     * @return The button group as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   511
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   512
    const CCoeControl* AsControl() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   513
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   514
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   515
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   516
     * Sets the boundary rectangle for externally-positioned button groups. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   517
     * For use by EExternal button groups only.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   518
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   519
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   520
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   521
     * @param aBoundingRect Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   522
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   523
    void SetBoundingRect(const TRect& aBoundingRect);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   524
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   525
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   526
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   527
     * Subtracts the area occupied by the button group from the specified bounding rectangle.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   528
     * This method should be used in preference to querying the container's area at all times.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   529
     * For use by EExternal button groups only.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   530
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   531
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   532
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   533
     * @param aBoundingRect Rectangle to be modified.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   534
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   535
    void ReduceRect(TRect& aBoundingRect) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   536
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   537
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   538
     * Returns a group control (a button) as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   539
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   540
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   541
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   542
     * @param aCommandId The button's command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   543
     * @return The group control as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   544
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   545
    CCoeControl* GroupControlById(TInt aCommandId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   546
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   547
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   548
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   549
     * Returns a group control (a button) as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   550
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   551
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   552
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   553
     * @param aCommandId The button's command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   554
     * @return The group control as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   555
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   556
    CCoeControl* GroupControlById(TInt aCommandId) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   557
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   558
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   559
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   560
     * Returns the command id by position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   561
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   562
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   563
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   564
     * @param aCommandPos The command's position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   565
     * @return The command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   566
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   567
    TInt CommandId(TInt aCommandPos) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   568
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   569
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   570
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   571
     * Gets the total number of buttons currently present in the group.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   572
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   573
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   574
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   575
     * @return The number of buttons.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   576
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   577
    TInt ButtonCount() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   578
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   579
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   580
     * Removes previous command.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   581
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   582
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   583
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   584
     * @param aPosition The command's position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   585
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   586
    void RemovePreviousCommand(TInt aPosition);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   587
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   588
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   589
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   590
     * Not supported, because it is not possible to convert a CBA button to a 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   591
     * CEikCommandButton. Calling this in debug build causes a panic, otherwise
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   592
     * NULL is just returned.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   593
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   594
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   595
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   596
     * @param aCommandId Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   597
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   598
    CEikCommandButton* GroupControlAsButton(TInt aCommandId) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   599
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   600
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   601
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   602
     * Gets the button group flags.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   603
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   604
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   605
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   606
     * @return The button group flags.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   607
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   608
    TUint ButtonGroupFlags() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   609
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   610
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   611
     * Sets the button group flags.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   612
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   613
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   614
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   615
     * @param aFlags The button group flags.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   616
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   617
    IMPORT_C void SetButtonGroupFlags(TInt aFlags);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   618
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   619
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   620
     * Sets the skin background for this control button array. The new background is used 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   621
     * for all the subsequent drawing operations. This method does not itself cause a repaint.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   622
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   623
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   624
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   625
     * @param aIID Skin item ID of the new background. This is one of the constants
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   626
     *             defined in AknsConstants.h, and the usual values are KAknsIIDQsnBgAreaControl, 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   627
     *             KAknsIIDQsnBgAreaControlPopup, and KAknsIIDQsnBgAreaControlIdle.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   628
     * @since S60 2.0
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   629
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   630
    IMPORT_C void SetSkinBackgroundId(const TAknsItemID& aIID);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   631
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   632
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   633
     * Sets the middle softkey icon.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   634
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   635
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   636
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   637
     * @since S60 3.1
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   638
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   639
    void SetMSKIconL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   640
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   641
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   642
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   643
     * Sets the middle softkey command observer.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   644
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   645
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   646
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   647
     * @param aCommandObserver The middle softkey command observer.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   648
     * @since S60 3.1
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   649
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   650
    void SetMSKCommandObserver(MEikCommandObserver* aCommandObserver);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   651
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   652
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   653
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   654
     * Dims (but doesn't draw) the button with position aPosition.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   655
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   656
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   657
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   658
     * @param aPosition The position for command to be dimmed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   659
     * @param aDimmed ETrue for dimming.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   660
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   661
    void DimCommandByPosition(TInt aPosition, TBool aDimmed);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   662
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   663
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   664
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   665
     * Returns ETrue if the button with position aPosition is dimmed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   666
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   667
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   668
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   669
     * @param aPosition The position for command to be checked.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   670
     * @return The state of the button.    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   671
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   672
    TBool IsCommandDimmedByPosition(TInt aPosition) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   673
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   674
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   675
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   676
     * Sets the the button with position aPosition to be visible if aVisible is ETrue.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   677
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   678
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   679
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   680
     * @param aPosition The position for command to be made visible.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   681
     * @param aVisible EFalse for making button invisible.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   682
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   683
    void MakeCommandVisibleByPosition(TInt aPosition, TBool aVisible);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   684
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   685
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   686
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   687
     * Returns ETrue if the button with position aPosition is visible.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   688
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   689
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   690
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   691
     * @param aPosition The position for command to be checked.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   692
     * @return The state of the button.  
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   693
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   694
    TBool IsCommandVisibleByPosition(TInt aPosition) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   695
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   696
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   697
     * From MEikButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   698
     * Not supported.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   699
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   700
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   701
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   702
     * @param aPosition Not used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   703
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   704
    void AnimateCommandByPosition(TInt aPosition);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   705
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   706
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   707
     * Returns a group control (a button) as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   708
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   709
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   710
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   711
     * @param aPosition The button's position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   712
     * @return The group control as a control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   713
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   714
//    CCoeControl* GroupControlByPosition(TInt aPosition) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   715
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   716
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   717
    * Gets a CBA button rectangle. This can be used in touch layouts to
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   718
    * get the whole rectangle of the CBA button, as the button areas
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   719
    * are larger than the actual button control in touch layouts.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   720
    *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   721
    * @param  aPosition          Position of the button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   722
    * @param  aRelativeToScreen  If @c ETrue, the returned rectangle
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   723
    *                            coordinates are relative to the screen
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   724
    *                            rectangle, otherwise they are relative
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   725
    *                            to the CBA area. Note that this parameter is
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   726
    *                            only taken into account in touch layouts, and
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   727
    *                            in nHD landscape mode the returned rectangle
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   728
    *                            is always relative to the screen regardless
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   729
    *                            of this parameter.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   730
    *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   731
    * @return Rectangle of the specified button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   732
    */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   733
    TRect ButtonRectByPosition( TInt aPosition,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   734
                                TBool aRelativeToScreen );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   735
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   736
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   737
     * Enable or disable transparent rendering.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   738
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   739
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   740
     * @since S60 v5.0
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   741
     * @param aEnable ETrue to enable transparency,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   742
     *                EFalse to disable.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   743
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   744
    void EnablePostingTransparency( TBool aEnable );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   745
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   746
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   747
     * Returns TBitFlags.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   748
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   749
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   750
     * @since S60 v5.2
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   751
     * @return TBitFlags.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   752
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   753
    TBitFlags Flags();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   754
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   755
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   756
     * Sets content observer.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   757
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   758
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   759
     * @since S60 v5.2
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   760
     * @param aCallBack call back to notify of content changes.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   761
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   762
    void SetContentObserver( TCallBack aCallBack );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   763
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   764
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   765
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   766
     * Formerly from MTopSetMember<CEikCba>, now reserved.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   767
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   768
    virtual void Reserved_MtsmPosition();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   769
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   770
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   771
     * Formerly from MTopSetMember<CEikCba>, now reserved.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   772
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   773
    virtual void Reserved_MtsmObject();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   774
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   775
public: // from CCoeControl
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   776
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   777
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   778
     * Handles key events.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   779
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   780
     * @param aKeyEvent The key event. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   781
     * @param aType The type of key event: EEventKey, EEventKeyUp or EEventKeyDown. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   782
     * @return Indicates whether or not the key event was used by this control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   783
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   784
    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   785
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   786
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   787
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   788
     * Sets the control's minimum required size.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   789
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   790
     * @return The minimum size required by the control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   791
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   792
    TSize MinimumSize();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   793
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   794
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   795
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   796
     * Gets the list of logical colours used to draw the control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   797
     * The list includes an explanation of how each colour is used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   798
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   799
     * @param aColorUseList The colour list.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   800
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   801
    void GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   802
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   803
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   804
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   805
     * Handles a change to the control's resources.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   806
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   807
     * @param aType A message UID value. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   808
     */     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   809
    void HandleResourceChange(TInt aType);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   810
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   811
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   812
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   813
     * Sets this control as visible or invisible.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   814
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   815
     * @param aVisible ETrue to make the control visible, EFalse to make it invisible.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   816
     */      
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   817
    void MakeVisible(TBool aVisible);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   818
 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   819
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   820
     * From CCoeControl. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   821
     * Handles pointer events.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   822
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   823
     * @param aPointerEvent The pointer event
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   824
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   825
    void HandlePointerEventL(const TPointerEvent& aPointerEvent);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   826
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   827
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   828
    * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   829
    * Sets the control's containing window by copying it from aContainer.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   830
    *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   831
    * @param aContainer The compound control that is the container for this control
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   832
    */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   833
    void SetContainerWindowL( const CCoeControl& aContainer );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   834
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   835
    void ActivateL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   836
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   837
public: // from MEikEnhancedButtonGroup
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   838
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   839
     * From MEikEnhancedButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   840
     * Used to offer list of commands for softkeys.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   841
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   842
     * @param aCommandList A list of command ids to be offered for softkeys.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   843
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   844
    IMPORT_C void OfferCommandListL(const RArray<TInt>& aCommandList);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   845
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   846
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   847
     * From MEikEnhancedButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   848
     * Used to offer list of commands for softkeys.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   849
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   850
     * @param aResourceId Id for CBA resource that defines enhanced cba buttons.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   851
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   852
    IMPORT_C void OfferCommandListL(const TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   853
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   854
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   855
     * From MEikEnhancedButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   856
     * Used to check if a certain command have been approved to the current command set.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   857
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   858
     * @param aCommandId The id for command which existence should be checked.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   859
     * @return ETrue if command is in control group, otherwise EFalse.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   860
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   861
    IMPORT_C TBool IsCommandInGroup(const TInt aCommandId) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   862
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   863
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   864
     * From MEikEnhancedButtonGroup.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   865
     * Replace existing command with a new command.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   866
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   867
     * @param aCommandId Id for command that should be replaced.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   868
     * @param aResourceId Resource id for new enhanced cba button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   869
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   870
    IMPORT_C void ReplaceCommand(const TInt aCommandId, const TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   871
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   872
public: // From MCoeControlObserver
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   873
    void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   874
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   875
private:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   876
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   877
     * From CAknControl
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   878
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   879
    IMPORT_C void* ExtensionInterface( TUid aInterface );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   880
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   881
protected:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   882
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   883
     * From MEikScrollBarObserver
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   884
     * Handles scroll events. This function is called by the CEikScrollBar object with which 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   885
     * this scroll bar observer object is registered. Implementations should handle scroll 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   886
     * events appropriately.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   887
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   888
     * @param aScrollBar Pointer to the originating scroll bar object.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   889
     * @param aEventType A scroll event. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   890
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   891
    virtual void HandleScrollEventL(CEikScrollBar* aScrollBar, TEikScrollEvent aEventType);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   892
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   893
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   894
     * From CCoeControl
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   895
     * Retrieves an object of the same type as that encapsulated in aId.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   896
     * This function is used to allow controls to ask their owners for access to other 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   897
     * objects that they own.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   898
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   899
     * @param aId An encapsulated object type ID.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   900
     * @return Encapsulates the pointer to the object provided. Note that the encapsulated 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   901
     * pointer may be NULL. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   902
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   903
    TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   904
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   905
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   906
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   907
     * Draws the control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   908
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   909
     * @param aRect Rectangle to draw on.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   910
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   911
    void Draw(const TRect& aRect) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   912
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   913
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   914
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   915
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   916
     * Checks if the CBA contains no commands.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   917
     * Note that this returns always @c EFalse if the CBA belongs
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   918
     * to a full screen query.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   919
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   920
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   921
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   922
     * @return  @c ETrue if the CBA buttons are empty, @c EFalse otherwise.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   923
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   924
     * @since 5.0
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   925
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   926
    IMPORT_C TBool IsEmpty() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   927
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   928
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   929
     * Returns ETrue if softkey status change is allowed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   930
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   931
     * @param aSofkeyPosition Softkey position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   932
     * @param aDisabled ETrue if softkey is to be disabled.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   933
     * @return ETrue if softkey status change is allowed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   934
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   935
    TBool SoftkeyStatusChangeAllowed(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   936
            TInt aSofkeyPosition, TBool aDisabled );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   937
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   938
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   939
     * Returns item specific softkey if it state should be updated.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   940
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   941
     * @return Item specific softkey.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   942
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   943
    TEikGroupControl* ItemSpecificSoftkey() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   944
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   945
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   946
     * Updates item specific softkey.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   947
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   948
     * @param aVisibleCollection ETrue if state should be updated according
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   949
     * to visible collection.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   950
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   951
    void UpdateItemSpecificSoftkey( TBool aVisibleCollection = ETrue );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   952
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   953
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   954
private: // new methods
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   955
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   956
    CEikCba(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   957
        const CEikCba* aPrevious, 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   958
        MEikCommandObserver* aCommandObserver, 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   959
        RWindowGroup* aParentWg,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   960
        TUint aFlags = 0 );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   961
    void BaseConstructL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   962
    void ConstructL(TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   963
    void ConstructFromResourceL(TResourceReader& aReader);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   964
    CCoeControl* ButtonById( TInt aCommandId ) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   965
    void CreateScrollBarFrameL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   966
    void InsertScrollBarL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   967
    TEikGroupControl VScrollBarAsGroupControl();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   968
    void CheckSkinAndUpdateContext();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   969
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   970
    TInt AknLayoutFlags() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   971
    void SizeChangedInControlPane();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   972
    void SizeChangedInStaconPane();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   973
    void SizeChangedInRightPane();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   974
    void UpdateFonts();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   975
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   976
    void DoSkinChange();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   977
    void DoColorChange();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   978
    void DoLayoutChange();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   979
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   980
    void SizeChangedInsideDialog();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   981
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   982
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   983
     * Handles size change events in case of embedded softkeys.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   984
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   985
    void SizeChangedInPopup();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   986
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   987
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   988
     * Updates softkey labels in case of embedded softkeys.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   989
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   990
     * @param aDrawDeferred ETrue to cause a redraw event.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   991
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   992
    void UpdateLabels( TBool aDrawDeferred );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   993
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   994
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   995
     * Layouts given cba control to it's rect correctly. This function is 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   996
     * used to layout every text and image inside of @c CEikCba.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   997
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   998
     * @param aControl CBA Control that is to be layouted
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   999
     * @param aRect the rect where control should be layouted.      
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1000
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1001
    void LayoutControl(CCoeControl* aControl, const TRect& aRect);        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1002
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1003
    void DoSetLayers( const TAknsItemID& aIID );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1004
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1005
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1006
     * Broadcasts transparency information
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1007
     * to CEikCbaButtons.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1008
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1009
    void BroadcastPostingTransparency( TBool aEnable );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1010
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1011
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1012
    * Sets the CBA fading according to button content.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1013
    */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1014
    void SetFadeState();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1015
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1016
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1017
     * A better version of AddCommandToStackL
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1018
     * Pushes a command button with text and a command ID onto a position's button stack.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1019
     * SizeChanged() is not called, so it need to be done after that.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1020
     * Note that this implementation does not support bitmap and mask.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1021
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1022
     * @internal     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1023
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1024
     * @param aPosition The position in the button group at which to add the command button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1025
     * @param aCommandId Command ID the button will send.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1026
     * @param aText Text for the button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1027
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1028
    void AddCommandToStackWithoutSizeChangedL(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1029
        TInt aPosition,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1030
        TInt aCommandId,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1031
        const TDesC* aText);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1032
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1033
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1034
     * Removes previous command but do not call SizeChanged And SetMSKIconL.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1035
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1036
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1037
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1038
     * @param aPosition The command's position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1039
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1040
    void RemovePreviousCommandWithoutSizeChanged(TInt aPosition);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1041
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1042
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1043
     * Reports state changed event if cba changed from empty to non-empty
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1044
     * or vice versa.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1045
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1046
    void ReportContentChangedEvent();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1047
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1048
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1049
     * Draws embedded softkey.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1050
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1051
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1052
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1053
     * @param aGroupControl TEikGroupControl used to get access to CBA button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1054
     * @param aRect Softkey rectangle
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1055
     * @param aGc Graphics context
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1056
     * @param aMask Mask
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1057
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1058
    void DrawEmbeddedSoftkey( TEikGroupControl& aGroupControl,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1059
    		const TRect& aRect,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1060
    		CWindowGc& aGc,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1061
    		CFbsBitmap* aMask ) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1062
    TBool UpdateIconL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1063
    		
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1064
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1065
     * Checks if the middle softkey should be used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1066
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1067
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1068
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1069
     * @return @c ETrue if MSK is to be used, @c EFalse otherwise.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1070
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1071
    TBool MskAllowed() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1072
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1073
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1074
     * Updates item specific softkey.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1075
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1076
     * @param aControl Item specifc softkey control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1077
     * @param aEnable ETrue if control should be enabled, EFalse if disabled.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1078
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1079
    void UpdateItemSpecificSoftkey( CCoeControl& aControl, TBool aEnable );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1080
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1081
private: // from CCoeControl
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1082
    void SizeChanged();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1083
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1084
private: // data
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1085
    TUint                   iCbaFlags;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1086
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1087
    /** Used to maintain the original settings if a client needs to temporarily change its cba. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1088
    const CEikCba*          iLink; 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1089
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1090
    CCoeBrushAndPenContext* iBrushAndPenContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1091
    MEikCommandObserver*    iCommandObserver;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1092
    CEikCbaScrollBarFrame*  iSBFrame;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1093
    RWindowGroup*           iParentWg;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1094
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1095
    /** New member variable that stores commands in correct order. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1096
    CEikCommandTable*   iCommandTable;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1097
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1098
    /** For MSK. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1099
    TBool iMSKset;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1100
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1101
    /** For MSK, caches CenRep value. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1102
    TBool iMSKEnabledInPlatform;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1103
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1104
    /** Additional observer for MSK. This is called first and default observer after that. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1105
    MEikCommandObserver* iMSKCommandObserver;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1106
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1107
    // From extension.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1108
    const CFont* iLabelFont;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1109
    const CFont* iStaconLabelFont;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1110
    const CFont* iRightPaneLabelFont;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1111
    TBool iPopupVisible;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1112
    TBitFlags iFlags;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1113
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1114
    /** Old background context. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1115
    CAknsBasicBackgroundControlContext* iBgContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1116
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1117
    /** Old stacon background context. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1118
    CAknsLayeredBackgroundControlContext* iStaconBgContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1119
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1120
    /** Masked layer backgrounds. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1121
    CAknsMaskedLayerBackgroundControlContext* iMLBgContext;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1122
    CAknsMaskedLayerBackgroundControlContext* iStaconBgContextTop;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1123
    CAknsMaskedLayerBackgroundControlContext* iStaconBgContextBottom;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1124
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1125
    TAknsItemID iBgIID;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1126
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1127
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1128
     * Skin background ID for the status pane controlled region
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1129
     * of the CBA area in bottom softkey landscape mode.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1130
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1131
    TAknsItemID iClockIndicBgIID;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1132
    TBool       iIsClockIndicBgIIDSet;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1133
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1134
    CEikCbaExtension* iExtension;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1135
    };
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1136
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1137
/**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1138
 * EIKON CBA button class definition.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1139
 *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1140
 * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1141
 * @lib eikcoctl.lib
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1142
 * @since S60 0.9 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1143
 */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1144
class CEikCbaButton : public CAknControl
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1145
    {
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1146
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1147
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1148
     * Holds information about command id and dimming status for a button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1149
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1150
    struct SButtonOptions
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1151
        {
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1152
        TInt iCommandId;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1153
        TBool iDimmed;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1154
        };
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1155
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1156
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1157
     * Destructor.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1158
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1159
    ~CEikCbaButton();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1160
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1161
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1162
     * Constructs a new CBA button instance.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1163
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1164
     * @param aAlignment Alignment for label.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1165
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1166
    void ConstructL(TGulAlignmentValue aAlignment);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1167
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1168
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1169
     * Updates the label text with the given label.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1170
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1171
     * @param aText The new label text.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1172
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1173
    void AddCommandL(const TDesC& aText);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1174
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1175
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1176
     * Pushes a command into button stack.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1177
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1178
     * @param aCommandId The command to be pushed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1179
     * @param aText Text for the button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1180
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1181
    void PushCommandL(TInt aCommandId, const TDesC& aText);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1182
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1183
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1184
     * Pops a command from the button stack.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1185
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1186
     * @return The button's command id. KErrNotFound if the button stack is empty.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1187
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1188
    TInt PopCommand();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1189
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1190
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1191
     * Removes a command from the button stack.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1192
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1193
     * @param aCommandId The command to be removed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1194
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1195
    void RemoveCommand(TInt aCommandId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1196
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1197
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1198
     * Removes the previous command from the button stack.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1199
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1200
    void RemovePreviousCommand();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1201
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1202
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1203
     * Switches the button's text to short or long depending on the parameter given.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1204
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1205
     * @param aShortText ETrue for short text, EFalse for the long text.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1206
     */     
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1207
    void SwitchToShortTextL(TBool aShortText);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1208
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1209
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1210
     * Sets the labels font.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1211
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1212
     * @param aLabelFont The font to be used.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1213
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1214
    void SetLabelFont(const CFont* aLabelFont);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1215
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1216
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1217
     * Truncates the label. This is done by CEikLabel.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1218
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1219
    void TruncateLabelText();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1220
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1221
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1222
     * Checks if text is empty in this button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1223
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1224
    TBool IsEmptyText() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1225
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1226
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1227
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1228
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1229
     * Sets the control's containing window by copying it from aContainer.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1230
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1231
     * @param aContainer The compound control that is the container for this control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1232
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1233
    void SetContainerWindowL(const CCoeControl& aContainer);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1234
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1235
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1236
     * Constructs the control from a resource file.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1237
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1238
     * @param aReader The resource reader.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1239
     * @param anAlignment Alignment for label.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1240
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1241
    void ConstructFromResourceL(TResourceReader& aReader, TGulAlignmentValue anAlignment);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1242
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1243
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1244
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1245
     * Sets the control's minimum required size.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1246
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1247
     * @return The minimum size required by the control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1248
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1249
    TSize MinimumSize();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1250
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1251
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1252
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1253
     * Sets the control to be dimmed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1254
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1255
     * @param aDimmed ETrue to dim the control, EFalse to set the control as not dimmed.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1256
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1257
    void SetDimmed(TBool aDimmed);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1258
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1259
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1260
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1261
     * Handles pointer events.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1262
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1263
     * @param aPointerEvent The pointer event.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1264
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1265
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1266
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1267
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1268
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1269
     * Sets the button's image.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1270
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1271
     * @param aImage The image to be set.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1272
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1273
    void SetImage(CEikImage &aImage);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1274
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1275
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1276
     * Replaces the buttons image with label.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1277
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1278
    void ReplaceImageByLabel();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1279
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1280
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1281
     * Returns whether the button has image set. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1282
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1283
     * @return ETrue if the button has image set, EFalse otherwise.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1284
     */        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1285
    inline TBool IsImageOn() const {return iDoImage;};
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1286
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1287
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1288
     * Constructs empty button with id EAknSoftkeyEmpty
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1289
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1290
    void ConstructEmptyButtonL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1291
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1292
protected:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1293
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1294
     * Returns the button's index by command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1295
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1296
     * @param aCommandId The button's command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1297
     * @return The button's index.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1298
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1299
    TInt IndexFromCommandId(TInt aCommandId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1300
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1301
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1302
     * Updates the label text with the given label.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1303
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1304
     * @param aText The new label text.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1305
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1306
    void UpdateLabelText(TPtrC aLabelText);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1307
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1308
private: 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1309
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1310
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1311
     * Gets the number of controls contained in a compound control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1312
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1313
     * @return The number of component controls contained by this control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1314
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1315
    TInt CountComponentControls() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1316
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1317
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1318
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1319
     * Gets an indexed component of a compound control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1320
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1321
     * @param The index of the control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1322
     * @return The component control with an index of aIndex.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1323
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1324
    CCoeControl* ComponentControl(TInt aIndex) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1325
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1326
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1327
     * From CCoeControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1328
     * Responds to changes to the size and position of the contents of this control.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1329
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1330
    void SizeChanged();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1331
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1332
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1333
     * From CAknControl.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1334
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1335
    IMPORT_C void* ExtensionInterface( TUid aInterface );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1336
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1337
public: // new functions
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1338
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1339
     * Returns the state of @c CEikCbaButton. 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1340
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1341
     * @return Boolean value for CEikCbaButtons state. ETrue if button is 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1342
     *         pressed down. Otherwise returns EFalse.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1343
     */ 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1344
    TBool PressedDown() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1345
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1346
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1347
     * Changes the state of @c CEikCbaButton. Button's state is stored in a 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1348
     * member variable.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1349
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1350
     * @param  aPressedDown  The state that button has. @c ETrue if button's
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1351
     *                       state is pressed down. @c EFalse for normal,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1352
     *                       not pressed state.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1353
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1354
    void SetPressedDown( const TBool aPressedDown );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1355
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1356
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1357
     * Enables bitmap mode and hides the label. The text is drawn by CEikCba
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1358
     * in bitmap mode.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1359
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1360
     * @since S60 v5.0
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1361
     * @param aEnableBitmap ETrue to enable bitmap mode. EFalse to work in the
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1362
     *                      standard way.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1363
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1364
    void SetTextBitmapMode( TBool aEnableBitmap );
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1365
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1366
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1367
     * Draws the button text and mask to give graphics contexts. Background
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1368
     * is not drawn.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1369
     * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1370
     * @since S60 v5.0
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1371
     * @param aContext     Graphics context to render the text itself into.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1372
     * @param aMaskContext Graphics context to render the text mask into.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1373
     * @param aOffset      Offset between the coordinate system of the target
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1374
     *                     bitmap context relative to screen coordinates.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1375
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1376
    void DrawToContext(
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1377
        CBitmapContext& aContext,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1378
        CBitmapContext& aMaskContext,
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1379
        const TPoint& aOffset ) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1380
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1381
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1382
         * Returns the textual value of the button
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1383
         * @internal
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1384
         * @since S60 v5.0         
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1385
         */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1386
    inline TPtrC FullLabelText() { return iFullLabelText;};
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1387
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1388
private:    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1389
    void PrepareImageL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1390
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1391
protected:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1392
    TBuf<KMaxCbaLabelLength> iFullLabelText;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1393
    TPtrC iLongLabelText;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1394
    TPtrC iShortLabelText;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1395
    CEikLabel* iLabel;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1396
    CDesCArray* iText;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1397
    CArrayFix<SButtonOptions>* iButtonOptions;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1398
    CEikImage* iImage;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1399
    /** Original mask for softkey image. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1400
    const CFbsBitmap* iMask;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1401
    /** Feedback effects transparency mask for softkey image. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1402
    CFbsBitmap* iSfeMask;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1403
    TBool iDoImage;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1404
    /** ETrue if should use text bitmap mode. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1405
    TBool iUseTextBitmap;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1406
    /** Buttons state. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1407
    TBool iPressedDown;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1408
    };
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1409
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1410
/**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1411
 * Specialization of CEikCbaButton for the new Enhanced CBA button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1412
 *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1413
 * @lib eikcoctl.lib
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1414
 * @since S60 3.0
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1415
 */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1416
class CEikEnhancedCbaButton : public CEikCbaButton
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1417
    {
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1418
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1419
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1420
     * Default constructor.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1421
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1422
    CEikEnhancedCbaButton();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1423
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1424
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1425
     * Destructor.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1426
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1427
    ~CEikEnhancedCbaButton();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1428
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1429
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1430
     * Returns the command type for current button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1431
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1432
     * @return The command type.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1433
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1434
    TInt CommandType() const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1435
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1436
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1437
     * Sets command type for current button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1438
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1439
     * @param aCommandType Command type to be set.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1440
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1441
    void SetCommandType(const TInt aCommandType);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1442
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1443
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1444
     * Returns the command id for current button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1445
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1446
     * @return The command id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1447
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1448
    TInt CommandId() const; 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1449
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1450
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1451
     * Constructs a button based on resource definition.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1452
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1453
     * @param aReader Resource reader for reading information from resource file.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1454
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1455
    void ConstructFromResourceL(TResourceReader& aReader);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1456
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1457
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1458
     * Constructs empty button with id EAknSoftkeyEmpty.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1459
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1460
    void ConstructEmptyButtonL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1461
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1462
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1463
     * Used to get the label text for the button.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1464
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1465
     * @return Pointer to the label text.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1466
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1467
    TPtrC* LabelText();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1468
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1469
private: // data
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1470
    TInt iCommandType; 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1471
    TInt iCommandId;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1472
    };
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1473
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1474
/**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1475
 * Holds (enhanced) CBA commands and handles command ordering due to placement rules.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1476
 *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1477
 * @lib eikcoctl.lib
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1478
 * @since S60 3.0 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1479
 *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1480
 * @internal 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1481
 */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1482
NONSHARABLE_CLASS(CEikCommandTable) : public CBase
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1483
    {
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1484
public:
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1485
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1486
     * Constructs a new command table instance.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1487
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1488
     * @return The new command table.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1489
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1490
    static CEikCommandTable* NewL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1491
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1492
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1493
     * Constructs a new command table instance.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1494
     * 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1495
     * @return The new command table.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1496
     */    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1497
    static CEikCommandTable* NewLC();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1498
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1499
    /** 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1500
     * Destructor.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1501
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1502
    ~CEikCommandTable();    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1503
        
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1504
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1505
     * Used to add a command to CommandTable.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1506
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1507
     * @param aButton The button to be added.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1508
     * @return KErrNone if addition was successful.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1509
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1510
    TInt AddCommandL(CEikEnhancedCbaButton* aButton);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1511
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1512
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1513
     * Used to check if command table has a button with a certain id.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1514
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1515
     * @param aCommandId The id to be checked.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1516
     * @return ETrue if command is placed in the command table.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1517
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1518
    TBool IsCommandPlaced(const TInt aCommandId) const;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1519
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1520
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1521
     * Used to replace command with a new command.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1522
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1523
     * @param aCommandId Id for command that should be replaced.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1524
     * @param aResourceId Id for new ENHANCED_CBA_BUTTON resource to be placed in the 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1525
     *                    CommandTable.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1526
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1527
    void ReplaceCommandL(const TInt aCommandId, const TInt aResourceId);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1528
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1529
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1530
     * Used to get CEikEnhancedCbaButton for current control button (1-4).
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1531
     *
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1532
     * @param aCommandIndex Index for requested button, use enum TCommandTableCbaPositions.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1533
     * @return CEikCbaButton for current position, NULL if no button placed in that position.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1534
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1535
    CEikEnhancedCbaButton* Command(const TInt aCommandIndex);
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1536
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1537
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1538
     * Reset CommandTable.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1539
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1540
    void Reset();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1541
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1542
private: // member functions
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1543
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1544
     * Constructor.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1545
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1546
    CEikCommandTable();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1547
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1548
    /**
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1549
     * Constructs command table with device button priorities.
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1550
     */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1551
    void ConstructL();
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1552
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1553
private: // data
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1554
    /** Displayed commands. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1555
    TFixedArray<CEikEnhancedCbaButton*, KMaxButtonsInCommandTable> iCommandButtons;
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1556
    
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1557
    /** Priority order for each button. */
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1558
    RArray< RArray<TInt> > iPriorities; 
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1559
    };
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1560
9d28e9ec8f22 updated dependencies
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
  1561
#endif // __EIKCBA_H__