epoc32/include/mw/akneditstateindicator.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 /*
     2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description: 
    15 *	Avkon Editing State Indicator Interface
    16 *
    17 *
    18 */
    19 
    20 
    21 #ifndef AKNEDITSTATEINDICATOR_H
    22 #define AKNEDITSTATEINDICATOR_H
    23 
    24 #include <coemop.h>
    25 
    26 class CAknIndicatorContainer;
    27 
    28 enum TAknEditingState
    29 	{
    30 	/** No input mode */
    31 	EStateNone,
    32 	/** Predictive upper case input mode */
    33 	ET9Upper,
    34 	/** Predictive lower case input mode */
    35 	ET9Lower,
    36 	/** Predictive shifted input mode */
    37 	ET9Shifted,
    38 	/** Numeric input mode */
    39 	ENumeric,
    40 	/** Multitap upper case input mode */
    41 	EMultitapUpper,
    42 	/** Multitap lower case input mode */
    43 	EMultitapLower,
    44 	/** Multitap shifted input mode */	
    45 	EMultitapShifted,
    46 	/** Predictive Arabic input mode */
    47     ET9Arabic,
    48 	/** Predictive Hebrew input mode */
    49     ET9Hebrew,
    50 	/** Multitap Arabic input mode */
    51     EMultitapArabic, 
    52 	/** Multitap Hebrew input mode */    
    53     EMultitapHebrew,
    54 	/** Arabic-Indic numeric input mode */
    55     EArabicIndicNumeric,
    56     /** Multitap Thai input mode */
    57     EMultitapThai,
    58     /** Predictive Thai input mode */
    59     ET9Thai,
    60     /** QWERTY shifted input mode */
    61     EQwertyShift,
    62     /** Predictive Farsi and Urdu input mode */
    63     ET9FarsiAndUrdu,
    64     /** Multitap Farsi and Urdu input mode */    
    65     EMultitapFarsiAndUrdu,
    66 	
    67 	//
    68 	// Chinese states
    69 	//
    70 	/** Pinyin input mode */
    71 	EIndicatorStatePinyin =20,
    72 	/** Zhuyin inout mode */
    73 	EIndicatorStateZhuyin,	
    74 	/** Stroke input mode */
    75 	EIndicatorStateStroke,
    76 	/** Zhuyin find input mode */	
    77 	EIndicatorStateZhuyinFind,
    78 	/** Stroke find input mode */    
    79     EIndicatorStateStrokeFind,
    80 	/** Stroke trad input mode */    
    81     EIndicatorStateStrokeTrad,
    82 	/** Cang Jie input mode */        
    83     EIndicatorStateCangJie,
    84 	/** Pinyin phrase pinput mode */
    85 	EIndicatorStatePinyinPhrase,
    86 	/** Zhuyin phrase inout mode */
    87 	EIndicatorStateZhuyinPhrase,	
    88 	/** Stroke phrase input mode */
    89 	EIndicatorStateStrokePhrase,
    90 	/** Stroke phrase trad input mode */    
    91     EIndicatorStateStrokeTradPhrase,
    92     
    93     //
    94     // Japanese states
    95 	//
    96 	/** Kanji and Hiragana input mode */
    97     EIndicatorStateHiraganaKanji = 40,  
    98     /** Hiragana input mode */
    99     EIndicatorStateHiragana,        
   100     /** Half-width Katakana input mode */
   101     EIndicatorStateHalfKatakana,    
   102     /** Full-width Katakana input mode */
   103     EIndicatorStateFullKatakana,    
   104     /** Full-width LatinUpper input mode */
   105     EIndicatorStateFullLatinUpper,  
   106     /** Full-width LatinLower input mode */
   107     EIndicatorStateFullLatinLower,  
   108     /** Full-width LatinText input mode */
   109     EIndicatorStateFullLatinText,   
   110     /** Numeric input mode */
   111     EIndicatorStateFullNumeric,     
   112     /** japanese predictive mode */
   113     EIndicatorStateJapanesePredictive,	
   114     
   115     //
   116     // Vietnamese
   117     //
   118     /** Predictive Vietnamese upper case input mode */
   119     ET9UpperVietnamese = 60,
   120     /** Predictive Vietnamese lower case input mode */
   121     ET9LowerVietnamese,
   122     /** Predictive Vietnamese shifted input mode */
   123     ET9ShiftedVietnamese,        
   124     /** Multitap Vietnamese upper case input mode */
   125     EMultitapUpperVietnamese,
   126     /** Multitap Vietnamese lower case input mode */
   127     EMultitapLowerVietnamese,
   128     /** Multitap Vietnamese shifted input mode */
   129     EMultitapShiftedVietnamese,
   130     
   131     //
   132     // Hindi
   133     //
   134     /** Multitap Hindi input mode */
   135     EIndicatorStateMultitapHindi= 80,
   136     /** Predictive Hindi input mode */
   137     EIndicatorStatePredictiveHindi,
   138     EDevanagariIndicNumeric,
   139     
   140     /** Devangari Indic numeric input mode */
   141     EIndicatorStateHindiPhoneticUpper,
   142     EIndicatorStateHindiPhoneticLower,
   143 	/** Multitap Marathi input mode */
   144     EIndicatorStateMultitapMarathi,
   145     /** Predictive Marathi input mode */
   146     EIndicatorStatePredictiveMarathi,
   147     
   148     // Korean
   149     // Multitap hangul input mode   
   150     EIndicatorStateHangul,
   151     
   152     // Auto Word Completion
   153     //
   154     /**  Auto Word Completion upper case input mode */
   155     EAutoCompleteUpper = 100,
   156     /**  Auto Word Completion lower case input mode */
   157     EAutoCompleteLower,
   158     /**  Auto Word Completion shifted input mode */
   159     EAutoCompleteShifted,
   160     /**   Auto Word Completion Hindi input mode */
   161     EAutoCompleteHindi,
   162     /**  Auto Word Completion Arabic input mode */
   163     EAutoCompleteArabic,
   164     /**  Auto Word Completion Hebrew input mode */
   165     EAutoCompleteHebrew,
   166     /**  Auto Word Completion Farsi - Urdu input mode */
   167     EAutoCompleteFarsiAndUrdu,
   168     /**  Auto Word Completion Thai input mode */
   169     EAutoCompleteThai,
   170     /** Auto Word Completion Vietnamese upper case input mode */
   171     EAutoCompleteUpperVietnamese,
   172     /** Auto Word Completion Vietnamese lower case input mode */
   173     EAutoCompleteLowerVietnamese,
   174     /** Auto Word Completion Vietnamese shifted input mode */
   175     EAutoCompleteShiftedVietnamese,
   176     // AutoComplete - End 
   177 
   178     // Fn Mode input
   179     /** Functionized input mode is activated for the subsequent key press **/
   180     EFnKeyPressed,
   181     /** Functionized input is enabled untill turned off **/
   182     EFnKeyLocked,
   183     
   184     //
   185     // Greek
   186     //
   187     /** Predictive Greek upper case input mode */
   188     ET9UpperGreek = 200,
   189     /** Predictive Greek lower case input mode */
   190     ET9LowerGreek,
   191     /** Predictive Greek shifted input mode */
   192     ET9ShiftedGreek,        
   193     /** Multitap Greek upper case input mode */
   194     EMultitapUpperGreek,
   195     /** Multitap Greek lower case input mode */
   196     EMultitapLowerGreek,
   197     /** Multitap Greek shifted input mode */
   198     EMultitapShiftedGreek,
   199     
   200     //
   201     // Cyrillic
   202     //
   203     /** Predictive Cyrillic upper case input mode */
   204     ET9UpperCyrillic = 220,
   205     /** Predictive Cyrillic lower case input mode */
   206     ET9LowerCyrillic,
   207     /** Predictive Cyrillic shifted input mode */
   208     ET9ShiftedCyrillic,        
   209     /** Multitap Cyrillic upper case input mode */
   210     EMultitapUpperCyrillic,
   211     /** Multitap Cyrillic lower case input mode */
   212     EMultitapLowerCyrillic,
   213     /** Multitap Cyrillic shifted input mode */
   214     EMultitapShiftedCyrillic,
   215     
   216     /** Hybrid indicator for easy dialing */
   217     EHybridModeLatin = 240
   218 	};
   219 
   220 /**
   221  * An abstact class of which virtual methods implementation should be provided for FEP component.
   222  */
   223 class MAknEditingStateIndicator
   224 	{
   225 public:
   226 
   227 	DECLARE_TYPE_ID(0x101F4108)
   228 
   229     /**
   230     * Sets editing state indicator state. 
   231     *
   232     * @param aState State of the editing indicator. 
   233     */
   234 	virtual void SetState(TAknEditingState aState) = 0; 
   235 	
   236     /**
   237     * Gets pointer to indicator container that contains
   238     * the editing state indicators.
   239     *
   240     * @return Indicator container of the editing indicators.
   241     */
   242 	virtual CAknIndicatorContainer* IndicatorContainer() = 0;
   243 	};
   244 
   245 /**
   246  * This function should be called from MopSupplyObject() of those 
   247  * components that supply MAknEditingStateIndicator interface for FEP.
   248  *
   249  * Retrieves an object of the same type as that encapsulated in aId.
   250  *
   251  * This function is used to allow controls to ask their owners for 
   252  * access to other objects that they own.
   253  *
   254  * Other than in the case where NULL is returned, the object returned 
   255  * must be of the same object type - that is, the @c ETypeId member of 
   256  * the object pointed to by the pointer returned by this function must
   257  * be equal to the @c iUid member of @c aId.
   258  *
   259  * @param aId An encapsulated object type ID. 
   260  * @return Encapsulated pointer to the provided object.
   261  *         Note that the encapsulated pointer may be NULL. 
   262  */
   263 inline TTypeUid::Ptr SupplyMopObject( TTypeUid aId,
   264                                   MAknEditingStateIndicator* aIndicator )
   265 	{
   266     if ( aIndicator && aId.iUid == MAknEditingStateIndicator::ETypeId )
   267         {
   268         return aId.MakePtr( aIndicator );
   269         }
   270 
   271     return TTypeUid::Null();
   272 	}
   273 
   274 #endif