diff -r 000000000000 -r f58d6ec98e88 aknlayoutcompiler/src/ZoomLevelNames.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/aknlayoutcompiler/src/ZoomLevelNames.cpp Thu Dec 17 09:14:18 2009 +0200 @@ -0,0 +1,90 @@ +/* +* Copyright (c) 2002-2005 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: +* +*/ + + +// disable "identifier was truncated to '255' characters in the browser information" warning +#pragma warning (disable:4786) + +// disable "decorated name length exceeded, name was truncated" warning +#pragma warning (disable:4503) + +#include "ZoomLevelNames.h" +#include "LayoutCompilerErr.h" +#include "CodeGenConsts.h" + +#include + +#include + +#include +#include + +using namespace CdlCompilerToolkit; + +typedef LayoutProcessArgsErr ZoomLevelNamesArgsErr; + +// +// CZoomLevelNames +// + +void CZoomLevelNames::ProcessOptions(vector& aArgs) + { + bool zoomFileOk = false; + ifstream in; + string zoomFile; + + for(vector::iterator pArg = aArgs.begin(); pArg != aArgs.end(); ++pArg) + { + string& arg = *pArg; + if (arg.size() >= 2 && arg.substr(0,2) == "-z") + { + zoomFile = arg.substr(2); + try + { + CdlTkUtil::OpenInput(in, zoomFile); + zoomFileOk = true; + } + catch (const CdlTkFileOpenErr&) + { + } + aArgs.erase(pArg); + break; + } + } + if(zoomFileOk) + { + string line; + while (!in.eof()) + { + getline(in, line); + int comma = line.find(","); + if(comma == string::npos) + { + cerr << "Zoom file incorrect format." << endl; + throw GeneralErr("Zoom file incorrect format"); + } + int num = CdlTkUtil::ParseInt(line.substr(0, comma)); + insert(make_pair(num, line.substr(comma+1))); + } + in.close(); + } + else + { + // assume that normal zoom is the only one + insert(make_pair(EAknUiZoomNormal, KDefaultZoomInstanceName)); + } + }