--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/smartmessaging/bva/inc/BvaContainer.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,230 @@
+/*
+* Copyright (c) 2002 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:
+* Container control class that will contain a Bio Control.
+*
+*/
+
+
+
+#ifndef _BVACONTAINER_H_
+#define _BVACONTAINER_H_
+
+// INCLUDES
+#include <coecntrl.h>
+
+// FORWARD DECLARATIONS
+class CMsgBioControl;
+class CMsgBioControlFactory;
+class CEikStatusPane;
+class CAknsBasicBackgroundControlContext;
+
+// CLASS DECLARATION
+
+/**
+ * Container control class that will contain a Bio Control.
+ */
+NONSHARABLE_CLASS( CBvaContainer ) : public CCoeControl,
+ public MEikScrollBarObserver
+ {
+ public: // Construction & destruction
+
+ /**
+ * Symbian OS second phase constructor.
+ * @param aRect Frame rectangle for container.
+ */
+ void ConstructL(const TRect& aRect);
+
+ /// Destructor.
+ ~CBvaContainer();
+
+ public: // new functions
+
+ /**
+ * Loads the Bio Control.
+ * @param aFile The data file handle. The Bio Control will read data
+ * directly from the file.
+ */
+ void LoadBioControlL( const RFile& aFile );
+
+ /**
+ * Accessor for iBioControl.
+ * @return BioControl.
+ */
+ CMsgBioControl& BioControl();
+
+ /**
+ * The header and icon of the application is set using an icon and
+ * descriptor obtained from the Bio Control.
+ * @param statusPane The status pane.
+ */
+ void UpdateHeaderAndIconFromBioControlL(CEikStatusPane& statusPane);
+
+ /**
+ * Queries the container if it has a valid BIO control set
+ *
+ * @since S60 3.1
+ * @return ETrue if container has BIO control
+ * EFalse if not
+ */
+ TBool IsBioControl();
+
+ public: // from CCoeControl
+
+ /**
+ * A CCoeControl virtual for handling key events.
+ * @param aKeyEvent The key event.
+ * @param aType TEventCode
+ * @return EKeyWasConsumed or EKeyWasNotConsumed
+ */
+ TKeyResponse OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType);
+
+ void Draw(const TRect& aRect) const;
+
+ private: // from CCoeControl
+
+ /// Called when the size has changed.
+ void SizeChanged();
+
+ /**
+ * Number of component controls.
+ * @return Number of component controls.
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * Returns a component control.
+ * @param aIndex Index of the component control.
+ * @return The component control.
+ */
+ CCoeControl* ComponentControl(TInt aIndex) const;
+
+ // From CCoeControl
+ TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+
+ /**
+ * React to skin, dynamic layout and other resource changes
+ * @param aType The type of change
+ */
+ void HandleResourceChange(TInt aType);
+
+ public: // from MEikScrollBarObserver
+
+ void HandleScrollEventL(CEikScrollBar* aScrollBar, TEikScrollEvent aEventType);
+
+ private: // new functions
+
+ /**
+ * Returns the Bio Uid which identifies the type of Smart Message.
+ * This function just looks at the file suffix.
+ * @param aFileName File name.
+ * @param aFs Handle to file server
+ * @return Bio Uid.
+ */
+ static TUid BioUidL(const TFileName& aFileName, RFs& aFs );
+
+ /**
+ * Returns the Bio Uid which identifies the type of Smart Message.
+ * This function just looks at the file suffix.
+ * @param aFile File handle.
+ * @return Bio Uid.
+ */
+ static TUid BioUidL(const RFile& aFile );
+
+ /**
+ * Creates the scroll bar.
+ */
+ void CreateScrollBarL();
+
+ /**
+ * Updates the scroll bar.
+ */
+ void UpdateScrollBarL();
+
+ /**
+ * Return virtual height and virtual Y position of the form.
+ * @param aHeight
+ * @param aPos
+ */
+ void GetVirtualFormHeightAndPos( TInt& aHeight, TInt& aPos );
+
+ /**
+ * Performs view scrolling to given direction.
+ *
+ * @param aPixelsToScroll Amount of pixels wanted to be scrolled.
+ * @param aDirection Scrolling direction.
+ * @param aMoveThumb If ETrue scroll thumb is moved at the end of scrolling.
+ */
+ void ScrollViewL( TInt aPixelsToScroll,
+ TMsgScrollDirection aDirection,
+ TBool aMoveThumb );
+
+ /**
+ * Convenience function for casting the scroll bar model.
+ */
+ const TAknDoubleSpanScrollBarModel* AknScrollBarModel() const;
+
+ /**
+ * Panic wrapper.
+ * @param aCode The panic code.
+ */
+ void Panic(TInt aCode) const;
+
+ private:
+
+ enum TPanicCodes
+ {
+ EBioControlNotExist,
+ EGeneral,
+ EFileExtension
+ };
+
+ private: //data
+
+ /**
+ * Own: Message specific controller
+ */
+ CMsgBioControl* iBioControl;
+
+ /**
+ * Own: Biocontrol factory
+ */
+ CMsgBioControlFactory* iFactory;
+
+ /**
+ * Own: Background Skin
+ */
+ CAknsBasicBackgroundControlContext* iBgContext;
+
+ /**
+ * Own: The scroll bar
+ */
+ CEikScrollBarFrame* iScrollBar;
+
+ /**
+ *From MsgEditorCommons::MsgBaseLineDelta();
+ */
+ TInt iLineHeight;
+
+ /**
+ *From MsgEditorCommons::MsgBaseLineOffset();
+ */
+ TInt iBaseLineOffset;
+ };
+
+#endif // _BVACONTAINER_H_
+
+// End of File