textinput/AknInputLanguage/inc/ptiInputLanguageInfo.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/AknInputLanguage/inc/ptiInputLanguageInfo.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,125 @@
+/*
+* Copyright (c) 2002 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: 
+*       This is a private header
+*
+*       Implementation of the CAknInputLanguageInfo-conformant object. This actually has
+*       all the functionality.
+*       This file also contains the implementation of the factory object itself that returns
+*       an instance of CT9InputLanguageInfo.
+*
+*/
+
+
+#if !defined(__ET9LANGUAGEINFO_H__)
+#define __ET9LANGUAGEINFO_H__
+
+#include <e32base.h>
+#include <AknInputLanguageInfo.h>
+#include <PtiEngine.h>
+
+/**
+* This is a specialization of the Avkon input language class. It may be returned by 
+* a factory method to provide available language information to a client
+*
+* It owns a CT9Interface object that provides the real services.
+*
+* This class is not meant for client code derivation. Indeed it is not visible to the client 
+* directly.
+*/
+NONSHARABLE_CLASS(CT9InputLanguageInfo) : public CAknInputLanguageInfo
+	{
+    public:
+	    /** 
+	    * Non-trivial C++ descructor. 
+	    */
+	    IMPORT_C ~CT9InputLanguageInfo();
+
+	    /**
+	    * NewL method for this class. This can be used internal to the factory method 
+	    */
+	    static CT9InputLanguageInfo* NewL();
+
+	    /**
+	    * Provide a language list corresponding to the input list of SymbianOS language codes.
+	    * The order of the languages in the output list is that order implemented in the 
+	    * interface object, and the order of the input list of language codes is ignored.
+	    *
+	    * @param aInputLanguageList Append to this list; 
+	    * @param aLanguageCodeList	Append only languages whose code is in this list. If Null
+        *                           is passed, then no language code filtering is done
+	    * @param aCapabilityFilter	Append only languages with capabilities set in this filter.
+	    *
+	    */ 
+	    EXPORT_C virtual void AppendLanguagesL( 
+		    CAknInputLanguageList* aInputLanguageList, 
+		    CArrayFix<TInt>* aLanguageCodeList,
+		    TAknInputLanguageCapabilities& aCapabilityFilter );
+
+	    /**
+	    * From CAknInputLanguagesInfo.
+	    *
+	    * Append to a list of language, language code pairs
+	    */
+
+	    IMPORT_C void AppendAvailableLanguagesL( CAknInputLanguageList* aInputLanguageArray );
+
+	    /**
+	    * From CAknInputLanguageInfo
+	    *
+	    * @return	the capabilies of the keyed language
+	    */
+	    IMPORT_C virtual TAknInputLanguageCapabilities LanguageCapabilitiesFromLanguage(TLanguage aLanguageId);
+
+	    /**
+	    * Get the language name that corresponds to the passed-in Symbian OS language code.
+	    * This name should be localized, or not, depending upon the policy decided for the product
+	    * 
+	    * @param	aLanguageCode	- language code for the language whose name is required
+	    * @return	TPtrC			- holds the name of the language.  Buffer for the name is within 
+	    *							the interface object, not the client. The buffer will be valid only 
+	    *							while the instance of this class exists.
+	    */
+	    IMPORT_C virtual TAknLanguageName LanguageName( TLanguage aLanguageCode ) const;
+
+	    IMPORT_C TLanguage UrlLanguage() const;
+
+    private:
+	    /**
+	    * Private constructor
+	    */
+	    CT9InputLanguageInfo();
+
+	    /**
+	    * Private 2nd stage constructor
+	    */
+	    void ConstructL();
+
+	    /**
+	    *
+	    * Reserved virtuals
+	    *
+	    */
+	    void Reserved_1();
+	    void Reserved_2();
+
+	    static TBool IsInLanguageCodeList( CArrayFix<TInt>* aList , TLanguage languageToFind );
+
+    private:
+	    CPtiEngine* iPtiEngineInterface;  // Owned by this class
+	};
+
+#endif
+
+// End of File