webengine/widgetengine/inc/MenuItemClient.h
changeset 0 dd21522fd290
child 36 0ed94ceaa377
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/widgetengine/inc/MenuItemClient.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,236 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 represents the Widget Extension object
+*
+*/
+
+#ifndef __MENUITEMCLIENT_
+#define __MENUITEMCLIENT_
+
+//  INCLUDES
+#include <e32base.h>
+#include "BrCtlInterface.h"
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// CLASS DECLARATION
+namespace KJS {
+    class WidgetEventHandler;
+}
+
+class CMenuItem : public CBase
+{
+public:
+        /**
+        * Constructor
+        */
+        static CMenuItem* NewL( const TDesC16& aText, TInt aCmdId, 
+            TInt aInternalId, TBool aDimmed = EFalse, CMenuItem* aParent=NULL, 
+            void* aObj = NULL, TBool aShow = EFalse );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CMenuItem();
+
+protected:
+        /**
+        * 2nd phase constructor.
+        */
+        void ConstructL();
+
+        /**
+        * C++ constructor.
+        */
+        CMenuItem( const TDesC16& aText, TInt aCmdId, TInt aInternalId, 
+            TBool aDimmed, CMenuItem* aParent = NULL, void* aObj = NULL, 
+            TBool aShow = EFalse );
+public:
+
+        /*
+        * Method text()
+        * @since 3.2
+        * @param none
+        * @return text of menu item
+        */
+        const TDesC& text()
+            {
+            if ( iText ) 
+                return *iText;
+            else 
+                return KNullDesC();
+            }
+
+        /*
+        * Method cmdId()
+        * @since 3.2
+        * @param none
+        * @return command id of menu item
+        */
+        TInt cmdId() { return iCmdId; }
+
+        /*
+        * Method internalId()
+        * @since 3.2
+        * @param none
+        * @return internal id of menu item
+        */
+        TInt internalId() { return iInternalId; }
+
+        /*
+        * Method firstChild()
+        * @since 3.2
+        * @param none
+        * @return first child of menu item
+        */
+        CMenuItem* firstChild() { return iFirstChild; }
+
+        /*
+        * Method nextSibling()
+        * @since 3.2
+        * @param none
+        * @return next sibling of menu item
+        */
+        CMenuItem* nextSibling() { return iNextSibling; }
+
+        /*
+        * Method dimmed()
+        * @since 3.2
+        * @param none
+        * @return dimmed status of menu item
+        */
+        TBool dimmed() { return iDimmed; }
+
+        /*
+        * Method show()
+        * @since 3.2
+        * @param none
+        * @return Show status of menu item
+        */
+        TBool show() { return iShow; }
+
+        /*
+        * Method Callback()
+        * @since 3.2
+        * @param none
+        * @return onselect callback function of menu item
+        */
+        KJS::WidgetEventHandler* callback() { return iCallback; }
+
+        /*
+        * Method obj()
+        * @since 3.2
+        * @param none
+        * @return menu item javascript object
+        */
+        void* obj() { return iObj; }
+
+        /*
+        * Method parent()
+        * @since 3.2
+        * @param none
+        * @return parent menu item
+        */
+        CMenuItem* parent() { return iParent; }
+
+        /*
+        * Method setText()
+        * @since 3.2
+        * @param text of menu item
+        * @return none
+        */
+        void setText( const TDesC& aText )
+            {
+            HBufC* tmpText = HBufC::NewL( aText.Length() );
+            tmpText->Des().Append( aText );
+            delete iText;
+            iText = tmpText;
+            }
+
+        /*
+        * Method setCmdId()
+        * @since 3.2
+        * @param command id of menu item
+        * @return none
+        */
+        void setCmdId( TInt aCmdId ) { iCmdId = aCmdId; }
+
+        /*
+        * Method setFirstChild()
+        * @since 3.2
+        * @param first child of menu item
+        * @return none
+        */
+        void setFirstChild( CMenuItem* aFirstChild ) { iFirstChild = aFirstChild; }
+
+        /*
+        * Method setNextSibling()
+        * @since 3.2
+        * @param next sibling of menu item
+        * @return none
+        */
+        void setNextSibling( CMenuItem* aNextSibling ) { iNextSibling = aNextSibling; }
+
+        /*
+        * Method setDimmed()
+        * @since 3.2
+        * @param dimmed status
+        * @return none
+        */
+        void setDimmed( TBool aDimmed ) { iDimmed = aDimmed; }
+
+        /*
+        * Method setShow()
+        * @since 3.2
+        * @param show status
+        * @return none
+        */
+        void setShow( TBool aShow ) { iShow = aShow; }
+
+        /*
+        * Method setCallback()
+        * @since 3.2
+        * @param callback function
+        * @return none
+        */
+        void setCallback( KJS::WidgetEventHandler* aCallback ) { iCallback = aCallback; }
+
+        /*
+        * Method setObj()
+        * @since 3.2
+        * @param menu item javascript object
+        * @return none
+        */
+        void setObj( void* aObj ) { iObj = aObj; }
+
+private:
+        HBufC*                  iText;//data
+        TInt                    iCmdId;//data
+        TInt                    iInternalId;//data
+        CMenuItem*              iParent;//data
+        CMenuItem*              iFirstChild;//left node
+        CMenuItem*              iNextSibling;//right node
+        TBool                   iDimmed;//ETrue to dim this menu item. EFalse to un-dim this menu item.
+        KJS::WidgetEventHandler*     iCallback;
+        void*                   iObj;
+        TBool                   iShow;
+};
+
+#endif