williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __COEINPUT_H__ williamr@2: #define __COEINPUT_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: // classes defined in FEPBASE, declared here williamr@2: class MCoeFepAwareTextEditor; williamr@2: class MCoeCaptionRetrieverForFep; williamr@2: williamr@2: class MObjectProvider; williamr@2: williamr@2: class TCoeInputCapabilities williamr@2: /** Describes which forms of text input are consumed by a control or view. williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: { williamr@2: public: williamr@2: /** Text input capability flags. These are used to define the text input williamr@2: capabilities of a control or view. */ williamr@2: enum williamr@2: { williamr@2: /** No text input capabilities supported. */ williamr@2: ENone =0, williamr@2: /** Supports positive western integers. */ williamr@2: EWesternNumericIntegerPositive =0x00000001, williamr@2: /** Supports negative western integers. */ williamr@2: EWesternNumericIntegerNegative =0x00000002, williamr@2: /** Supports real numbers. */ williamr@2: EWesternNumericReal =0x00000004, williamr@2: /** Supports the western alphabets. */ williamr@2: EWesternAlphabetic =0x00000008, williamr@2: /** Supports Hiragana. */ williamr@2: EJapaneseHiragana =0x00000010, williamr@2: /** Supports half width Katakana. */ williamr@2: EJapaneseKatakanaHalfWidth =0x00000020, williamr@2: /** Supports full width Katakana. */ williamr@2: EJapaneseKatakanaFullWidth =0x00000040, williamr@2: /** Supports dialable characters */ williamr@2: EDialableCharacters =0x00000080, williamr@2: /** Supports secret text. This is text in which characters appear williamr@2: as asterisks. */ williamr@2: ESecretText =0x00000100, williamr@2: /** Supports auto sentence case. williamr@2: This is text in which first word in a sentence begins with an uppercase letter, williamr@2: with all other letters and words in lowercase. */ williamr@2: EAutoSentenceCase =0x00000200, williamr@2: /** Supports non-predictive input. */ williamr@2: ENonPredictive =0x00000400, williamr@2: /** Supports all types of text. */ williamr@2: EAllText =0x01000000, williamr@2: /** Supports navigation keys. These include arrow keys, page-up, williamr@2: page-down, home, end, tab, etc. */ williamr@2: ENavigation =0x02000000 williamr@2: }; williamr@2: class MCoeFepSpecificExtensions; // to be defined by concrete FEPs, declared here williamr@2: public: williamr@2: // all these functions are exported (rather than inline) so that binary compatibility becomes easier to maintain williamr@2: IMPORT_C TCoeInputCapabilities(); williamr@2: IMPORT_C TCoeInputCapabilities(TUint aCapabilities); williamr@2: IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor, MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep); williamr@2: IMPORT_C TCoeInputCapabilities(TUint aCapabilities, MCoeFepAwareTextEditor* aFepAwareTextEditor, MCoeCaptionRetrieverForFep* aCaptionRetrieverForFep, TUid aFepUid, MCoeFepSpecificExtensions* aFepSpecificExtensions); williamr@2: IMPORT_C TCoeInputCapabilities(const TCoeInputCapabilities& aAnother); // defined so that iSpareForFutureUse is not copied williamr@2: IMPORT_C TCoeInputCapabilities& operator=(const TCoeInputCapabilities& aAnother); // defined so that iSpareForFutureUse is not copied williamr@2: IMPORT_C TBool operator==(const TCoeInputCapabilities& aAnother) const; // defined so that iSpareForFutureUse is not tested williamr@2: IMPORT_C TBool operator!=(const TCoeInputCapabilities& aAnother) const; // defined so that iSpareForFutureUse is not tested williamr@2: IMPORT_C void MergeWith(const TCoeInputCapabilities& aAnother); williamr@2: IMPORT_C void SetCapabilities(TUint aCapabilities); williamr@2: IMPORT_C TUint Capabilities() const; williamr@2: IMPORT_C TBool IsNone() const; williamr@2: IMPORT_C TBool SupportsWesternNumericIntegerPositive() const; williamr@2: IMPORT_C TBool SupportsWesternNumericIntegerNegative() const; williamr@2: IMPORT_C TBool SupportsWesternNumericReal() const; williamr@2: IMPORT_C TBool SupportsWesternAlphabetic() const; williamr@2: IMPORT_C TBool SupportsJapaneseHiragana() const; williamr@2: IMPORT_C TBool SupportsJapaneseKatakanaHalfWidth() const; williamr@2: IMPORT_C TBool SupportsJapaneseKatakanaFullWidth() const; williamr@2: IMPORT_C TBool SupportsDialableCharacters() const; williamr@2: IMPORT_C TBool SupportsSecretText() const; williamr@2: IMPORT_C TBool SupportsAutoSentenceCase() const; williamr@2: IMPORT_C TBool SupportsNonPredictive() const; williamr@2: IMPORT_C TBool SupportsAllText() const; williamr@2: IMPORT_C TBool SupportsNavigation() const; williamr@2: IMPORT_C MCoeFepAwareTextEditor* FepAwareTextEditor() const; williamr@2: IMPORT_C MCoeCaptionRetrieverForFep* CaptionRetrieverForFep() const; williamr@2: IMPORT_C MCoeFepSpecificExtensions* FepSpecificExtensions(TUid aFepUid) const; williamr@2: IMPORT_C MObjectProvider* ObjectProvider() const; williamr@2: IMPORT_C void SetObjectProvider(MObjectProvider* aObjectProvider); williamr@2: williamr@2: private: williamr@2: TUint iCapabilities; williamr@2: MCoeFepAwareTextEditor* iFepAwareTextEditor; williamr@2: MCoeCaptionRetrieverForFep* iCaptionRetrieverForFep; williamr@2: TUint iFepUid; williamr@2: MCoeFepSpecificExtensions* iFepSpecificExtensions; williamr@2: MObjectProvider* iObjectProvider; williamr@2: TAny* iSpareForFutureUse[5]; williamr@2: }; williamr@2: williamr@2: #endif // __COEINPUT_H__