epoc32/include/mw/eikbtpan.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
/*
williamr@4
     2
* Copyright (c) 1997-1999 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     3
* All rights reserved.
williamr@4
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@4
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     8
*
williamr@4
     9
* Initial Contributors:
williamr@4
    10
* Nokia Corporation - initial contribution.
williamr@4
    11
*
williamr@4
    12
* Contributors:
williamr@4
    13
*
williamr@4
    14
* Description:
williamr@4
    15
*
williamr@4
    16
*/
williamr@4
    17
williamr@4
    18
williamr@4
    19
#if !defined(__EIKBTPAN_H__)
williamr@4
    20
#define __EIKBTPAN_H__
williamr@4
    21
williamr@4
    22
#if !defined(__EIKBTGRP_H__)
williamr@4
    23
#include <eikbtgrp.h>
williamr@4
    24
#endif
williamr@4
    25
williamr@4
    26
#include <AknControl.h>
williamr@4
    27
williamr@4
    28
#if !defined(__COECOBS_H__)
williamr@4
    29
#include <coecobs.h>
williamr@4
    30
#endif
williamr@4
    31
williamr@4
    32
#if !defined(__EIKLBBUT_H__)
williamr@4
    33
#include <eiklbbut.h>
williamr@4
    34
#endif
williamr@4
    35
williamr@4
    36
#include <eikctgrp.h>
williamr@4
    37
williamr@4
    38
class MEikCommandObserver;
williamr@4
    39
williamr@4
    40
/**
williamr@4
    41
 * @internal
williamr@4
    42
 * Internal to Symbian
williamr@4
    43
 */
williamr@4
    44
class CEikButtonPanel : public CAknControl, public MCoeControlObserver, public MEikButtonGroup
williamr@4
    45
	{
williamr@4
    46
public: // new functions
williamr@4
    47
	IMPORT_C CEikButtonPanel();
williamr@4
    48
	IMPORT_C ~CEikButtonPanel();
williamr@4
    49
	IMPORT_C void ConstructL();
williamr@4
    50
	IMPORT_C void AddButtonL(CEikLabeledButton* aButton,TInt aId);
williamr@4
    51
	IMPORT_C void AddButtonL(CEikLabeledButton* aButton,TInt aId, TInt aRow);
williamr@4
    52
	IMPORT_C void SetHorizontal();
williamr@4
    53
	IMPORT_C TInt ButtonId(CCoeControl* aControl) const;
williamr@4
    54
	IMPORT_C CEikCommandButtonBase* ButtonById(TInt aButtonId) const;
williamr@4
    55
	IMPORT_C CEikLabeledButton* LabeledButtonById(TInt aButtonId) const;
williamr@4
    56
	IMPORT_C void MakeButtonVisible(TInt aButtonId,TBool aVisible);
williamr@4
    57
	IMPORT_C CEikCommandButtonBase* ButtonForKey(TInt aChar,TInt& aButtonId) const;
williamr@4
    58
	IMPORT_C void ResetMinimumSize();
williamr@4
    59
	IMPORT_C void SetMinButtonWidth(TInt aWidth);
williamr@4
    60
	IMPORT_C void SetCommandObserver(MEikCommandObserver* aCommandObserver);
williamr@4
    61
	void UpdateHotKeyL(TInt aCommandId,CEikLabeledButton::TFlags aFlags,TInt aKeyCode);
williamr@4
    62
public:	// from CCoeControl
williamr@4
    63
	IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
williamr@4
    64
	IMPORT_C TSize MinimumSize();
williamr@4
    65
	IMPORT_C void GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const; // not available before Release 005u
williamr@4
    66
	IMPORT_C void HandleResourceChange(TInt aType);			// not available before Release 005u
williamr@4
    67
	IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
williamr@4
    68
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);   
williamr@4
    69
protected: // from CCoeControl
williamr@4
    70
	IMPORT_C void WriteInternalStateL(RWriteStream& aWriteStream) const;
williamr@4
    71
public: // from MCoeControlObserver
williamr@4
    72
	IMPORT_C void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
williamr@4
    73
private: // from MEikButtonGroup
williamr@4
    74
	void SetCommandL(TInt aPosition,TInt aCommandId,const TDesC* aText,const CFbsBitmap* aBitmap,const CFbsBitmap* aMask);
williamr@4
    75
	void SetCommandL(TInt aPosition,TInt aResourceId);
williamr@4
    76
	void SetCommandSetL(TInt aResourceId);
