diff -r 613943a21004 -r 9386f31cc85b bluetoothengine/bthid/bthidkbdsettings/src/bthidsettingcontainer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/bthid/bthidkbdsettings/src/bthidsettingcontainer.cpp Wed Sep 01 12:20:04 2010 +0100 @@ -0,0 +1,199 @@ +/* +* Copyright (c) 2006 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: This is the implementation of setting container class +* +*/ + + +// INCLUDE FILES +#include // for font +#include // skin +#include //skin +#include +#include "bthidsettingcontainer.h" +#ifdef __SERIES60_HELP +#include +#include // The bt hrh info is needed, for help launching +#endif +#include "btui.h" +#include "debug.h" + +// ================= MEMBER FUNCTIONS ======================= + +// --------------------------------------------------------- +// CBTHidSettingContainer::ConstructL(const TRect& aRect) +// EPOC two phased constructor +// --------------------------------------------------------- +// +void CBTHidSettingContainer::ConstructL(const TRect& aRect) + { + CreateWindowL(); //makes the control a window-owning control + BaseConstructL( aRect ); + } + +// --------------------------------------------------------- +// CBTHidBaseContainer::BaseConstructL() +// --------------------------------------------------------- +// +void CBTHidSettingContainer::BaseConstructL( const TRect& aRect ) + { + SetRect(aRect); + iBackGround = CAknsBasicBackgroundControlContext::NewL( KAknsIIDQsnBgAreaMain, Rect(), EFalse ); + ActivateL(); + } + + +// Destructor +CBTHidSettingContainer::~CBTHidSettingContainer() + { + delete iBackGround; + } + + +// --------------------------------------------------------------------------- +// CBTHidSettingContainer::SizeChanged +// called by framwork when the view size is changed +// +// --------------------------------------------------------------------------- +// +void CBTHidSettingContainer::SizeChanged() + { + TRACE_INFO( (_L("[BTHID]\t CBTHidBaseContainer::SizeChanged(); Width %d Height %d "),Rect().Height(), Rect().Width())); + + //Handle SizeChanged for Skin + TRect parentRect(Rect()); + if (iBackGround) + iBackGround->SetRect(parentRect); + } + +// --------------------------------------------------------------------------- +// CBTHidSettingContainer::CountComponentControls +// +// +// --------------------------------------------------------------------------- +// +TInt CBTHidSettingContainer::CountComponentControls() const + { + return 0; + } + +// --------------------------------------------------------------------------- +// CBTHidSettingContainer::ComponentControl +// +// +// --------------------------------------------------------------------------- +// +CCoeControl* CBTHidSettingContainer::ComponentControl(TInt /*aIndex*/) const + { + return NULL; + } + +void CBTHidSettingContainer::HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/) + { + // TODO: Add your control event handler code here + } + +// --------------------------------------------------------- +// CBTHidBaseContainer::HandleResourceChange +// --------------------------------------------------------- +// + +void CBTHidSettingContainer::HandleResourceChange( TInt aType ) + { + + //Handle change in layout orientation + if (aType == KEikDynamicLayoutVariantSwitch) + { + + //TRect rect = iAvkonAppUi->ClientRect(); + // The line above provides to big rectangle in the bottom causing cba's overdrawn by by blank area. + // Correct way to do this is below. + TRect mainPaneRect; + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect); + SetRect(mainPaneRect); + DrawNow(); + } + + else + { + CCoeControl::HandleResourceChange(aType); + } + } + +// --------------------------------------------------------- +// CBTHidBaseContainer::Draw(const TRect& aRect) const +// --------------------------------------------------------- +// +void CBTHidSettingContainer::Draw(const TRect& aRect) const + { + TRACE_FUNC(_L("[BTHID]\t CBTHidSettingContainer::Draw()")); + TRgb color; + + CWindowGc& gc = SystemGc(); + + // draw background + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + + // get skin text color + AknsUtils::GetCachedColor( skin, color , KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6); + gc.SetPenColor( color ); + + MAknsControlContext* cc = AknsDrawUtils::ControlContext( this ); + AknsDrawUtils::Background( skin, cc, this, gc, aRect ); + } + +// --------------------------------------------------------- +// CBTHidBaseContainer::MopSupplyObject() +// Pass skin information if needed. +// --------------------------------------------------------- +// +TTypeUid::Ptr CBTHidSettingContainer::MopSupplyObject(TTypeUid aId) + { + if(aId.iUid == MAknsControlContext::ETypeId && iBackGround) + { + return MAknsControlContext::SupplyMopObject( aId, iBackGround); + } + + return CCoeControl::MopSupplyObject( aId ); + } + +#ifdef __SERIES60_HELP + +// --------------------------------------------------------- +// From CCoeControl +// CBTHidSettingContainer::GetHelpContext +// --------------------------------------------------------- +// +void CBTHidSettingContainer::GetHelpContext(TCoeHelpContext& aContext) const + { + TRACE_FUNC_ENTRY + + aContext.iMajor = KBtuiUid3; + aContext.iContext = KBTKEYBOARD_HLP_SETTINGS; + } + +#else + +// --------------------------------------------------------- +// From CCoeControl +// CBTHidSettingContainer::GetHelpContext +// --------------------------------------------------------- +// +void CBTHidSettingContainer::GetHelpContext(TCoeHelpContext& /*aContext*/) const + { + TRACE_FUNC_ENTRY + } + +#endif +// End of File