uiacceltk/hitchcock/coretoolkit/src/HuiVisualFactory.cpp
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiVisualFactory.cpp	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2006-2007 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:   ?Description
+*
+*/
+
+
+
+#include "HuiVisualFactory.h"  // Class definition
+#include "uiacceltk/HuiLayouts.h"
+#include "uiacceltk/HuiVisuals.h"
+#include "uiacceltk/HuiControl.h"
+
+CHuiVisualFactory::CHuiVisualFactory(CHuiEnv& aEnv)
+        : iEnv(aEnv)
+    {
+    }
+
+
+	
+CHuiVisualFactory::~CHuiVisualFactory()
+    {    
+    }
+
+
+CHuiVisual* CHuiVisualFactory::NewVisualL(THuiVisualType aVisualType,
+                                          CHuiControl& aOwner) const
+    {
+    CHuiVisual* visual = NewVisualLC(aVisualType, aOwner);
+    CleanupStack::Pop(visual);
+    return visual;
+    }
+    
+    
+CHuiVisual* CHuiVisualFactory::NewVisualLC(THuiVisualType aVisualType,
+                                           CHuiControl& aOwner) const
+    {
+    CHuiVisual* visual = NULL;
+    
+    switch(aVisualType)
+        {
+        case EHuiVisualTypeVisual:
+            visual = new (ELeave) CHuiVisual(aOwner);
+            break;
+            
+        case EHuiVisualTypeLine:
+            visual = new (ELeave) CHuiLineVisual(aOwner);
+            break;
+
+        /*case EHuiVisualTypeGradient:
+            visual = new (ELeave) CHuiGradientVisual(aOwner);
+            break;*/
+
+        case EHuiVisualTypeText:
+            visual = new (ELeave) CHuiTextVisual(aOwner);
+            break;
+
+        case EHuiVisualTypeImage:
+            visual = new (ELeave) CHuiImageVisual(aOwner);
+            break;
+        
+        case EHuiVisualTypeMesh:
+            visual = new (ELeave) CHuiMeshVisual(aOwner);
+            break;
+            
+        case EHuiVisualTypeCanvas:
+            visual = new (ELeave) CHuiCanvasVisual(aOwner);
+            break;
+            
+            
+        default:
+            User::Leave(KErrNotFound);
+        }
+
+    CleanupStack::PushL(visual);
+    visual->ConstructL();
+    return visual;    
+    }
+    
+    
+CHuiLayout* CHuiVisualFactory::NewLayoutL(THuiLayoutType aLayoutType,
+                                          CHuiControl& aOwner) const
+    {
+    CHuiLayout* layout = NewLayoutLC(aLayoutType, aOwner);
+    CleanupStack::Pop(layout);
+    return layout;
+    }
+    
+    
+CHuiLayout* CHuiVisualFactory::NewLayoutLC(THuiLayoutType aLayoutType,
+                                           CHuiControl& aOwner) const
+    {
+    CHuiLayout* layout = NULL;
+    
+    switch(aLayoutType)
+        {
+        case EHuiLayoutTypeLayout:
+            layout = new (ELeave) CHuiLayout(aOwner);
+            break;
+        
+        /*case EHuiLayoutTypeApp:
+            layout = new (ELeave) CHuiAppLayout(aOwner);
+            break;*/
+            
+        case EHuiLayoutTypeGrid:
+            layout = new (ELeave) CHuiGridLayout(aOwner);
+            break;
+            
+        case EHuiLayoutTypeFlow:
+            layout = new (ELeave) CHuiFlowLayout(aOwner);
+            break;
+            
+        case EHuiLayoutTypeAnchor:
+            layout = new (ELeave) CHuiAnchorLayout(aOwner);
+            break;
+            
+        default:
+            User::Leave(KErrNotFound);
+        }
+
+    CleanupStack::PushL(layout);
+    layout->ConstructL();
+    return layout;    
+    }
+