diff -r 000000000000 -r 2f259fa3e83a uifw/eikctl/src/EIKDLGTB.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/eikctl/src/EIKDLGTB.CPP Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,157 @@ +/* +* Copyright (c) 1997-1999 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: +* +*/ + + +#include +#include +#include +#include "eikdlgtb.h" +#include +#include +#include +#include +#include + +EXPORT_C CEikDialogToolBar::~CEikDialogToolBar() + { + delete iBrushAndPenContext; + } + +EXPORT_C CEikDialogToolBar::CEikDialogToolBar() + { + __DECLARE_NAME(_S("CEikDialogToolBar")); + } + +EXPORT_C void CEikDialogToolBar::BaseConstructL() + { + __ASSERT_DEBUG(Observer(),Panic(EEikPanicDialogToolBarNoObserver)); + CEikControlGroup::ConstructL(CEikControlGroup::EFromTopLeft,CEikControlGroup::ELayHorizontally); + RWindow& window=Window(); + window.SetBackgroundColor(iEikonEnv->ControlColor(EColorDialogBackground,*this)); + window.SetPointerGrab(ETrue); + window.SetShadowDisabled(ETrue); + EnableDragEvents(); + iBrushAndPenContext=CCoeBrushAndPenContext::NewL(); + iBrushAndPenContext->SetBrushStyle(CGraphicsContext::ESolidBrush); + iBrushAndPenContext->SetBrushColor(iEikonEnv->ControlColor(EColorDialogBackground,*this)); + iBrushAndPenContext->SetPenColor(iEikonEnv->ControlColor(EColorDialogText,*this)); + SetControlContext(iBrushAndPenContext); + } + +EXPORT_C void CEikDialogToolBar::ConstructFromResourceL(TResourceReader& aReader) + { + BaseConstructL(); + const TInt width=aReader.ReadInt16(); + if (width) + SetLengthInPixels(width); + const TInt count=aReader.ReadInt16(); + for (TInt ii=0;iiCreateCustomCommandControlL(ctrlType); + __ASSERT_DEBUG(ctrl, Panic(EEikPanicToolBarNullControl)); + ctrl->SetContainerWindowL(*this); + ctrl->SetNonFocusing(); + CleanupStack::PushL(ctrl); + const TInt id=aReader.ReadInt16(); + const TInt length=aReader.ReadInt16(); + TEikGroupControl groupCtrl(ctrl,id,aReader.ReadInt16(),length); + AddControlL(groupCtrl); //ownership now taken by array + CleanupStack::Pop(); + ctrl->ConstructFromResourceL(aReader); + } + } + +EXPORT_C TKeyResponse CEikDialogToolBar::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) + { + const TInt count=iControlArray->Count(); + for (TInt ii=0;iiOfferKeyEventL(aKeyEvent,aType)==EKeyWasConsumed) + return EKeyWasConsumed; + } + return EKeyWasNotConsumed; + } + +EXPORT_C void CEikDialogToolBar::AddControlL(TEikGroupControl& aGroupControl) + { + CEikControlGroup::AddControlL(aGroupControl); + aGroupControl.iControl->SetObserver(this); + } + +void CEikDialogToolBar::HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType) + { + if (aEventType==MCoeControlObserver::EEventStateChanged) + { + iStateChangeControl=aControl; + ReportEventL(aEventType); + } + } + +EXPORT_C CCoeControl* CEikDialogToolBar::StateChangeControl() const + { + return iStateChangeControl; + } + +EXPORT_C TInt CEikDialogToolBar::StateChangeControlId() const + { + if (!iStateChangeControl) + return KErrNotFound; + return ControlId(iStateChangeControl); + } + +/** + * Gets the list of logical colors employed in the drawing of the control, + * paired with an explanation of how they are used. Appends the list to aColorUseList. + * + * @since ER5U + */ +EXPORT_C void CEikDialogToolBar::GetColorUseListL(CArrayFix& aColorUseList) const + { + CEikControlGroup::GetColorUseListL(aColorUseList); + + TInt commonAttributes = TCoeColorUse::ESurrounds|TCoeColorUse::EActive|TCoeColorUse::ENormal|TCoeColorUse::ENeutral; + TCoeColorUse colorUse; + + colorUse.SetLogicalColor(EColorToolbarText); + colorUse.SetUse(TCoeColorUse::EFore|commonAttributes); + aColorUseList.AppendL(colorUse); + + colorUse.SetLogicalColor(EColorToolbarBackground); + colorUse.SetUse(TCoeColorUse::EBack|commonAttributes); + aColorUseList.AppendL(colorUse); + } + +/** + * Handles a change to the control's resources of type aType + * which are shared across the environment, e.g. colors or fonts. + * + * @since ER5U + */ +EXPORT_C void CEikDialogToolBar::HandleResourceChange(TInt aType) + { + CEikControlGroup::HandleResourceChange(aType); + + if(aType==KEikColorResourceChange) + { + iBrushAndPenContext->SetBrushColor(iEikonEnv->ControlColor(EColorToolbarBackground,*this)); + iBrushAndPenContext->SetPenColor(iEikonEnv->ControlColor(EColorToolbarText,*this)); + Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorToolbarBackground,*this)); + } + }