--- /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;
+ }
+