sl@0: /* sl@0: * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * hindiDemo.cpp sl@0: * hindiDemo application sl@0: * sl@0: */ sl@0: sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: #include sl@0: #include "hindiDemo.hrh" sl@0: #include "hindiDemoApp.h" sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: sl@0: // hindi sample text sl@0: // sample 1 sl@0: _LIT16(KHindi1,"\x0915\x094D\x0937\x0924\x094D\x0930\x093F\x092F\x0020\x0909\x0926\x094D\x0926\x0947\x0936\x094D\x0020\x0915\x094D\x0937\x093F\x092A\x094D\x0930"); sl@0: _LIT16(KHindi2,"\x092d\x0942\x0930\x094d\x092d\x0941\x0935\x0903\x0020\x0938\x094d\x0935\x0903\x0020\x0924\x0924\x094d\x0938\x0935\x093f\x0924\x0941\x0930\x094d\x0935\x0930\x0947\x0923\x094d\x092f\x0902"); sl@0: _LIT16(KHindi3,"\x092d\x0930\x094d\x0917\x094b\x0020\x0926\x0947\x0935\x0938\x094d\x092f\x0020\x0927\x0940\x092e\x0939\x093f\x0020\x0927\x093f\x092f\x094b\x0020\x092f\x094b\x0928\x0903\x0020\x092a\x094d\x0930\x091a\x094b\x0926\x092f\x093e\x0924\x094d\x0020"); sl@0: sl@0: // sample 2 sl@0: _LIT16(KHindi4,"\x092f\x0924\x094d\x0930\x0020\x092f\x094b\x0917\x0947\x0936\x094d\x0935\x0930\x0020\x0915\x0943\x0937\x094d\x0923\x094b\x0020\x092f\x0924\x094d\x0930\x0020\x092a\x093e\x0930\x094d\x0925\x094b\x0020\x0927\x0930\x094d\x0928\x0941\x0927\x0930\x0903"); sl@0: _LIT16(KHindi5,"\x0924\x0924\x094d\x0930\x0020\x0936\x094d\x0930\x0940\x0930\x094d\x0935\x093f\x091c\x092f\x094b\x0020\x092d\x0942\x0924\x093f\x0930\x094d\x0927\x0941\x0935\x093e\x0020\x0928\x0940\x0924\x093f\x0930\x094d\x092e\x0924\x093f\x0930\x094d\x092e\x092e"); sl@0: _LIT16(KHindi6,"\x0915\x0941\x0924\x0938\x094d\x0924\x094d\x0935\x093e\x0020\x0915\x0936\x094d\x092e\x0932\x092e\x093f\x0926\x0902\x0020\x0935\x093f\x0936\x092e\x0947\x0020\x0938\x092e\x0941\x092a\x0938\x094d\x0925\x093f\x0924\x092e\x094d"); sl@0: sl@0: // sample 3 sl@0: _LIT16(KHindi7,"\x0905\x0928\x093e\x0930\x094d\x092f\x091c\x0941\x0937\x094d\x091f\x092e\x0938\x094d\x0935\x0930\x094d\x0917\x094d\x092f\x092e\x0915\x0940\x0930\x094d\x0924\x093f\x0915\x0930\x092e\x0930\x094d\x091c\x0941\x0928"); sl@0: _LIT16(KHindi8,"\x0915\x094d\x0932\x0948\x092c\x094d\x092f\x0902\x0020\x092e\x0020\x0938\x094d\x092e\x0020\x0917\x092e\x0903\x0020\x092a\x093e\x0930\x094d\x0925\x0928\x0948\x0924\x0924\x094d\x0924\x094d\x0935\x092f\x094d\x092f\x0941\x092a\x092a\x0926\x094d\x092f\x0924\x0947"); sl@0: _LIT16(KHindi9,"\x0915\x094d\x0937\x0941\x0926\x094d\x0930\x0902\x0020\x0939\x0943\x0926\x092f\x0926\x094c\x0930\x094d\x092c\x0932\x094d\x092f\x0902\x0020\x0924\x094d\x092f\x0915\x094d\x0924\x094d\x0935\x094b\x0924\x094d\x0924\x093f\x0937\x094d\x091f\x0020\x092a\x0930\x0902\x0924\x092a"); sl@0: sl@0: // test 4 - two character test data sl@0: _LIT16(KTest1,"\x091c\x092e\x094d\x0918\x0940\x0902\x091a\x094d\x092f\x0940"); sl@0: _LIT16(KTest2,"\x092e\x092e\x0020"); sl@0: _LIT16(KTest3,"\x0915\x094D\x0937\x0924\x094D\x0930\x093F\x092F\x0020"); sl@0: sl@0: //Kannada sample text sl@0: // sample 1 sl@0: _LIT16(KKannada1,"\x0CA8\x0CAE\x0CCD\x0CAE\x0020\x0CB0\x0CBE\x0CB7\x0CCD\x0C9F\x0CCD\x0CB0\x0020\x0CAD\x0CBE\x0CB0\x0CA4"); sl@0: _LIT16(KKannada2,"\x0CB2\x0C95\x0CCD\x0CB7\x0CCD\x0CAE\x0CCD\x0CAF\x0CBE"); sl@0: _LIT16(KKannada3,"\x0C95\x0CCD\x0C95\x0CCD\x0C95\x0CCD\x0C95\x0CCD\x0C95\x0CCB\x0C82"); sl@0: // sample 2 sl@0: _LIT16(KKannada4,"\x0CB6\x0CCD\x0CB0\x0CC0\x0020\x0CAD\x0C97\x0CB5\x0CBE\x0CA8\x0CC1\x0CB5\x0CBE\x0C9A\x0C95\x0CC1\x0CA4\x0CB8\x0CCD\x0CA4\x0CCD\x0CB5\x0CBE\x0020\x0C95\x0CB6\x0CCD\x0CAE\x0CB2\x0CAE\x0CBF\x0CA6\x0C82\x0020\x0CB5\x0CBF\x0CB7\x0CAE\x0020\x0CB8\x0CAE\x0CC1\x0CAA\x0CB8\x0CCD\x0CA5\x0CBF\x0CA4\x0CAE\x0CCD"); sl@0: _LIT16(KKannada5,"\x0C85\x0CA8\x0CBE\x0CB0\x0CCD\x0CAF\x0C9C\x0CC1\x0CB7\x0CCD\x0CA0\x0CAE\x0CB8\x0CCD\x0CB5\x0CB0\x0CCD\x0C97\x0CCD\x0CAF\x0CAE\x0C95\x0CC0\x0CB0\x0CCD\x0CA4\x0CBF\x0C95\x0CB0\x0CAE\x0CB0\x0CCD\x0C9C\x0CC1\x0CA8"); sl@0: _LIT16(KKannada6,"\x0C95\x0CCD\x0CB2\x0CC8\x0CAC\x0CCD\x0CAF\x0C82\x0020\x0CAE\x0CBE\x0020\x0CB8\x0CCD\x0CAE\x0020\x0C97\x0CAE\x0C83\x0020\x0CAA\x0CBE\x0CB0\x0CCD\x0CA5\x0020\x0CA8\x0CC8\x0CA4\x0CA4\x0CCD\x0CA4\x0CCD\x0CB5\x0CAF\x0CCD\x0CAF\x0CC1\x0CAA\x0CAA\x0CA7\x0CCD\x0CAF\x0CA4\x0CC7"); sl@0: // sample 3 sl@0: _LIT16(KKannada7,"\x0CB8\x0CC1\x0CAA\x0CCD\x0CB0\x0CB8\x0CBE\x0CA6\x0C83\x0020\x0CAA\x0CCD\x0CB0\x0CB8\x0CA8\x0CCD\x0CA8\x0CBE\x0CA4\x0CCD\x0CAE\x0CBE"); sl@0: _LIT16(KKannada8,"\x0CB5\x0CBF\x0CB6\x0CCD\x0CB5\x0CA7\x0CC3\x0C97\x0CCD\x0CB5\x0CBF\x0CB6\x0CCD\x0CB5\x0CAD\x0CC1\x0C97\x0CCD\x0CB5\x0CBF\x0CAD\x0CC1\x0C83\x0CB8\x0CA4\x0CCD\x0C95\x0CB0\x0CBE\x0CA4\x0CBE\x0020\x0CB8\x0CA4\x0CCD\x0C95\x0CC3\x0C83\x0020\x0CB8\x0CBE\x0CA7\x0CC1"); sl@0: _LIT16(KKannada9,"\x0CB0\x0CCD\x0C9C\x0CB9\x0CCD\x0CA8\x0CC1\x0CB0\x0CCD\x0CA8\x0CBE\x0CB0\x0CBE\x0CAF\x0CA3\x0CCB\x0020\x0CA8\x0CB0\x0C83\x0C95\x0CCD\x0CB7\x0CC1\x0CA6\x0CCD\x0CB0\x0C82\x0020\x0CB9\x0CC3\x0CA6\x0CAF\x0CA6\x0CCC\x0CB0\x0CCD\x0CAC\x0CB2\x0CCD\x0CAF\x0C82\x0020\x0CA4\x0CCD\x0CAF\x0C95\x0CCD\x0CA4\x0CCD\x0CB5\x0CCB\x0CA4\x0CCD\x0CA4\x0CBF\x0CB7\x0CCD\x0CA0\x0020\x0CAA\x0CB0\x0CA8\x0CCD\x0CA4\x0CAA"); sl@0: sl@0: // Sample 4 sl@0: _LIT16(KTestKannada1,"\x0C85\x0CB8\x0C82\x0C96\x0CCD\x0CAF\x0CC7\x0CAF\x0CCB\x0C85\x0CAA\x0CCD\x0CB0\x0CAE\x0CC7\x0CAF\x0CBE\x0CA4\x0CCD\x0CAE\x0CBE\x0020\x0CB5\x0CBF\x0CB6\x0CBF\x0CB7\x0CCD\x0C9F\x0C83"); sl@0: _LIT16(KTestKannada2,"\x0CB6\x0CBF\x0CB7\x0CCD\x0C9F\x0C95\x0CC3\x0C9A\x0CCD\x0C9B\x0CC1\x0C9A\x0CBF\x0C83\x0CB8\x0CBF\x0CA6\x0CCD\x0CA7\x0CBE\x0CB0\x0CCD\x0CA5\x0C83\x0020\x0CB8\x0CBF\x0CA6\x0CCD\x0CA7\x0CB8\x0C82\x0C95\x0CB2\x0CCD\x0CAA\x0C83\x0020\x0CB8\x0CBF\x0CA6\x0CCD\x0CA7\x0CBF\x0CA6\x0C83"); sl@0: _LIT16(KTestKannada3,"\x0CB8\x0CBF\x0CA6\x0CCD\x0CA7\x0CBF\x0CB8\x0CBE\x0CA7\x0CA8\x0C83"); sl@0: sl@0: //Gujarati sample text sl@0: // sample 1 sl@0: _LIT16(KGujarati1,"\x0AAA\x0ACD\x0AB0\x0AA4\x0ABF\x0AB7\x0ACD\x0AA0\x0ABE\x0020\x0A85\x0AA8\x0AC7\x0020\x0A85\x0AA7\x0ABF\x0A95\x0ABE\x0AB0\x0ACB\x0AA8\x0AC0\x0020\x0AA6\x0AC3\x0AB7\x0ACD\x0A9F\x0ABF\x0A8F\x0020\x0AB8\x0AB0\x0ACD\x0AB5\x0020\x0AAE\x0ABE\x0AA8\x0AB5\x0ACB\x0020\x0A9C\x0AA8\x0ACD\x0AAE\x0AA5\x0AC0\x0020\x0AB8\x0ACD\x0AB5\x0AA4\x0A82\x0AA4\x0ACD\x0AB0\x0020\x0A85\x0AA8\x0AC7\x0020\x0AB8\x0AAE\x0ABE\x0AA8\x0020\x0AB9\x0ACB\x0AAF\x0020\x0A9B\x0AC7"); sl@0: _LIT16(KGujarati2,"\x0AA4\x0AC7\x0AAE\x0AA8\x0ABE\x0AAE\x0ABE\x0A82\x0020\x0AB5\x0ABF\x0A9A\x0ABE\x0AB0\x0AB6\x0A95\x0ACD\x0AA4\x0ABF\x0020\x0A85\x0AA8\x0AC7\x0020\x0A85\x0A82\x0AA4\x0A83\x0A95\x0AB0\x0AA3\x0020\x0AB9\x0ACB\x0AAF\x0020\x0A9B\x0AC7\x0020\x0A85\x0AA8\x0AC7\x0020\x0AA4\x0AC7\x0AAE\x0AA3\x0AC7\x0020\x0AAA\x0AB0\x0AB8\x0ACD\x0AAA\x0AB0\x0020\x0AAC\x0A82\x0AA7\x0AC1\x0AA4\x0ACD\x0AB5\x0AA8\x0AC0\x0020\x0AAD\x0ABE\x0AB5\x0AA8\x0ABE\x0AAF\x0AC0\x0020\x0AB5\x0AB0\x0ACD\x0AA4\x0AB5\x0AC1\x0A82"); sl@0: _LIT16(KGujarati3,"\x0A9C\x0ACB\x0A88\x0A8F"); sl@0: // sample 2 sl@0: _LIT16(KGujarati4,"\x0AB0\x0ABE\x0AB7\x0ACD\x0A9F\x0ACD\x0AB0\x0AC0\x0AAF\x0020\x0AB6\x0ABF\x0A95\x0ACD\x0AB7\x0AA3\x0020\x0AA8\x0AC0\x0AA4\x0AC0\x0AA8\x0ABE\x0020\x0A85\x0AA8\x0AC1\x0AB8\x0A82\x0AA7\x0ABE\x0AA8\x0AAE\x0ABE\x0A82\x0020\x0AA4\x0AC8\x0AAF\x0ABE\x0AB0\x0020\x0AA5\x0AAF\x0AC7\x0AB2\x0ABE\x0020\x0AA8\x0AB5\x0ABE\x0020\x0A85\x0AAD\x0ACD\x0AAF\x0ABE\x0AB8\x0A95\x0ACD\x0AB0\x0AAE\x0AAE\x0ABE\x0A82"); sl@0: _LIT16(KGujarati5,"\x0AA6\x0AB0\x0AC7\x0A95\x0020\x0AB5\x0ABF\x0AB7\x0AAF\x0AA8\x0ABE\x0020\x0AAA\x0ABE\x0AA0\x0ACD\x0AAF\x0A95\x0ACD\x0AB0\x0AAE\x0AA8\x0AC7\x0020\x0AB5\x0AA7\x0AC1\x0020\x0AB8\x0AA7\x0AA8\x0020\x0A85\x0AA8\x0AC7\x0020\x0A85\x0AA7\x0ACD\x0AAF\x0AA4\x0AA8\x0020\x0A95\x0AB0\x0AB5\x0ABE\x0AA8\x0ACB\x0020\x0AAA\x0ACD\x0AB0\x0AAF\x0AA4\x0ACD\x0AA8\x0020\x0A95\x0AB0\x0AB5\x0ABE\x0AAE\x0ABE\x0A82"); sl@0: _LIT16(KGujarati6,"\x0A86\x0AB5\x0ACD\x0AAF\x0ACB\x0020\x0A9B\x0AC7\x002E\x0020\x0020\x0AB0\x0ABE\x0AB7\x0ACD\x0A9F\x0ACD\x0AB0\x0AC0\x0AAF\x0020\x0AB6\x0ABF\x0A95\x0ACD\x0AB7\x0AA3\x0020\x0AA8\x0AC0\x0AA4\x0ABF\x0AA8\x0ABE\x0020\x0AAE\x0AC1\x0AB8\x0AA6\x0ABE\x0AAE\x0ABE\x0A82\x0020\x0AB8\x0AAE\x0ABE\x0AA8\x0020\x0A85\x0AAD\x0ACD\x0AAF\x0ABE\x0AB8\x0A95\x0ACD\x0AB0\x0AAE\x0ACB\x0AA8\x0AC0\x0020\x0A85\x0AAE\x0AB2"); sl@0: // sample 3 sl@0: _LIT16(KGujarati7,"\x0A95\x0AB0\x0AB5\x0ABE\x0020\x0AB8\x0ABE\x0AA5\x0AC7\x0020\x0A95\x0AC7\x0A9F\x0AB2\x0ABE\x0A82\x0A95\x0020\x0AB9\x0ABE\x0AB0\x0ACD\x0AA6\x0AB6\x0ACD\x0AAA\x0020\x0AA4\x0AA4\x0ACD\x0AA4\x0ACD\x0AB5\x0ACB\x0020\x0AA6\x0ABE\x0A96\x0AB2\x0020\x0A95\x0AB0\x0AB5\x0ABE\x0AA8\x0AC1\x0A82\x0020\x0AA8\x0A95\x0ACD\x0A95\x0AC0\x0020\x0A95\x0AB0\x0AB5\x0ABE\x0AAE\x0ABE\x0A82\x0020\x0A85\x0AB5\x0ACD\x0AAF\x0AC1\x0A82\x0020\x0A9B\x0AC7\x002E"); sl@0: _LIT16(KGujarati8,"\x0A86\x0020\x0AB9\x0ABE\x0AB0\x0ACD\x0AA6\x0AB6\x0ACD\x0AAA\x0020\x0AA4\x0AA4\x0ACD\x0AA4\x0ACD\x0AB5\x0ACB\x0A82\x0AAE\x0ABE\x0A82\x0020\x0AAD\x0ABE\x0AB0\x0AA4\x0AA8\x0AC0\x0020\x0AB8\x0ACD\x0AB5\x0AA4\x0A82\x0AA4\x0ACD\x0AB0\x0ACD\x0AAF\x0020\x0A9A\x0AB3\x0AB5\x0AB3\x002C\x0020\x0A86\x0AB5\x0AA3\x0AC0\x0020\x0AAC\x0A82\x0AA7\x0ABE\x0AB0\x0AA3\x0AC0\x0AAF\x0020\x0A9C\x0AB5\x0ABE\x0AAC\x0AA6\x0ABE\x0AB0\x0AC0\x0A93\x002C"); sl@0: _LIT16(KGujarati9,"\x0AB0\x0ABE\x0AB7\x0ACD\x0A9F\x0ACD\x0AB0\x0AC0\x0AAF\x0020\x0A90\x0A95\x0ACD\x0AAF\x002C\x0020\x0A86\x0AB5\x0AA3\x0ACB\x0020\x0AB8\x0ABE\x0A82\x0AB8\x0ACD\x0A95\x0AC3\x0AA4\x0ABF\x0A95\x0020\x0AB5\x0ABE\x0AB0\x0AB8\x0ACB\x002C\x0020\x0AB8\x0AB0\x0ACD\x0AB5\x0A9C\x0AA8\x0AB8\x0AAE\x0ABE\x0AA8\x0AA4\x0ABE\x002C\x0020\x0AB2\x0ACB\x0A95\x0AB6\x0ABE\x0AB9\x0AC0\x0020\x0A85\x0AA8\x0AC7"); sl@0: sl@0: // Sample 4 sl@0: _LIT16(KTestGujarati1,"\x0AAC\x0ABF\x0AA8\x0AB8\x0ABE\x0A82\x0AAA\x0ACD\x0AB0\x0AA6\x0ABE\x0AAF\x0ABF\x0A95\x0AA4\x0ABE\x002C\x0020\x0A9C\x0ABE\x0AA4\x0ABE\x0AAF\x0020\x0AB8\x0AAE\x0ABE\x0AA8\x0AA4\x0ABE\x002C\x0020\x0AAA\x0AB0\x0ACD\x0AAF\x0ABE\x0AB5\x0AB0\x0AA3\x0020\x0AB8\x0AC1\x0AB0\x0A95\x0ACD\x0AB7\x0ABE\x002C\x0020\x0AB8\x0ABE\x0AAE\x0ABE\x0A9C\x0ABF\x0A95\x0020\x0A85\x0AB5\x0AB0\x0ACB\x0AA7\x0ACB\x0AA8\x0AC1\x0A82"); sl@0: _LIT16(KTestGujarati2,"\x0AA8\x0ABF\x0AB5\x0ABE\x0AB0\x0AA3\x0020\x0AA4\x0AA5\x0ABE\x0020\x0AB5\x0AC8\x0A9C\x0ACD\x0A9E\x0ABE\x0AA8\x0ABF\x0A95\x0020\x0A95\x0AC7\x0AB3\x0AB5\x0AA3\x0AC0\x0020\x0A9C\x0AC7\x0AB5\x0AC0\x0020\x0AAC\x0ABE\x0AAC\x0AA4\x0ACB\x0AA8\x0AC0\x0020\x0AB8\x0AAE\x0ABE\x0AB5\x0AC7\x0AB6\x0020\x0AA5\x0ABE\x0AAF\x0020\x0A9B\x0AC7\x002E\x0020\x0AB5\x0AB3\x0AC0"); sl@0: _LIT16(KTestGujarati3,"\x0AAE\x0ABE\x0AA7\x0ACD\x0AAF\x0AAE\x0ABF\x0A95\x0020\x0A95\x0AC7\x0020\x0A89\x0AAF\x0ACD\x0AAF\x0AA4\x0AB0\x0020\x0AAE\x0ABE\x0AA7\x0ACD\x0AAF\x0AAE\x0ABF\x0A95\x0020\x0A95\x0A95\x0ACD\x0AB7\x0ABE\x0A8F\x0020\x0A86\x0020\x0AAC\x0AA7\x0AC0\x0020\x0A9C\x0020\x0AAC\x0ABE\x0AAC\x0AA4\x0ACB\x0AA8\x0AC1\x0A82\x0020\x0AB5\x0AA7\x0AC1\x0020\x0AB8\x0AA7\x0AA8\x0AB6\x0ABF\x0A95\x0ACD\x0AB7\x0AA3\x0020\x0A86\x0AAA\x0AB5\x0ABE\x0AA8\x0ACB\x0020\x0A89\x0AA6\x0ACD\x0AA6\x0AC7\x0AB6\x0020\x0AAA\x0AA3\x0020\x0AB8\x0ACD\x0AB5\x0AC0\x0A95\x0ABE\x0AB0\x0ABE\x0AAF\x0ACB\x0020\x0A9B\x0AC7"); sl@0: sl@0: sl@0: //Bengali sample text sl@0: // sample 1 sl@0: _LIT16(KBengali1," \x098F\x0995\x0020\x09AC\x09CB\x0995\x09BE\x0020\x099C\x09CB\x09B2\x09BE\x0020\x099B\x09BF\x09B2\x0964\x0020\x09B8\x09C7\x0020\x0020\x098F\x0995\x09A6\x09BF\x09A8\x0020\x0995\x09BE\x09B8\x09CD\x09A4\x09C7\x0020\x09A8\x09BF\x09DF\x09C7\x0020\x09A7\x09BE\x09A8\x0020\x0995\x09BE\x099F\x09A4\x09C7\x0020\x0997"); sl@0: _LIT16(KBengali2,"\x09BF\x09DF\x09C7\x0020\x0996\x09C7\x09A4\x09C7\x09B0\x0020\x09AE\x09BE\x099D\x0996\x09BE\x09A8\x09C7\x0987\x0020\x0998\x09C1\x09AE\x09BF\x09DF\x09C7\x0020\x09AA\x09DC\x09B2\x0964\x0020\x0998\x09C1\x09AE\x0020\x09A5\x09C7\x0995\x09C7\x0020\x0989\x09A0\x09C7\x0020\x0986\x09AC\x09BE\x09B0\x0020\x0995\x09BE\x09B8"); sl@0: _LIT16(KBengali3,"\x09CD\x09A4\x09C7\x0020\x09B9\x09BE\x09A4\x09C7\x0020\x09A8\x09BF\x09DF\x09C7\x0020\x09A6\x09C7\x0996\x09B2\x002C\x0020\x09B8\x09C7\x099F\x09BE\x0020\x09AC\x09A1\x09CD\x09A1\x0020\x0997\x09B0\x09AE\x0020\x09B9\x09DF\x09C7\x099B\x09C7\x0964\x0020\x0995\x09BE\x09B8\x09CD\x09A4\x09C7\x0996\x09BE\x09A8"); sl@0: // sample 2 sl@0: _LIT16(KBengali4,"\x09BE\x0020\x09B0\x09CB\x09A6\x0020\x09B2\x09C7\x0997\x09C7\x0020\x0997\x09B0\x09AE\x0020\x09B9\x09DF\x09C7\x099B\x09BF\x09B2\x002C\x0020\x0995\x09BF\x09A8\x09CD\x09A4\x09C1\x0020\x099C\x09CB\x09B2\x09BE\x0020\x09AD\x09BE\x09AC\x09B2\x09C7\x0020\x09A4\x09BE\x09B0\x0020\x099C\x09CD\x09AC\x09B0\x0020\x09B9"); sl@0: _LIT16(KBengali5,"\x09DF\x09C7\x099B\x09C7\x0964\x0020\x09A4\x0996\x09A8\x0020\x09B8\x09C7\x0020\x0060\x0986\x09AE\x09BE\x09B0\x0020\x0995\x09BE\x09B8\x09CD\x09A4\x09C7\x0020\x09A4\x09CB\x0020\x09AE\x09B0\x09C7\x0020\x09AF\x09BE\x09AC\x09C7\x0020\x09B0\x09C7\x0021\x0027\x0020\x09AC\x09B2\x09C7\x0020\x09B9\x09BE\x0989\x0020\x09B9"); sl@0: _LIT16(KBengali6,"\x09BE\x0989\x0020\x0995\x09B0\x09C7\x0020\x0995\x09BE\x0981\x09A6\x09A4\x09C7\x0020\x09B2\x09BE\x0997\x09B2\x0964\x0020\x09AA\x09BE\x09B6\x09C7\x09B0\x0020\x0996\x09C7\x09A4\x09C7\x0020\x098F\x0995\x0020\x099A\x09BE\x09B7\x09BE\x0020\x0995\x09BE\x099C\x0020\x0995\x09B0\x099B\x09BF\x09B2\x0964\x0020"); sl@0: // sample 3 sl@0: _LIT16(KBengali7,"\x099C\x09CB\x09B2\x09BE\x09B0\x0020\x0995\x09BE\x09A8\x09CD\x09A8\x09BE\x0020\x09B6\x09C1\x09A8\x09C7\x0020\x09B8\x09C7\x0020\x09AC\x09B2\x09CD\x09B2\x002C\x0020\x0060\x0995\x09BF\x0020\x09B9\x09DF\x09C7\x099B\x09C7\x003F\x0027\x0020\x099C\x09CB\x09B2\x09BE\x0020\x09AC\x09B2\x09CD\x09B2\x09C7\x002C\x0020"); sl@0: _LIT16(KBengali8,"\x0060\x0986\x09AE\x09BE\x09B0\x0020\x0995\x09BE\x09B8\x09CD\x09A4\x09C7\x09B0\x0020\x099C\x09CD\x09AC\x09B0\x0020\x09B9\x09DF\x09C7\x099B\x09C7\x0964\x0027\x0020\x09A4\x09BE\x0020\x09B6\x09C1\x09A8\x09C7\x0020\x099A\x09BE\x09B7\x09BE\x0020\x09B9\x09BE\x09B8\x09A4\x09C7\x0020\x09B9\x09BE\x09B8\x09A4\x09C7\x0020"); sl@0: _LIT16(KBengali9,"\x09AC\x09B2\x09CD\x09B2\x09C7\x002C\x0020\x0060\x0993\x0995\x09C7\x0020\x099C\x09B2\x09C7\x0020\x09A1\x09C1\x09AC\x09BF\x09DF\x09C7\x0020\x09B0\x09BE\x0996\x002C\x0020\x099C\x09CD\x09AC\x09B0\x0020\x09B8\x09C7\x09B0\x09C7\x0020\x09AF\x09BE\x09AC\x09C7\x0964\x0027\x0020\x099C\x09B2\x09C7\x0020"); sl@0: sl@0: // Sample 4 sl@0: _LIT16(KTestBengali1,"\x09A1\x09C1\x09AC\x09BF\x09DF\x09C7\x0020\x0995\x09BE\x09B8\x09CD\x09A4\x09C7\x0020\x09A0\x09BE\x09A3\x09CD\x09A1\x09BE\x0020\x09B9\x09B2\x002C\x0020\x099C\x09CB\x09B2\x09BE\x0993\x0020\x0996\x09C1\x09AC\x0020\x09B8\x09C1\x0996\x09C0\x0020\x09B9\x09B2\x0964\x0020\x09A4\x09BE\x09B0\x09AA\x09B0\x0020"); sl@0: _LIT16(KTestBengali2,"\x098F\x0995\x09A6\x09BF\x09A8\x0020\x099C\x09CB\x09B2\x09BE\x09B0\x0020\x09AE\x09BE\x09DF\x09C7\x09B0\x0020\x099C\x09CD\x09AC\x09B0\x0020\x09B9\x09DF\x09C7\x099B\x09C7\x0964\x0020\x09B8\x0995\x09B2\x09C7\x0020\x09AC\x09B2\x09CD\x09B2\x09C7\x002C\x0020\x0060\x09AC\x09A6\x09CD\x09A6\x09BF\x0020\x09A1\x09BE\x0995\x0964\x0027\x0020"); sl@0: _LIT16(KTestBengali3,"\x099C\x09CB\x09B2\x09BE\x0020\x09AC\x09B2\x09CD\x09B2\x09C7\x002C\x0020\x0060\x0986\x09AE\x09BF\x0020\x0993\x09B7\x09C1\x09A7\x0020\x099C\x09BE\x09A8\x09BF\x0964\x0027\x0020\x09AC\x09B2\x09C7\x002C\x0020\x09B8\x09C7\x0020\x09A4\x09BE\x09B0\x0020\x09AE\x09BE\x0995\x09C7\x0020\x09AA\x09C1\x0995\x09C1\x09B0\x09C7\x0020\x09A8\x09BF\x09DF\x09C7\x0020\x0997\x09BF\x09DF\x09C7\x0020\x099C\x09B2\x09C7\x09B0\x0020\x09AD\x09BF\x09A4\x09B0\x09C7\x0020"); sl@0: sl@0: sl@0: sl@0: //Tamil sample text sl@0: // sample 1 sl@0: _LIT16(KTamil1,"\x0BAA\x0BBE\x0BAF\x0BBF\x0BB0\x0BAE\x0BCD"); sl@0: _LIT16(KTamil2,"\x0B95\x0B9F\x0BB5\x0BC1\x0BB3\x0BCD\x0BB5\x0BBE\x0BB4\x0BCD\x0BA4\x0BCD\x0BA4\x0BC1"); sl@0: _LIT16(KTamil3,"\x0BAA\x0BC2\x0BB5\x0BBF\x0BA9\x0BCD\x0BAE\x0BC7\x0BB2\x0BCD\x0BB5\x0BA8\x0BCD\x0BA4\x0BB0\x0BC1\x0BB3\x0BC1\x0BAE\x0BCD\x0BAA\x0BC1\x0B99\x0BCD\x0B95\x0BB5\x0BA9\x0BCD\x0BA4\x0BA9\x0BCD\x0BAA\x0BCA\x0BB1\x0BCD\x0BAA\x0BBE\x0BA4\x0BAE\x0BCD"); sl@0: // sample 2 sl@0: _LIT16(KTamil4,"\x0BA8\x0BBE\x0BB5\x0BBF\x0BA9\x0BBE\x0BB2\x0BCD\x0BA8\x0BBE\x0BB3\x0BC1\x0BAE\x0BCD\x0BA8\x0BB5\x0BBF\x0BA9\x0BCD\x0BB1\x0BC7\x0BA4\x0BCD\x0BA4\x0BBF\x0BAE\x0BC7\x0BB5\x0BC1\x0BAE\x0BC1\x0B9F\x0BBF"); sl@0: _LIT16(KTamil5,"\x0BAA\x0BC6\x0BB2\x0BCD\x0BB2\x0BBE\x0BAE\x0BCD\x0B89\x0BA3\x0BB0\x0B8E\x0BB4\x0BC1\x0BA4\x0BCD\x0BA4\x0BBF\x0BA9\x0BCD\x0B87\x0BB2\x0B95\x0BCD\x0B95\x0BA3\x0BA4\x0BCD\x0BA4\x0BC8\x0B9A\x0BCD"); sl@0: _LIT16(KTamil6,"\x0B9A\x0BCA\x0BB2\x0BCD\x0BB2\x0BBE\x0BB2\x0BCD\x0B89\x0BB0\x0BC8\x0BAA\x0BCD\x0BAA\x0BA9\x0BCD\x0BA4\x0BCA\x0B95\x0BC1\x0BA4\x0BCD\x0BA4\x0BC1."); sl@0: // sample 3 sl@0: _LIT16(KTamil7,"\x0B85\x0BB5\x0BC8\x0BAF\x0B9F\x0B95\x0BCD\x0B95\x0BAE\x0BCD"); sl@0: _LIT16(KTamil8,"\x0B89\x0BA3\x0BCD\x0BA3\x0BAE\x0BC1\x0B9F\x0BBF\x0BAF\x0BBE\x0BA4\x0BB5\x0BCB\x0BA4\x0BA8\x0BC0\x0BB0\x0BCD\x0BB5\x0BBE\x0BA9\x0BCD\x0BB5\x0BBE\x0BAF\x0BCD\x0BAA\x0BCD\x0BAA\x0B9F\x0BCD"); sl@0: _LIT16(KTamil9,"\x0B9F\x0BC6\x0BA3\x0BCD\x0BA3\x0B85\x0BAE\x0BC1\x0BA4\x0BBE\x0BA9\x0BA4\x0BBF\x0BB2\x0BCD\x0BB2\x0BC8\x0BAF\x0BCB-\x0BAE\x0BA3\x0BCD\x0BA3\x0BBF\x0BA9\x0BCD\x0BAE\x0BC7\x0BB2\x0BCD"); sl@0: // Sample 4 sl@0: _LIT16(KTestTamil1,"\x0BA8\x0BB2\x0BCD\x0BB2\x0BBE\x0BB0\x0BC8\x0B9A\x0BCD\x0B9A\x0BC7\x0BB0\x0BCD\x0BA8\x0BCD\x0BA4\x0BB2\x0BBE\x0BB2\x0BCD\x0BA8\x0BBE\x0BA9\x0BCD\x0B9A\x0BCA\x0BA9\x0BCD\x0BA9\x0BAA\x0BC1\x0BA9\x0BCD\x0B9A\x0BCA\x0BB2\x0BCD\x0BB2\x0BC1\x0BAE\x0BCD"); sl@0: _LIT16(KTestTamil2,"\x0B8E\x0BB2\x0BCD\x0BB2\x0BCB\x0BB0\x0BC1\x0BAE\x0BCD\x0B95\x0BC8\x0B95\x0BCA\x0BB3\x0BCD\x0BB5\x0BB0\x0BCD\x0B88\x0B99\x0BCD\x0B95\x0BC1."); sl@0: _LIT16(KTestTamil3,"\x0B89\x0BA3\x0BCD\x0BA3\x0BAE\x0BC1\x0B9F\x0BBF\x0BAF\x0BBE\x0BA4\x0BB5\x0BCB\x0BA4\x0BA8\x0BC0\x0BB0\x0BCD\x0BB5\x0BBE\x0BA9\x0BCD\x0BB5\x0BBE\x0BAF\x0BCD\x0BAA\x0BCD\x0BAA\x0B9F\x0BCD"); sl@0: sl@0: sl@0: //Telugu sample text sl@0: // sample 1 sl@0: _LIT16(KTelugu1,"\x0C38\x0C30\x0C4D\x0C35\x0C24\x0C4D\x0C30\x0C17\x0C2E\x0C1A\x0C3F\x0C28\x0C4D\x0C24\x0C4D\x0C2F\x0C1E\x0C4D"); sl@0: _LIT16(KTelugu2,"\x0C15\x0C42\x0C1F\x0C38\x0C4D\x0C25\x0C2E\x0C1A\x0C32\x0C28\x0C4D\x0C27\x0C4D\x0C30\x0C41\x0C35\x0C2E"); sl@0: _LIT16(KTelugu3,"\x0C05\x0C25\x0C48\x0C24\x0C26\x0C2A\x0C4D\x0C2F\x0C36\x0C15\x0C4D\x0C24\x0C4B\x093D\x0C38"); sl@0: // sample 2 sl@0: _LIT16(KTelugu4,"\x0C2F\x0C4B\x0C28\x0C3F\x0C30\x0C4D\x0C2E\x0C39\x0C26\x0C4D\x0C2C\x0C4D\x0C30\x0C39\x0C4D\x0C2E"); sl@0: _LIT16(KTelugu5,"\x0C26\x0C47\x0C39\x0C47\x093D\x0C38\x0C4D\x0C2E\x0C3F\x0C28\x0C4D\x0C2A\x0C4D\x0C30\x0C15\x0C3E\x0C36"); sl@0: _LIT16(KTelugu6,"\x0C2A\x0C4D\x0C30\x0C35\x0C43\x0C24\x0C4D\x0C24\x0C3F\x0C30\x0C3E\x0C30\x0C2E\x0C4D\x0C2D\x0C03"); sl@0: // sample 3 sl@0: _LIT16(KTelugu7,"\x0C1C\x0C41\x0C39\x0C4D\x0C35\x0C26\x0C43\x0C37\x0C3F\x0C30\x0C4D\x0C39\x0C4B\x0C24\x0C3E"); sl@0: _LIT16(KTelugu8,"\x0C2A\x0C24\x0C24\x0C4D\x0C30\x0C48\x0C30\x0C4D\x0C26\x0C4D\x0C2F\x0C3E\x0C35\x0C3E\x0C2D\x0C42\x0C2E"); sl@0: _LIT16(KTelugu9,"\x0C26\x0C4D\x0C2F\x0C3E\x0C14\x0C30\x0C4D\x0C23\x0C4B\x0C28\x0C4D\x0C2E\x0C39\x0C3F\x0C28\x0C3E"); sl@0: // Sample 4 sl@0: _LIT16(KTestTelugu1,"\x0C09\x0C26\x0C4D\x0C35\x0C43\x0C24\x0C4D\x0C30\x0C39\x0C28\x0C4D\x0C35\x0C3E\x0C1C\x0C3F\x0C28\x0C3E\x0C02"); sl@0: _LIT16(KTestTelugu2,"\x0C05\x0C30\x0C4D\x0C37\x0C28\x0C4D\x0C24\x0C4D\x0C2F\x0C42\x0C30\x0C4D\x0C2E\x0C2F\x0C4B \x0C18\x0C43\x0C24\x0C38\x0C4D"); sl@0: _LIT16(KTestTelugu3,"\x0C07\x0C24\x0C4D\x0C2A\x0C41\x0C30\x0C4D\x0C35\x0C28\x0C41\x0C24\x0C4D\x0C24\x0C36\x0C4D\x0C1A\x0C30\x0C4D\x0C37\x0C23\x0C40\x0C27\x0C43\x0C24\x0C3F\x0C03"); sl@0: sl@0: void Panic(TInt aPanic) sl@0: { sl@0: _LIT(KPanic, "hindiDemo Application"); sl@0: User::Panic(KPanic,aPanic); sl@0: } sl@0: sl@0: // Class CHindiContainer sl@0: sl@0: void CHindiContainer::ConstructL(const TRect& aRect) sl@0: { sl@0: sl@0: CreateWindowL(); sl@0: SetBlank(); sl@0: sl@0: _LIT(KMyFontName,"Series 60 Hindi TitleSmB"); sl@0: TFontSpec hindiFontSpec(KMyFontName,200); sl@0: iFontSpec = hindiFontSpec; sl@0: SetFontSize(200); sl@0: sl@0: // first label sl@0: _LIT(KSomeHindi," " ); sl@0: iTest = new(ELeave) CEikLabel; sl@0: iTest->SetContainerWindowL(*this); sl@0: iTest->SetBufferReserveLengthL(64); sl@0: iTest->SetTextL(KSomeHindi); sl@0: sl@0: // add a CEikRichTextEditor sl@0: /* TResourceReader reader; sl@0: TBuf<500> buf; sl@0: iCoeEnv->CreateResourceReaderLC(reader, R_OUTPUT_WINDOW_RTEXTED); sl@0: iOutputWindow = new (ELeave) CEikRichTextEditor(); sl@0: iOutputWindow->SetContainerWindowL(*this); sl@0: iOutputWindow->ConstructFromResourceL(reader); sl@0: CleanupStack::PopAndDestroy(); // Resource reader sl@0: iOutputWindow->SetFocus(ETrue); sl@0: sl@0: const TPoint KOutputPosition = TPoint(10, 35); sl@0: const TSize KOutputSize = TSize(150, 100); sl@0: iOutputWindow->SetExtent(KOutputPosition, KOutputSize); sl@0: sl@0: buf.Append(_L("abc")); sl@0: buf.Append(KHindi); sl@0: buf.Append(_L(" xyz")); sl@0: iOutputWindow->SetTextL(&buf); */ sl@0: sl@0: SetRect(aRect); sl@0: ActivateL(); sl@0: iSample =1; sl@0: } sl@0: sl@0: CHindiContainer::~CHindiContainer() sl@0: { sl@0: delete iTest; sl@0: delete iOutputWindow; sl@0: } sl@0: sl@0: void CHindiContainer::SizeChanged() sl@0: { sl@0: TPoint pos = Position(); sl@0: iTest->SetExtent(pos + TPoint(10,10), TSize(500, 40)); sl@0: } sl@0: sl@0: TInt CHindiContainer::CountComponentControls() const sl@0: { sl@0: return 1 /* 2 */; sl@0: } sl@0: sl@0: CCoeControl* CHindiContainer::ComponentControl(TInt aIndex) const sl@0: { sl@0: CCoeControl* controls[] = { iTest/*, iOutputWindow */ }; sl@0: return controls[aIndex]; sl@0: } sl@0: sl@0: void CHindiContainer::HandleControlEventL(CCoeControl* /* aControl */, sl@0: TCoeEvent aEventType) sl@0: { sl@0: if (aEventType == EEventStateChanged) sl@0: { sl@0: // AppUi()->Exit(); sl@0: } sl@0: } sl@0: sl@0: void CHindiContainer::Draw(const TRect& aRect) const sl@0: { sl@0: TRect rect(Rect()); sl@0: rect.Intersection(aRect); sl@0: sl@0: // draw the text directly on the display sl@0: CWindowGc& gc = SystemGc(); sl@0: DrawHindiText(gc); sl@0: } sl@0: sl@0: void CHindiContainer::ChangeSample( TInt aSample) sl@0: { sl@0: iSample = aSample; sl@0: if (iSample > 24 ) iSample = 1; sl@0: if (iSample < 1 ) iSample = 24; sl@0: } sl@0: sl@0: TInt CHindiContainer::GetSample() sl@0: { sl@0: return iSample; sl@0: } sl@0: sl@0: void CHindiContainer::SetHindiFont( TFontSpec& aFontSpec ) sl@0: { sl@0: iFontSpec = aFontSpec; sl@0: } sl@0: sl@0: void CHindiContainer::SetFontSize( TInt aFontSize ) sl@0: { sl@0: iFontSize = aFontSize; sl@0: iFontSpec.iHeight = iFontSize; sl@0: } sl@0: sl@0: TInt CHindiContainer::GetFontSize() sl@0: { sl@0: return iFontSize; sl@0: } sl@0: sl@0: sl@0: const TInt UnicodeZeroWidthNonJoiner = 0x200C; sl@0: sl@0: /* Display Hindi without shaping by inserting a Unicode Zero Width Non Joiner sl@0: character bewteen each character sl@0: aInput the Hindi text to be displayed sl@0: aOutput the same text with the ZWNJ characters added, This buffer must be big enough sl@0: */ sl@0: void CHindiContainer::DisableShaping(const TDesC* aInput, TDes& aOutput ) const sl@0: { sl@0: aOutput.Zero(); sl@0: for (TInt i = 0; i < aInput->Length(); i++ ) sl@0: { sl@0: aOutput.Append( aInput->Mid(i,1) ); sl@0: aOutput.Append( UnicodeZeroWidthNonJoiner ); sl@0: } sl@0: } sl@0: sl@0: /* create a text file which contains the sample hindi data sl@0: this can be used for testing sl@0: */ sl@0: void CHindiContainer::CreateHindiTxtFile() const sl@0: { sl@0: RFs fs; sl@0: TInt error = KErrNone; sl@0: RFile file; sl@0: sl@0: // Open or create hindi.txt sl@0: error = fs.Connect(); sl@0: error = file.Open(fs, _L("c:\\hindi.txt"), EFileWrite); sl@0: if ( error == KErrNotFound) sl@0: { sl@0: error = file.Create(fs, _L("c:\\hindi.txt"), EFileWrite); sl@0: } sl@0: sl@0: // load buffer with data to write sl@0: RBuf8 buffer; sl@0: buffer.Create(10000); sl@0: TPtrC16 pHindi(KHindi1); sl@0: buffer.Append( _L("\xff\xfe") ); sl@0: buffer.Append((const unsigned char *)pHindi.Ptr(), pHindi.Size() ); sl@0: sl@0: TPtrC16 pHindi2(KHindi2); sl@0: buffer.Append((const unsigned char *)pHindi2.Ptr(), pHindi2.Size() ); sl@0: sl@0: TPtrC16 pHindi3(KHindi3); sl@0: buffer.Append((const unsigned char *)pHindi3.Ptr(), pHindi3.Size() ); sl@0: sl@0: TPtrC16 pHindi4(KHindi4); sl@0: buffer.Append((const unsigned char *)pHindi4.Ptr(), pHindi4.Size() ); sl@0: sl@0: TPtrC16 pHindi5(KHindi5); sl@0: buffer.Append((const unsigned char *)pHindi5.Ptr(), pHindi5.Size() ); sl@0: sl@0: TPtrC16 pHindi6(KHindi6); sl@0: buffer.Append((const unsigned char *)pHindi6.Ptr(), pHindi6.Size() ); sl@0: sl@0: TPtrC16 pHindi7(KHindi7); sl@0: buffer.Append((const unsigned char *)pHindi7.Ptr(), pHindi7.Size() ); sl@0: sl@0: TPtrC16 pHindi8(KHindi8); sl@0: buffer.Append((const unsigned char *)pHindi8.Ptr(), pHindi8.Size() ); sl@0: sl@0: TPtrC16 pHindi9(KHindi9); sl@0: buffer.Append((const unsigned char *)pHindi9.Ptr(), pHindi9.Size() ); sl@0: sl@0: // write buffer sl@0: error = file.Write(buffer); sl@0: sl@0: buffer.Close(); sl@0: sl@0: file.Close(); sl@0: fs.Close(); sl@0: sl@0: } sl@0: sl@0: sl@0: /* create a text file which contains the sample Kannada data sl@0: this can be used for testing sl@0: */ sl@0: void CHindiContainer::CreateKannadaTxtFile() const sl@0: { sl@0: RFs fs; sl@0: TInt error = KErrNone; sl@0: RFile file; sl@0: sl@0: // Open or create Kannada.txt sl@0: error = fs.Connect(); sl@0: error = file.Open(fs, _L("c:\\Kannada.txt"), EFileWrite); sl@0: if ( error == KErrNotFound) sl@0: { sl@0: error = file.Create(fs, _L("c:\\Kannada.txt"), EFileWrite); sl@0: } sl@0: sl@0: // load buffer with data to write sl@0: // TBuf8<10000> buffer; sl@0: RBuf8 buffer; sl@0: buffer.Create(10000); sl@0: TPtrC16 pKannada(KKannada1); sl@0: buffer.Append( _L("\xff\xfe") ); sl@0: buffer.Append((const unsigned char *)pKannada.Ptr(), pKannada.Size() ); sl@0: sl@0: TPtrC16 pKannada2(KKannada2); sl@0: buffer.Append((const unsigned char *)pKannada2.Ptr(), pKannada2.Size() ); sl@0: sl@0: TPtrC16 pKannada3(KKannada3); sl@0: buffer.Append((const unsigned char *)pKannada3.Ptr(), pKannada3.Size() ); sl@0: sl@0: TPtrC16 pKannada4(KKannada4); sl@0: buffer.Append((const unsigned char *)pKannada4.Ptr(), pKannada4.Size() ); sl@0: sl@0: TPtrC16 pKannada5(KKannada5); sl@0: buffer.Append((const unsigned char *)pKannada5.Ptr(), pKannada5.Size() ); sl@0: sl@0: TPtrC16 pKannada6(KKannada6); sl@0: buffer.Append((const unsigned char *)pKannada6.Ptr(), pKannada6.Size() ); sl@0: sl@0: TPtrC16 pKannada7(KKannada7); sl@0: buffer.Append((const unsigned char *)pKannada7.Ptr(), pKannada7.Size() ); sl@0: sl@0: TPtrC16 pKannada8(KKannada8); sl@0: buffer.Append((const unsigned char *)pKannada8.Ptr(), pKannada8.Size() ); sl@0: sl@0: TPtrC16 pKannada9(KKannada9); sl@0: buffer.Append((const unsigned char *)pKannada9.Ptr(), pKannada9.Size() ); sl@0: sl@0: // write buffer sl@0: error = file.Write(buffer); sl@0: sl@0: buffer.Close(); sl@0: sl@0: file.Close(); sl@0: fs.Close(); sl@0: sl@0: } sl@0: sl@0: /* create a text file which contains the sample Gujarati data sl@0: this can be used for testing sl@0: */ sl@0: void CHindiContainer::CreateGujaratiTxtFile() const sl@0: { sl@0: RFs fs; sl@0: TInt error = KErrNone; sl@0: RFile file; sl@0: sl@0: // Open or create Gujarati.txt sl@0: error = fs.Connect(); sl@0: error = file.Open(fs, _L("c:\\Gujarati.txt"), EFileWrite); sl@0: if ( error == KErrNotFound) sl@0: { sl@0: error = file.Create(fs, _L("c:\\Gujarati.txt"), EFileWrite); sl@0: } sl@0: sl@0: // load buffer with data to write sl@0: // TBuf8<10000> buffer; sl@0: RBuf8 buffer; sl@0: buffer.Create(10000); sl@0: TPtrC16 pGujarati(KGujarati1); sl@0: buffer.Append( _L("\xff\xfe") ); sl@0: buffer.Append((const unsigned char *)pGujarati.Ptr(), pGujarati.Size() ); sl@0: sl@0: TPtrC16 pGujarati2(KGujarati2); sl@0: buffer.Append((const unsigned char *)pGujarati2.Ptr(), pGujarati2.Size() ); sl@0: sl@0: TPtrC16 pGujarati3(KGujarati3); sl@0: buffer.Append((const unsigned char *)pGujarati3.Ptr(), pGujarati3.Size() ); sl@0: sl@0: TPtrC16 pGujarati4(KGujarati4); sl@0: buffer.Append((const unsigned char *)pGujarati4.Ptr(), pGujarati4.Size() ); sl@0: sl@0: TPtrC16 pGujarati5(KGujarati5); sl@0: buffer.Append((const unsigned char *)pGujarati5.Ptr(), pGujarati5.Size() ); sl@0: sl@0: TPtrC16 pGujarati6(KGujarati6); sl@0: buffer.Append((const unsigned char *)pGujarati6.Ptr(), pGujarati6.Size() ); sl@0: sl@0: TPtrC16 pGujarati7(KGujarati7); sl@0: buffer.Append((const unsigned char *)pGujarati7.Ptr(), pGujarati7.Size() ); sl@0: sl@0: TPtrC16 pGujarati8(KGujarati8); sl@0: buffer.Append((const unsigned char *)pGujarati8.Ptr(), pGujarati8.Size() ); sl@0: sl@0: TPtrC16 pGujarati9(KGujarati9); sl@0: buffer.Append((const unsigned char *)pGujarati9.Ptr(), pGujarati9.Size() ); sl@0: sl@0: // write buffer sl@0: error = file.Write(buffer); sl@0: sl@0: buffer.Close(); sl@0: sl@0: file.Close(); sl@0: fs.Close(); sl@0: } sl@0: /* create a text file which contains the sample Bengali data sl@0: this can be used for testing sl@0: */ sl@0: sl@0: void CHindiContainer::CreateBengaliTxtFile() const sl@0: { sl@0: RFs fs1; sl@0: TInt error = KErrNone; sl@0: RFile file1; sl@0: // Open or create Bengali.txt sl@0: error = fs1.Connect(); sl@0: error = file1.Open(fs1, _L("c:\\Bengali.txt"), EFileWrite); sl@0: if ( error == KErrNotFound) sl@0: { sl@0: error = file1.Create(fs1, _L("c:\\Bengali.txt"), EFileWrite); sl@0: } sl@0: // load buffer with data to write sl@0: RBuf8 buffer; sl@0: buffer.Create(10000); sl@0: TPtrC16 pBengali(KBengali1); sl@0: buffer.Append( _L("\xff\xfe")); sl@0: buffer.Append((const unsigned char *)pBengali.Ptr(), pBengali.Size()); sl@0: sl@0: TPtrC16 pBengali2(KBengali2); sl@0: buffer.Append((const unsigned char *)pBengali2.Ptr(), pBengali2.Size()); sl@0: sl@0: TPtrC16 pBengali3(KBengali3); sl@0: buffer.Append((const unsigned char *)pBengali3.Ptr(), pBengali3.Size()); sl@0: sl@0: TPtrC16 pBengali4(KBengali4); sl@0: buffer.Append((const unsigned char *)pBengali4.Ptr(), pBengali4.Size()); sl@0: sl@0: TPtrC16 pBengali5(KBengali5); sl@0: buffer.Append((const unsigned char *)pBengali5.Ptr(), pBengali5.Size()); sl@0: sl@0: TPtrC16 pBengali6(KBengali6); sl@0: buffer.Append((const unsigned char *)pBengali6.Ptr(), pBengali6.Size()); sl@0: sl@0: TPtrC16 pBengali7(KBengali7); sl@0: buffer.Append((const unsigned char *)pBengali7.Ptr(), pBengali7.Size()); sl@0: sl@0: TPtrC16 pBengali8(KBengali8); sl@0: buffer.Append((const unsigned char *)pBengali8.Ptr(), pBengali8.Size()); sl@0: sl@0: TPtrC16 pBengali9(KBengali9); sl@0: buffer.Append((const unsigned char *)pBengali9.Ptr(), pBengali9.Size()); sl@0: sl@0: // write buffer sl@0: error = file1.Write(buffer); sl@0: buffer.Close(); sl@0: file1.Close(); sl@0: fs1.Close(); sl@0: } sl@0: sl@0: void CHindiContainer::CreateTamilTxtFile() const sl@0: { sl@0: RFs fs; sl@0: TInt error = KErrNone; sl@0: RFile file; sl@0: sl@0: // Open or create Tamil.txt sl@0: error = fs.Connect(); sl@0: error = file.Open(fs, _L("c:\\Tamil.txt"), EFileWrite); sl@0: if ( error == KErrNotFound) sl@0: { sl@0: error = file.Create(fs, _L("c:\\Tamil.txt"), EFileWrite); sl@0: } sl@0: sl@0: // load buffer with data to write sl@0: // TBuf8<10000> buffer; sl@0: RBuf8 buffer; sl@0: buffer.Create(10000); sl@0: TPtrC16 pTamil(KTamil1); sl@0: buffer.Append( _L("\xff\xfe") ); sl@0: buffer.Append((const unsigned char *)pTamil.Ptr(), pTamil.Size() ); sl@0: sl@0: TPtrC16 pTamil2(KTamil2); sl@0: buffer.Append((const unsigned char *)pTamil2.Ptr(), pTamil2.Size() ); sl@0: sl@0: TPtrC16 pTamil3(KTamil3); sl@0: buffer.Append((const unsigned char *)pTamil3.Ptr(), pTamil3.Size() ); sl@0: sl@0: TPtrC16 pTamil4(KTamil4); sl@0: buffer.Append((const unsigned char *)pTamil4.Ptr(), pTamil4.Size() ); sl@0: sl@0: TPtrC16 pTamil5(KTamil5); sl@0: buffer.Append((const unsigned char *)pTamil5.Ptr(), pTamil5.Size() ); sl@0: sl@0: TPtrC16 pTamil6(KTamil6); sl@0: buffer.Append((const unsigned char *)pTamil6.Ptr(), pTamil6.Size() ); sl@0: sl@0: TPtrC16 pTamil7(KTamil7); sl@0: buffer.Append((const unsigned char *)pTamil7.Ptr(), pTamil7.Size() ); sl@0: sl@0: TPtrC16 pTamil8(KTamil8); sl@0: buffer.Append((const unsigned char *)pTamil8.Ptr(), pTamil8.Size() ); sl@0: sl@0: TPtrC16 pTamil9(KTamil9); sl@0: buffer.Append((const unsigned char *)pTamil9.Ptr(), pTamil9.Size() ); sl@0: sl@0: // write buffer sl@0: error = file.Write(buffer); sl@0: sl@0: buffer.Close(); sl@0: sl@0: file.Close(); sl@0: fs.Close(); sl@0: } sl@0: sl@0: void CHindiContainer::CreateTeluguTxtFile() const sl@0: { sl@0: RFs fs; sl@0: TInt error = KErrNone; sl@0: RFile file; sl@0: sl@0: // Open or create Telugu.txt sl@0: error = fs.Connect(); sl@0: error = file.Open(fs, _L("c:\\Telugu.txt"), EFileWrite); sl@0: if ( error == KErrNotFound) sl@0: { sl@0: error = file.Create(fs, _L("c:\\Telugu.txt"), EFileWrite); sl@0: } sl@0: sl@0: // load buffer with data to write sl@0: // TBuf8<10000> buffer; sl@0: RBuf8 buffer; sl@0: buffer.Create(10000); sl@0: TPtrC16 pTelugu(KTelugu1); sl@0: buffer.Append( _L("\xff\xfe") ); sl@0: buffer.Append((const unsigned char *)pTelugu.Ptr(), pTelugu.Size() ); sl@0: sl@0: TPtrC16 pTelugu2(KTelugu2); sl@0: buffer.Append((const unsigned char *)pTelugu2.Ptr(), pTelugu2.Size() ); sl@0: sl@0: TPtrC16 pTelugu3(KTelugu3); sl@0: buffer.Append((const unsigned char *)pTelugu3.Ptr(), pTelugu3.Size() ); sl@0: sl@0: TPtrC16 pTelugu4(KTelugu4); sl@0: buffer.Append((const unsigned char *)pTelugu4.Ptr(), pTelugu4.Size() ); sl@0: sl@0: TPtrC16 pTelugu5(KTelugu5); sl@0: buffer.Append((const unsigned char *)pTelugu5.Ptr(), pTelugu5.Size() ); sl@0: sl@0: TPtrC16 pTelugu6(KTelugu6); sl@0: buffer.Append((const unsigned char *)pTelugu6.Ptr(), pTelugu6.Size() ); sl@0: sl@0: TPtrC16 pTelugu7(KTelugu7); sl@0: buffer.Append((const unsigned char *)pTelugu7.Ptr(), pTelugu7.Size() ); sl@0: sl@0: TPtrC16 pTelugu8(KTelugu8); sl@0: buffer.Append((const unsigned char *)pTelugu8.Ptr(), pTelugu8.Size() ); sl@0: sl@0: TPtrC16 pTelugu9(KTelugu9); sl@0: buffer.Append((const unsigned char *)pTelugu9.Ptr(), pTelugu9.Size() ); sl@0: sl@0: // write buffer sl@0: error = file.Write(buffer); sl@0: sl@0: buffer.Close(); sl@0: sl@0: file.Close(); sl@0: fs.Close(); sl@0: } sl@0: sl@0: /** sl@0: @file sl@0: @SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CIT-1499 sl@0: @SYMTestCaseDesc Test the IcuLayout Engine . sl@0: @SYMTestPriority High sl@0: @SYMTestActions Test Check that Hindi text is shaped: sl@0: @SYMTestExpectedResults The test must not fail. sl@0: @SYMPREQ PREQ18 sl@0: */ sl@0: sl@0: /** sl@0: @file sl@0: @SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CIT-3382 sl@0: @SYMTestCaseDesc Test the IcuLayout Engine for Kannada support by extending functionalities of DrawHindiText(CWindowGc& aGc) function. sl@0: @SYMTestPriority High sl@0: @SYMTestActions Test Check that Kannada text is shaped: sl@0: @SYMTestExpectedResults The test must not fail. sl@0: @SYMPREQ PREQ19 sl@0: */ sl@0: /** sl@0: @file sl@0: @SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CIT-3418 sl@0: @SYMTestCaseDesc Test the IcuLayout Engine for Gujarati support by extending functionalities of DrawHindiText(CWindowGc& aGc) function. sl@0: @SYMTestPriority High sl@0: @SYMTestActions Test Check that gujarati text is shaped: sl@0: @SYMTestExpectedResults The test must not fail. sl@0: @SYMPREQ PREQ19 sl@0: */ sl@0: sl@0: /** sl@0: @file sl@0: @SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CIT-4004 sl@0: @SYMTestCaseDesc Test the IcuLayout Engine for Bengali support by extending functionalities of DrawHindiText(CWindowGc& aGc) function. sl@0: @SYMTestPriority High sl@0: @SYMTestActions Test Check that Bengali text is shaped: sl@0: @SYMTestExpectedResults The test must not fail. sl@0: @SYMPREQ PREQ1766 sl@0: */ sl@0: sl@0: /** sl@0: @file sl@0: @SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CIT-4005 sl@0: @SYMTestCaseDesc Test the IcuLayout Engine for Tamil support by extending functionalities of DrawHindiText(CWindowGc& aGc) function. sl@0: @SYMTestPriority High sl@0: @SYMTestActions Test Check that Tamil text is shaped: sl@0: @SYMTestExpectedResults The test must not fail. sl@0: @SYMPREQ PREQ1766 sl@0: */ sl@0: sl@0: sl@0: /** sl@0: @file sl@0: @SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CIT-4006 sl@0: @SYMTestCaseDesc Test the IcuLayout Engine for Telugu support by extending functionalities of DrawHindiText(CWindowGc& aGc) function. sl@0: @SYMTestPriority High sl@0: @SYMTestActions Test Check that Telugu text is shaped: sl@0: @SYMTestExpectedResults The test must not fail. sl@0: @SYMPREQ PREQ1766 sl@0: */ sl@0: sl@0: void CHindiContainer::DrawHindiText(CWindowGc& aGc) const sl@0: { sl@0: sl@0: // start with test font sl@0: CFont* myFont; sl@0: _LIT(KTestFontName,"DejaVu Sans Condensed"); sl@0: TFontSpec testFontSpec(KTestFontName,200); sl@0: CGraphicsDevice* screenDevice=iCoeEnv->ScreenDevice(); sl@0: screenDevice->GetNearestFontInTwips(myFont,testFontSpec); sl@0: sl@0: // set the required attributes sl@0: aGc.UseFont(myFont); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.SetBrushColor(KRgbBlue); sl@0: aGc.CancelClippingRect(); sl@0: sl@0: // Set the text drawing position & draw sl@0: TPoint pos(10,20); sl@0: TBuf<100> textLine; sl@0: textLine.Append(_L("The following is ")); sl@0: sl@0: switch( iSample ) sl@0: { sl@0: case 1: sl@0: textLine.Append(_L("Hindi sample 1 ")); sl@0: break; sl@0: case 2: sl@0: textLine.Append(_L("Hindi sample 2 ")); sl@0: break; sl@0: case 3: sl@0: textLine.Append(_L("Hindi sample 3 ")); sl@0: break; sl@0: case 4: sl@0: textLine.Append(_L(" Hindi Sample 4 ")); sl@0: break; sl@0: case 5: sl@0: textLine.Append(_L("Kannada sample 1 ")); sl@0: break; sl@0: case 6: sl@0: textLine.Append(_L("Kannada sample 2 ")); sl@0: break; sl@0: case 7: sl@0: textLine.Append(_L("Kannada sample 3 ")); sl@0: break; sl@0: case 8: sl@0: textLine.Append(_L("Kannada Sample 4 ")); sl@0: break; sl@0: case 9: sl@0: textLine.Append(_L("Gujarati sample 1 ")); sl@0: break; sl@0: case 10: sl@0: textLine.Append(_L("Gujarati sample 2 ")); sl@0: break; sl@0: case 11: sl@0: textLine.Append(_L("Gujarati sample 3 ")); sl@0: break; sl@0: case 12: sl@0: textLine.Append(_L("Gujarati Sample 4 ")); sl@0: break; sl@0: case 13: sl@0: textLine.Append(_L("Bengali sample 1 ")); sl@0: break; sl@0: case 14: sl@0: textLine.Append(_L("Bengali sample 2 ")); sl@0: break; sl@0: case 15: sl@0: textLine.Append(_L("Bengali sample 3 ")); sl@0: break; sl@0: case 16: sl@0: textLine.Append(_L("Bengali Sample 4 ")); sl@0: break; sl@0: case 17: sl@0: textLine.Append(_L("Tamil sample 1 ")); sl@0: break; sl@0: case 18: sl@0: textLine.Append(_L("Tamil sample 2 ")); sl@0: break; sl@0: case 19: sl@0: textLine.Append(_L("Tamil sample 3 ")); sl@0: break; sl@0: case 20: sl@0: textLine.Append(_L("Tamil Sample 4 ")); sl@0: break; sl@0: case 21: sl@0: textLine.Append(_L("Telugu sample 1 ")); sl@0: break; sl@0: case 22: sl@0: textLine.Append(_L("Telugu sample 2 ")); sl@0: break; sl@0: case 23: sl@0: textLine.Append(_L("Telugu sample 3 ")); sl@0: break; sl@0: case 24: sl@0: textLine.Append(_L("Telugu Sample 4 ")); sl@0: break; sl@0: default: sl@0: textLine.Append(_L("what? ")); sl@0: break; sl@0: } sl@0: sl@0: textLine.Append(_L("using font ")); sl@0: textLine.Append(iFontSpec.iTypeface.iName); sl@0: aGc.DrawText(textLine,pos); sl@0: sl@0: TPoint pos2(10,35); sl@0: TBuf<100> textLine2; sl@0: textLine2.Format(_L("Size:%dpt Blue is shaped, Black is not"),iFontSize/20); sl@0: aGc.DrawText(textLine2, pos2); sl@0: sl@0: // Discard and destroy the test font sl@0: aGc.DiscardFont(); sl@0: screenDevice->ReleaseFont(myFont); sl@0: sl@0: // set the selected font sl@0: screenDevice->GetNearestFontInTwips(myFont,iFontSpec); sl@0: sl@0: // set the required attributes sl@0: aGc.UseFont(myFont); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.SetBrushColor(KRgbBlue); sl@0: aGc.CancelClippingRect(); sl@0: sl@0: // some rectangles to fit the text in sl@0: TRect textRect(10,-30,600, 600); sl@0: TRect textRect2(10,-5,600, 600); sl@0: TRect textRect3(10, 25, 600, 600); sl@0: TRect textRect4(10, 50, 600, 600); sl@0: TRect textRect5(10, 80, 600, 600); sl@0: TRect textRect6(10, 105, 600, 600); sl@0: sl@0: TBuf<200> textWithoutShaping; sl@0: sl@0: // Draw some Hindi in a rectangle sl@0: switch (iSample) sl@0: { sl@0: sl@0: //Hindi Sample 1 sl@0: case 1: sl@0: sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KHindi1, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: // Now in Blue with shaping sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: aGc.SetPenColor(KRgbBlack); sl@0: DisableShaping(&KHindi2, textWithoutShaping ); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KHindi3, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Hindi Sample 2 sl@0: case 2: sl@0: DisableShaping(&KHindi4, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi4, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KHindi5, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi5, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KHindi6, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi6, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Hindi Sample 3 sl@0: case 3: sl@0: DisableShaping(&KHindi7, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi7, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KHindi8, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi8, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KHindi9, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KHindi9, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Hindi Sample 4 sl@0: case 4: sl@0: // test sl@0: DisableShaping(&KTest1, textWithoutShaping ); sl@0: aGc.DrawText(KTest1, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTest1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTest2, textRect3, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTest2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTest3, textRect5, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTest3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: //Kannada Sample 1 sl@0: case 5: sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KKannada1, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: // Now in Blue with shaping sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: aGc.SetPenColor(KRgbBlack); sl@0: DisableShaping(&KKannada2, textWithoutShaping ); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KKannada3, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Kannada Sample 2 sl@0: sl@0: case 6: sl@0: DisableShaping(&KKannada4, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada4, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KKannada5, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada5, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KKannada6, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada6, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: //Kannada Sample 3 sl@0: sl@0: case 7: sl@0: DisableShaping(&KKannada7, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada7, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KKannada8, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada8, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KKannada9, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KKannada9, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Kannada Sample 4 sl@0: case 8: sl@0: sl@0: DisableShaping(&KTestKannada1, textWithoutShaping ); sl@0: aGc.DrawText(KTestKannada1, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestKannada1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestKannada2, textRect3, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestKannada2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestKannada3, textRect5, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestKannada3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: sl@0: break; sl@0: // break; sl@0: sl@0: //Gujarati Sample 1 sl@0: case 9: sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KGujarati1, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: // Now in Blue with shaping sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: aGc.SetPenColor(KRgbBlack); sl@0: DisableShaping(&KGujarati2, textWithoutShaping ); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KGujarati3, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Gujarati Sample 2 sl@0: sl@0: case 10: sl@0: DisableShaping(&KGujarati4, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati4, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KGujarati5, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati5, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KGujarati6, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati6, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: //Gujarati Sample 3 sl@0: sl@0: case 11: sl@0: DisableShaping(&KGujarati7, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati7, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KGujarati8, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati8, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KGujarati9, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KGujarati9, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Gujarati Sample 4 sl@0: case 12: sl@0: sl@0: DisableShaping(&KTestGujarati1, textWithoutShaping ); sl@0: aGc.DrawText(KTestGujarati1, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestGujarati1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestGujarati2, textRect3, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestGujarati2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestGujarati3, textRect5, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestGujarati3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: sl@0: break; sl@0: //Bengali Sample 1 sl@0: case 13: sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KBengali1, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: // Now in Blue with shaping sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: aGc.SetPenColor(KRgbBlack); sl@0: DisableShaping(&KBengali2, textWithoutShaping ); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KBengali3, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Bengali Sample 2 sl@0: sl@0: case 14: sl@0: DisableShaping(&KBengali4, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali4, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KBengali5, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali5, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KBengali6, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali6, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: //Bengali Sample 3 sl@0: sl@0: case 15: sl@0: DisableShaping(&KBengali7, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali7, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KBengali8, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali8, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KBengali9, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KBengali9, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: //Bengali Sample 4 sl@0: case 16: sl@0: sl@0: DisableShaping(&KTestBengali1, textWithoutShaping ); sl@0: aGc.DrawText(KTestBengali1, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestBengali1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestBengali2, textRect3, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestBengali2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestBengali3, textRect5, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestBengali3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: sl@0: break; sl@0: sl@0: case 17: sl@0: //Tamil Sample 1 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTamil1, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: // Now in Blue with shaping sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: aGc.SetPenColor(KRgbBlack); sl@0: DisableShaping(&KTamil2, textWithoutShaping ); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTamil3, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: case 18: sl@0: //Tamil Sample 2 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTamil4, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil4, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTamil5, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil5, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTamil6, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil6, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: case 19: sl@0: //Tamil Sample 3 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTamil7, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil7, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTamil8, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil8, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTamil9, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTamil9, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: case 20: sl@0: //Tamil Sample 4 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTestTamil1, textWithoutShaping ); sl@0: aGc.DrawText(KTestBengali1, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestTamil1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestTamil2, textRect3, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestTamil2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestTamil3, textRect5, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestTamil3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: sl@0: break; sl@0: sl@0: case 21: sl@0: //Telugu Sample 1 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTelugu1, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: // Now in Blue with shaping sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: aGc.SetPenColor(KRgbBlack); sl@0: DisableShaping(&KTelugu2, textWithoutShaping ); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTelugu3, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: case 22: sl@0: //Telugu Sample 2 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTelugu4, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu4, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTelugu5, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu5, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTelugu6, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu6, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: case 23: sl@0: //Telugu Sample 3 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTelugu7, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu7, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTelugu8, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect3, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu8, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: DisableShaping(&KTelugu9, textWithoutShaping ); sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(textWithoutShaping, textRect5, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTelugu9, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: sl@0: case 24: sl@0: //Telugu Sample 4 sl@0: // First draw in Black with shaping disabled sl@0: DisableShaping(&KTestTelugu1, textWithoutShaping ); sl@0: aGc.DrawText(KTestTelugu1, textRect, 100, CGraphicsContext::ELeft); sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestTelugu1, textRect2, 100, CGraphicsContext::ELeft); sl@0: sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestTelugu2, textRect3, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestTelugu2, textRect4, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: // Without the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlack); sl@0: aGc.DrawText(KTestTelugu3, textRect5, 100, CGraphicsContext::ELeft); sl@0: // With the Layout Engine sl@0: sl@0: aGc.SetPenColor(KRgbBlue); sl@0: aGc.DrawText(KTestTelugu3, textRect6, 100, CGraphicsContext::ELeft); sl@0: //-------------------------------------------------------------------------- sl@0: break; sl@0: default: sl@0: break; sl@0: } sl@0: // Discard and destroy the font sl@0: aGc.DiscardFont(); sl@0: screenDevice->ReleaseFont(myFont); sl@0: } sl@0: sl@0: // CHindiAppUi sl@0: sl@0: CHindiAppUi::~CHindiAppUi() sl@0: { sl@0: RemoveFromStack(iAppView); sl@0: delete iAppView; sl@0: } sl@0: sl@0: void CHindiAppUi::ConstructL() sl@0: { sl@0: BaseConstructL(); sl@0: iAppView=new(ELeave) CHindiContainer; sl@0: iAppView->ConstructL(ClientRect()); sl@0: AddToStackL(iAppView); sl@0: } sl@0: sl@0: void CHindiAppUi::HandleCommandL(TInt aCommand) sl@0: { sl@0: TCharFormat charFormat; sl@0: TCharFormatMask charMask; sl@0: sl@0: switch (aCommand) sl@0: { sl@0: case EEikCmdExit: sl@0: Exit(); sl@0: break; sl@0: sl@0: case EEikCmdFont: sl@0: if ( CEikFontDialog::RunDlgLD(charFormat, charMask, EGulNoSymbolFonts, iCoeEnv->ScreenDevice()) ) sl@0: { sl@0: // save the selected font in the view sl@0: iAppView->SetHindiFont( charFormat.iFontSpec ); sl@0: iAppView->DrawNow(); sl@0: } sl@0: break; sl@0: sl@0: case EEikCmdSample1: sl@0: iAppView->ChangeSample(1); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample2: sl@0: iAppView->ChangeSample(2); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample3: sl@0: iAppView->ChangeSample(3); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample4: sl@0: iAppView->ChangeSample(4); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample5: sl@0: iAppView->ChangeSample(5); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample6: sl@0: iAppView->ChangeSample(6); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample7: sl@0: iAppView->ChangeSample(7); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample8: sl@0: iAppView->ChangeSample(8); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample9: sl@0: iAppView->ChangeSample(9); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample10: sl@0: iAppView->ChangeSample(10); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample11: sl@0: iAppView->ChangeSample(11); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample12: sl@0: iAppView->ChangeSample(12); sl@0: iAppView->DrawNow(); sl@0: case EEikCmdSample13: sl@0: iAppView->ChangeSample(13); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample14: sl@0: iAppView->ChangeSample(14); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample15: sl@0: iAppView->ChangeSample(15); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample16: sl@0: iAppView->ChangeSample(16); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample17: sl@0: iAppView->ChangeSample(17); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample18: sl@0: iAppView->ChangeSample(18); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample19: sl@0: iAppView->ChangeSample(19); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample20: sl@0: iAppView->ChangeSample(20); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample21: sl@0: iAppView->ChangeSample(21); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample22: sl@0: iAppView->ChangeSample(22); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample23: sl@0: iAppView->ChangeSample(23); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdSample24: sl@0: iAppView->ChangeSample(24); sl@0: iAppView->DrawNow(); sl@0: break; sl@0: case EEikCmdMakeHindiTxt: sl@0: iAppView->CreateHindiTxtFile(); sl@0: break; sl@0: case EEikCmdMakeKannadaTxt: sl@0: iAppView->CreateKannadaTxtFile(); sl@0: break; sl@0: case EEikCmdMakeGujaratiTxt: sl@0: iAppView->CreateGujaratiTxtFile(); sl@0: break; sl@0: case EEikCmdMakeBengaliTxt: sl@0: iAppView->CreateBengaliTxtFile(); sl@0: break; sl@0: case EEikCmdMakeTamilTxt: sl@0: iAppView->CreateTamilTxtFile(); sl@0: break; sl@0: case EEikCmdMakeTeluguTxt: sl@0: iAppView->CreateTeluguTxtFile(); sl@0: break; sl@0: default: sl@0: Panic(0); sl@0: break; sl@0: } sl@0: } sl@0: sl@0: TKeyResponse CHindiAppUi::HandleKeyEventL(const TKeyEvent& aKeyEvent, TEventCode /* aType */) sl@0: { sl@0: switch (aKeyEvent.iCode) sl@0: { sl@0: case EKeyUpArrow: sl@0: // increase font size sl@0: iAppView->SetFontSize(iAppView->GetFontSize() +20); sl@0: break; sl@0: case EKeyDownArrow: sl@0: // increase font size sl@0: iAppView->SetFontSize(iAppView->GetFontSize() -20); sl@0: break; sl@0: case EKeyLeftArrow: sl@0: // next sample sl@0: iAppView->ChangeSample(iAppView->GetSample()-1); sl@0: break; sl@0: case EKeyRightArrow: sl@0: // increase font size sl@0: iAppView->ChangeSample(iAppView->GetSample()+1); sl@0: break; sl@0: default: sl@0: return EKeyWasNotConsumed; sl@0: } sl@0: iAppView->DrawNow(); sl@0: return EKeyWasConsumed; sl@0: } sl@0: sl@0: // CHindiEikDocument sl@0: sl@0: CEikAppUi* CHindiEikDocument::CreateAppUiL() sl@0: { sl@0: return(new(ELeave) CHindiAppUi); sl@0: } sl@0: sl@0: void CHindiEikDocument::ConstructL() sl@0: { sl@0: } sl@0: sl@0: sl@0: // CHindiApplication sl@0: sl@0: TUid CHindiApplication::AppDllUid() const sl@0: { sl@0: return KUidHindiDemoApp; sl@0: } sl@0: sl@0: CApaDocument* CHindiApplication::CreateDocumentL() sl@0: { sl@0: CHindiEikDocument* document=new(ELeave) CHindiEikDocument(*this); sl@0: CleanupStack::PushL(document); sl@0: document->ConstructL(); sl@0: CleanupStack::Pop(); sl@0: return(document); sl@0: } sl@0: sl@0: // sl@0: // EXPORTed functions sl@0: // sl@0: sl@0: // for MCL build sl@0: #ifdef __SECURE_DATA__ sl@0: sl@0: static CApaApplication* NewApplication() sl@0: { sl@0: return new CHindiApplication; sl@0: } sl@0: sl@0: GLDEF_C TInt E32Main() sl@0: { sl@0: return EikStart::RunApplication(&NewApplication); sl@0: } sl@0: sl@0: #else sl@0: sl@0: // for 8.1 build sl@0: EXPORT_C CApaApplication* NewApplication() sl@0: { sl@0: return new CHindiApplication; sl@0: } sl@0: sl@0: GLDEF_C TInt E32Dll(TDllReason) sl@0: { sl@0: return KErrNone; sl@0: } sl@0: sl@0: #endif