--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/voicerecorder/RecViewSrc/TVRState.h Thu Dec 17 08:46:57 2009 +0200
@@ -0,0 +1,162 @@
+/*
+* Copyright (c) 2002 - 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 class is a data container for a single RecView visual (UI) state
+* It is able to read its parameters from a resource file.
+* The run-time size of a single TVRState instance is 152 bytes
+* (unicode build)
+*
+*/
+
+
+#ifndef __TVRSTATE_H__
+#define __TVRSTATE_H__
+
+// INCLUDES
+#include <e32def.h>
+#include "voicerecorder.hrh"
+
+// CONSTANTS
+const TInt KVRMaxButtons( 5 ); // defined by UI spec
+
+// FORWARD DECLARATIONS
+class TResourceReader;
+
+// CLASS DEFINITION
+/**
+* This class is a data container for a single Voice Recorder visual (UI) state
+* It is able to read its parameters from a resource file.
+* The run-time size of a single TVRState instance is 152 bytes (unicode build)
+*/
+class TVRState
+ {
+ private: // nested classes
+
+ // CLASS DEFINITION
+ /**
+ * This class is a data container for a single CVRButtonPanel button
+ * defeinition. It is able to read its parameters from a resource file.
+ * The run-time size of a single TButton instance is 12 bytes.
+ */
+ class TButton
+ {
+ public: // new methods
+
+ /**
+ * Constructs this button from a VR_BUTTON resource
+ * @param aReader A resource reader object initialised
+ * to a resource.
+ */
+ void ReadFromResource( TResourceReader& aReader );
+
+ public: // data
+
+ /**
+ * The command id of this button (for HandleCommandL use).
+ */
+ TUint iCommandId;
+
+ /**
+ * The visual state of this button
+ * (see TVRButtonStates in VoiceRecorder.hrh)
+ */
+ TUint8 iState;
+
+ };
+
+ public: // new methods
+
+ /**
+ * Constructs this state from a VR_STATE resource
+ * @param aReader A resource reader object initialised to a resource.
+ */
+ void ReadFromResource( TResourceReader& aReader );
+
+ /**
+ * Returns the state of a button.
+ * @param aButtonId Identifies a button in iButtons array;
+ * @return The current state of this button. See TButton.
+ */
+ TUint ButtonState( TInt aButtonId ) const;
+
+ /**
+ * Returns the command id of a button.
+ * @param aButtonId Identifies a button in iButtons array;
+ * @return The command id of this button. See TButton.
+ */
+ TUint ButtonCommandId( TInt aButtonId ) const;
+
+ public: // data
+
+ /**
+ * An unique identifier for this visual state.
+ */
+ TUint iStateId;
+
+ /**
+ * An unique identifier for this state.
+ */
+ TUint iId;
+
+ /**
+ * Identifies the menu bar resource for this state (or null).
+ */
+ TUint iMenubarResourceId;
+
+ /**
+ * Identifies the softkey resource for this state (or null).
+ */
+ TUint iCbaResourceId;
+
+ /**
+ * Identifies the button that should gain initial focus.
+ */
+ TUint8 iFocusButtonId;
+
+ /**
+ * Nonzero if this state should have a volume control.
+ */
+ TUint8 iHasVolumeControl;
+
+ /**
+ * Nonzero if this state should have a progress bar.
+ */
+ TUint8 iHasProgressBar;
+
+ /**
+ * Identifies the set of labels for this state.
+ */
+ TUint8 iLabelSetId;
+
+ /**
+ * The number of buttons in this state.
+ */
+ TInt iButtonCount;
+
+ /**
+ * Status text for this state (or KNullDesc).
+ */
+ TBuf< VRLABELMAXLENGTH > iStatus;
+
+ private: // data
+
+ /**
+ * An array of buttons in this state.
+ * The run-time size of iButtons is 60 bytes.
+ */
+ TButton iButtons[ KVRMaxButtons ];
+
+ };
+
+#endif // __TVRSTATE_H__