/*
* Copyright (c) 2005-2005 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0""
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: header file of control group and button group
*
*/
#ifndef C_CBUBBLECTRL_H
#define C_CBUBBLECTRL_H
#include <peninputlayoutbasecontrol.h>
#include <AknsConstants.h>
#include <AknsItemID.h>
#include <AknLayout2Def.h>
class CBubbleCtrl: public CFepUiBaseCtrl
{
public:
//constructor and destructor
/**
* Destructor.
*
* @since S60 V4.0
*/
IMPORT_C virtual ~CBubbleCtrl();
/**
* Factory function.
*
* @since S60 V4.0
* @param aRect The rectangle area for this control
* @param aUiLayout Ui layout who contains this control.Ownership not transferred
* @param aControlId control Id
* @return An instance of CButtonBase class
*/
IMPORT_C static CBubbleCtrl* NewL(const TRect& aRect,
CFepUiLayout* aUiLayout,
TInt aCtrlId);
inline void SetIconOffsetAndSize(
const TSize& aOffset, const TSize& aSize );
IMPORT_C virtual void Draw();
IMPORT_C virtual void Hide(TBool aShowFlag);
IMPORT_C void SetBitmapParam(CFbsBitmap* aBmpId,
CFbsBitmap* aMaskBmpId,
TAknsItemID aBgSkinId);
IMPORT_C void SetBitmapParam(CFbsBitmap* aBmpId,
CFbsBitmap* aMaskBmpId,
TAknsItemID aFirstBmpId,
TAknsItemID aMiddleBmpId,
TAknsItemID aLastBmpId);
/**
* Set text line layout
*
* @since S60 V4.0
* @param aTextFormat Text line layout to be set
* @return None
*/
IMPORT_C void SetTextFormat(TAknTextLineLayout aTextFormat);
/**
* Set text to be shown on button
*
* @since S60 V4.0
* @param aText Text to be shown on button
* @return None
*/
IMPORT_C void SetTextL(const TDesC& aText);
IMPORT_C void Popup(const TRect& aRect);
IMPORT_C void Close();
IMPORT_C TBool IsShowing();
IMPORT_C void SetFrameDiff(TInt aLeftDiff,TInt aTopDiff,TInt aRightDiff,TInt aBottomDiff);
inline void GetText( TDes& aText );
void Freeze();
void UnFreeze( TBool aUpdate = ETrue );
inline void SetTextColorIndex( TInt aTxtClrIndex );
inline TInt TextColorIndex() const;
inline void SetLangCode( TInt aLangCode );
protected:
IMPORT_C CBubbleCtrl(const TRect& aRect,
CFepUiLayout* aUiLayout,
TInt aCtrlId);
IMPORT_C void ConstructL(TInt aBmpId, TInt aMaskId);
private:
TRect GetRect();
private:
CFbsBitmap* iForgroundBmp;
CFbsBitmap* iForgroundBmpMask;
TAknsItemID iBgSkinId;
TAknsItemID iFirstBmpId;
TAknsItemID iMiddleBmpId;
TAknsItemID iLastBmpId;
HBufC* iText;
TAknTextLineLayout iTextFormat;
TBool iShowing;
TInt iLeftDiff;
TInt iTopDiff;
TInt iRightDiff;
TInt iBottomDiff;
TBool iFreeze;
TRect iInvalidRect;
TBool iNeedRedraw; // redraw flag after text changed.
TInt iTextColorIndex;
TSize iIconOffset;
TSize iIconSize;
public:
IMPORT_C virtual void SetRect(const TRect& aRect);
void SetBmpDevice(CFbsBitGc* aGc,CFbsBitmapDevice* aDevice);
void CreateBmpDevL();
inline void SetOffset(TPoint& aPt);
protected:
IMPORT_C void HandleResourceChange(TInt aType);
private:
private:
CFbsBitmap* iBitmap;
CFbsBitmap* iMaskBitmap;
TPoint iOffset;
TInt iReserved1;
TInt iLangCode;
};
inline void CBubbleCtrl::SetOffset(TPoint& aPt)
{
iOffset = aPt;
}
inline void CBubbleCtrl::SetTextColorIndex( TInt aTxtClrIndex )
{
iTextColorIndex = aTxtClrIndex;
}
inline TInt CBubbleCtrl::TextColorIndex() const
{
return iTextColorIndex;
}
inline void CBubbleCtrl::SetIconOffsetAndSize(
const TSize& aOffset, const TSize& aSize )
{
iIconOffset = aOffset;
iIconSize = aSize;
}
inline void CBubbleCtrl::GetText( TDes& aText )
{
aText.Copy( *iText );
}
inline void CBubbleCtrl::SetLangCode( TInt aLangCode )
{
iLangCode = aLangCode;
}
class CTooltipBubbleCtrl: public CBubbleCtrl
{
public:
//constructor and destructor
/**
* Destructor.
*
*/
virtual ~CTooltipBubbleCtrl();
/**
* Factory function.
*
* @param aRect The rectangle area for this control
* @param aUiLayout Ui layout who contains this control.Ownership not transferred
* @param aControlId control Id
* @return An instance of CButtonBase class
*/
static CTooltipBubbleCtrl* NewL(const TRect& aRect,
CFepUiLayout* aUiLayout,
TInt aCtrlId);
// From CFepUiBaseCtrl
/**
* Handle pointer up event
*
* @param aPoint The point position relative the layout
* @return The control which handles the event.
*/
CFepUiBaseCtrl* HandlePointerUpEventL(const TPoint& aPoint);
protected:
CTooltipBubbleCtrl( const TRect& aRect,
CFepUiLayout* aUiLayout,
TInt aCtrlId );
private:
};
#endif //C_CBUBBLECTRL_H