diff -r 1fc85118c3ae -r 870918037e16 eventsui/eventseditor/inc/evtmgmtuiringtonecomponent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eventsui/eventseditor/inc/evtmgmtuiringtonecomponent.h Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,211 @@ +/* +* Copyright (c) 2008 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: 'Set Assigntone' component for retrieving ringtone. +* +*/ + + +#ifndef EVTMGMTUIRINGTONECOMPONENT_H_ +#define EVTMGMTUIRINGTONECOMPONENT_H_ + +#include // CBase + +/** + * @class CEvtMgmtUiRingtoneComponent + * Class that represents 'Set tone' component of editor + * + * This class acts as 'set tone' component of editor. + * It is used to retrieve tones from memory. + * It is also used to record new ringtone and to pass its path to editor + * + * @since S60 v9.1 + */ +class CAknIconArray; +class CNewFileServiceClient; +class CFLDFileListContainer; + +class CEvtMgmtUiRingtoneComponent: public CBase + { + private: + /* + * 'Set tone' popup dialog options + */ + enum TEvtMgmtUiAssignedTone + { + /* + * It indicates that 'select tone from existing' is selected + * from popup dialog + */ + EEvtMgmtUiAssignedToneTone, + /* + * It indicates that 'record new tone' is selected + * from popup dialog + */ + EvtMgmtUiAssignedToneRecordNew + }; + + public: // Constructor and destructor + /** + * Static Two phase constructor + * @param [in] aPrevRingtone - previous ringtone of the existing event + * - null for newly created event + */ + static CEvtMgmtUiRingtoneComponent* NewL( const TPtrC aPrevRingtone ); + /** + * Static Two phase constructor + * @param [in] aPrevRingtone - previous ringtone of the existing event + * - null for newly created event + */ + static CEvtMgmtUiRingtoneComponent* NewLC( const TPtrC aPrevRingtone ); + + /** + * Virtual destructor + */ + virtual ~CEvtMgmtUiRingtoneComponent(); + + public:// new functions + + /** + * It is used to retrieve the selected ringtone's absolute path. + * + * @since S60 v9.1 + * + * @ret absolute path of the selected ringtone + */ + TPtrC Ringtone() const; + + /** + * It is used to retrieve the default ringtone's absolute path. + * + * @since S60 v9.1 + * + * @ret absolute path of the default ringtone + */ + TPtrC DefaultRingtoneL(); + + /** + * It is used to display 'Set tone' popup dialog and to retrieve ringtone. + * + * @since S60 v9.1 + * + * @ret error if there is any error + * KErrNone if it is successful + */ + TInt DisplayAudioTonePopupDlgL(); + + + private: // Constructor + /** + * C++ Default constructor + */ + CEvtMgmtUiRingtoneComponent(); + + /** + * Second phase of the two phase constructor + * @param [in] aPrevRingtone - previous ringtone of the existing event + */ + void ConstructL( const TPtrC aPrevRingtone ); + + private: // new functions + + /** + * It is used to display generic popup dialog. + * + * @since S60 v9.1 + * + * @ret index of item selected if OK is pressed + * KErrCancel if Cancel is pressed + */ + TInt DisplayPopupDlgL(); + + /* + * It is used to record new ringtone. + * + * @since S60 v5.0 + * + * @ret KErrNone if recording is succesful. + * error code if it is failed. + */ + TInt RecordNewToneL(); + + /* + * It is used to generate filename for recording new file. + * + * @since S60 v5.0 + * + * @param[out] aFileName - it will contain generated file-name + * @ret KErrNone if recording is succesful. + * error code if it is failed. + */ + TInt FileNameForRecordingL( TDes& aFileName ); + + /** + * It is used display system's 'select tone' dialog. + * + * @since S60 v5.0 + * + * @ret error while displaying 'select tone' dialog and + * retrieving ringtone from it. + * KErrNone if it is successful + */ + TInt DisplayRingtoneSelectionDlgL(); + + /** + * It is used to update icons + */ + void UpdateIconsL( CAknListQueryDialog& aDialog ); + + /** + * Append icon to icon array. CAknIconArray owns icons so it is + * easier to it leave safely. + * @param aIcons icon array + * @param aIconFileWithPath icon file name with path + * @param aSkinID skin id of the icon + * @param aIconGraphicsIndex picture index + * @param aIconGraphicsMaskIndex mask index + */ + void AddIconL( CAknIconArray& aIcons, + const TDesC& aIconFileWithPath, + TAknsItemID aSkinID, + TInt aIconGraphicsIndex, + TInt aIconGraphicsMaskIndex ); + + /** + * Gets Events Management UI icon file path and name. Ownership + * is transferred, item is left in the cleanup stack. + * @return TFileName* The full name of the Events UI icon file. + */ + TFileName* IconFileNameLC() const; + + private: + /** + * Ringtone value + * owns + */ + HBufC* iRingtone; + + /** + * New File Service Instance + * owns + */ + CNewFileServiceClient* iRecorderClient; + + /** + * File List component + * owns + */ + CFLDFileListContainer* iSelectRingtoneDlg; + }; + +#endif //EVTMGMTUIRINGTONECOMPONENT_H_