inputmethods_plat/aknfep_uiinterface_api/inc/AknFepUiInterface.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 12 Mar 2010 15:44:07 +0200
branchRCL_3
changeset 5 a47de9135b21
parent 0 eb1f2e154e89
permissions -rw-r--r--
Revision: 201007 Kit: 201008

/*
* Copyright (c) 2007 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:              
*       Interface through which the FEP can use UI components
*
*/















#ifndef AKNFEPUIINTERFACE_H
#define AKNFEPUIINTERFACE_H

#include <e32base.h>

class MDesC16Array;
class CGulIcon;
class CAknEdwinState;
class MEikCommandObserver;
class MAknFepPenSupportInterface;
class CPlainText;
class MAknEditingStateIndicator;
class MAknFepManagerInterface;
class CAknFepIndicator;
class MObjectProvider;
class MAknFepUICtrlContainerChinese;
class MAknFepUICtrlContainerJapanese;
class CAknFepUIManagerJapanese;
class CAknFepUiInterfaceMenuPane;
class CAknFepUiInterfaceMenuBar;
class MAknFepUiInterfaceMenuObserver;
class CAknFepUiInterfaceStylusPopUpMenu;
#ifdef RD_INTELLIGENT_TEXT_INPUT
// Predictive QWERTY (XT9) changes ---->
class MAknFepUiWordPopupContent;
class MAknFepCandidatePopupCallback;
class MAknFepCandidatePopup;
// Predictive QWERTY (XT9) changes <----
#endif //RD_INTELLIGENT_TEXT_INPUT

class CAknFepUIInterface : public CBase
	{
public:
	enum
		{
		ELeftSoftkeyIndex                           =0,
        ERightSoftkeyIndex                          =2,
        EMiddleSoftkeyIndex                         =3,        
		};

public:
	IMPORT_C static CAknFepUIInterface* NewL();
	IMPORT_C ~CAknFepUIInterface();
	
public:	// menu abstraction
	virtual void SetFepMenuObserver(MAknFepUiInterfaceMenuObserver* aObserver) = 0;
	virtual CAknFepUiInterfaceMenuBar* EditorStateMenuBar(CAknEdwinState* aEditorState) = 0;
	virtual CAknFepUiInterfaceMenuBar* NewMenuBarL(MAknFepUiInterfaceMenuObserver* aObserver, TInt aHotKeyResourceId=0, TInt aMenuTitleResourceId=0) = 0;
	virtual CAknFepUiInterfaceMenuBar* ObjectProviderMenuBar(MObjectProvider* aObjectProvider) = 0;

public:	// stylus pop-up menu abstraction
    virtual CAknFepUiInterfaceStylusPopUpMenu* NewStylusPopUpMenuL(MAknFepUiInterfaceMenuObserver* aObserver, const TPoint& aPoint) = 0;
	
public: // indicator abstraction
	virtual CAknFepIndicator* NewIndicatorL() = 0;
	
public:	// use case abstraction
	virtual void LaunchConfirmationNoteL(TInt aResourceId) = 0;
	virtual void LaunchHelpTextQueryL(TInt aResourceId) = 0;
	virtual TInt LaunchCangJieOptionDlgL(TInt aResourceId, TInt& aLevel, MDesC16Array* aItems) = 0;
	virtual TInt LaunchListPopupL(TInt aResourceId, TInt& aIndex, TInt aInitialIndex, MDesC16Array* aItems, CArrayPtr<CGulIcon>* aIcons) = 0;
	virtual void UpdateSoftkeysL(TInt aResourceId, CAknEdwinState* aEditorState, MEikCommandObserver* aObserver, TInt aInputMode) = 0;
	virtual TBool SoftkeysExist() = 0;
	virtual TInt SoftkeyCommandId(TInt aPosition) = 0;
	virtual void DeleteSoftkeys() = 0;
	virtual void DrawSoftkeysNow() = 0;
	virtual void CreateSoftkeys(TInt aResourceId, MEikCommandObserver* aObserver) = 0;
	virtual TBool UpdateSoftkeyLabelL(TInt aPosition, TInt aCommandId, TInt aTextResId) = 0;
	virtual TInt CharMapDialogL(TInt aCharCase, TDes& aSpecialChars, TInt aCharSetResourceId, TBool aLockNumericKeys, TBool aShowPictographsFirst, TBool aShowNoPictographs, TBool aShowAnotherTable, TInt aAfterSctChars, TInt aResId, TBool aDisableRecentItemRow = EFalse) = 0;
	virtual TInt TextQueryDialogL(TDes& aDataText, CAknEdwinState& aEditorState, TInt aEditorFlag, TInt aResId) = 0;
	virtual CPlainText* PlainText(CAknEdwinState* aEditorState) = 0;
	virtual void UpdateEditorContext(MAknEditingStateIndicator& aIndicator, MAknFepManagerInterface& aManager) = 0;

    virtual void TouchPaneSetFepPenSupportInterface(MAknFepPenSupportInterface* aFepPenSupportInterface) = 0;
    virtual void TouchPaneAllowInputMethodActivation(TBool aValue) = 0;
    virtual void TouchPaneRefreshL() = 0;
    virtual void TouchPaneSetInputMethodIconActivated(TBool aActivated) = 0;

	virtual TBool IsDisplayDataQuery(TBool aIsFepAwareTextEditor) = 0;

public:	// APAC abstraction
	virtual MAknFepUICtrlContainerChinese* NewAknFepUICtrlContainerChineseL() = 0;
	virtual MAknFepUICtrlContainerJapanese* NewAknFepUICtrlContainerJapaneseL(CAknFepUIManagerJapanese* aUiMng) = 0;
	virtual void JapaneseKutenQueryDialogL(TInt aResId, TInt& aCharCode, TInt aTone = 0) = 0;

#ifdef RD_INTELLIGENT_TEXT_INPUT
// Predictive QWERTY (XT9) changes ---->
public:	// candidates words pop-up abstraction
	virtual MAknFepUiWordPopupContent* CreateWordPopupContentL() = 0;
	virtual MAknFepCandidatePopup* NewCandidatePopupL(MAknFepCandidatePopupCallback& aOwner) = 0;
	virtual void LaunchPredictiveSettingDialogL(TInt aDialogResId, 
																							TInt aMenuResId, 
																							TInt aConfirmationQueryResId,
																							TInt aTitlePaneResId) = 0;
#ifdef __USER_DICTIONARY_EDITING__	
	virtual void LaunchUserDictEditDialogL() = 0;
#endif //__USER_DICTIONARY_EDITING__

#ifdef FF_DUAL_LANGUAGE_SUPPORT
	virtual void LaunchWritingLanguageSettingDialogL(TInt aDialogResId, TInt aMenuResId, TInt aTitlePaneResId) = 0;
#endif //FF_DUAL_LANGUAGE_SUPPORT
// Predictive QWERTY (XT9) changes <----
#endif //RD_INTELLIGENT_TEXT_INPUT
	virtual void DeleteDialogs() = 0;
private:
	TUid iEcomDtorUid;		// used when implementation is loaded by ECom
	};

#endif