diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/coretoolkit/src/HuiVisualFactory.cpp --- /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; + } +