diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/GsCamcorderPlugin/inc/CamAlbumSettingItem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/CamAlbumSettingItem.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,114 @@ +/* +* Copyright (c) 2007 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: Setting item type for "Add to album".* +*/ + + + + +#ifndef CAMALBUMSETTINGITEM_H +#define CAMALBUMSETTINGITEM_H + +// INCLUDES +#include + + +class CAknSingleGraphicPopupMenuStyleListBox; +class CCamStaticSettingsModel; + +/** +* Setting item class similar to standard avkon CAknEnumeratedTextPopupSettingItem. +* Allows the setting list array to be updated dynamically to show a currently selected album +* name. The setting page displays "Yes" and "No options and displays an album selection list +* popup if the user selects the "Yes" option. +* +*/ + +class CCamAlbumSettingItem : public CAknEnumeratedTextPopupSettingItem + { +public: + /** + * Construct a list, storing in it a resource (to be read at 2nd stage construction) + * and a reference to an externally owned integer - the value to be manipulated + * @since 2.8 + * @param aSettingItemId the setting item being constructed + * @param aValue the current value of the item + */ + CCamAlbumSettingItem( TInt aSettingItemId, TInt& aValue ); + + /** + * Destructor + * @since 2.8 + */ + ~CCamAlbumSettingItem(); + +public: // Functions from base classes + + /** + * From MAknSettingPageObserver + * Virtual Method called by framework to handle events in the + * setting page. Used to launch an album selection list. + * @since 2.8 + * @param aSettingPage the setting page reporting the event + * @param aEventType the type of event reported + */ + void HandleSettingPageEventL( CAknSettingPage* aSettingPage, + TAknSettingPageEvent aEventType ); + +public: // New methods + + /** + * Replace the "Yes" text in the setting list with the currently + * selected capture album. Text in the setting page is unchanged. + * @since 2.8 + */ + void UpdateListTextL(); + +private: // Functions from base classes + + /** + * From CAknEnumeratedTextPopupSettingItem + * Virtual Method called by framework to complete the construction. + * Calls UpdateListTextL to set the list text when the item is first + * constructed + * @since 2.8 + */ + void CompleteConstructionL(); + +private: // New methods + + /** + * Launches an album selection list + * @since 2.8 + * @return Whether or not an album was selected from the list + */ + void DisplayAlbumSelectionListL(); + + /** + * Handle situations where the capture album does not exist or a request for + * information on the capture album fails + * @since 2.8 + */ + void HandleAlbumError(); + +private: // data + + // List of Album IDs - One for each unique album name + TBool iAlbumExists; + HBufC* iAlbumTitle; + }; + +#endif // CAMALBUMSETTINGITEM_H + +// End of File