williamr@4
    77
	void AddCommandL(TInt aPosition,TInt aCommandId,const TDesC* aText,const CFbsBitmap* aBitmap,const CFbsBitmap* aMask);
williamr@4
    78
	void AddCommandToStackL(TInt aPosition,TInt aCommandId,const TDesC* aText,const CFbsBitmap* aBitmap,const CFbsBitmap* aMask);
williamr@4
    79
	void AddCommandToStackL(TInt aPosition,TInt aResourceId);
williamr@4
    80
	void AddCommandSetToStackL(TInt aResourceId);
williamr@4
    81
	void SetDefaultCommand(TInt aCommandId);
williamr@4
    82
	TSize CalcMinimumSizeL(TInt aResourceId);
williamr@4
    83
	void RemoveCommandFromStack(TInt aPosition,TInt aCommandId);
williamr@4
    84
	TInt CommandPos(TInt aCommandId) const;
williamr@4
    85
	void DimCommand(TInt aCommandId,TBool aDimmed);
williamr@4
    86
	TBool IsCommandDimmed(TInt aCommandId) const;
williamr@4
    87
	void MakeCommandVisible(TInt aCommandId,TBool aVisible);
williamr@4
    88
	TBool IsCommandVisible(TInt aCommandId) const;
williamr@4
    89
	CCoeControl* AsControl();
williamr@4
    90
	const CCoeControl* AsControl() const;
williamr@4
    91
	void SetBoundingRect(const TRect& aBoundingRect);
williamr@4
    92
	void ReduceRect(TRect& aBoundingRect) const;
williamr@4
    93
	CCoeControl* GroupControlById(TInt aCommandId) const;
williamr@4
    94
	CEikCommandButton* GroupControlAsButton(TInt aCommandId) const;
williamr@4
    95
	TInt CommandId(TInt aCommandPos) const;
williamr@4
    96
	TInt ButtonCount() const;
williamr@4
    97
	TUint ButtonGroupFlags() const;
williamr@4
    98
williamr@4
    99
    void SetMSKCommandObserver(MEikCommandObserver* aCommandObserver);
williamr@4
   100
    void DimCommandByPosition(TInt aPosition,TBool aDimmed);
williamr@4
   101
    TBool IsCommandDimmedByPosition(TInt aPosition) const;
williamr@4
   102
    void MakeCommandVisibleByPosition(TInt aPosition,TBool aVisible);
williamr@4
   103
    TBool IsCommandVisibleByPosition(TInt aPosition) const;
williamr@4
   104
    void AnimateCommandByPosition(TInt aPosition);
williamr@4
   105
private: // from CCoeControl
williamr@4
   106
	IMPORT_C void ActivateL();
williamr@4
   107
    IMPORT_C TInt CountComponentControls() const;
williamr@4
   108
    IMPORT_C CCoeControl* ComponentControl(TInt aIndex) const;
williamr@4
   109
    IMPORT_C void SizeChanged();
williamr@4
   110
	IMPORT_C void Reserved_2();
williamr@4
   111
private:
williamr@4
   112
    /**
williamr@4
   113
    * From CAknControl
williamr@4
   114
    */
williamr@4
   115
    IMPORT_C void* ExtensionInterface( TUid aInterface );
williamr@4
   116
private: // new functions
williamr@4
   117
	TInt RelativePosition(TInt aCommandPos, TInt& aGroupIndex) const;
williamr@4
   118
	TBool ButtonsConsumedKeyL(TInt aCode);
williamr@4
   119
	void AppendNewLineL();
williamr@4
   120
	CEikLabeledButton* LabeledButtonByPosition(TInt aPosition, TInt& aGroupIndex) const;
williamr@4
   121
	CEikLabeledButton* LabeledButtonByPosition(TInt aPosition) const;
williamr@4
   122
	void AdjustMarginsToFit(TInt8& aLeftBorder, TInt8& aRightBorder, TInt& aGapBetweenButtons);
williamr@4
   123
	void SetButtonWidths();
williamr@4
   124
private:
williamr@4
   125
	CArrayPtrFlat<CEikControlGroup>* iControlGroups;
williamr@4
   126
	TSize iMinSize;
williamr@4
   127
	TInt iButWidth;
williamr@4
   128
	TInt iMinButWidth;
williamr@4
   129
	TInt iCount; // for efficiency
williamr@4
   130
	MEikCommandObserver* iCommandObserver;
williamr@4
   131
    TInt iSpare;
williamr@4
   132
	};
williamr@4
   133
williamr@4
   134
#endif