--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/CamLocationSettingContainer.h Thu Jan 07 16:18:56 2010 +0200
@@ -0,0 +1,223 @@
+/*
+* 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:
+*
+*/
+
+
+#ifndef CAMLOCATIONSETTINGCONTAINER_H
+#define CAMLOCATIONSETTINGCONTAINER_H
+
+// INCLUDES
+#include <coecntrl.h>
+#include <AknUtils.h>
+#include <eiklbo.h>
+
+#include "MCamAppController.h"
+#include "CamSettingValueObserver.h"
+#include "CamStaticSettingsModel.h"
+// CONSTANTS
+const TInt KMaxTextLength = 40;
+
+// FORWARD DECLARATIONS
+class CCamCaptureSetupListBox;
+class MAknQueryValue;
+class MTouchFeedback;
+
+// CLASS DECLARATION
+
+/**
+* Implements the location listbox control and descriptive texts
+*
+* @since 2.8
+*/
+class CCamLocationSettingContainer : public CCoeControl,
+ public MCamSettingValueObserver,
+ public MEikListBoxObserver
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * @since 2.8
+ * @param aController reference to the app controller
+ * @param aCaptureMode the current capture mode
+ * @param aParent this control's parent
+ * @return pointer to a new quality container
+ */
+ static CCamLocationSettingContainer* NewL( MCamAppController& aController,
+ TCamCameraMode aCaptureMode,
+ CCoeControl* aParent );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CCamLocationSettingContainer();
+
+ public: // New functions
+
+ /**
+ * Returns the selected quality
+ * @since 2.8
+ * @return the selected quality
+ */
+ TInt SelectedValue() const;
+
+ public: // Functions from base classes
+
+ /**
+ * From CCoeControl
+ * Constructs the control from a resource
+ * @since 2.8
+ * @param aReader the resource reader
+ */
+ void ConstructFromResourceL( TResourceReader& aReader );
+
+ /**
+ * From CCoeControl
+ * Standard CCoeControl routine to return the number of component controls
+ * @since 2.8
+ * @return the number of component controls
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * From CCoeControl
+ * Standard CCoeControl routine to return the control at a given index
+ * @since 2.8
+ * @param anIndex index at which to return control
+ * @return the control at the given index
+ */
+ CCoeControl* ComponentControl( TInt anIndex ) const;
+
+ /**
+ * From CCoeControl
+ * Draws the controls
+ * @since 2.8
+ * @param aRect the invlaid rect to draw
+ */
+ void Draw( const TRect& aRect ) const;
+
+ /**
+ * From CCoeControl
+ * Called when the size of the control changes
+ * @since 2.8
+ */
+ void SizeChanged();
+
+ /**
+ * From CCoeControl
+ * Offers a key event to the control
+ * @since 2.8
+ * @param aKeyEvent the key event offered
+ * @param aType the type key event
+ * @return whether the key was handled
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * From MCamSettingValueObserver
+ * Handles a change in the slider value
+ * @since 2.8
+ * @param aNewValue the new value of the setting
+ */
+ void HandleSettingValueUpdateL( TInt aNewValue );
+
+
+ protected: // New functions
+
+ protected: // Functions from base classes
+
+ private:
+
+ /**
+ * C++ default constructor.
+ * @since 2.8
+ * @param aController reference to the app controller
+ * @param aMode the current capture mode
+ * @param aParent this control's parent
+ */
+ CCamLocationSettingContainer( MCamAppController& aController,
+ TCamCameraMode aMode,
+ CCoeControl* aParent );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ * @since 2.8
+ */
+ void ConstructL();
+
+ /**
+ * Reads the listbox layout from a resource file
+ */
+ void ReadListboxLayoutL( TRect& aRect );
+
+ /**
+ * Sets up the summary pane detail arrays
+ * @since 2.8
+ * @param aResourceId The resource that defines the summary pane details
+ */
+ void ConstructSummaryDetailsFromResourceL(TInt aResourceId);
+
+ /**
+ * Draws the summary title and description text
+ * @since 2.8
+ * @param aGc The graphics context to draw to
+ */
+ void DrawSummaryText( CWindowGc& aGc ) const;
+ /**
+ * Splits the summary title and description text into multiple lines that fit the status layouts
+ * @since 2.8
+ */
+ void SplitCurrentTextL();
+
+ void ConstructContainerTitleFromResourceL( TInt aResourceId );
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+ /**
+ * From MEikListBoxObserver
+ */
+ void HandleListBoxEventL(CEikListBox* aListBox,
+ TListBoxEvent aEventType );
+
+ private: // Data
+ // the parent control
+ CCoeControl* iParent;
+ // the app controller
+ MCamAppController& iController;
+
+ // the location mode list box
+ CCamCaptureSetupListBox* iListBox;
+ // the capture mode (video/still)
+ TCamCameraMode iMode;
+
+ // Layout of summary outer region (box)
+ TAknLayoutRect iSummaryRect;
+ // Array of all descriptions texts
+ RPointerArray<HBufC> iDescArray;
+ // Array of layouts for description lines
+ RArray<TAknLayoutText> iDescLayoutArray;
+ // Array of split description lines
+ CArrayFixFlat<TPtrC>* iCurrentDescLineArray;
+
+ // The text shown as the title of the container
+ HBufC16* iTextTitle;
+
+ MTouchFeedback* iFeedback; // not own
+ TBool iActivateOnTouchRelease;
+
+ };
+
+#endif // CAMLOCATIONSETTINGCONTAINER_H
+
+// End of File