phoneplugins/telbranding/inc/telbrandingbubble.h
changeset 0 5f000ab63145
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/telbranding/inc/telbrandingbubble.h	Mon Jan 18 20:18:27 2010 +0200
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2009 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:  Wraps bubble into one class.
+*
+*/
+
+#ifndef C_CTELBRANDINGBUBBLE_H
+#define C_CTELBRANDINGBUBBLE_H
+
+#include <telbubblecustomelement.h>
+
+class MTelBubbleExtensionData;
+class CTelBrandingServerHandler;
+class CTelBubbleCustomElement;
+class MTelBubbleExtensionObserver;
+
+
+/**
+ *  Wraps bubble into one class.
+ *  Owns bubble images.
+ *
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS( CTelBrandingBubble ) : public CBase 
+    {
+public:
+    static CTelBrandingBubble* NewLC(
+        MTelBubbleExtensionData& aCallData, 
+        CTelBrandingServerHandler& aServer );
+
+    /**
+    * Destructor.
+    */
+    virtual ~CTelBrandingBubble();
+
+    
+public: // New functions
+    TInt BubbleId() const;
+
+    void AttachElements( MTelBubbleExtensionObserver& aObs ) const;
+
+    void DetechElements( MTelBubbleExtensionObserver& aObs ) const;
+    
+private:
+    /**
+     * Creates and adds elements into array
+     */
+    void CreateCallIndicationElementL( 
+            CTelBrandingServerHandler& aServer,
+            CTelBubbleCustomElement::TElementType aType );
+   
+    /**
+     * Creates and adds elements into array in priority order.
+     *  -Element with most highest priority last must be added last.
+     *  -Lowest priority first.
+     */
+    void AddBrandingImageWithPriorityL( 
+        const TDesC8& aImageType,
+        CTelBrandingServerHandler& aServer,
+        CTelBubbleCustomElement::TElementType aType );
+    
+    /**
+     * Helper, adds element to array
+     */
+    void AddElementToArrayL( CTelBubbleCustomElement* aElement );
+
+private:
+    CTelBrandingBubble( MTelBubbleExtensionData& aCallData );
+
+    void ConstructL( 
+        CTelBrandingServerHandler& aServer );
+
+private: // data
+    /**
+     * Bubble specific data
+     */
+    MTelBubbleExtensionData& iCallData;
+
+    /**
+     * Owned images
+     */
+    RPointerArray<CTelBubbleCustomElement> iElements;
+    };
+
+
+#endif // C_CTELBRANDINGBUBBLE_H