diff -r 000000000000 -r 71ca22bcf22a mmserv/audioeffectsui/equalizer/inc/EqualizerFreqBandContainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/audioeffectsui/equalizer/inc/EqualizerFreqBandContainer.h Tue Feb 02 01:08:46 2010 +0200 @@ -0,0 +1,185 @@ +/* +* Copyright (c) 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: Declares class for frequency band container +* +*/ + + + + +#ifndef EQUALIZERFREQBANDCONTAINER_H +#define EQUALIZERFREQBANDCONTAINER_H + +// INCLUDES +#include +#include "EqualizerFreqBand.h" +#include "EqualizerPrivateConstants.h" + +// FORWARD DECLARATIONS +class CAudioEqualizerUtility; +class CAudioEqualizer; +class CAknsBasicBackgroundControlContext; + +// CLASS DECLARATIONS + +////////////////////////////////////////////////////////////////////////////// +// +// -----> CEqualizerFreqBandContainer(definition) +// +////////////////////////////////////////////////////////////////////////////// +NONSHARABLE_CLASS(CEqualizerFreqBandContainer) : public CCoeControl + { + public: + /** + * This function is called to create an object of + * type CEqualizerFreqBandContainer - First phase Constructor + * @since 3.0 + * @param aaEqEditingDialog a reference to CEqualizerEditingDialog + * @param aAudEqUtility a pointer to CAudioEqualizerUtility + * @param aPresetIndex the index of the Preset being edited + * @param aIsActivePreset whether the preset is active or not? + * @param aRect the CEqualizerFreqBandContainer rectangle + */ + CEqualizerFreqBandContainer( + CEqualizerEditingDialog* aEqEditingDialog, + CAudioEqualizerUtility* aAudEqUtility, + const TInt aPresetIndex, const TBool aIsActivePreset, TRect& aRect, + MEqualizerPresetActivationObserver& aObserver, TInt aPresetKey, + TPresetName& aPresetName ); + /** + * Destructor + * @since 3.0 + */ + virtual ~CEqualizerFreqBandContainer(); + + public: + /** + * Handles key events + * @param aKeyEvent key event. + * @param aType key code + * @return TKeyResponse + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + + private: //New Functions + void ConstructL(TRect& aRect); + /** + * This function is used to swap the focus from one control to other + * @since 3.0 + * @param aPrevControl Previous control + * @param aNewControl New Control + */ + void SwapFocus(CCoeControl* aPrevControl, CCoeControl* aNewControl) ; + + /** + * This function is used to construct the frequency value labels + * @since 3.2 + */ + void ConstructLabelsL(); + + public: // New functions + /** + * This function is used to set new values for CAudioEqualizerUtility* + * @since 3.0 + * @param aAudEqUtility New pointer to CAudioEqualizerUtility + */ + void SetAudioEqualizerL(CAudioEqualizerUtility* aAudEqUtility); + + private: //Functions from base classes + /** + * This function is called by the framework whenever a custom control + * is constructed inside the Dialog + */ + void ConstructFromResourceL(TResourceReader& aReader); + /** + * Virtual, defined by CCoeControl; replaces the default implementation + * provided by CCoeControl. + */ + void Draw(const TRect& /*aRect*/) const; + + /** + * Virtual, defined by CCoeControl; replaces the default implementation + * provided by CCoeControl. + */ + TInt CountComponentControls() const; + + /** Virtual, defined by CCoeControl; replaces the default implementation + * provided by CCoeControl. + */ + CCoeControl* ComponentControl(TInt aIndex) const; + /** + *Virtual, defined by CCoeControl; empty implementation provided by + * CCoeControl; full implementation provided by this class + */ + void SizeChanged(); + /* + * From CCoeControl Called when a control's focus is changed + */ + void FocusChanged(TDrawNow aDrawNow); + + /* + * From CCoeControl + * @see CCoeControl + */ + TTypeUid::Ptr MopSupplyObject(TTypeUid aId); + +#ifdef RD_SCALABLE_UI_V2 + /* + * From CCoeControl + * @see CCoeControl + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); +#endif //RD_SCALABLE_UI_V2 + + private: + // Data members defined and used by this class. + //Array of frequency band pointers + CArrayPtr* iFreqBand; + // Stores the currently focussed frequency band + CCoeControl* iFocussedFreqBand; + // Stores the Index of the currently focussed frequency band + TUint iIndexOfFocussedFreqBand; + // Used to store a pointer to CEqualizerEditingDialog + CEqualizerEditingDialog* iEqEditingDialog; + // Used to store a pointer to CAudioEqualizerUtility + CAudioEqualizerUtility* iAudEqUtility; + // Used to store the preset index + const TInt iPresetIndex; + // Whether the preset displayed is an active preset? + const TBool iIsActivePreset; + // Rectangle in which to display the control + TRect& iRect; + // Number of Frequency bands + TUint iNumberOfFreqBands; + // For skin in the background + CAknsBasicBackgroundControlContext* iBackGround; + //Array of frequence band labels + CArrayPtr* iFreqLabels; + + // Observer for changing equalizer presets + MEqualizerPresetActivationObserver& iObserver; + TInt iPresetKey; + + // Used to indicate a band is selected in touch + TBool iBandSelected; + + // Used to store the preset name + TPresetName iPresetName; + + }; + +#endif //EQUALIZERFREQBANDCONTAINER_H + +// End of File