aknlayoutcompiler/inc/LayoutConfig.h
changeset 0 f58d6ec98e88
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/aknlayoutcompiler/inc/LayoutConfig.h	Thu Dec 17 09:14:18 2009 +0200
@@ -0,0 +1,91 @@
+/*
+* 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:
+*
+*/
+#ifndef LAYOUTCONFIG_H
+#define LAYOUTCONFIG_H
+
+#include <set>
+#include <string>
+#include <iosfwd>
+#include <vector>
+
+class LayoutConfig
+	{
+public:
+	class Size
+		{
+	public:
+		enum TOrientation { EPortrait, ELandscape, ESquare };
+	public:
+		Size();
+		TOrientation Orientation() const;
+		bool operator>(const Size& aRhs) const;
+	public:
+		int iWidth;
+		int iHeight;
+		};
+	typedef std::set<Size, std::greater<Size> > Sizes;
+
+	enum TTarget { EPlatform, EProduct };
+	enum TLegacyMode { ENoLegacyMode, ELegacyMode };
+
+public:
+	static int Process(const std::vector<std::string>& args);
+	static void ShowHelp(std::ostream& stream);
+
+	~LayoutConfig();
+
+protected:
+	LayoutConfig();
+
+	void ParseArgs(const std::vector<std::string>& args);
+	void ParseOpt(const std::string& opt);
+
+	void SetFlags(TTarget aTarget, TLegacyMode aLegacyMode);
+
+	const Sizes& AllSizes() const;
+	const Sizes& ConfiguredSizes() const;
+	const Sizes& SizesForTarget() const;
+
+//	static int TestLayoutConfig();
+
+private: // to be overridden
+	virtual int Process() = 0;
+
+private:
+	void LoadAllSizes();
+	void LoadConfiguredSizes();
+	void OpenBldCfg(std::ifstream& aBldCfg);
+	bool ParseSize(const std::string& aLine, Size& aSize) const;
+
+private:
+	Sizes iAll;
+	Sizes iConf;
+	TTarget iTarget;
+	TLegacyMode iLegacyMode;
+	std::string iTargetFileName;
+	std::string iBaseFileName;
+	};
+
+
+class WsiniConfig : public LayoutConfig
+	{
+private: // from LayoutConfig
+	virtual int Process();
+	};
+
+
+#endif