wvuing/wvuiprocess/Inc/CCAGroupPropertiesPC.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiprocess/Inc/CCAGroupPropertiesPC.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,195 @@
+/*
+* 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 "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:  Implementation for PC Group properties dialog
+*
+*/
+
+
+#ifndef CCAGGROUPPROPERTIESPC_H
+#define CCAGGROUPPROPERTIESPC_H
+
+// INCLUDES
+#include	"mcagrouppropertiespc.h"
+#include	"MCAChatObserver.h"
+#include	"MCAGroupEventObserver.h"
+#include	"MCAMessageErrorObserver.h"
+#include	"MCAMessageRWInterfacePC.h"
+#include    <impsgroupprops.h>
+
+
+// FORWARD DECLARATIONS
+class CCAEngine;
+class MCAStoredGroups;
+class MCAStoredGroup;
+class MCAGroupManagerInterface;
+class MCAGroupOperations;
+class MCAStoredContacts;
+
+
+//class declaration
+/**
+ *  @lib wvuiprocessng.lib
+ *  @since 3.2
+ */
+class CCAGroupPropertiesPC:  public CBase,
+            public MCAGroupPropertiesPC
+
+    {
+
+    public:
+
+        /**
+        * Symbian Two Phase Constructor
+        * @param aEngine : a reference to chat engine
+        */
+        static CCAGroupPropertiesPC* NewL( MCAGroupManagerInterface& aGroupMgrInterface  );
+
+
+        /**
+        * Second phased symbian constructor.
+        */
+        void ConstructL();
+
+        /**
+        * virtual destructor
+        */
+        virtual ~CCAGroupPropertiesPC();
+
+    public: //From MCAGroupPropertiesPC
+
+        /**
+         * @see MCAGroupPropertiesPC
+         */
+        TInt NumberOfCreatedGroupsDuringSession();
+
+
+        /**
+        * @see MCAGroupPropertiesPC
+        */
+        const TPtrC GetIdentificationL( const TDesC& aContactId );
+
+
+        /**
+        * @see MCAGroupPropertiesPC
+        */
+        TEnumsPC::TImpsPropertyBoolPC IsSearchable( ) ;
+
+        /**
+         * @see MCAGroupPropertiesPC
+         */
+        virtual TInt InitializeForEdittingL( const TDesC& aGroupId );
+
+        /**
+         * @see MCAGroupPropertiesPC
+         */
+        virtual TBool IsJoined( const TDesC& aGroupId ) const;
+
+        /**
+        * @see MCAGroupPropertiesPC
+        */
+        virtual TBool IsOwnGroup( const TDesC& aGroupId ) const ;
+
+        /**
+         * @see MCAGroupPropertiesPC
+         */
+        virtual TBool IsAdmin( const TDesC& aGroupId ) const ;
+
+        /**
+         * @see MCAGroupPropertiesPC
+         */
+        virtual TBool IsFavouriteChatGroup( const TDesC& aGroupId ) const;
+
+        /**
+        * @see MCAGroupPropertiesPC
+        */
+        virtual TBool FindGroup( const TDesC& aGroupId ) const;
+
+        /**
+        * @see MCAGroupPropertiesPC
+        */
+        virtual const TDesC& GetGroupName( const TDesC& aGroupId ) const;
+
+        /**
+        * @see MCAGroupPropertiesPC
+        */
+        virtual TEnumsPC::TImpsPropertyBoolPC IsPrivateAllowed();
+
+        /**
+         * @see MCAGroupPropertiesPC
+         */
+        virtual TEnumsPC::TImpsPropertyBoolPC IsOpen();
+
+        /**
+         * @see MCAGroupPropertiesPC
+         */
+        virtual void SetOpen( TEnumsPC::TImpsPropertyBoolPC aType );
+
+    public:
+
+        /**
+         * To convert the impsengine side TImpsPropertyBool enum to PC side
+         * TImpsPropertyBoolPC
+         * @param aEventSource: enum type in impsengine TImpsPropertyBool
+         * @return TEnumsPC::TImpsPropertyBoolPC
+         */
+        TEnumsPC::TImpsPropertyBoolPC ConvertTImpsPropertyBoolToTEnumsPC
+        ( TImpsPropertyBool aEventSource );
+
+        /*
+         * This method will be called by the grouputilspc component after the
+         * groupproperties dialog has exited. The member variable
+         * iImpsCommonGropuProps of this class will contain the edited or newly
+         * created group's properties. This method will return the same instance
+         * of editted properties to the grouputilspc.
+         * @return CImpsCommonGroupProps instance: holds the saved changes to
+         * the properties of a group
+         */
+        CImpsCommonGroupProps* GetEdittedProperties();
+
+    public:
+        //common group properties to be used by edit group properties only
+        CImpsCommonGroupProps* iGroupPropsForGrpPropDialog;
+
+    public: //include inline functions file
+#include "CCAGroupPropertiesPC.inl"
+
+    private:
+
+        /**
+        * default constructor
+        * @param aGroupMgrInterface : a reference to group manager interface in the engine component
+        */
+        CCAGroupPropertiesPC( MCAGroupManagerInterface& aGroupMgrInterface  );
+
+    private:
+
+
+        //Doesnt own,Handle to chat groups interface
+        MCAStoredGroups* iChatGroups;
+
+        //Doesn't own. Group interface
+        MCAGroupManagerInterface& iGroupMgrInterface;
+
+        //Doesnt own, Handle to Interface for stored contacts
+        MCAStoredContacts* iStoredContacts;
+
+
+        //private group props to be used by edit group properties only
+        CImpsPrivateGroupProps* iPrivatePropsForGrpPropDialog;
+
+    };
+
+#endif      // CCAGGROUPPROPERTIESDIALOGPC_H
+
+// End of File