msg_pub/plugin_bio_control_api/inc/MMsgBioControl.h
changeset 0 72b543305e3a
child 71 17302fa075e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/msg_pub/plugin_bio_control_api/inc/MMsgBioControl.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,195 @@
+/*
+* 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:  
+*     Interface for Bio controls.
+*
+*/
+
+
+
+#ifndef MMSGBIOCONTROL_H
+#define MMSGBIOCONTROL_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <msgeditor.hrh>   // for enums
+
+// CONSTANTS
+
+/// Leave code which signals that the smart message data was invalid.
+const TInt KErrMsgBioMessageNotValid = -90;
+
+
+/**
+ * Used by HandleBaseControlEventRequestL().
+ */
+enum TMsgBioControlEventRequest 
+    {
+    EMsgBioUpdateScrollBars
+    };
+
+    /**
+     * These option menu flags are used with the function
+     * MMsgBioControl::OptionMenuPermissionsL().
+     */
+    enum TMsgBioOptionMenu {
+        EMsgBioReply        = 0x00000001,
+        EMsgBioForward      = 0x00000002,
+        EMsgBioCallBack     = 0x00000004,
+        EMsgBioDelete       = 0x00000008,
+        EMsgBioMessInfo     = 0x00000010,
+        EMsgBioMove         = 0x00000020,
+        EMsgBioCreateCC     = 0x00000040,
+        EMsgBioFindItem     = 0x00000080,
+        EMsgBioAddPinBoard  = 0x00000100,
+        EMsgBioSend         = 0x00000200,
+        EMsgBioAddRecipient = 0x00000400,
+        EMsgBioSave         = 0x00000800,
+        EMsgBioEditText     = 0x00001000,
+        EMsgBioInsert       = 0x00002000,
+        EMsgBioSendingOpt   = 0x00004000,
+        EMsgBioHelp         = 0x00008000,
+        EMsgBioExit         = 0x00010000,
+        EMsgBioReserved1    = 0x00020000,
+        EMsgBioReserved2    = 0x00040000,
+        EMsgBioReserved3    = 0x00080000,
+        EMsgBioReserved4    = 0x00100000,
+        EMsgBioReserved5    = 0x00200000,
+        EMsgBioReserved6    = 0x00400000,
+        EMsgBioReserved7    = 0x00800000,
+        EMsgBioReserved8    = 0x01000000
+        };
+
+    /// This flag is given as a construction parameter to the Bio Control.
+    enum TMsgBioMode {
+        EMsgBioEditorMode,
+        EMsgBioViewerMode
+        };
+
+// MACROS
+// DATA TYPES
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CEikMenuPane;
+
+// CLASS DECLARATION
+
+/**
+ * Interface for handling of event request.
+ */
+class MMsgBioBodyControl
+    {
+    public:
+        virtual TBool HandleBaseControlEventRequestL(        
+            TMsgBioControlEventRequest aRequest,
+            TInt aDelta = 0) = 0;
+    };
+
+/**
+* The interface for Bio controls
+*/
+class MMsgBioControl
+    {
+    public:
+
+        /**
+         * Calculates and sets size for a Bio control according to aSize.
+         * This function might become deprecated. The SetSizeL() function will
+         * be the replacement.
+         * The height of the Bio control may be less or more than requested by
+         * aSize, but the width must be exactly the same. If width of the Bio
+         * control is not the same as given by aSize, the width must be reset
+         * back to requested one. The aSize is set to the new size.
+         * @param aSize Size. See explanation.
+         */
+        virtual void SetAndGetSizeL(TSize& aSize) = 0;
+
+        /**
+         * This is called by the container to allow the Bio control to add
+         * a menu item command. The command ID's should start from the value
+         * returned by the MMsgBioControlObserver::FirstFreeCommand().
+         * @param aMenuPane Reference to the applications menu which will be
+         * modified.
+         */
+        virtual void SetMenuCommandSetL(CEikMenuPane& aMenuPane) = 0;
+
+        /**
+         * The command handler. The Bio Control should only handle its own
+         * commands that it has set using the function SetMenuCommandSetL().
+         * @param aCommand ID of command to be handled.
+         * @return If the command is handled, it returns ETrue, and vice versa
+         */
+        virtual TBool HandleBioCommandL(TInt aCommand) = 0;
+
+        /**
+         * Returns a rectangle slice of the bio controls viewing area.
+         * It is used by the CMsgEditorView class for scrolling the screen.
+         * The position is given relative to the bio controls top left
+         * corner.
+         * @return TRect
+         */
+        virtual TRect CurrentLineRect() const = 0;
+
+        /**
+         * Used by the body container for managing focus and scrolling.
+         * @param aDirection The direction to be checked.
+         * @return ETrue if focus change is possible, and vice versa.
+         */
+        virtual TBool IsFocusChangePossible(
+            TMsgFocusDirection aDirection) const = 0;
+
+        /**
+         * Returns the header text.
+         * @return The header text.
+         */
+        virtual HBufC* HeaderTextL(void)  const = 0;
+
+        /**
+         * The application can get the option menu permissions using this
+         * function.
+         * @return The option menu permission flags. If the flag is off it
+         * means that the option menu command is not recommended with this
+         * Bio Control.
+         */
+        virtual TUint32 OptionMenuPermissionsL() const = 0;
+
+        /**
+         * Gives the height of the text in pixels.
+         * It is used by the scrolling framework.
+         * @return Height of the text in pixels.
+         */
+        virtual TInt VirtualHeight() = 0;
+
+        /**
+         * Gives the cursor position in pixels.
+         * It is used by the scrolling framework.
+         * @return Cursor position in pixels.
+         */
+        virtual TInt VirtualVisibleTop() = 0;
+
+        /**
+         * Tells whether the cursor is in the topmost or bottom position.
+         * It is used by the scrolling framework.
+         * @param aLocation Specifies either top or bottom.
+         * @return ETrue if the cursor is in the part specified by aLocation.
+         */
+        virtual TBool IsCursorLocation(TMsgCursorLocation aLocation) const = 0;
+
+    };
+
+#endif // MMSGBIOCONTROL_H
+
+// end of file