--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepAvkonCandidatePopup.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepAvkonCandidatePopup.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -131,6 +131,7 @@
}
// Destroy the CBA constructed in base class, and new its own CBA
delete iPopoutCba;
+ iPopoutCba = NULL;
iPopoutCba = CEikButtonGroupContainer::NewL(
CEikButtonGroupContainer::ECba,
CEikButtonGroupContainer::EHorizontal,
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingDialog.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingDialog.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -728,12 +728,9 @@
const TDesC* appTitle = iTitlePane->Text();
iLastTitle = appTitle->AllocL();
- CleanupStack::PushL(iLastTitle);
- iStatusTitle = StringLoader::LoadLC( iTitlePaneResId,coeEnv);
+ iStatusTitle = StringLoader::LoadL( iTitlePaneResId,coeEnv);
SetTitlePaneL();
- CleanupStack::Pop(iStatusTitle);
- CleanupStack::Pop(iLastTitle);
iNaviPane = static_cast<CAknNavigationControlContainer*>(statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
Binary file fep/aknfep/conf/aknfep.confml has changed
Binary file fep/aknfep/conf/aknfep_101F876D.crml has changed
--- a/fep/aknfep/inc/AknFepKeyCatcher.h Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/inc/AknFepKeyCatcher.h Fri Mar 12 15:44:07 2010 +0200
@@ -53,11 +53,11 @@
* of all key presses. `
*/
class CAknFepKeyCatcher :
-
+ public CAknFepKeyCatcherInterface
#ifdef RD_SCALABLE_UI_V2
- public MCoeMessageMonitorObserver,
+ ,public MCoeMessageMonitorObserver
#endif //RD_SCALABLE_UI_V2
- public CAknFepKeyCatcherInterface
+
{
private:
--- a/fep/aknfep/inc/AknFepManager.h Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/inc/AknFepManager.h Fri Mar 12 15:44:07 2010 +0200
@@ -1801,6 +1801,8 @@
void LaunchLanguagesPopupListL(TBool aLaunchedByTouchWin = EFalse);
void LaunchRecognitionWithDictionaryPopupListL();
+ void LaunchWritingSpeedPopupListL();
+ void LaunchGuidingLinePopupListL();
TBool IsInputModeAvailable(TInt aMode) const;
TInt NewInputModeAfterLanguageChange() const;
--- a/fep/aknfep/inc/AknFepPluginManager.h Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/inc/AknFepPluginManager.h Fri Mar 12 15:44:07 2010 +0200
@@ -81,7 +81,10 @@
EPluginPromptChanged,
EPluginShowCandidate,
EPluginShowTooltip,
- EPluginHideTooltip
+ EPluginHideTooltip,
+ EPluginSwitchToPortrait,
+ EPluginSwitchToLandscape,
+ EPluginSwitchMode
};
/**
@@ -327,6 +330,7 @@
void ResetCandidateList();
+ void UpdateFSQIndicator();
void UpdateITUTIndicator();
void SetITUTSpellingStateL(TBool aState);
@@ -493,6 +497,8 @@
inline void SetInEditWordQueryFlag(TBool aIsEditWordQueryDlg );
void LaunchPenInputLanguageSelectionL( TBool aLaunchedByTouchWin = EFalse );
void LaunchPenInputRecognitionWithDictionarySelectionL();
+ void LaunchPenInputWritingSpeedSelectionL();
+ void LaunchPenInputGuidingLineSelectionL();
inline TBool IsInGlobleNoteEditor();
void SetMenuState(TBool aUpdateEditor = ETrue);
void ResetMenuState(TBool aUnDim = ETrue);
@@ -818,7 +824,7 @@
* @param aParam
* @return None
*/
- void NotifyAppUiImeTouchWndState( const TBool aTouchState );
+ void NotifyAppUiImeTouchWndStateL( const TBool aTouchState );
/**
* Check if current editor support partial screen IMEs
--- a/fep/aknfep/inc/AknFepSharedDataInterface.h Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/inc/AknFepSharedDataInterface.h Fri Mar 12 15:44:07 2010 +0200
@@ -525,6 +525,25 @@
TInt DefaultOnScreenVKB();
#endif
+ /**
+ * Returns a value of default arabic finger hwr orientation.
+ *
+ * @since 5.2
+ * @return 0 is portrait.
+ * 1 is landscape.
+ */
+ TInt DefaultArabicFingerHwrOrientation() const;
+
+ /**
+ * Set a value of default arabic finger hwr orientation.
+ *
+ * @since 5.2
+ * @param aValue new value set to default arabic finger hwr orientation shared data item which
+ * represents the default orientation.
+ * 0 is portrait.
+ * 1 is landscape.
+ */
+ void SetDefaultArabicFingerHwrOrientation(TInt aValue);
private:
/**
* C++ Constructor
--- a/fep/aknfep/inc/aknfepuispellcontainer.h Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/inc/aknfepuispellcontainer.h Fri Mar 12 15:44:07 2010 +0200
@@ -54,7 +54,7 @@
* @return A Pointer to new dictionary container.
*/
static CAknFepUiSpellContainer* NewL(const TInt aEditorFlag, const TInt aEditorCase,
- const TInt aEditorSCTResID);
+ const TInt aEditorSCTResID, const TBool aSplitEditor );
/**
* Destructor.
@@ -77,7 +77,8 @@
* @param aRect Frame rectangle for container.
* @param aModel Data model of the application.
*/
- void ConstructL(const TInt aEditorFlag, const TInt aEditorCase, const TInt aEditorSCTResID);
+ void ConstructL(const TInt aEditorFlag, const TInt aEditorCase,
+ const TInt aEditorSCTResID, const TBool aIsSplitEditor );
private: // Functions from base classes
--- a/fep/aknfep/inc/aknfepuispellinputpane.h Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/inc/aknfepuispellinputpane.h Fri Mar 12 15:44:07 2010 +0200
@@ -51,7 +51,8 @@
static CAknFepUiSpellInputPane* NewL( CCoeControl* aParent,
const TInt aEditorFlag,
const TInt aEditorCase,
- const TInt aEditorSCTResID );
+ const TInt aEditorSCTResID,
+ const TBool aIsSplitEditor );
/**
* Destructor.
@@ -119,7 +120,7 @@
* @param aRect Frame rectangle for container.
*/
void ConstructL( CCoeControl* aParent, const TInt aEditorFlag,
- const TInt aEditorCase, const TInt aEditorSCTResID );
+ const TInt aEditorCase, const TInt aEditorSCTResID, const TBool aIsSplitEditor );
private: // Functions from base classes
--- a/fep/aknfep/inc/aknfepuserdbdlg.h Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/inc/aknfepuserdbdlg.h Fri Mar 12 15:44:07 2010 +0200
@@ -101,6 +101,15 @@
* @return none
*/
void SizeChanged();
+ /**
+ * Refresh user db view when the screen size was changed, will
+ * be called by SizeChanged.
+ *
+ * @since S60 vTB9.1
+ * @param none
+ * @return none
+ */
+ void SizeChangedL();
/**
* Return control to application framework.
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingeneric.inl Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingeneric.inl Fri Mar 12 15:44:07 2010 +0200
@@ -33,13 +33,14 @@
const TInt KVkbUiId = 0x10282359;
const TInt KFsqUiId = 0x2001114D;
const TInt KSsqUiId = 0x2001E2BB;
-
+const TInt KFingerHwrUiId = 0x2001E2C4;
inline CPluginFepManagerBase* CPenInputImePluginGeneric::GetCurrentUi()
{
switch ( iPenInputMode )
{
case EPluginInputModeHwr:
case EPluginInputModeVkb:
+ case EPluginInputModeFingerHwr:
case EPluginInputModeFSQ:
return iPluginUiManager;
default:
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingeneric.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingeneric.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -50,7 +50,7 @@
_LIT(KVkbImeName, "Generic VKB");
_LIT(KFSQImeName, "Generic FSQ");
_LIT(KSSQImeName, "Split View Qwerty");
-
+_LIT(KFingerHwrImeName, "Generic Fingerhwr");
_LIT(KHwrResourceFormatPattern, "peninputhwrwindowconfiginfo_*.rsc");
_LIT(KVkbResourceFormatPattern, "peninputvkbwindowconfiginfo_*.rsc");
_LIT(KSsqResourceFormatPattern, "peninputssqwinconfiginfo_*.rsc");
@@ -207,6 +207,11 @@
}
}
break;
+ case EPluginInputModeFingerHwr:
+ {
+ layoutId.iUid = KFingerHwrUiId;
+ }
+ break;
default:
return NULL;
}
@@ -266,6 +271,10 @@
{
mode = EPluginInputModeFSQ;
}
+ else if( aLayoutId == KFingerHwrUiId )
+ {
+ mode = EPluginInputModeFingerHwr;
+ }
else
{
return NULL;
@@ -356,6 +365,11 @@
id = KFsqUiId;
}
break;
+ case EPluginInputModeFingerHwr:
+ {
+ id = KFingerHwrUiId;
+ }
+ break;
default:
{
id = KInvalidImplId;
@@ -452,7 +466,7 @@
TBool vkb = EFalse;
TBool fsq = EFalse;
TBool ssq = EFalse;
-
+ TBool fingerhwr = EFalse;
CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
REComSession::ListImplementationsL(id, infoArray);
@@ -480,6 +494,10 @@
{
ssq = ETrue;
}
+ if (infoArray[i]->ImplementationUid().iUid == KFingerHwrUiId )
+ {
+ fingerhwr = ETrue;
+ }
}
TImePlguinImplDetail detail;
@@ -592,6 +610,14 @@
}
delete dir;
}
+ if( fingerhwr )
+ {
+ detail.iMode = EPluginInputModeFingerHwr;
+ detail.iMeritValue = EImeMerit_Preferred;
+ detail.iDisplayName.Copy(KFingerHwrImeName());
+ detail.iLanguage = ELangArabic;
+ aSupportList.Append(detail);
+ }
CleanupStack::PopAndDestroy(&infoArray); // infoArray
@@ -735,6 +761,7 @@
switch ( aMode )
{
+ case EPluginInputModeFingerHwr:
case EPluginInputModeHwr:
{
return iPluginUiManager = CPluginFepManagerHwr::NewL(*this, iPenInputServer);
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -308,6 +308,31 @@
}
break;
}
+ case ECmdPenInputFingerMatchIndicator:
+ {
+ TFepIndicatorInfo* pIndicatorData =
+ reinterpret_cast<TFepIndicatorInfo*>( aParam );
+
+ HBufC8* buf = HBufC8::NewLC(4 * sizeof(TInt));
+ TPtr8 bufPtr = buf->Des();
+
+ RDesWriteStream writeStream;
+ writeStream.Open(bufPtr);
+ CleanupClosePushL(writeStream);
+
+ writeStream.WriteInt32L(pIndicatorData->iIndicatorImgID);
+ writeStream.WriteInt32L(pIndicatorData->iIndicatorMaskID);
+ writeStream.WriteInt32L(pIndicatorData->iIndicatorTextImgID);
+ writeStream.WriteInt32L(pIndicatorData->iIndicatorTextMaskID);
+
+ writeStream.CommitL();
+
+ SendCommandToServer( aCommandId, bufPtr );
+
+ CleanupStack::PopAndDestroy(&writeStream);
+ CleanupStack::PopAndDestroy(buf);
+ }
+ break;
default:
SendCommandToServer( aCommandId, aParam );
break;
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitut.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitut.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -95,7 +95,8 @@
_LIT(KDevanagiriResFileSplit, "peninputsplititutconfig_devanagari.rsc");
const TScriptPair KSupportScripts[] =
{
- {LatinLangs, 50, CPenInputImePluginItut::ELatinLang},
+ {LatinLangs, sizeof(LatinLangs)/sizeof(TInt),
+ CPenInputImePluginItut::ELatinLang},
{CyrillicLangs, 3, CPenInputImePluginItut::ECyrillicLang},
{GreekLangs, 2, CPenInputImePluginItut::EGreekLang},
{HebrewLangs, 1, CPenInputImePluginItut::EHebrewLang},
--- a/fep/aknfep/src/AknFepLanguageManager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/src/AknFepLanguageManager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -414,9 +414,10 @@
TUid dtor_ID_Key;
CAknFepPenInputImePlugin* pIme = NULL;
- TRAP_IGNORE(pIme = REINTERPRET_CAST(CAknFepPenInputImePlugin*,
- REComSession::CreateImplementationL(TUid::Uid(aImeImplId), dtor_ID_Key, aPenServer)));
-
+ TRAP_IGNORE(
+ TAny* obj = REComSession::CreateImplementationL(TUid::Uid(aImeImplId), dtor_ID_Key, aPenServer);
+ pIme = REINTERPRET_CAST(CAknFepPenInputImePlugin*, obj );
+ );
if( pIme )
{
pIme->iDtor_ID_Key = dtor_ID_Key;
--- a/fep/aknfep/src/AknFepManager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/src/AknFepManager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -180,7 +180,7 @@
const TKeyEvent KAknCcpuCopyEvent = {EKeyF18, EEikCmdEditCopy, EModifierCtrl, 1}; // Copy event for AknCcpuSupport
const TKeyEvent KAknCcpuCutEvent = {EKeyF18, EEikCmdEditCut, EModifierCtrl, 1}; // Cut event for AknCcpuSupport
-const TInt KMaxMenuSize = 25;
+const TInt KMaxMenuSize = 28;
const TInt KEditorMenuPermitedSend[KMaxMenuSize] =
{
EJapanFepCmdModeHiragana,
@@ -192,6 +192,9 @@
EChinFepCmdModePinyin,
EChinFepCmdModeZhuyin,
EChinFepCmdModeStroke,
+ EChinFepCmdModePinyinPhrase,
+ EChinFepCmdModeZhuyinPhrase,
+ EChinFepCmdModeStrokePhrase,
EAknCmdT9PredictiveT9Off,
EAknCmdMultitapPredictiveT9On,
EJapanFepCmdMultitapPredictiveT9On,
@@ -1487,18 +1490,7 @@
#ifdef RD_INTELLIGENT_TEXT_INPUT
else if (IsAutoCompleteOn())
{
- TInt tailLength = 0;
- iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength,
- &tailLength );
- if(tailLength > 0)
- {
- TryRemoveNoMatchesIndicatorL();
- RemoveSuggestedAdvanceCompletionL();
- SimulateKeyEventL(EKeyF19);
- UpdateCbaL(NULL);
- response=EKeyWasConsumed;
- }
- else if(FepUI()->HandleKeyL(aCode, aLength))
+ if(FepUI()->HandleKeyL(aCode, aLength))
{
if( EPtiKeyboardHalfQwerty == KeyboardLayout()
&& iWesternPredictive
@@ -1506,6 +1498,7 @@
{
ClearFlag(CAknFepManager::EFlagChangeInputMode);
}
+ TInt tailLength = 0;
iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
if(tailLength > 0)
{
@@ -3817,8 +3810,7 @@
{
TBool JavaNumericEditor = EFalse;
TUint ConstraintValue = MIDPConstraint();
- if((ConstraintValue & ESplConstraintMask) == ESplNumeric ||
- (ConstraintValue & ESplConstraintMask) == ESplDecimal)
+ if((ConstraintValue & ESplConstraintMask) == ESplNumeric )
JavaNumericEditor = ETrue;
return JavaNumericEditor;
@@ -4005,6 +3997,8 @@
RPointerArray<CEikMenuPaneItem> editorMenuItemList;
CEikMenuPane* editorMenuPane = new (ELeave) CEikMenuPane((MEikMenuObserver*)(this));
+ CleanupDeletePushL( editorMenuPane );
+
editorMenuPane->SetItemArrayOwnedExternally(EFalse);
TResourceReader reader;
CCoeEnv::Static()->CreateResourceReaderLC(reader, R_AVKON_TOUCH_INDICATOR_EDIT_MODE_MENU);//
@@ -4069,12 +4063,11 @@
iFepPluginManager->CurrentPluginInputFepUI()->HandleCommandL(
ECmdPenInputSendEditMenuData, reinterpret_cast<TInt>(iEditorCommandList));
}
-
- editorMenuItemList.ResetAndDestroy();
- delete editorMenuPane;
- editorMenuPane = NULL;
- }
-
+ }
+
+ editorMenuItemList.ResetAndDestroy();
+ CleanupStack::PopAndDestroy(editorMenuPane);
+
return count;
}
#endif // RD_SCALABLE_UI_V2
@@ -4407,16 +4400,19 @@
// --- commands for Chinese ---
case EChinFepCmdModePinyin:
+ case EChinFepCmdModePinyinPhrase:
SendEventsToPluginManL( EPluginCloseMode, EFalse );
HandleChangeInFocus();
TryChangeModeL(EPinyin);
break;
case EChinFepCmdModeZhuyin:
+ case EChinFepCmdModeZhuyinPhrase:
SendEventsToPluginManL( EPluginCloseMode, EFalse );
HandleChangeInFocus();
TryChangeModeL(EZhuyin);
break;
case EChinFepCmdModeStroke:
+ case EChinFepCmdModeStrokePhrase:
SendEventsToPluginManL( EPluginCloseMode, EFalse );
HandleChangeInFocus();
TryChangeModeL(EStroke);
@@ -4642,7 +4638,7 @@
LaunchEditWordQueryL();
break;
case EAknCmdT9PredictiveInsertWord:
- SetStopProcessFocus(ETrue);
+ SetStopProcessFocus(ETrue, EFalse);
HandleChangeInFocus();
LaunchInsertWordQueryL(KNullDesC, TCursorSelection(0,0));
SetStopProcessFocus(EFalse);
@@ -4955,7 +4951,46 @@
HandleChangeInFocus();
iStopProcessFocus = EFalse;
}
- break;
+ break;
+ case EPenInputCmdHwrInputToPortrait:
+ {
+ SendEventsToPluginManL( EPluginCloseMode, EFalse );
+ HandleChangeInFocus();
+ SendEventsToPluginManL( EPluginSwitchToPortrait);
+ }
+ break;
+ case EPenInputCmdHwrInputToLandscape:
+ {
+ SendEventsToPluginManL( EPluginCloseMode, EFalse );
+ HandleChangeInFocus();
+ SendEventsToPluginManL( EPluginSwitchToLandscape);
+ }
+ break;
+ case EPenInputCmdSwitchToVkeyBasedInput:
+ {
+ SendEventsToPluginManL( EPluginCloseMode, EFalse );
+ HandleChangeInFocus();
+ SendEventsToPluginManL( EPluginSwitchMode);
+ }
+ break;
+ case EPenInputCmdWritingSpeed:
+ {
+ SetStopProcessFocus(ETrue);
+ HandleChangeInFocus();
+ LaunchWritingSpeedPopupListL();
+ HandleChangeInFocus();
+ iStopProcessFocus = EFalse;
+ }
+ break;
+ case EPenInputCmdGuidingLine:
+ {
+ SetStopProcessFocus(ETrue);
+ HandleChangeInFocus();
+ LaunchGuidingLinePopupListL();
+ HandleChangeInFocus();
+ iStopProcessFocus = EFalse;
+ }
+ break;
default:
break;
}
@@ -5453,6 +5488,11 @@
posToInsertItem = numOfMenuItems;
}
}
+ TInt inputOptionsPos = 0;
+ if ( aMenuPane->MenuItemExists( EEikCmdEditPaste, inputOptionsPos ) )
+ {
+ inputOptionsPos++;
+ }
//Now we have the position at which we need to insert the menu item.
if (
#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
@@ -5460,7 +5500,7 @@
#endif
IsLanguageSupportPrediction() && !(iAknEditorFlags & EAknEditorFlagNoT9))
{
- AddPredictiveModeOptionsL(aMenuPane, posToInsertItem);
+ AddPredictiveModeOptionsL( aMenuPane, inputOptionsPos );
}
else
{
@@ -7277,6 +7317,7 @@
SendEventsToPluginManL( EPluginFocusChanged,
iGainForeground && focusCtrl!=0 && focusCtrl->IsFocused());
}
+ iNotifyPlugin = ETrue;
}
#endif // RD_SCALABLE_UI_V2
if( PtiEngine() && FepAwareTextEditor() )
@@ -8730,8 +8771,9 @@
}
#ifdef RD_SCALABLE_UI_V2
if (iFepFullyConstructed &&
- iFepPluginManager->PluginInputMode() == EPluginInputModeItut &&
- !(EditorState()->Flags() & EAknEditorFlagEnablePartialScreen))
+ iFepPluginManager->PluginInputMode() == EPluginInputModeItut )
+ // if ( iFepFullyConstructed &&
+ // (( iFepPluginManager->PluginInputMode() == EPluginInputModeItut ) && IsChineseInputLanguage()))
{
iFepPluginManager->SpellText(textBuf);
iFepPluginManager->DisplaySpellEditor(textQueryEditorFlag, aInitialText,
@@ -9161,6 +9203,39 @@
}
}
+ // Switch menu whether input language is supported related chinese phrase
+ MPtiLanguage* ptilang = iPtiEngine->GetLanguage(
+ iLanguageCapabilities.iInputLanguageCode );
+ if ( ptilang )
+ {
+ if( iMode != EPinyin && IsModePermitted( EPinyin ) )
+ {
+ if( ptilang->HasInputMode( EPtiEnginePinyinByPhrase ) )
+ {
+ aMenuPane->SetItemDimmed( EChinFepCmdModePinyin, ETrue );
+ aMenuPane->SetItemDimmed( EChinFepCmdModePinyinPhrase, EFalse );
+ }
+ }
+
+ if( iMode != EZhuyin && IsModePermitted( EZhuyin ) )
+ {
+ if( ptilang->HasInputMode( EPtiEngineZhuyinByPhrase ) )
+ {
+ aMenuPane->SetItemDimmed( EChinFepCmdModeZhuyin, ETrue );
+ aMenuPane->SetItemDimmed( EChinFepCmdModeZhuyinPhrase, EFalse );
+ }
+ }
+
+ if( iMode != EStroke && IsModePermitted( EStroke ) )
+ {
+ if( ptilang->HasInputMode( EPtiEngineStrokeByPhrase ) )
+ {
+ aMenuPane->SetItemDimmed( EChinFepCmdModeStroke, ETrue );
+ aMenuPane->SetItemDimmed( EChinFepCmdModeStrokePhrase, EFalse );
+ }
+ }
+ }
+
if (IsAbleToLaunchSmiley())
{
TInt index;
@@ -12596,16 +12671,21 @@
#ifdef RD_SCALABLE_UI_V2
TBool fingerItutIndicator = ( iFepPluginManager &&
iFepPluginManager->PluginInputMode() == EPluginInputModeItut );
+ TBool fingerFSQIndicator = ( iFepPluginManager &&
+ iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ );
#else
TBool fingerItutIndicator = EFalse;
+ TBool fingerFSQIndicator = EFalse;
#endif
if ( IsHybridAplhaEditor() && !iHybridAplphaChangedToAlphanumeric )
{
newState = EHybridModeLatin;
}
+ //else if (!(iAknEditorFlags & EAknEditorFlagNoEditIndicators)
+ // || findPaneIndicator || fingerItutIndicator)
else if (!(iAknEditorFlags & EAknEditorFlagNoEditIndicators)
- || findPaneIndicator || fingerItutIndicator)
+ || findPaneIndicator || fingerItutIndicator || fingerFSQIndicator)
{
#ifdef RD_SCALABLE_UI_V2
@@ -15664,7 +15744,26 @@
}
#endif //RD_SCALABLE_UI_V2
}
-
+void CAknFepManager::LaunchWritingSpeedPopupListL()
+ {
+#ifdef RD_SCALABLE_UI_V2
+ if( iFepPluginManager && (iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr) )
+ {
+ iFepPluginManager->LaunchPenInputWritingSpeedSelectionL();
+ return;
+ }
+#endif //RD_SCALABLE_UI_V2
+ }
+void CAknFepManager::LaunchGuidingLinePopupListL()
+ {
+#ifdef RD_SCALABLE_UI_V2
+ if( iFepPluginManager && (iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr) )
+ {
+ iFepPluginManager->LaunchPenInputGuidingLineSelectionL();
+ return;
+ }
+#endif //RD_SCALABLE_UI_V2
+ }
void CAknFepManager::LoadIconL( CArrayPtr<CGulIcon>* aIcons,
TInt aBitmapId,
TInt aMaskId )
--- a/fep/aknfep/src/AknFepPluginManager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/src/AknFepPluginManager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -105,6 +105,8 @@
const TInt KDefaultCandidateArraySize = 16;
const TInt KNumberOfCases = 6;
+ _LIT_SECURE_ID(KPhoneSecureId, 0x100058b3);
+
#define iAvkonAppUi ((CAknAppUi*)CEikonEnv::Static()->EikAppUi())
TUid AppUidFromWndGroupIdL(TInt aWndGrpId)
{
@@ -581,6 +583,10 @@
subrange);
}
SyncIndicatorWithPluginRangeL();
+ if ( PluginInputMode() == EPluginInputModeFSQ )
+ {
+ UpdateFSQIndicator();
+ }
}
break;
case ESignalLayoutUIChanged:
@@ -782,7 +788,10 @@
if( iPluginInputMode == EPluginInputModeNone &&
aEventType != EPluginEditorActivate &&
aEventType != EPluginActivate &&
- aEventType != EPluginResourceChanged )
+ aEventType != EPluginResourceChanged &&
+ aEventType != EPluginSwitchMode &&
+ aEventType != EPluginSwitchToPortrait &&
+ aEventType != EPluginSwitchToLandscape)
{
return;
}
@@ -888,6 +897,10 @@
case EPluginUpdateIndicator:
{
UpdateITUTIndicator();
+ if ( PluginInputMode() == EPluginInputModeFSQ )
+ {
+ UpdateFSQIndicator();
+ }
}
break;
case EPluginPreview:
@@ -919,6 +932,50 @@
HideTooltipOnFSQL();
}
break;
+ case EPluginSwitchToPortrait:
+ {
+ iSharedData.SetDefaultArabicFingerHwrOrientation(0);
+ TryChangePluginInputModeByModeL(EPluginInputModeFingerHwr,
+ EPenInputOpenManually,
+ ERangeInvalid);
+ }
+ break;
+ case EPluginSwitchToLandscape:
+ {
+ iSharedData.SetDefaultArabicFingerHwrOrientation(1);
+ TryChangePluginInputModeByModeL(EPluginInputModeFingerHwr,
+ EPenInputOpenManually,
+ ERangeInvalid);
+ }
+ break;
+ case EPluginSwitchMode:
+ {
+ iPreferredUiMode = EFalse;
+ TPluginInputMode defaultMode = EPluginInputModeNone;
+ TPixelsTwipsAndRotation size;
+ CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
+
+ TBool landscape = size.iPixelSize.iWidth > size.iPixelSize.iHeight;
+ if(iSharedData.AutoRotateEnabled())
+ {
+ if(landscape)
+ {
+ defaultMode = EPluginInputModeVkb;
+ }
+ else
+ {
+ defaultMode = EPluginInputModeItut;
+ }
+ }
+ else
+ {
+ defaultMode = EPluginInputModeItut;
+ }
+ TryChangePluginInputModeByModeL(defaultMode,
+ EPenInputOpenManually,
+ ERangeInvalid);
+ }
+ break;
default:
break;
}
@@ -1008,19 +1065,23 @@
iPenInputServer.SetDisabledLayout( EPluginInputModeFSQ );
}
- if ( aSuggestMode == EPluginInputModeFSQ )
+ if ( aSuggestMode == EPluginInputModeFSQ || (aSuggestMode == EPluginInputModeFingerHwr
+ && iSharedData.InputTextLanguage() == ELangArabic
+ && iSharedData.AutoRotateEnabled()))
{
TPluginInputMode tempInputMode = iPluginInputMode;
- iPluginInputMode = EPluginInputModeFSQ;
+ iPluginInputMode = aSuggestMode;
- if (disableFSQ )
+ if (disableFSQ && (aSuggestMode != EPluginInputModeFingerHwr))
{
iPluginInputMode = tempInputMode;
aSuggestMode = EPluginInputModeItut;
}
else
{
- if ( !iSharedData.AutoRotateEnabled() )
+ if ( (!iSharedData.AutoRotateEnabled()
+ && aSuggestMode == EPluginInputModeFSQ) ||
+ (aSuggestMode == EPluginInputModeFingerHwr))
{
iFepMan.SetNotifyPlugin( EFalse );
iAvkonAppUi->SetOrientationL( CAknAppUiBase::EAppUiOrientationLandscape );
@@ -1037,6 +1098,28 @@
}
}
}
+ else if(aSuggestMode == EPluginInputModeFingerHwr
+ && iSharedData.InputTextLanguage() == ELangArabic
+ && !iSharedData.AutoRotateEnabled())
+ {
+ TInt hOrient = iSharedData.DefaultArabicFingerHwrOrientation();
+ if(landscape)
+ {
+ if(!hOrient)
+ {
+ iAvkonAppUi->SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait );
+ iOrientationChanged = ETrue;
+ }
+ }
+ else
+ {
+ if(hOrient)
+ {
+ iAvkonAppUi->SetOrientationL( CAknAppUiBase::EAppUiOrientationLandscape );
+ iOrientationChanged = ETrue;
+ }
+ }
+ }
else if ( iOrientationChanged )
{
iFepMan.SetNotifyPlugin( EFalse );
@@ -1114,7 +1197,7 @@
}
// Notify application touch window state
- NotifyAppUiImeTouchWndState( ETrue );
+ NotifyAppUiImeTouchWndStateL( ETrue );
rtn = ETrue;
}
@@ -1174,19 +1257,21 @@
if( aRestore && !iSharedData.QwertyInputMode() && iFepMan.InputMode() == ELatin)
{
RestorePredictStateL();
- if ( iFepMan.EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor )
- {
- if( AknTextUtils::NumericEditorDigitType() == EDigitTypeEasternArabicIndic ||
- AknTextUtils::NumericEditorDigitType() == EDigitTypeDevanagari ||
- AknTextUtils::NumericEditorDigitType() == EDigitTypeArabicIndic )
- {
- iFepMan.TryChangeModeL( ENativeNumber );
- }
- else
- {
- iFepMan.TryChangeModeL( ENumber );
- }
- }
+
+ // Fix bug EAHN-82C9M7, comment out the following code
+ //if ( iFepMan.EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor )
+ // {
+ // if( AknTextUtils::NumericEditorDigitType() == EDigitTypeEasternArabicIndic ||
+ // AknTextUtils::NumericEditorDigitType() == EDigitTypeDevanagari ||
+ // AknTextUtils::NumericEditorDigitType() == EDigitTypeArabicIndic )
+ // {
+ // iFepMan.TryChangeModeL( ENativeNumber );
+ // }
+ // else
+ // {
+ // iFepMan.TryChangeModeL( ENumber );
+ // }
+ // }
}
//iFepMan.UpdateCbaL( NULL ); //pls refer to bug ESZG-7G7CGF
@@ -1236,7 +1321,8 @@
}
}
- if ( iPluginInputMode == EPluginInputModeFSQ && iOrientationChanged
+ if ( (iPluginInputMode == EPluginInputModeFSQ || (iPluginInputMode == EPluginInputModeFingerHwr
+ && iSharedData.InputTextLanguage() == ELangArabic)) && iOrientationChanged
&& !iITISettingDialogOpen )
{
// This TRAP_IGNORE is essential to fix bug ECJA-7JDCKR, never delete it
@@ -1245,7 +1331,7 @@
}
// Notify editor the touch window has been closed
- NotifyAppUiImeTouchWndState( EFalse );
+ NotifyAppUiImeTouchWndStateL( EFalse );
iCharStartPostion = KInvalidValue;
}
@@ -1264,7 +1350,8 @@
}
if ( iPluginInputMode == EPluginInputModeFSQ &&
- !iSharedData.AutoRotateEnabled())
+ !iSharedData.AutoRotateEnabled() || (iPluginInputMode == EPluginInputModeFingerHwr
+ && iSharedData.InputTextLanguage() == ELangArabic))
{
return;
}
@@ -1615,7 +1702,8 @@
break;
case EKeyEscape:
{
- ClosePluginInputUiL( ETrue );
+ ClosePluginInputUiL( ETrue );
+ iFepMan.SetNotifyPlugin( EFalse );
DestroySpellEditor();
}
break;
@@ -1759,21 +1847,84 @@
}
// add some input mode in option menu
- TBool isSplitView = IsEditorSupportSplitIme();
- if(isSplitView)
+
+ TInt disabledInputMode = iPenInputServer.DisabledLayout();
+ TInt curInputMode = iLangMan.CurrentImePlugin()->CurrentMode();
+ TBool isChinese = iFepMan.IsChineseInputLanguage();
+
+ if ( !isChinese && ( curInputMode == EPluginInputModeItut ) &&
+ !( disabledInputMode & EPluginInputModeFSQ ))
+ {
+ aMenuPane->SetItemDimmed( EPeninputCmdFSQ, EFalse );
+ }
+
+ if ( !isChinese && ( curInputMode == EPluginInputModeFSQ ) &&
+ !( disabledInputMode & EPluginInputModeItut ))
{
- TInt disabledMode = iPenInputServer.DisabledLayout();
- TInt curMode = iLangMan.CurrentImePlugin()->CurrentMode();
- if(!(disabledMode & EPluginInputModeFSQ) && curMode != EPluginInputModeFSQ )
- {
- aMenuPane->SetItemDimmed(EPeninputCmdFSQ, EFalse);
- }
- if(!(disabledMode & EPluginInputModeItut) && curMode != EPluginInputModeItut)
- {
- aMenuPane->SetItemDimmed(EPenInputCmdVITUT, EFalse);
- }
-
+ aMenuPane->SetItemDimmed(EPenInputCmdVITUT, EFalse);
}
+ //For arabic finger hwr input orientation.
+ TInt index = 0;
+ if(iPluginInputMode == EPluginInputModeFingerHwr
+ && (ELangArabic == iSharedData.InputTextLanguage())
+ && (!iSharedData.AutoRotateEnabled()))
+ {
+ TBool disableMenu = ETrue;
+ TPixelsTwipsAndRotation size;
+ CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
+ TBool landscape = size.iPixelSize.iWidth > size.iPixelSize.iHeight;
+ if(landscape && aMenuPane->MenuItemExists(EPenInputCmdHwrInputToPortrait, index))
+ {
+ disableMenu = EFalse;
+ aMenuPane->SetItemDimmed(EPenInputCmdHwrInputToPortrait,disableMenu);
+ }
+ index = 0;
+ if(!landscape && aMenuPane->MenuItemExists(EPenInputCmdHwrInputToLandscape, index))
+ {
+ disableMenu = EFalse;
+ aMenuPane->SetItemDimmed(EPenInputCmdHwrInputToLandscape,disableMenu);
+ }
+ }
+
+ //For arabic finger hwr switch to key based input.
+ index = 0;
+ if(aMenuPane->MenuItemExists(
+ EPenInputCmdSwitchToVkeyBasedInput, index))
+ {
+ TBool disableMenu = ETrue;
+ if(iPluginInputMode == EPluginInputModeFingerHwr
+ && (ELangArabic == iSharedData.InputTextLanguage()))
+ {
+ disableMenu = EFalse;
+ }
+ aMenuPane->SetItemDimmed(EPenInputCmdSwitchToVkeyBasedInput,disableMenu);
+ }
+ //For arabic finger hwr writing speed.
+ index = 0;
+ if(aMenuPane->MenuItemExists(
+ EPenInputCmdWritingSpeed, index))
+ {
+ TBool disableMenu = ETrue;
+ if(iPluginInputMode == EPluginInputModeFingerHwr
+ && (ELangArabic == iSharedData.InputTextLanguage()))
+ {
+ disableMenu = EFalse;
+ }
+ aMenuPane->SetItemDimmed(EPenInputCmdWritingSpeed,disableMenu);
+ }
+ //For arabic finger hwr guide line.
+ index = 0;
+ if(aMenuPane->MenuItemExists(
+ EPenInputCmdGuidingLine, index))
+ {
+ TBool disableMenu = ETrue;
+ if(iPluginInputMode == EPluginInputModeFingerHwr
+ && (ELangArabic == iSharedData.InputTextLanguage()))
+ {
+ disableMenu = EFalse;
+ }
+ aMenuPane->SetItemDimmed(EPenInputCmdGuidingLine,disableMenu);
+ }
iLangMan.CurrentImePlugin()->DynInitMenuPaneL(aMenuPane);
}
@@ -2702,6 +2853,35 @@
}
// ---------------------------------------------------------------------------
+// CAknFepPluginManager::LaunchPenInputWritingSpeedSelectionL
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+void CAknFepPluginManager::LaunchPenInputWritingSpeedSelectionL()
+ {
+ //record langauge
+ CPenInputGSInterface* setting = CPenInputGSInterface::NewL();
+ CleanupStack::PushL(setting);
+ setting->ShowWritingSpeedPageL();
+ CleanupStack::PopAndDestroy(setting);
+ TInt inputLanguage = iSharedData.InputTextLanguage();
+ }
+
+// ---------------------------------------------------------------------------
+// CAknFepPluginManager::LaunchPenInputGuideLineSelectionL
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+void CAknFepPluginManager::LaunchPenInputGuidingLineSelectionL()
+ {
+ //record langauge
+ CPenInputGSInterface* setting = CPenInputGSInterface::NewL();
+ CleanupStack::PushL(setting);
+ setting->ShowGuideLinePageL();
+ CleanupStack::PopAndDestroy(setting);
+ TInt inputLanguage = iSharedData.InputTextLanguage();
+ }
+// ---------------------------------------------------------------------------
// CAknFepPluginManager::LaunchPenInputSettingL
// (other items were commented in a header)
// ---------------------------------------------------------------------------
@@ -3291,11 +3471,13 @@
case EPluginInputModeHwr:
{
if( iFepMan.IsSupportsSecretText() ||
- ( ( aSuggestMode == EPluginInputModeFSc ||
+ (( ( aSuggestMode == EPluginInputModeFSc ||
aSuggestMode == EPluginInputModeFingerHwr) &&
- iSharedData.InputTextLanguage() != ELangPrcChinese &&
- iSharedData.InputTextLanguage() != ELangTaiwanChinese &&
- iSharedData.InputTextLanguage() != ELangHongKongChinese ))
+ !(iSharedData.InputTextLanguage() == ELangPrcChinese ||
+ iSharedData.InputTextLanguage() == ELangTaiwanChinese ||
+ iSharedData.InputTextLanguage() == ELangHongKongChinese)) &&
+ ((aSuggestMode == EPluginInputModeFingerHwr &&
+ iSharedData.InputTextLanguage() != ELangArabic))))
{
aSuggestMode = EPluginInputModeItut;
if ((disableLayouts & aSuggestMode))
@@ -3366,11 +3548,13 @@
testMode<<=1;
}
- if ((testMode == EPluginInputModeFSc ||
- testMode == EPluginInputModeFingerHwr ) &&
- iSharedData.InputTextLanguage() != ELangPrcChinese &&
- iSharedData.InputTextLanguage() != ELangTaiwanChinese &&
- iSharedData.InputTextLanguage() != ELangHongKongChinese )
+ if (((testMode == EPluginInputModeFSc ||
+ testMode == EPluginInputModeFingerHwr) &&
+ !(iSharedData.InputTextLanguage() == ELangPrcChinese ||
+ iSharedData.InputTextLanguage() == ELangTaiwanChinese ||
+ iSharedData.InputTextLanguage() == ELangHongKongChinese)) &&
+ ((testMode == EPluginInputModeFingerHwr &&
+ iSharedData.InputTextLanguage() != ELangArabic)))
{
return EFalse;
}
@@ -3617,6 +3801,10 @@
{
iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputInEditWordQueryDlg, iIsInEditWordQueryDlg);
}
+ if ( PluginInputMode() == EPluginInputModeFSQ )
+ {
+ UpdateFSQIndicator();
+ }
}
@@ -4120,6 +4308,49 @@
return ret;
}
+void CAknFepPluginManager::UpdateFSQIndicator()
+ {
+ if ( EPluginInputModeFSQ != PluginInputMode() )
+ {
+ return;
+ }
+
+ TInt indicatorImgID;
+ TInt indicatorTextID;
+
+ if (iFepMan.GetIndicatorImgID(indicatorImgID, indicatorTextID))
+ {
+ iIndicatorImgID = indicatorImgID;
+ iIndicatorTextID = indicatorTextID;
+ }
+ TInt indImgid = 0;
+ TInt indMaskid = 0;
+
+ TInt textImgid = 0;
+ TInt textMaskid = 0;
+
+ if (iIndicatorImgID > 0)
+ {
+ GetIndicatorImgID(iIndicatorImgID ,indImgid, indMaskid);
+ }
+
+ if (iIndicatorTextID > 0)
+ {
+ GetIndicatorImgID(iIndicatorTextID ,textImgid, textMaskid);
+ }
+
+ if (iIndicatorImgID != 0 || iIndicatorTextID != 0)
+ {
+ TFepIndicatorInfo indicator;
+
+ indicator.iIndicatorImgID = indImgid;
+ indicator.iIndicatorMaskID = indMaskid;
+ indicator.iIndicatorTextImgID = textImgid;
+ indicator.iIndicatorTextMaskID = textMaskid;
+ TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerMatchIndicator,
+ reinterpret_cast<TInt>(&indicator)));
+ }
+ }
void CAknFepPluginManager::UpdateITUTIndicator()
{
if ( EPluginInputModeItut != PluginInputMode() )
@@ -4249,7 +4480,7 @@
iSpell = NULL;
iSpellCba = ESpellCBACancelEmpty;
iSpellOn = ETrue;
- iSpell = CAknFepUiSpellContainer::NewL(editorFlag, editorCase, editorSCTResId);
+ iSpell = CAknFepUiSpellContainer::NewL(editorFlag, editorCase, editorSCTResId, IsEditorSupportSplitIme());
iSpell->SetInputWinObserver(this);
@@ -4536,6 +4767,10 @@
TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode,
iCaseMan.CurrentCase()));
UpdateITUTIndicator();
+ if ( PluginInputMode() == EPluginInputModeFSQ )
+ {
+ UpdateFSQIndicator();
+ }
}
}
@@ -4574,6 +4809,9 @@
aMenuPane->SetItemDimmed(EChinFepCmdModeStroke, ETrue);
aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyin, ETrue);
aMenuPane->SetItemDimmed(EChinFepCmdModePinyin, ETrue);
+ aMenuPane->SetItemDimmed(EChinFepCmdModeStrokePhrase, ETrue);
+ aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyinPhrase, ETrue);
+ aMenuPane->SetItemDimmed(EChinFepCmdModePinyinPhrase, ETrue);
aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
@@ -5087,7 +5325,9 @@
// default range couldn't be accent.
|| !iPluginPrimaryRange )
&& iFepMan.InputLanguageCapabilities().iSupportsWesternQwertyPredictive
- && !iSharedData.QwertyInputMode() )
+ && !iSharedData.QwertyInputMode()
+ // No need to support in dialer application.
+ && RProcess().SecureId().iId != KPhoneSecureId )
{
return ETrue;
}
@@ -5366,7 +5606,7 @@
// Notify app touch input window closed or open.
// -----------------------------------------------------------------------------
//
-void CAknFepPluginManager::NotifyAppUiImeTouchWndState( const TBool aTouchState )
+void CAknFepPluginManager::NotifyAppUiImeTouchWndStateL( const TBool aTouchState )
{
if ( iLangMan.IsSplitView() )
{
@@ -5415,7 +5655,7 @@
TRAP_IGNORE(iPenInputServer.AddPeninputServerObserverL(this)); //always add the handler
iPenInputSvrConnected = ETrue;
- ActivatePenInputL();
+ TRAP_IGNORE(ActivatePenInputL());
}
CConnectAo::CConnectAo(CAknFepPluginManager* aClient)
--- a/fep/aknfep/src/AknFepSharedDataInterface.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/src/AknFepSharedDataInterface.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1723,6 +1723,37 @@
}
return value;
};
+
+/**
+ * Returns a value of default arabic finger hwr orientation.
+ *
+ * @since 5.2
+ * @return Value of default arabic finger hwr orientation.
+ */
+TInt CAknFepSharedDataInterface::DefaultArabicFingerHwrOrientation() const
+ {
+ TInt value = 0;
+ if (iAknFepRepository)
+ {
+ iAknFepRepository->Get(KAknFepDefaultArabicFingerHwrOrientation, value);
+ }
+ return value;
+ }
+
+/**
+ * Set a value of default arabic finger hwr orientation.
+ *
+ * @since 5.2
+ * @param aValue new value set to default arabic finger hwr orientation shared data item
+ */
+void CAknFepSharedDataInterface::SetDefaultArabicFingerHwrOrientation(TInt aValue)
+ {
+ if (iAknFepRepository)
+ {
+ iAknFepRepository->Set(KAknFepDefaultArabicFingerHwrOrientation, aValue);
+ }
+ }
+
#endif
// End of File
--- a/fep/aknfep/src/aknfepuispellcontainer.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/src/aknfepuispellcontainer.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -89,11 +89,12 @@
// ---------------------------------------------------------------------------
//
void CAknFepUiSpellContainer::ConstructL(const TInt aEditorFlag,
- const TInt aEditorCase, const TInt aEditorSCTResID)
+ const TInt aEditorCase, const TInt aEditorSCTResID, const TBool aIsSplitEditor )
{
CreateWindowL();
- iInputPane = CAknFepUiSpellInputPane::NewL( this, aEditorFlag, aEditorCase,aEditorSCTResID);
+ iInputPane = CAknFepUiSpellInputPane::NewL( this, aEditorFlag, aEditorCase,
+ aEditorSCTResID, aIsSplitEditor );
iInputPane->SetMopParent(this);
@@ -110,13 +111,13 @@
// ---------------------------------------------------------------------------
//
CAknFepUiSpellContainer* CAknFepUiSpellContainer::NewL(const TInt aEditorFlag,
- const TInt aEditorCase, const TInt aEditorSCTResID)
+ const TInt aEditorCase, const TInt aEditorSCTResID, const TBool aSplitEditor )
{
CAknFepUiSpellContainer* self = new ( ELeave ) CAknFepUiSpellContainer();
CleanupStack::PushL( self );
self->SetMopParent(CEikonEnv::Static()->EikAppUi());
- self->ConstructL(aEditorFlag, aEditorCase, aEditorSCTResID);
+ self->ConstructL(aEditorFlag, aEditorCase, aEditorSCTResID, aSplitEditor );
CleanupStack::Pop();
--- a/fep/aknfep/src/aknfepuispellinputpane.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/src/aknfepuispellinputpane.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -68,7 +68,8 @@
//
void CAknFepUiSpellInputPane::ConstructL( CCoeControl* aParent,
const TInt aEditorFlag, const TInt aEditorCase,
- const TInt aEditorSCTResID )
+ const TInt aEditorSCTResID,
+ const TBool aIsSplitEditor )
{
// Create as a child window of the specified parent control's window.
CreateWindowL( aParent );
@@ -83,8 +84,17 @@
iInputWin->SetAknEditorInputMode(EAknEditorTextInputMode);
iInputWin->SetAknEditorSpecialCharacterTable(aEditorSCTResID);
- iInputWin->SetAknEditorFlags(iInputWin->AknEdwinFlags() |
- aEditorFlag | EAknEditorFlagNoT9);
+ if ( aIsSplitEditor )
+ {
+ iInputWin->SetAknEditorFlags( iInputWin->AknEdwinFlags() |
+ aEditorFlag | EAknEditorFlagNoT9 |
+ EAknEditorFlagEnablePartialScreen );
+ }
+ else
+ {
+ iInputWin->SetAknEditorFlags( iInputWin->AknEdwinFlags() |
+ aEditorFlag | EAknEditorFlagNoT9 );
+ }
iInputWin->SetAknEditorCase(aEditorCase);
iInputWin->SetMaxLength(KSpellMaxLength);
iInputWin->SetMopParent(this);
@@ -102,12 +112,13 @@
//
CAknFepUiSpellInputPane* CAknFepUiSpellInputPane::NewL(
CCoeControl* aParent, const TInt aEditorFlag,
- const TInt aEditorCase, const TInt aEditorSCTResID)
+ const TInt aEditorCase, const TInt aEditorSCTResID,
+ const TBool aIsSplitEditor )
{
CAknFepUiSpellInputPane* self = new ( ELeave ) CAknFepUiSpellInputPane;
CleanupStack::PushL( self );
- self->ConstructL( aParent, aEditorFlag, aEditorCase, aEditorSCTResID );
+ self->ConstructL( aParent, aEditorFlag, aEditorCase, aEditorSCTResID, aIsSplitEditor );
CleanupStack::Pop();
return self;
--- a/fep/aknfep/src/aknfepuserdbdlg.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/src/aknfepuserdbdlg.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1074,16 +1074,20 @@
void CAknFepUserdbDlg::SizeChanged()
{
+ TRAP_IGNORE(SizeChangedL());
+ }
+void CAknFepUserdbDlg::SizeChangedL()
+ {
//Change title text
CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
CAknTitlePane* title = NULL;
- TRAP_IGNORE( title = static_cast< CAknTitlePane* >(
- statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle) ) ) );
+ title = static_cast< CAknTitlePane* >(
+ statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle) ) );
//Load the new title text
HBufC* titletext = StringLoader::LoadLC( R_AKNFEP_USER_DB_MANAGEMENT_TITLE );
//Set title to the new text
- TRAP_IGNORE( title->SetTextL( *titletext ));
+ title->SetTextL( *titletext );
CleanupStack::PopAndDestroy( titletext );
}
// End of file
--- a/inputmethods_plat/aknfep_settings_api/inc/AknFepInternalCRKeys.h Fri Feb 19 23:09:27 2010 +0200
+++ b/inputmethods_plat/aknfep_settings_api/inc/AknFepInternalCRKeys.h Fri Mar 12 15:44:07 2010 +0200
@@ -339,6 +339,11 @@
*/
const TUint32 KAknFepShiftCopyPasteOnQwerty = 0x00000022;
+/*
+ * This key is used for arabic finger hwr to set or get the default arabic finger hwr orientation.
+ * 0 is for portrait and 1 is for landscape.
+ */
+const TUint32 KAknFepDefaultArabicFingerHwrOrientation = 0x00000023;
#endif
// End of file
--- a/textinput/peninputarc/bwins/peninputlayoutcontrolU.DEF Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/bwins/peninputlayoutcontrolU.DEF Fri Mar 12 15:44:07 2010 +0200
@@ -406,7 +406,7 @@
?SetTextAlignmentL@CFepLayoutMultiLineIcf@@UAEXHH@Z @ 405 NONAME ; void CFepLayoutMultiLineIcf::SetTextAlignmentL(int, int)
?NewL@CFepLayoutMultiLineIcf@@SAPAV1@VTRect@@PAVCFepUiLayout@@HHHPBVCFont@@@Z @ 406 NONAME ; class CFepLayoutMultiLineIcf * CFepLayoutMultiLineIcf::NewL(class TRect, class CFepUiLayout *, int, int, int, class CFont const *)
?SetFontL@CFepLayoutMultiLineIcf@@UAEXHHPBVCFont@@@Z @ 407 NONAME ; void CFepLayoutMultiLineIcf::SetFontL(int, int, class CFont const *)
- ?SetPromptTextL@CFepLayoutMultiLineIcf@@UAEXABVTDesC16@@H@Z @ 408 NONAME ; void CFepLayoutMultiLineIcf::SetPromptTextL(class TDesC16 const &, int)
+ ?SetPromptTextL@CFepLayoutMultiLineIcf@@UAEXABVTDesC16@@H@Z @ 408 NONAME ; void CFepLayoutMultiLineIcf::SetPromptTextL(class TDesC16 const &, int)
?SizeChangedL@CFepLayoutMultiLineIcf@@UAEXABVTRect@@HHPBVCFont@@@Z @ 409 NONAME ; void CFepLayoutMultiLineIcf::SizeChangedL(class TRect const &, int, int, class CFont const *)
?AddOverLapState@CFepLayoutMultiLineIcf@@UAEXVTRect@@@Z @ 410 NONAME ; void CFepLayoutMultiLineIcf::AddOverLapState(class TRect)
?IsEmpty@CFepLayoutMultiLineIcf@@UAEHXZ @ 411 NONAME ; int CFepLayoutMultiLineIcf::IsEmpty(void)
@@ -583,3 +583,6 @@
?HideInfoBubble@CFepLayoutMultiLineIcf@@UAEXXZ @ 582 NONAME ; void CFepLayoutMultiLineIcf::HideInfoBubble(void)
?SetInfoBubbleCtrlSize@CFepLayoutMultiLineIcf@@UAEXABVTSize@@@Z @ 583 NONAME ; void CFepLayoutMultiLineIcf::SetInfoBubbleCtrlSize(class TSize const &)
?ShowByteWarningBubble@CFepLayoutMultiLineIcfEditor@@QAEXABVTDesC16@@@Z @ 584 NONAME ; void CFepLayoutMultiLineIcfEditor::ShowByteWarningBubble(class TDesC16 const &)
+ ?SetPreviewBubbleRenderer@CVirtualKeyboard@@QAEXPAVMPeninputVkbPreviewBubbleRenderer@@@Z @ 585 NONAME ; void CVirtualKeyboard::SetPreviewBubbleRenderer(class MPeninputVkbPreviewBubbleRenderer *)
+ ?NewL@CPeninputAknVkbPreviewBubbleRenderer@@SAPAV1@XZ @ 586 NONAME ; class CPeninputAknVkbPreviewBubbleRenderer * CPeninputAknVkbPreviewBubbleRenderer::NewL(void)
+
--- a/textinput/peninputarc/eabi/peninputlayoutcontrolU.DEF Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/eabi/peninputlayoutcontrolU.DEF Fri Mar 12 15:44:07 2010 +0200
@@ -701,9 +701,9 @@
_ZN18CTransparentHwrWnd27PenTraceDecorationActivatedEv @ 700 NONAME
_ZTI26CPeninputPenTraceDecorator @ 701 NONAME ; #<TI>#
_ZTV26CPeninputPenTraceDecorator @ 702 NONAME ; #<VT>#
- _ZN22CFepLayoutMultiLineIcf17TooltipBubbleCtrlEv @ 703 NONAME
- _ZN22CFepLayoutMultiLineIcf12ShowTooltipLERK7TDesC16RK5TRect @ 704 NONAME
- _ZN22CFepLayoutMultiLineIcf11HideTooltipEv @ 705 NONAME
+ _ZN22CFepLayoutMultiLineIcf17TooltipBubbleCtrlEv @ 703 NONAME
+ _ZN22CFepLayoutMultiLineIcf12ShowTooltipLERK7TDesC16RK5TRect @ 704 NONAME
+ _ZN22CFepLayoutMultiLineIcf11HideTooltipEv @ 705 NONAME
_ZTI18CTooltipBubbleCtrl @ 706 NONAME
_ZTV18CTooltipBubbleCtrl @ 707 NONAME
_ZN12CFepUiLayout20RegisterFeedbackAreaEiRK5TRecti @ 708 NONAME
@@ -715,4 +715,8 @@
_ZN22CFepLayoutMultiLineIcf14InfoBubbleCtrlEv @ 714 NONAME
_ZN22CFepLayoutMultiLineIcf21SetInfoBubbleCtrlSizeERK5TSize @ 715 NONAME
_ZN22CFepLayoutMultiLineIcf21ShowByteWarningBubbleERK7TDesC16 @ 716 NONAME
+ _ZN16CVirtualKeyboard24SetPreviewBubbleRendererEP33MPeninputVkbPreviewBubbleRenderer @ 717 NONAME
+ _ZN36CPeninputAknVkbPreviewBubbleRenderer4NewLEv @ 718 NONAME
+ _ZTI36CPeninputAknVkbPreviewBubbleRenderer @ 719 NONAME
+ _ZTV36CPeninputAknVkbPreviewBubbleRenderer @ 720 NONAME
--- a/textinput/peninputarc/group/bld.inf Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/group/bld.inf Fri Mar 12 15:44:07 2010 +0200
@@ -90,6 +90,8 @@
//bubble ctrl
../inc/peninputlayoutcontrolinc/peninputlayoutbubblectrl.h |../../../inc/peninputlayoutbubblectrl.h
+../inc/peninputlayoutcontrolinc/peninputaknvkbpreviewbubblerenderer.h |../../../inc/peninputaknvkbpreviewbubblerenderer.h
+../inc/peninputlayoutcontrolinc/peninputvkbpreviewbubblerenderer.h |../../../inc/peninputvkbpreviewbubblerenderer.h
//inline file
../inc/peninputlayoutcontrolinc/peninputlayout.inl |../../../inc/peninputlayout.inl
../inc/peninputlayoutcontrolinc/peninputlayoutbasecontrol.inl |../../../inc/peninputlayoutbasecontrol.inl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputaknvkbpreviewbubblerenderer.h Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2005-2006 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: header file of virtual keyboard control
+*
+*/
+
+#ifndef C_PENINPUTVKBPREVIEWBUBBLERENDERER_H
+#define C_PENINPUTVKBPREVIEWBUBBLERENDERER_H
+
+// User includes
+#include "peninputvkbpreviewbubblerenderer.h"
+
+// Forward declarations
+class CPeninputFloatingBubble;
+
+// CLASS DECLARATION
+
+/**
+ * CPeninputAknVkbPreviewBubbleRenderer
+ * CCoeControl-based preview bubble extension
+ *
+ */
+class CPeninputAknVkbPreviewBubbleRenderer : public CBase,
+ public MPeninputVkbPreviewBubbleRenderer
+{
+public:
+ /**
+ * Symbian constructor
+ *
+ * @since S60 v5.0
+ * @return The pointer to created object
+ */
+ IMPORT_C static CPeninputAknVkbPreviewBubbleRenderer* NewL();
+
+ /**
+ * C++ destructor
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ virtual ~CPeninputAknVkbPreviewBubbleRenderer();
+
+protected: //from base class MPeninputVkbPreviewBubbleRenderer
+ /**
+ * Attach this extension to a virtual keyboard object.
+ * Increase reference count
+ *
+ * @since S60 S60 v5.0
+ * @return None.
+ */
+ virtual void Attach();
+
+ /**
+ * Detach this extension from a virtual keyboard object.
+ * decrease reference count
+ *
+ * @since S60 S60 v5.0
+ * @return None.
+ */
+ virtual void Detach();
+
+ /**
+ * Enable preview bubble.
+ *
+ * @since S60 S60 v5.0
+ * @param aFlag ETrue to enable preview bubble.
+ * @return None.
+ */
+ virtual void ShowBubble( TBool aFlag );
+
+ /**
+ * Draw preview bubble.
+ *
+ * @since S60 S60 v5.0
+ * @param aKey Virtual key.
+ * @param aVkbPos Position of virtual keyboard.
+ * @param aLayoutPos Position of layout, in screen coord-sys.
+ * @param aSize Size of bubble.
+ * @return None.
+ */
+ virtual void DrawBubble( CVirtualKey* aKey, const TPoint& aVkbPos,
+ const TPoint& aLayoutPos, const TSize& aSize );
+
+ /**
+ * Clear preview bubble.
+ *
+ * @since S60 S60 v5.0
+ * @return None.
+ */
+ virtual void ClearBubble();
+
+ /**
+ * Set icon and background of bubble.
+ *
+ * @since S60 S60 v5.0
+ * @param aBmpId Bitmap of icon.
+ * @param aMaskBmpId Bitmap of mask.
+ * @param aBgSkinId Skin id of background.
+ * @return None.
+ */
+ virtual void SetBubbleBitmapParam( CFbsBitmap* aBmpId, CFbsBitmap* aMaskBmpId,
+ TAknsItemID aBgSkinId );
+
+ /**
+ * Set text format
+ *
+ * @since S60 S60 v5.0
+ * @param aTextFormat Text format.
+ * @return None.
+ */
+ virtual void SetTextFormat( TAknTextLineLayout aTextFormat );
+
+
+ /**
+ * Set margin of bubble
+ *
+ * @since S60 S60 v5.0
+ * @param aLeftDiff Left margin.
+ * @param aTopDiff Top margin.
+ * @param aRightDiff Right margin.
+ * @param aBottomDiff Bottom margin.
+ * @return None.
+ */
+ virtual void SetFrameDiff( TInt aLeftDiff, TInt aTopDiff,
+ TInt aRightDiff,TInt aBottomDiff );
+
+private:
+ /**
+ * C++ constructor
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ CPeninputAknVkbPreviewBubbleRenderer();
+
+ /**
+ * Symbian constructor
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void ConstructL();
+
+private:
+ /**
+ * reference count
+ */
+ TInt iRefCount;
+
+ /**
+ * Bubble control
+ * Own
+ */
+ CPeninputFloatingBubble* iBubbleCtrlEx;
+
+};
+
+#endif //C_PENINPUTVKBPREVIEWBUBBLERENDERER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputfloatbubble.h Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,155 @@
+/*
+* Copyright (c) 2006-2006 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: header file of Floating bubble
+*
+*/
+
+
+#ifndef C_PENINPUTFLOATINGBUBBLE_H
+#define C_PENINPUTFLOATINGBUBBLE_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <AknLayout2Def.h>
+
+#include "peninputfloatctrl.h"
+
+// CLASS DECLARATION
+
+/**
+ * CPeninputFloatingBubble
+ *
+ */
+NONSHARABLE_CLASS(CPeninputFloatingBubble) : public CPeninputFloatingCtrl
+ {
+public: // Constructors
+ /**
+ * Symbian constructor.
+ *
+ * @since S60 v5.0
+ * @return Pointer to created object
+ */
+ static CPeninputFloatingBubble* NewL();
+ /**
+ * Symbian constructor.
+ *
+ * @since S60 v5.0
+ * @return Pointer to created object
+ */
+ static CPeninputFloatingBubble* NewLC();
+
+ /**
+ * standard c++ destructor.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ ~CPeninputFloatingBubble();
+
+public: //from base class CCoeControl
+ /**
+ * From CCoeControl
+ * Draw this control
+ *
+ * @since S60 v5.0
+ * @param aRect the rectangle of this view that needs updating
+ * @return None
+ */
+ virtual void Draw( const TRect& aRect ) const;
+
+public:
+ /**
+ * Set background image
+ *
+ * @since S60 v5.0
+ * @param aBkgndImage skin item id of background image
+ * @return None
+ */
+ void SetBackgroundImage( TAknsItemID aBkgndImage );
+
+ /**
+ * Set text
+ *
+ * @since S60 v5.0
+ * @param aText new text to be shown in this control
+ * @return None
+ */
+ void SetText( const TDesC& aText );
+
+ /**
+ *
+ * @since S60 v5.0
+ * @param aTextFormat text layout
+ * @return None
+ */
+ void SetTextFormat( TAknTextLineLayout aTextFormat );
+
+ /**
+ *
+ * @since S60 v5.0
+ * @param aIconImage icon to be shown in this control
+ * @param aIconMask mask of icon
+ * @return None
+ */
+ void SetIcon( CFbsBitmap* aIconImage, CFbsBitmap* aIconMask );
+
+private:
+ /**
+ * C++ default constructor.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ CPeninputFloatingBubble();
+
+ /**
+ * Symbian constructor
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void ConstructL();
+
+private:
+ /**
+ * the text to be shown
+ * Own
+ */
+ HBufC* iText;
+
+ /**
+ * text format
+ */
+ TAknTextLineLayout iTextFormat;
+
+ /**
+ * the icon to be shown
+ * not own
+ */
+ CFbsBitmap* iIconImage;
+
+ /**
+ * mask of icon
+ * not own
+ */
+ CFbsBitmap* iIconMask;
+
+ /**
+ * skin item id of background
+ */
+ TAknsItemID iBkgndSkinId;
+ };
+
+#endif // C_PENINPUTFLOATINGBUBBLE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputfloatctrl.h Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,103 @@
+/*
+* Copyright (c) 2006-2006 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: header file of Floating window
+*
+*/
+
+
+#ifndef C_PENINPUTFLOATINGCTRL_H
+#define C_PENINPUTFLOATINGCTRL_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <coecntrl.h>
+
+// CLASS DECLARATION
+
+/**
+ * CPeninputFloatingCtrl
+ *
+ */
+NONSHARABLE_CLASS(CPeninputFloatingCtrl): public CCoeControl
+ {
+public: // Constructors
+ /**
+ * C++ default constructor.
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ CPeninputFloatingCtrl();
+
+ /**
+ * C++ destructor
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ ~CPeninputFloatingCtrl();
+
+public: // from base class CCoeControl
+ /**
+ * From CCoeControl
+ * Draw this control
+ *
+ * @since S60 v5.0
+ * @param aRect the rectangle of this view that needs updating
+ * @return None
+ */
+ virtual void Draw( const TRect& aRect ) const;
+
+public:
+ /**
+ * Show this floating control
+ *
+ * @since S60 v5.0
+ * @param aRect rect of control, in screen coord-sys
+ * @return None
+ */
+ void Show( const TRect& aRect );
+
+ /**
+ * Show this floating control
+ *
+ * @since S60 v5.0
+ * @param aRect rect of control, in screen coord-sys
+ * @param aOrdinalPos Ordinal position
+ * @param aOrdinalPriority Ordinal priority
+ * @return None
+ */
+ void Show( const TRect& aRect, TInt aOrdinalPos, TInt aOrdinalPriority );
+
+ /**
+ * Hide this floating control
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void Hide();
+
+protected:
+ /**
+ * Symbian constructor
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void BaseConstructL();
+
+ };
+
+#endif // C_PENINPUTFLOATINGCTRL_H
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutbubblectrl.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutbubblectrl.h Fri Mar 12 15:44:07 2010 +0200
@@ -47,6 +47,8 @@
CFepUiLayout* aUiLayout,
TInt aCtrlId);
+ inline void SetIconOffsetAndSize(
+ const TSize& aOffset, const TSize& aSize );
IMPORT_C virtual void Draw();
IMPORT_C virtual void Hide(TBool aShowFlag);
@@ -84,6 +86,7 @@
IMPORT_C TBool IsShowing();
IMPORT_C void SetFrameDiff(TInt aLeftDiff,TInt aTopDiff,TInt aRightDiff,TInt aBottomDiff);
+ inline void GetText( TDes& aText );
void Freeze();
@@ -122,6 +125,8 @@
TBool iNeedRedraw; // redraw flag after text changed.
TInt iTextColorIndex;
+ TSize iIconOffset;
+ TSize iIconSize;
};
inline void CBubbleCtrl::SetTextColorIndex( TInt aTxtClrIndex )
@@ -133,6 +138,17 @@
{
return iTextColorIndex;
}
+inline void CBubbleCtrl::SetIconOffsetAndSize(
+ const TSize& aOffset, const TSize& aSize )
+ {
+ iIconOffset = aOffset;
+ iIconSize = aSize;
+ }
+
+inline void CBubbleCtrl::GetText( TDes& aText )
+ {
+ aText.Copy( *iText );
+ }
class CTooltipBubbleCtrl: public CBubbleCtrl
{
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvkb.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvkb.h Fri Mar 12 15:44:07 2010 +0200
@@ -29,6 +29,7 @@
class CBubbleCtrl;
class CPenInputColorIcon;
+class MPeninputVkbPreviewBubbleRenderer;
#define INVALID_COLOR_GROUP -1
typedef struct TVirtualKeyEventData_Tag
@@ -560,6 +561,15 @@
IMPORT_C void SetShiftIcon( CPenInputColorIcon* aIcon );
inline CPenInputColorIcon* ShiftIcon();
+ /**
+ * Install preview bubble renderer
+ *
+ * @param aRenderer Preview bubble renderer.
+ * Ownership transfered(shared by all targets of aRenderer)
+ * @return None.
+ */
+ IMPORT_C void SetPreviewBubbleRenderer( MPeninputVkbPreviewBubbleRenderer* aRenderer );
+
protected:
/**
@@ -854,6 +864,7 @@
* The shift icon showing on the key
*/
CPenInputColorIcon* iShiftIcon;
+ MPeninputVkbPreviewBubbleRenderer* iPreviewBubbleRenderer;
friend class CVirtualKeyCtrl;
friend class CVirtualRawKeyCtrl;
//friend class CVirtualKey;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputvkbpreviewbubblerenderer.h Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2005-2006 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: header file of virtual keyboard control
+*
+*/
+
+#ifndef M_PENINPUTVKBPREVIEWBUBBLERENDERER_H
+#define M_PENINPUTVKBPREVIEWBUBBLERENDERER_H
+
+// System includes
+#include <e32def.h>
+#include <fbs.h>
+
+// User includes
+#include "peninputlayoutvkb.h"
+
+// CLASS DECLARATION
+
+/**
+ * MPeninputVkbPreviewBubbleRenderer
+ * Interface for preview bubble extension.
+ *
+ */
+class MPeninputVkbPreviewBubbleRenderer
+{
+public:
+ /**
+ * Attach this extension to a virtual keyboard object.
+ *
+ * @since S60 S60 v5.0
+ * @return None.
+ */
+ virtual void Attach() = 0;
+
+ /**
+ * Detach this extension from a virtual keyboard object.
+ *
+ * @since S60 S60 v5.0
+ * @return None.
+ */
+ virtual void Detach() = 0;
+
+ /**
+ * Enable preview bubble
+ *
+ * @since S60 S60 v5.0
+ * @param aFlag ETrue to enable preview bubble.
+ * @return None.
+ */
+ virtual void ShowBubble( TBool aFlag ) = 0;
+
+ /**
+ * Draw preview bubble.
+ *
+ * @since S60 S60 v5.0
+ * @param aKey Virtual key.
+ * @param aVkbPos Position of virtual keyboard.
+ * @param aLayoutPos Position of layout, in screen coord-sys.
+ * @param aSize Size of bubble.
+ * @return None.
+ */
+ virtual void DrawBubble( CVirtualKey* aKey, const TPoint& aVkbPos,
+ const TPoint& aLayoutPos, const TSize& aSize ) = 0;
+
+ /**
+ * Clear preview bubble.
+ *
+ * @since S60 S60 v5.0
+ * @return None.
+ */
+ virtual void ClearBubble() = 0;
+
+ /**
+ * Set icon and background of bubble.
+ *
+ * @since S60 S60 v5.0
+ * @param aBmpId Bitmap of icon.
+ * @param aMaskBmpId Bitmap of mask.
+ * @param aBgSkinId Skin id of background.
+ * @return None.
+ */
+ virtual void SetBubbleBitmapParam( CFbsBitmap* aBmpId, CFbsBitmap* aMaskBmpId,
+ TAknsItemID aBgSkinId )=0;
+
+ /**
+ * Set text format
+ *
+ * @since S60 S60 v5.0
+ * @param aTextFormat Text format.
+ * @return None.
+ */
+ virtual void SetTextFormat( TAknTextLineLayout aTextFormat ) = 0;
+
+ /**
+ * Set margin of bubble
+ *
+ * @since S60 S60 v5.0
+ * @param aLeftDiff Left margin.
+ * @param aTopDiff Top margin.
+ * @param aRightDiff Right margin.
+ * @param aBottomDiff Bottom margin.
+ * @return None.
+ */
+ virtual void SetFrameDiff( TInt aLeftDiff, TInt aTopDiff, TInt aRightDiff,
+ TInt aBottomDiff )=0;
+};
+
+#endif //M_PENINPUTVKBPREVIEWBUBBLERENDERER_H
--- a/textinput/peninputarc/inc/pensrvcliinc/peninputanim.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputanim.h Fri Mar 12 15:44:07 2010 +0200
@@ -407,6 +407,12 @@
TRect iDiscreetPopArea;
RAknUiServer iAknUiSrv;
TBool iDirty;
+
+ /**
+ * Fix bug HMNN-82CDU5
+ */
+ TPoint iPointerDown; // record pointer that button is pressing in
+ TBool iIsMove; // Is key moving event happened.
};
--- a/textinput/peninputarc/src/peninputanim/peninputanim.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputanim/peninputanim.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -810,6 +810,15 @@
DoTactileFeedBack(aRawEvent.Pos() - rect.iTl);
#endif // RD_TACTILE_FEEDBACK
iIsPenDown = ETrue;
+
+ // Fix bug HMNN-82CDU5
+ // When button downing event is happened, iIsMove is reset to EFalse
+ iIsMove = EFalse;
+
+ // Recording pointer that button is pressing down in at this time
+ iPointerDown = aRawEvent.Pos();
+ //
+
PostRawEvent(aRawEvent);
return ETrue;
}
@@ -841,6 +850,19 @@
}
if(iIsPenDown)
{
+
+ // Fix bug HMNN-82CDU5
+ // When the control key pressing down in is different with the control key pressing up
+ // and pointer moving event isn¡¯t happened,
+ // pointer moving event will is supplied
+ if(iPointerDown != aRawEvent.Pos() && !iIsMove)
+ {
+ TRawEvent rawEvent = aRawEvent;
+ rawEvent.Set( TRawEvent::EPointerMove );
+ OnRawPointerMove(rawEvent);
+ }
+ //
+
iIsPenDown = EFalse;
TRect rect(iSpritePosition, iSpriteSize);
@@ -848,6 +870,12 @@
{
//send pen up event immediately
SendRawEvent(aRawEvent);
+
+ // Fix bug HMNN-82CDU5
+ // When key pressing up event is completed, iIsMove is reset to EFalse.
+ iIsMove = EFalse;
+ //
+
return ETrue;
}
}
@@ -880,6 +908,11 @@
{
//give tactile feedback
+ // Fix bug HMNN-82CDU5
+ // When pointer moving event is happened, iIsMove is set to ETrue
+ iIsMove = ETrue;
+ //
+
PostRawEvent(aRawEvent);
return ETrue;
}
@@ -887,6 +920,12 @@
if(iIsPointerCaptured || iIsPenDown)
{
+
+ // Fix bug HMNN-82CDU5
+ // When pointer moving event is happened, iIsMove is set to ETrue
+ iIsMove = ETrue;
+ //
+
PostRawEvent(aRawEvent);
return ETrue;
}
--- a/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -279,11 +279,11 @@
iServerExit = EFalse;
if(iObserver)
{
- iObserver->ReConstructL(srvThreadId);
+ TRAP_IGNORE(iObserver->ReConstructL(srvThreadId));
}
else
{
- iObserver = CPeninputServerObserver::NewL(this,srvThreadId);
+ TRAP_IGNORE(iObserver = CPeninputServerObserver::NewL(this,srvThreadId));
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputaknvkbpreviewbubblerenderer.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 2002-2005 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: Implementation of vkb window class
+*
+*/
+
+// System includes
+
+// User includes
+#include "peninputaknvkbpreviewbubblerenderer.h"
+#include "peninputfloatbubble.h"
+
+// Constants
+// Modify warning
+//const TInt KDefaultBubbleSize = 50;
+
+// Member functions
+
+// ---------------------------------------------------------------------------
+// Symbian constructor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CPeninputAknVkbPreviewBubbleRenderer* CPeninputAknVkbPreviewBubbleRenderer::NewL()
+ {
+ CPeninputAknVkbPreviewBubbleRenderer* self = new( ELeave) CPeninputAknVkbPreviewBubbleRenderer;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// C++ destructor
+// ---------------------------------------------------------------------------
+//
+CPeninputAknVkbPreviewBubbleRenderer::~CPeninputAknVkbPreviewBubbleRenderer()
+ {
+ delete iBubbleCtrlEx;
+
+ iBubbleCtrlEx = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// Attach this extension to a virtual keyboard object.
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::Attach()
+ {
+ iRefCount++;
+ }
+
+// ---------------------------------------------------------------------------
+// Detach this extension from a virtual keyboard object.
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::Detach()
+ {
+ iRefCount--;
+ if ( iRefCount < 1 )
+ {
+ delete this;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Enable preview bubble.
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::ShowBubble( TBool aFlag )
+ {
+ if ( aFlag && ( NULL == iBubbleCtrlEx ) )
+ {
+ TRAP_IGNORE( iBubbleCtrlEx = CPeninputFloatingBubble::NewL() );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Draw preview bubble.
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::DrawBubble( CVirtualKey* aKey,
+ const TPoint& aVkbPos,
+ const TPoint& aLayoutPos,
+ const TSize& aBubbleSize )
+ {
+ if ( iBubbleCtrlEx )
+ {
+ TRect rect = aKey->Rect();
+ rect.Move( aVkbPos.iX, aVkbPos.iY );
+ rect.Move( aLayoutPos.iX, aLayoutPos.iY ); //now is in screen coord-sys
+
+ TInt x = rect.Center().iX - aBubbleSize.iWidth / 2;
+ TInt y = rect.iTl.iY - aBubbleSize.iHeight - 5;
+
+ TRect rcBubble( TPoint(x,y), aBubbleSize );
+ if( aKey->DisplayUnicode() && aKey->DisplayUnicode()->Length() != 0 )
+ {
+ iBubbleCtrlEx->SetText( *aKey->DisplayUnicode() );
+ }
+ else
+ {
+ iBubbleCtrlEx->SetText( aKey->KeyUnicodes() );
+ }
+
+ iBubbleCtrlEx->Show( rcBubble );
+ iBubbleCtrlEx->DrawDeferred();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Clear preview bubble.
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::ClearBubble()
+ {
+ if ( iBubbleCtrlEx )
+ {
+ iBubbleCtrlEx->Hide();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Set icon and background of bubble.
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::SetBubbleBitmapParam( CFbsBitmap* /*aBmpId*/,
+ CFbsBitmap* /*aMaskBmpId*/,
+ TAknsItemID aBgSkinId )
+ {
+ if( iBubbleCtrlEx )
+ {
+ iBubbleCtrlEx->SetBackgroundImage( aBgSkinId );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Set text format
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::SetTextFormat( TAknTextLineLayout aTextFormat )
+ {
+ if( iBubbleCtrlEx )
+ {
+ iBubbleCtrlEx->SetTextFormat( aTextFormat );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Set margin of bubble
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::SetFrameDiff( TInt /*aLeftDiff*/,
+ TInt /*aTopDiff*/,
+ TInt /*aRightDiff*/,
+ TInt /*aBottomDiff*/ )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// C++ constructor
+// ---------------------------------------------------------------------------
+//
+CPeninputAknVkbPreviewBubbleRenderer::CPeninputAknVkbPreviewBubbleRenderer()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian constructor
+// ---------------------------------------------------------------------------
+//
+void CPeninputAknVkbPreviewBubbleRenderer::ConstructL()
+ {
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputfloatbubble.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,193 @@
+/*
+* Copyright (c) 2006-2006 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: Implementation for Floating bubble
+*
+*/
+
+
+#include <AknsDrawUtils.h>
+#include <AknUtils.h>
+
+#include "peninputfloatbubble.h"
+
+const TInt KDefaultMarginSize = 10;
+
+// ---------------------------------------------------------------------------
+// Symbian Constructor
+// ---------------------------------------------------------------------------
+//
+CPeninputFloatingBubble* CPeninputFloatingBubble::NewL()
+ {
+ CPeninputFloatingBubble* self = CPeninputFloatingBubble::NewLC();
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian Constructor
+// ---------------------------------------------------------------------------
+//
+CPeninputFloatingBubble* CPeninputFloatingBubble::NewLC()
+ {
+ CPeninputFloatingBubble* self = new ( ELeave ) CPeninputFloatingBubble();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// c++ destructor
+// ---------------------------------------------------------------------------
+//
+CPeninputFloatingBubble::~CPeninputFloatingBubble()
+ {
+ if ( iText )
+ {
+ delete iText;
+ }
+
+ iText = NULL;
+ iIconImage = NULL;
+ iIconMask = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// Draw this control
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingBubble::Draw( const TRect& aRect ) const
+ {
+ CWindowGc& gc = SystemGc();
+ TRect rect = Rect();
+ gc.Clear( rect );
+
+ //draw background
+ if ( iBkgndSkinId.iMajor )
+ {
+ TRect border = rect;
+ TRect inner = rect;
+ inner.Shrink( KDefaultMarginSize, KDefaultMarginSize );
+ AknsDrawUtils::DrawFrame( AknsUtils::SkinInstance(),
+ gc,
+ border,
+ inner,
+ iBkgndSkinId,
+ KAknsIIDDefault );
+ }
+ else
+ {
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ gc.SetBrushColor( KRgbGray );
+ gc.SetPenStyle( CGraphicsContext::ESolidPen );
+ gc.SetPenColor( KRgbBlack );
+ gc.DrawRoundRect( rect, TSize( 2, 2 ) );
+ }
+
+ //draw icon
+ if ( iIconImage )
+ {
+ TSize size = iIconImage->SizeInPixels();
+ TInt x = rect.iTl.iX + ( rect.Width() - size.iWidth ) / 2;
+ TInt y = rect.iTl.iY + ( rect.Height() - size.iHeight ) / 2;
+ if ( iIconMask )
+ {
+ gc.BitBltMasked( TPoint( x, y ), iIconImage,
+ TRect( TPoint( 0, 0 ), size), iIconMask,
+ EFalse );
+ }
+ else
+ {
+ gc.BitBlt( TPoint( x, y ), iIconImage );
+ }
+ }
+
+ //draw text
+ if ( iText )
+ {
+ gc.SetBrushStyle( CGraphicsContext::ENullBrush );
+ TAknLayoutText textLayout;
+ textLayout.LayoutText( rect, iTextFormat );
+ TRgb color( KRgbBlack );
+ if ( AknsUtils::AvkonSkinEnabled() )
+ {
+ AknsUtils::GetCachedColor( AknsUtils::SkinInstance(),
+ color,
+ KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG60 );
+ }
+ textLayout.DrawText( gc, *iText, EFalse, color );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingBubble::SetBackgroundImage( TAknsItemID aBkgndImage )
+ {
+ iBkgndSkinId = aBkgndImage;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingBubble::SetText( const TDesC& aText )
+ {
+ if ( iText )
+ {
+ delete iText;
+ }
+ iText = NULL;
+
+ iText = aText.Alloc();
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingBubble::SetTextFormat( TAknTextLineLayout aTextFormat )
+ {
+ iTextFormat = aTextFormat;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingBubble::SetIcon( CFbsBitmap* aIconImage, CFbsBitmap* aIconMask )
+ {
+ iIconImage = aIconImage;
+ iIconMask = aIconMask;
+ }
+
+// ---------------------------------------------------------------------------
+// C++ constructor
+// ---------------------------------------------------------------------------
+//
+CPeninputFloatingBubble::CPeninputFloatingBubble()
+ : iBkgndSkinId( KAknsIIDNone )
+ {
+ // No implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian second-phase constructor
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingBubble::ConstructL()
+ {
+ BaseConstructL();
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputfloatctrl.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2006-2006 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: Implementation for Floating window
+*
+*/
+
+
+#include "peninputfloatctrl.h"
+
+const TInt KDefaultRoundSize = 2;
+const TInt KDefaultOrdinalPosition = 0;
+const TInt KDefaultOrdinalPriority = ECoeWinPriorityAlwaysAtFront + 100;
+// ---------------------------------------------------------------------------
+// C++ destructor
+// ---------------------------------------------------------------------------
+//
+CPeninputFloatingCtrl::~CPeninputFloatingCtrl()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Draw this control
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingCtrl::Draw( const TRect& aRect ) const
+ {
+ CWindowGc& gc = SystemGc();
+ TRect rect = Rect();
+ gc.Clear( rect );
+
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ gc.SetBrushColor( KRgbGray );
+ gc.SetPenStyle( CGraphicsContext::ESolidPen );
+ gc.SetPenColor( KRgbBlack );
+ gc.DrawRoundRect( rect, TSize( KDefaultRoundSize, KDefaultRoundSize ) );
+ }
+
+// ---------------------------------------------------------------------------
+// Show this floating control
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingCtrl::Show( const TRect& aRect )
+ {
+ Show( aRect, KDefaultOrdinalPosition, KDefaultOrdinalPriority );
+ }
+
+// ---------------------------------------------------------------------------
+// Show this floating control
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingCtrl::Show( const TRect& aRect, TInt aOrdinalPos,
+ TInt aOrdinalPriority )
+ {
+ SetRect( aRect );
+ DrawableWindow()->SetOrdinalPosition( aOrdinalPos, aOrdinalPriority );
+ MakeVisible( ETrue );
+ }
+// ---------------------------------------------------------------------------
+// Hide this floating control
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingCtrl::Hide()
+ {
+ MakeVisible( EFalse );
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian constructor
+// ---------------------------------------------------------------------------
+//
+void CPeninputFloatingCtrl::BaseConstructL()
+ {
+ RWindowGroup& wg = CCoeEnv::Static()->RootWin();
+ CreateWindowL( wg );
+ SetComponentsToInheritVisibility();
+ Window().SetRequiredDisplayMode( EColor16MA );
+ MakeVisible( EFalse );
+ ActivateL();
+ }
+
+// ---------------------------------------------------------------------------
+// C++ constructor
+// ---------------------------------------------------------------------------
+//
+CPeninputFloatingCtrl::CPeninputFloatingCtrl()
+ {
+ // No implementation required
+ }
+
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -258,22 +258,28 @@
if ( iForgroundBmp )
{
- if( iForgroundBmp->SizeInPixels() != innerRect.Size() )
+ TRect iconRect;
+ iconRect.iTl = TPoint( innerRect.iTl.iX + iIconOffset.iWidth,
+ innerRect.iTl.iY + iIconOffset.iHeight );
+ iconRect.SetWidth( iIconSize.iWidth );
+ iconRect.SetHeight( iIconSize.iHeight );
+
+ if( iForgroundBmp->SizeInPixels() != iconRect.Size() )
{
- AknIconUtils::SetSize( iForgroundBmp, innerRect.Size(), EAspectRatioNotPreserved );
+ AknIconUtils::SetSize( iForgroundBmp, iconRect.Size(), EAspectRatioNotPreserved );
}
TRect srcRect( TPoint( 0, 0 ), iForgroundBmp->SizeInPixels() );
if( iForgroundBmpMask )
{
- if( iForgroundBmpMask->SizeInPixels() != innerRect.Size() )
+ if( iForgroundBmpMask->SizeInPixels() != iconRect.Size() )
{
- AknIconUtils::SetSize( iForgroundBmpMask, innerRect.Size(), EAspectRatioNotPreserved);
+ AknIconUtils::SetSize( iForgroundBmpMask, iconRect.Size(), EAspectRatioNotPreserved);
}
-
- gc->BitBltMasked( innerRect.iTl,
+ gc->SetBrushStyle( CGraphicsContext::ENullBrush );
+ gc->BitBltMasked( iconRect.iTl,
iForgroundBmp,
srcRect,
iForgroundBmpMask,
@@ -281,13 +287,13 @@
}
else
{
- gc->BitBlt( innerRect.iTl,
+ gc->BitBlt( iconRect.iTl,
iForgroundBmp,
srcRect );
}
}
- if ( iText )
+ if ( iText && iText->Length() > 0 )
{
gc->SetBrushStyle( CGraphicsContext::ENullBrush );
TAknLayoutText textLayout;
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutcontrol.mmp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutcontrol.mmp Fri Mar 12 15:44:07 2010 +0200
@@ -54,7 +54,10 @@
SOURCE peninputlayoutcursor.cpp
SOURCE peninputlayoutmultilineicfeditor.cpp
SOURCE peninputpentracedecorator.cpp
-SOURCE peninputlayoutsmiley.cpp
+SOURCE peninputlayoutsmiley.cpp
+SOURCE peninputfloatctrl.cpp
+SOURCE peninputfloatbubble.cpp
+SOURCE peninputaknvkbpreviewbubblerenderer.cpp
userinclude ../../inc/peninputlayoutcontrolinc
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutmultilineicfeditor.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutmultilineicfeditor.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -967,26 +967,35 @@
}
TPtrC icftext = editArea->iRichText->Read(editArea->iPromptTextLen,
editArea->iRichText->DocumentLength());
- TInt startPos = icftext.LocateReverse(KStar) + 1 + editArea->iPromptTextLen;
-
- TBuf<1> buf;
- buf.Append(KStar);
-
- TInt textlen = editArea->iRichText->DocumentLength();
-
- if (startPos < textlen)
+
+ for (TInt i = 0; i < icftext.Length(); i++)
{
- editArea->iRichText->DeleteL(startPos, 1);
- editArea->iTextView->HandleInsertDeleteL(TCursorSelection(startPos, startPos), 1);
- editArea->iRichText->InsertL(startPos, buf);
- editArea->iTextView->HandleInsertDeleteL(TCursorSelection(startPos, startPos+buf.Length()),
- 0);
+ if (icftext[i] != KStar)//find only one none-star char
+ {
+ TInt startPos = i + editArea->iPromptTextLen;
+ TBuf<1> buf;
+ buf.Append(KStar);
+
+ TInt textlen = editArea->iRichText->DocumentLength();
- if (startPos == textlen - 1)
- {
- editArea->iSecretTextTimer->Cancel();
+ if (startPos < textlen)
+ {
+ editArea->iRichText->DeleteL(startPos, 1);
+ editArea->iTextView->HandleInsertDeleteL(TCursorSelection(
+ startPos, startPos), 1);
+ editArea->iRichText->InsertL(startPos, buf);
+ editArea->iTextView->HandleInsertDeleteL(TCursorSelection(
+ startPos, startPos + buf.Length()), 0);
+
+ if (startPos == textlen - 1)
+ {
+ editArea->iSecretTextTimer->Cancel();
+ }
+ }
+ break;
}
}
+
editArea->UpdateArea(editArea->Rect(),EFalse);
return KErrNone;
}
@@ -2654,11 +2663,9 @@
void CFepLayoutMultiLineIcfEditor::ShowByteWarningBubble(const TDesC& aInfo)
{
TSize size = iInfoBubble->Rect().Size();
- CFont::TMeasureTextInput* input = new (ELeave) CFont::TMeasureTextInput;
- CleanupStack::PushL(input);
- input->iMaxBounds = iRect.Width();
- TInt width = iFont->MeasureText(aInfo, input, NULL);
- CleanupStack::PopAndDestroy();
+ CFont::TMeasureTextInput input;// = new (ELeave) CFont::TMeasureTextInput;
+ input.iMaxBounds = iRect.Width();
+ TInt width = iFont->MeasureText(aInfo, &input, NULL);
size.SetSize(width, size.iHeight);
SetInfoBubbleCtrlSize(size);
TRAP_IGNORE(iInfoBubble->SetTextL(aInfo));
@@ -2973,7 +2980,6 @@
CPeninputSmileyImage* smiley = iSmileyManager->SmileyImage( code );
if ( smiley )
{
- gc.SetBrushColor( TRgb(255,0,0) );
gc.SetBrushStyle( CGraphicsContext::ENullBrush );
smiley->SetImageSize( rect.Size() );
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -27,6 +27,7 @@
#include "peninputlayoutvkb.h"
#include "peninputpluginutils.h"
+#include "peninputvkbpreviewbubblerenderer.h"
const TInt KFadingParamBlack = 128;
const TInt KFadingParamWhite = 192;
const TInt KDefaultBubbleSize = 50;
@@ -102,6 +103,7 @@
{
iFontSpec = aFontSpec;
SetControlType(ECtrlVirtualKeyboard);
+ iBubbleSize = TSize( KDefaultBubbleSize, KDefaultBubbleSize );
}
// ---------------------------------------------------------------------------
@@ -113,6 +115,11 @@
{
if ( iBubbleCtrl )
delete iBubbleCtrl;
+ if ( iPreviewBubbleRenderer )
+ {
+ iPreviewBubbleRenderer->Detach();
+ iPreviewBubbleRenderer = NULL;
+ }
//free keys
iKeyArray.ResetAndDestroy();
@@ -441,10 +448,24 @@
{
iBubbleCtrl->Close();
}
+ if( iPreviewBubbleRenderer )
+ {
+ iPreviewBubbleRenderer->ClearBubble();
+ }
}
void CVirtualKeyboard::DrawBubble(CVirtualKey* aKey)
{
+ if( iPreviewBubbleRenderer )
+ {
+ if ( iIsShowBubble )
+ {
+ TPoint org = UiLayout()->Position();
+ TPoint vkbpos = Rect().iTl;
+ iPreviewBubbleRenderer->DrawBubble( aKey, vkbpos, org, iBubbleSize );
+ }
+ return;
+ }
if ( aKey && !aKey->Dimmed() && iBubbleCtrl && iIsShowBubble)
{
@@ -466,12 +487,18 @@
{
rect.iTl.iX = x1;
rect.iBr.iX = x2;
+
+ TPoint vkbpos = Rect().iTl;
+ rect.Move( vkbpos.iX, 0 );
}
rect.iTl.iY = iBubbleVerticalMargin + aKey->Rect().iTl.iY -
iBubbleSize.iHeight + Rect().iTl.iY;
rect.iBr.iY = iBubbleVerticalMargin + aKey->Rect().iTl.iY + Rect().iTl.iY;
-
+
+ TPoint org = UiLayout()->Position();
+ rect.Move( org.iX, org.iY ); //now is in screen coord-sys
+
if( aKey->DisplayUnicode() && aKey->DisplayUnicode()->Length() != 0 )
{
TRAP_IGNORE(iBubbleCtrl->SetTextL(*aKey->DisplayUnicode()));
@@ -485,9 +512,15 @@
}
EXPORT_C void CVirtualKeyboard::ShowBubble(TBool aFlag)
- {
+ {
+ iIsShowBubble = aFlag;
+
+ if( iPreviewBubbleRenderer )
+ {
+ iPreviewBubbleRenderer->ShowBubble( aFlag );
+ return;
+ }
TBool flag = iBubbleCtrl ? ETrue : EFalse;
- iIsShowBubble = aFlag;
if ( flag != aFlag )
{
if(!flag)
@@ -516,6 +549,10 @@
{
iBubbleCtrl->SetBitmapParam(aBmpId,aMaskBmpId,aBgSkinId);
}
+ if( iPreviewBubbleRenderer )
+ {
+ iPreviewBubbleRenderer->SetBubbleBitmapParam( aBmpId,aMaskBmpId,aBgSkinId );
+ }
}
EXPORT_C void CVirtualKeyboard::SetBubbleSize(const TSize& aSize)
@@ -534,6 +571,10 @@
{
iBubbleCtrl->SetTextFormat(aTextFormat);
}
+ if( iPreviewBubbleRenderer )
+ {
+ iPreviewBubbleRenderer->SetTextFormat( aTextFormat );
+ }
}
EXPORT_C void CVirtualKeyboard::SetFrameDiff(TInt aLeftDiff, TInt aTopDiff,
@@ -542,7 +583,11 @@
if ( iBubbleCtrl )
{
iBubbleCtrl->SetFrameDiff(aLeftDiff,aTopDiff,aRightDiff,aBottomDiff);
- }
+ }
+ if ( iPreviewBubbleRenderer )
+ {
+ iPreviewBubbleRenderer->SetFrameDiff( aLeftDiff, aTopDiff, aRightDiff, aBottomDiff );
+ }
}
EXPORT_C CFepUiBaseCtrl* CVirtualKeyboard::HandlePointerMoveEventL(const TPoint& aPt)
@@ -1105,7 +1150,25 @@
{
return CControlGroup::HandlePointerMoveEventL(aPoint);
}
- */
+ */
+EXPORT_C void CVirtualKeyboard::SetPreviewBubbleRenderer( MPeninputVkbPreviewBubbleRenderer* aRenderer )
+ {
+ if ( ( NULL != aRenderer ) && ( aRenderer == iPreviewBubbleRenderer ) )
+ {
+ return;
+ }
+
+ if( iPreviewBubbleRenderer )
+ {
+ iPreviewBubbleRenderer->Detach();
+ }
+
+ iPreviewBubbleRenderer = aRenderer;
+ if ( aRenderer )
+ {
+ aRenderer->Attach();
+ }
+ }
//end of implementation of class CVirtualKeyboard
// Implementation of Class CVirtualKey
--- a/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1545,6 +1545,10 @@
return;
}
+#ifndef FIX_FOR_NGA
+#define FIX_FOR_NGA
+#endif
+
//MLayoutOwner
// ---------------------------------------------------------------------------
// CPeninputServer::UpdateArea
@@ -1559,7 +1563,11 @@
if(iUseWindowCtrl)
{
- iPenUiCtrl->Invalidate(aRect,EFalse);
+#ifdef FIX_FOR_NGA
+ iPenUiCtrl->Invalidate(TRect( TPoint(0,0), LayoutRect().Size()),EFalse);
+#else
+ iPenUiCtrl->Invalidate(aRect,EFalse);
+#endif
return;
}
--- a/textinput/peninputarc/src/peninputserverapp/penuiwndctrl.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputarc/src/peninputserverapp/penuiwndctrl.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -85,8 +85,10 @@
if ( iShowPopup )
{
//layout is extended by popup
- gc.SetClippingRect( iLayoutClipRect );
- gc.BitBlt( aRect.iTl, iBitmap, aRect );
+ TRect rect = aRect;
+ rect.Intersection( iLayoutClipRect );
+ TPoint pos = rect.iTl - iLayoutClipRect.iTl;
+ gc.BitBlt( pos, iBitmap, rect );
// Add to fix NGA refresh problem
CCoeEnv::Static()->WsSession().Flush();
CCoeEnv::Static()->WsSession().Finish();
@@ -241,6 +243,11 @@
void CPenUiWndCtrl::ShowPopup( const TRect& aRectInScreen, const TRect& aRectInLayout, const TRect& aLayoutTrimRect )
{
+ TPoint offset = aLayoutTrimRect.iTl;
+ offset += Position();
+ this->SetPosition( offset );
+ this->SetSize( aLayoutTrimRect.Size() );
+
iPopupWnd->PopUp( aRectInScreen, aRectInLayout );
iLayoutClipRect = aLayoutTrimRect;
iShowPopup = ETrue;
--- a/textinput/peninputcommonctrls/group/peninputcommonctrls.mmp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonctrls/group/peninputcommonctrls.mmp Fri Mar 12 15:44:07 2010 +0200
@@ -62,6 +62,7 @@
SOURCE peninputlistonerowwithouticonwithbubble.cpp
SOURCE peninputlistmultirowrollwithiconwithbubble.cpp
SOURCE peninputlistonerowrollwithiconwithbubble.cpp
+SOURCE peninputlistmultirowwithouticonwithbubble.cpp
// From peninputselectionlist
SOURCEPATH ../src/peninputselectionlist
--- a/textinput/peninputcommonctrls/inc/peninputdropdownlist/peninputdropdownlist.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonctrls/inc/peninputdropdownlist/peninputdropdownlist.h Fri Mar 12 15:44:07 2010 +0200
@@ -98,7 +98,8 @@
EListExpandableWithoutIcon,
EListExpandableRollWithIcon,
EListExpandableRollWithIconWithBubble,
- EListExpandableMultiRowWithoutIcon
+ EListExpandableMultiRowWithoutIcon,
+ EListExpandableMultiRowWithoutIconWithBubble
};
enum TCandTruncateType
--- a/textinput/peninputcommonctrls/inc/peninputdropdownlist/peninputlistmanager.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonctrls/inc/peninputdropdownlist/peninputlistmanager.h Fri Mar 12 15:44:07 2010 +0200
@@ -37,6 +37,7 @@
class CListExpandableMultiRowWithoutIcon;
class CListOneRowRollWithIconWithBubble;
class CListMultiRowRollWithIconWithBubble;
+class CListMultiRowWithoutIconWithBubble;
/**
* List manager
@@ -169,7 +170,8 @@
* @return the multi row list with icon
*/
CList* ListOneRowRollWithIconWithBubble() const;
-
+
+ CList* ListMultiRowWithoutIconWithBubble() const;
/**
* Reset some data
* @since S60 v4.0
@@ -259,7 +261,12 @@
* Not Own
*/
MFepCtrlDropdownListContext* iContext;
-
+
+ /**
+ * The multi roll list without icon with bubble
+ * Own
+ */
+ CListMultiRowWithoutIconWithBubble* iListMultiRowWithoutIconWithBubble;
};
#endif // C_LISTMANAGER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputcommonctrls/inc/peninputdropdownlist/peninputlistmultirowwithouticonwithbubble.h Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2002-2005 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: Multi rows list without icon for drop-down list objects
+*
+*/
+
+#ifndef C_LISTMULTIROWWITHOUTICONWITHBUBBLE_H
+#define C_LISTMULTIROWWITHOUTICONWITHBUBBLE_H
+
+// INCLUDES
+#include <e32std.h>
+#include <w32std.h>
+
+#include "peninputlist.h"
+#include "peninputcandidate.h"
+#include "peninputlistexpandablemultirowwithouticon.h"
+
+class MFepCtrlDropdownListContext;
+/**
+ * Multi rows list without icon for drop-down list
+ *
+ * @lib FepCtrlDropdownList.lib
+ * @since S60 v3.2
+ */
+NONSHARABLE_CLASS(CListMultiRowWithoutIconWithBubble) : public CListExpandableMultiRowWithoutIcon
+ {
+
+public: // Methods
+
+ /**
+ * Create a object of CListMultiRowWithIcon, static method
+ *
+ * @since S60 v3.2
+ * @param aManager Pointer to the list manager
+ * @param iOwner The drop down list
+ * @return The CListMultiRowWithIcon pointer.
+ */
+ static CListMultiRowWithoutIconWithBubble* NewL(CListManager* aManager,
+ MFepCtrlDropdownListContext* iOwner);
+
+ /**
+ * Destructor
+ *
+ * @since S60 v3.2
+ */
+ virtual ~CListMultiRowWithoutIconWithBubble();
+
+// from base class CListMultiRowWithIcon
+
+ /**
+ * Deal with the pointer down event.
+ *
+ * @since S60 v3.2
+ * @param aPoint The point of the mouse
+ * @return None.
+ */
+ virtual void HandlePointerDownL(const TPoint& aPoint);
+
+ /**
+ * Deal with the pointer up event.
+ *
+ * @since S60 v3.2
+ * @param aPoint The point of the mouse
+ * @return None.
+ */
+ virtual void HandlePointerUpL(const TPoint& aPoint);
+
+ /**
+ * Deal with the pointer drag event.
+ *
+ * @since S60 v3.2
+ * @param aPoint The point of the mouse
+ * @return None.
+ */
+ virtual void HandlePointerDragL(const TPoint& aPoint);
+
+protected: // Methods
+
+ /**
+ * Constructor.
+ *
+ * @param aManager The list manager
+ * @param aOwner The context of the drop down list
+ * @since S60 v3.2
+ */
+ CListMultiRowWithoutIconWithBubble(CListManager* aManager, MFepCtrlDropdownListContext* aOwner);
+
+// from base class CList
+
+ /**
+ * Compare rects equal or not.
+ *
+ * @since S60 v3.2
+ * @param aSrcRect The source rect
+ * @param aDesRect The destination rect
+ * @return ETrue If the two rects are equal.
+ */
+ virtual TBool CompareRect(const TRect& aSrcRect, const TRect& aDesRect);
+
+protected:
+
+ };
+
+#endif // C_LISTMULTIROWWITHOUTICONWITHBUBBLE_H
+
+// End Of File
--- a/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputdropdownlist.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputdropdownlist.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -508,7 +508,12 @@
{
ChangeActiveList(iListManager->ListExpandableMultiRowWithoutIcon());
}
- break;
+ break;
+ case EListExpandableMultiRowWithoutIconWithBubble:
+ {
+ ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+ }
+ break;
default:
__ASSERT_DEBUG( EFalse,
User::Panic( _L("TListType Error::SizeChanged()"), 0 ) );
@@ -673,7 +678,14 @@
{
ChangeActiveList( iListManager->ListExpandableMultiRowWithoutIcon() );
}
- break;
+ break;
+
+ case EListExpandableMultiRowWithoutIconWithBubble:
+ {
+ ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+ }
+ break;
+
default:
__ASSERT_DEBUG( EFalse,
User::Panic( _L("TListType Error::SetCandidatesL()"), 0 ) );
@@ -822,6 +834,13 @@
NotifyClosePage();
}
break;
+
+ case EListExpandableMultiRowWithoutIconWithBubble:
+ {
+ ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+ NotifyClosePage();
+ }
+ break;
default:
__ASSERT_DEBUG( EFalse,
User::Panic( _L("TListType Error::ResetAndClear()"), 0 ) );
@@ -1231,7 +1250,13 @@
{
ChangeActiveList( iListManager->ListExpandableMultiRowWithoutIcon() );
}
- break;
+ break;
+ case EListExpandableMultiRowWithoutIconWithBubble:
+ {
+ ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+ }
+ break;
+
default:
__ASSERT_DEBUG( EFalse,
User::Panic( _L("TListType Error::SetFont()"), 0 ) );
@@ -1680,6 +1705,7 @@
EnableSecondary(EFalse);
break;
case EListExpandableMultiRowWithoutIcon:
+ case EListExpandableMultiRowWithoutIconWithBubble:
break;
default:
__ASSERT_DEBUG( EFalse,
@@ -1719,7 +1745,9 @@
|| ( ( ( beforeList == iListManager->ListMultiRowWithIconWithBubble() ))
&& (aList != iListManager->ListMultiRowWithIconWithBubble() ) )
|| ( ( ( beforeList == iListManager->ListMultiRowRollWithIconWithBubble() ))
- && (aList != iListManager->ListMultiRowRollWithIconWithBubble() ) ) )
+ && (aList != iListManager->ListMultiRowRollWithIconWithBubble() ) )
+ || ( ( ( beforeList == iListManager->ListMultiRowWithoutIconWithBubble() ))
+ && (aList != iListManager->ListMultiRowWithoutIconWithBubble() ) ))
{
rect.Shrink(TSize(0,-1));
RootControl()->ReDrawRect(rect);
@@ -1919,8 +1947,9 @@
}
}
break;
- case EListExpandableMultiRowWithoutIcon:
- break;
+ case EListExpandableMultiRowWithoutIcon:
+ case EListExpandableMultiRowWithoutIconWithBubble:
+ break;
case EListNoExpandable:
case EListNoExpandableWithBubble:
break;
@@ -2080,6 +2109,7 @@
iListManager->ListMultiRowRollWithIconWithBubble()->SetDropdownListImgID(aDropdownListDrawInfo);
iListManager->ListExpandableMultiRowWithoutIcon()->SetDropdownListImgID(aDropdownListDrawInfo);
+ iListManager->ListMultiRowWithoutIconWithBubble()->SetDropdownListImgID(aDropdownListDrawInfo);
}
CFepUiLayout* CFepCtrlDropdownList::UiLayout()
@@ -2233,10 +2263,33 @@
rect.iTl.iY = iBubbleVerticalMargin + aRect.iTl.iY -
iBubbleSize.iHeight;
- rect.iBr.iY = iBubbleVerticalMargin + aRect.iTl.iY;
-
- TRAP_IGNORE(iBubbleCtrl->SetTextL(aText));
-
+ if ( rect.iTl.iY < 0 )
+ {
+ rect.iTl.iY = iBubbleVerticalMargin;
+ }
+
+ rect.iBr.iY = rect.iTl.iY + iBubbleSize.iHeight;
+
+ if((TBidiText::TextDirectionality(aText) == TBidiText:: ERightToLeft) && (aText.Length() > 1))
+ {
+ HBufC* displayStr = aText.AllocLC();
+
+ TInt i = 0;
+ TInt charNum = displayStr->Length();
+
+ while(i < charNum)
+ {
+ displayStr->Des()[i] = aText[(charNum-1)-i];
+ ++i;
+ }
+ TRAP_IGNORE(iBubbleCtrl->SetTextL(*displayStr));
+ CleanupStack::PopAndDestroy(displayStr);
+ }
+ else
+ {
+ TRAP_IGNORE(iBubbleCtrl->SetTextL(aText));
+ }
+
iBubbleCtrl->Popup(rect);
}
}
--- a/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistmanager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistmanager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -31,6 +31,8 @@
#include "peninputlistmultirowrollwithicon.h"
#include "peninputlistonerowrollwithicon.h"
#include "peninputlistexpandablemultirowwithouticon.h"
+#include "peninputlistmultirowwithouticonwithbubble.h"
+
#include <peninputdropdownlistcontext.h>
// ======== MEMBER FUNCTIONS ========
@@ -72,6 +74,7 @@
delete iListExpandableMultiRowWithoutIcon;
delete iListMultiRowRollWithIconWithBubble;
delete iListOneRowRollWithIconWithBubble;
+ delete iListMultiRowWithoutIconWithBubble;
}
// -----------------------------------------------------------------------------
@@ -95,6 +98,7 @@
iListExpandableMultiRowWithoutIcon = CListExpandableMultiRowWithoutIcon::NewL(this, aContext);
iListMultiRowRollWithIconWithBubble = CListMultiRowRollWithIconWithBubble::NewL(this, aContext);
iListOneRowRollWithIconWithBubble = CListOneRowRollWithIconWithBubble::NewL(this, aContext);
+ iListMultiRowWithoutIconWithBubble = CListMultiRowWithoutIconWithBubble::NewL(this, aContext);
}
// -----------------------------------------------------------------------------
@@ -117,6 +121,7 @@
iListExpandableMultiRowWithoutIcon->SizeChanged();
iListMultiRowRollWithIconWithBubble->SizeChanged();
iListOneRowRollWithIconWithBubble->SizeChanged();
+ iListMultiRowWithoutIconWithBubble->SizeChanged();
}
// -----------------------------------------------------------------------------
@@ -139,6 +144,7 @@
iListExpandableMultiRowWithoutIcon->Move(aOffset);
iListMultiRowRollWithIconWithBubble->Move(aOffset);
iListOneRowRollWithIconWithBubble->Move(aOffset);
+ iListMultiRowWithoutIconWithBubble->Move(aOffset);
// Move all candidates
for ( TInt i=0; i<iContext->CandidateCount(); i++ )
@@ -281,6 +287,11 @@
{
return iListMultiRowRollWithIconWithBubble;
}
+
+CList* CListManager::ListMultiRowWithoutIconWithBubble() const
+ {
+ return iListMultiRowWithoutIconWithBubble;
+ }
void CListManager::ResetStatus()
{
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistmultirowwithouticonwithbubble.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,228 @@
+/*
+* Copyright (c) 2002-2005 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: Multi rows list with icon with bubble for drop-down list objects
+*
+*/
+
+// Include
+#include <fbs.h>
+#include <AknsUtils.h>
+#include <AknLayoutDef.h>
+#include <peninputdropdownlistcontext.h>
+#include <peninputdropdownlist.h>
+#include <aknsdrawutils.h>
+#include "peninputlistmultirowwithouticonwithbubble.h"
+#include "peninputlayout.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// Implementation of Class CListMultiRowWithoutIconWithBubble
+
+// -----------------------------------------------------------------------------
+// CListMultiRowWithoutIconWithBubble::CListMultiRowWithoutIconWithBubble
+// C++ default constructor can NOT contain any code, that
+// might leave
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CListMultiRowWithoutIconWithBubble::CListMultiRowWithoutIconWithBubble(CListManager* aManager,
+ MFepCtrlDropdownListContext *aOwner)
+: CListExpandableMultiRowWithoutIcon(aManager, aOwner)
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CListMultiRowWithoutIconWithBubble::NewL
+// factory function
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CListMultiRowWithoutIconWithBubble* CListMultiRowWithoutIconWithBubble::NewL(CListManager* aManager,
+ MFepCtrlDropdownListContext *aOwner)
+ {
+ CListMultiRowWithoutIconWithBubble* self = new (ELeave) CListMultiRowWithoutIconWithBubble(aManager, aOwner);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CListMultiRowWithoutIconWithBubble::~CListMultiRowWithoutIconWithBubble
+// desstrutor function
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CListMultiRowWithoutIconWithBubble::~CListMultiRowWithoutIconWithBubble()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CListMultiRowWithoutIconWithBubble::HandlePointerDownL
+// handle pointer down
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CListMultiRowWithoutIconWithBubble::HandlePointerDownL(const TPoint& aPoint)
+ {
+ CList::HandlePointerDownL(aPoint);
+
+ // also consider fuzzy boundry of drop down list
+ TRect fuzzyrect = iRect;
+ fuzzyrect.Grow(iOwner->FuzzyBoundry(), iOwner->FuzzyBoundry());
+
+ if (!fuzzyrect.Contains(aPoint))
+ {
+ iOwner->SetCapture(EFalse);
+ iOwner->AutoChangeActiveList(iOwner->GetFirstCandidateIndex());
+ iOwner->ClearBubble();
+ return;
+ }
+
+ if(iContentRect.Contains(aPoint))
+ {
+ TInt index = -1;
+ CCandidate* candidate = FindCandidate(aPoint, index);
+ if(candidate)
+ {
+ iOwner->DrawBubble(iClickedRect, candidate->GetCandidate());
+ }
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CListMultiRowWithoutIconWithBubble::HandlePointerDragL
+// handle pointer drag function
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CListMultiRowWithoutIconWithBubble::HandlePointerDragL(const TPoint& aPoint)
+ {
+ // Pass the event first to the base
+ CList::HandlePointerDragL(aPoint);
+
+ CCandidate* candidate = FindCandidate(aPoint, iClickedCandidateIndex);
+
+ TBool isUpdateBubble = EFalse;
+ if ( candidate )
+ {
+ if (iClickedRect != candidate->GetRect())
+ {// move to the other candidate
+ // set update prview bubble flag
+ isUpdateBubble = ETrue;
+ // remenber the previous cell rect
+ iMoveLatestRect = iClickedRect;
+ // get the new cell rect
+ iClickedRect.SetRect(candidate->GetRect().iTl, candidate->GetRect().Size());
+ }
+ }
+ else
+ {// move to the aperture
+ // remember the previous cell
+ iMoveLatestRect = iClickedRect;
+ // set the new cell to empty
+ iClickedRect = KDummyRect;
+ // redraw the cell only when drag outside at the first time
+ if(iMoveLatestRect != iClickedRect)
+ {
+ iOwner->ClearBubble();
+ DrawSelection(iMoveLatestRect, EFalse);
+ DrawHighightCell(iMoveLatestRect, ETrue);
+ }
+ }
+
+ if(candidate && isUpdateBubble)
+ {
+ iOwner->ClearBubble();
+ CompareRect(iMoveLatestRect, iClickedRect);
+ // Show preview bubble when drag into a candidate cell
+ // Make sure show the bubble after redraw clicked cell
+ iOwner->DrawBubble(iClickedRect, candidate->GetCandidate());
+ }
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// CListMultiRowWithoutIconWithBubble::HandlePointerUpL
+// handle pointer up function
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CListMultiRowWithoutIconWithBubble::HandlePointerUpL(const TPoint& aPoint)
+ {
+ // Reset the button clicked flag to EFalse
+ iIndicateButtonClicked = EFalse;
+
+ iOwner->ClearBubble();
+
+#ifdef __WINS__
+ // in emulator, double click will be treated as:
+ // 1 pointer down and 2 pointer up, which will cause error
+ if (iClickedRect.IsEmpty() && ((CFepUiBaseCtrl*)iOwner)->PointerDown())
+#else
+ if (iClickedRect.IsEmpty())
+#endif // __WINS__
+ {
+ iOwner->SetCapture(EFalse);
+ // Change active list object ie. close the dd-list
+ iOwner->AutoChangeActiveList( iOwner->GetFirstCandidateIndex() );
+ }
+ else
+ {
+ if ( iContentRect.Contains(aPoint) )
+ {
+ if ( iClickedRect.Contains(aPoint) )
+ {
+ // Redraw the selected aread
+ DrawSelection(iClickedRect, EFalse);
+
+ iOwner->SetCapture(EFalse);
+
+ // We have selected a candidate and iClickedCandidateIndex is the selected Index.
+ // Send the candidate to others
+ if (iClickedCandidateIndex != KErrNotFound)
+ {
+ iOwner->AutoChangeActiveList( iOwner->GetFirstCandidateIndex() );
+ CCandidate* candidate = iOwner->GetCandidate(iClickedCandidateIndex);
+ if ( candidate )
+ {
+ iOwner->ReportCandidateSelectEventL(candidate->GetCandidate(),
+ iClickedCandidateIndex);
+ }
+ }
+ }
+ }
+ iClickedRect = KEmptyRect;
+ }
+ }
+
+
+TBool CListMultiRowWithoutIconWithBubble::CompareRect(const TRect& aSrcRect, const TRect& aDesRect)
+ {
+ if(aSrcRect != aDesRect)
+ {
+ DrawSelection(aDesRect, ETrue);
+ DrawSelection(aSrcRect, EFalse);
+ DrawHighightCell(aSrcRect, ETrue);
+ }
+
+ return EFalse;
+
+ }
+
+
+// End Of File
--- a/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistonerowwithiconwithbubble.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistonerowwithiconwithbubble.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -151,6 +151,7 @@
iMoveLatestRect = iClickedRect;
iClickedRect.SetRect(iNavigationPreviousRect.iTl, iNavigationPreviousRect.iBr);
}
+ CompareRect(iMoveLatestRect, iClickedRect);
}
else if ( iContentRect.Contains(aPoint) )
{
@@ -165,6 +166,7 @@
iMoveLatestRect = iClickedRect;
iClickedRect.SetRect(candidate->GetRect().iTl, candidate->GetRect().Size());
+ CompareRect(iMoveLatestRect, iClickedRect);
iOwner->ClearBubble();
iOwner->DrawBubble(iClickedRect, candidate->GetCandidate());
}
@@ -175,6 +177,7 @@
iMoveLatestRect = iClickedRect;
iClickedRect = KEmptyRect;
+ CompareRect(iMoveLatestRect, iClickedRect);
}
}
else
@@ -184,7 +187,6 @@
iClickedRect = KEmptyRect;
iMoveLatestRect = iClickedRect;
}
- CompareRect(iMoveLatestRect, iClickedRect);
}
}
--- a/textinput/peninputcommonlayout/inc/peninputcommonlayoutglobalenum.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonlayout/inc/peninputcommonlayoutglobalenum.h Fri Mar 12 15:44:07 2010 +0200
@@ -70,6 +70,7 @@
EPeninputLayoutEventLeftArrow,
EPeninputLayoutEventRightArrow,
+ EPeninputLayoutEventMultiRange,
EPeninputLayoutEventLast = 2000 // user event starts from here, same as base control
};
@@ -120,6 +121,7 @@
EPeninputWindowCtrlIdMultiLineICF,
//candidate list
EPentinputHwrCandidateList,
+ EPeninutWindowCtrlIdMultiRangeBtn,
EPeninputWindowCtrlIdLastOne,
EPeninutWindowCtrlIdRangeBtn //todo split view
--- a/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1337,8 +1337,13 @@
CleanupStack::PopAndDestroy(); //rects
- iVirtualNumpad->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG68 );
+ iVirtualNumpad->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG65 );
iVirtualNumpad->SetDrawOpaqueBackground( EFalse );
+
+ //set key to be 9 piece graphics
+ iVirtualNumpad->SetKeySkinId( EKeyBmpNormal, KAknsIIDQsnFrKeypadButtonFrNormal );
+ iVirtualNumpad->SetKeySkinId( EKeyBmpHighlight, KAknsIIDQsnFrKeypadButtonFrPressed );
+ iVirtualNumpad->SetKeySkinId( EKeyBmpDim, KAknsIIDQsnFrKeypadButtonFrInactive );
}
// ---------------------------------------------------------------------------
@@ -1376,8 +1381,13 @@
TInt cols = iLafManager->VirtualSctpadColCount();
iVirtualSctpad->UpdatePaging( rows, cols );
- iVirtualSctpad->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG68 );
- iVirtualSctpad->SetDrawOpaqueBackground( EFalse );
+ iVirtualSctpad->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG65 );
+ iVirtualSctpad->SetDrawOpaqueBackground( EFalse );
+
+ //set key to be 9 piece graphics
+ iVirtualSctpad->SetKeySkinId( EKeyBmpNormal, KAknsIIDQsnFrKeypadButtonFrNormal );
+ iVirtualSctpad->SetKeySkinId( EKeyBmpHighlight, KAknsIIDQsnFrKeypadButtonFrPressed );
+ iVirtualSctpad->SetKeySkinId( EKeyBmpDim, KAknsIIDQsnFrKeypadButtonFrInactive );
}
@@ -1412,8 +1422,13 @@
CleanupStack::PopAndDestroy();//rects
- iVirtualSctpadFix->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG68 );
- iVirtualSctpadFix->SetDrawOpaqueBackground( EFalse );
+ iVirtualSctpadFix->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG65 );
+ iVirtualSctpadFix->SetDrawOpaqueBackground( EFalse );
+
+ //set key to be 9 piece graphics
+ iVirtualSctpadFix->SetKeySkinId( EKeyBmpNormal, KAknsIIDQsnFrKeypadButtonFrNormal );
+ iVirtualSctpadFix->SetKeySkinId( EKeyBmpHighlight, KAknsIIDQsnFrKeypadButtonFrPressed );
+ iVirtualSctpadFix->SetKeySkinId( EKeyBmpDim, KAknsIIDQsnFrKeypadButtonFrInactive );
}
// ---------------------------------------------------------------------------
--- a/textinput/peninputfingerhwrar/data/peninputfingerhwrarwnd.rss Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/data/peninputfingerhwrarwnd.rss Fri Mar 12 15:44:07 2010 +0200
@@ -264,25 +264,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_backspace;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_backspace_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_backspace;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_backspace_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_backspace;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_backspace_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_backspace;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_backspace_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_backspace;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_backspace_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_backspace_mask;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_hwr_close
@@ -291,25 +286,20 @@
imgmajorskinid=EAknsMajorGeneric;
colorgroup=0xffff;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_close;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_close_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_close;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_close_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_close;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_close_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_close;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_close_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_close;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_close_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_close_mask;
}
@@ -321,23 +311,18 @@
nactive=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up;
nactivemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
nactivep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up;
nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
active=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up;
activemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
activep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up;
activepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
disable=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up;
disablemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_up_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_hwr_arrowdown
@@ -348,23 +333,18 @@
nactive=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down;
nactivemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
nactivep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down;
nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
active=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down;
activemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
activep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down;
activepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
disable=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down;
disablemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_down_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
}
@@ -376,23 +356,18 @@
nactive=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left;
nactivemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
nactivep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left;
nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
active=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left;
activemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
activep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left;
activepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
disable=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left;
disablemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_left_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_hwr_arrowright
@@ -403,23 +378,18 @@
nactive=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right;
nactivemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
nactivep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right;
nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
active=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right;
activemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
activep=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right;
activepmsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
disable=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right;
disablemsk=EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_hwr_symbol_table_button
@@ -428,25 +398,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_case_special;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_case_special_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_case_special;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_case_special_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_case_special;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_case_special_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_case_special;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_case_special_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_case_special;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_case_special_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_symbol_table_mask;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_hwr_option
@@ -457,23 +422,18 @@
nactive=EMbmPeninputfingerhwrarQgn_indi_input_options;
nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_options_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
nactivep=EMbmPeninputfingerhwrarQgn_indi_input_options;
nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_options_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
active=EMbmPeninputfingerhwrarQgn_indi_input_options;
activemsk=EMbmPeninputfingerhwrarQgn_indi_input_options_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
activep=EMbmPeninputfingerhwrarQgn_indi_input_options;
activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_options_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
disable=EMbmPeninputfingerhwrarQgn_indi_input_options;
disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_options_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_hwr_enter
@@ -482,25 +442,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_enter;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_enter_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_enter;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_enter_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_enter;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_enter_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_enter;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_enter_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_enter;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_enter_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_arabic_enter_mask;
}
@@ -561,9 +516,8 @@
bmpfile = AKN_FEP_FINGERHWR_BMP;
imgmajorskinid = EAknsMajorGeneric;
- iconimage = EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right;
- iconimagemsk = EMbmPeninputfingerhwrarQgn_indi_itut_cursor_right_mask;
- iconimageskinid = EAknsMinorGenericQgnIndiFepButtonChinese;
+ iconimage = EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_writing_area;
+ iconimagemsk = EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_writing_area_mask;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_arabic_3page_hwr_sct_page_1
@@ -572,25 +526,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_3_mask;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_arabic_3page_hwr_sct_page_2
@@ -599,25 +548,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_3_mask;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_arabic_3page_hwr_sct_page_3
@@ -626,25 +570,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3_mask;
- //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3_mask;
- //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3_mask;
- //activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3_mask;
- //activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page3_mask;
- //disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_3_3_mask;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_arabic_2page_hwr_sct_page_1
@@ -653,20 +592,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page1_mask;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_1_2_mask;
}
RESOURCE AKN_FEP_BUTTON_IMAGE r_akn_fep_arabic_2page_hwr_sct_page_2
@@ -675,20 +614,20 @@
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
+ nactive=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2;
+ nactivemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2_mask;
- nactivep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
+ nactivep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2;
+ nactivepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2_mask;
- active=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- activemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
+ active=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2;
+ activemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2_mask;
- activep=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
+ activep=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2;
+ activepmsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2_mask;
- disable=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2;
- disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_fshwr_sct_page2_mask;
+ disable=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2;
+ disablemsk=EMbmPeninputfingerhwrarQgn_indi_input_hwr_arabic_page_2_2_mask;
}
RESOURCE AKN_FEP_NONIRREGULAR_VKB_BITMAP r_akn_fep_vkb_nonirregular_bitmap
@@ -1256,7 +1195,7 @@
leftstr = <0x005D>;
scancode = 0x005D;
},
- PENINPUT_FINGERHWR_KEYPAD_KEY //half revert /
+ PENINPUT_FINGERHWR_KEYPAD_KEY //half \
{
leftstr = <0x005C>;
scancode = 0x005C;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_arabic_backspace.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<defs>
+</defs>
+<polygon fill="none" points="22,22 2,22 2,1.999 22,1.999 "/>
+<rect fill="none" width="24" height="24"/>
+<polygon points="15.908,15.528 15.908,13.102 2,13.102 2,10.749 15.908,10.749 15.908,8.474 22,12.001 "/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_arabic_enter.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="none" width="24" height="24"/>
+<polygon fill="none" points="22,22.002 2,22.002 2,1.999 22,1.999 "/>
+<polygon points="16.014,15.654 16.014,18.033 22,14.566 16.014,11.104 16.014,13.342 4.165,13.342 4.165,5.965 2,5.965 2,15.654 "/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_close.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="none" width="24" height="24"/>
+<polygon fill="none" points="22,22.001 2,22.001 2,2 22,2 "/>
+<polygon fill="#28B304" points="18.383,2.377 10.146,15.546 3.887,9.787 2,12.324 12.157,21.625 22,4.679 "/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_page_1_2.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="48px" height="24px" viewBox="0 0 48 24" enable-background="new 0 0 48 24" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="none" width="48" height="24"/>
+<polygon points="41.865,7.944 46,12 41.865,16.057 "/>
+<path d="M35.072,5.766l-0.367,0.021c-0.09,0.753-0.221,1.273-0.393,1.56c-0.303,0.527-0.855,0.792-1.646,0.792
+ c-0.752,0-1.465-0.296-2.139-0.887c-0.371-0.322-0.791-0.818-1.27-1.488l-0.691,2.11c0.932,1.151,1.629,2.159,2.096,3.027
+ c0.465,0.864,0.871,1.882,1.211,3.045c0.178,0.598,0.537,2.025,1.078,4.291h0.314c0-0.043,0.006-0.307,0.021-0.805
+ c0.016-0.49,0.023-0.846,0.023-1.063c0-1.246-0.051-2.238-0.15-2.982c-0.1-0.739-0.246-1.384-0.436-1.939
+ c-0.113-0.329-0.307-0.773-0.576-1.331c0.398,0.055,0.645,0.082,0.736,0.082c0.738,0,1.311-0.252,1.717-0.758
+ c0.369-0.463,0.555-1.078,0.555-1.852c0-0.316-0.006-0.64-0.021-0.965C35.119,6.299,35.098,6.012,35.072,5.766z"/>
+<path d="M16.327,10.237c-0.25-0.898-0.615-1.748-1.097-2.555C14.89,7.119,14.439,6.5,13.878,5.834l-1.036,2.277
+ c0.527,0.631,0.934,1.17,1.218,1.617c0.564,0.881,1.005,1.821,1.325,2.824c0.414,1.288,0.62,2.67,0.62,4.153
+ c-0.029,0.809-0.044,1.293-0.044,1.459h0.365c0.178-1.26,0.277-1.992,0.299-2.195c0.099-0.832,0.149-1.564,0.149-2.193
+ C16.775,12.479,16.626,11.301,16.327,10.237z"/>
+<path d="M20.211,18.526l5.023-13.053h1.225l-5.042,13.053H20.211z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_page_1_3.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="48px" height="24px" viewBox="0 0 48 24" enable-background="new 0 0 48 24" xml:space="preserve">
+<defs>
+</defs>
+<path d="M37.436,5.763H37.07c-0.144,1.169-0.584,1.751-1.328,1.751c-0.369,0-0.648-0.128-0.847-0.391
+ c-0.201-0.258-0.326-0.712-0.384-1.36h-0.365c-0.115,0.648-0.316,1.145-0.609,1.498c-0.341,0.408-0.813,0.612-1.42,0.612
+ c-0.581,0-1.111-0.171-1.589-0.512c-0.427-0.305-0.825-0.759-1.194-1.358l-0.768,2.494c0.93,1.35,1.576,2.376,1.946,3.082
+ c0.481,0.933,0.822,1.889,1.021,2.872c0.197,0.987,0.299,2.248,0.299,3.786h0.438c0.171-1.069,0.275-1.81,0.316-2.218
+ c0.037-0.411,0.056-0.834,0.056-1.276c0-0.789-0.056-1.465-0.166-2.021c-0.111-0.561-0.271-1.087-0.478-1.587
+ c-0.116-0.271-0.307-0.664-0.57-1.176c0.521,0,0.967-0.098,1.338-0.298c0.373-0.201,0.678-0.5,0.922-0.896
+ c0.143,0.26,0.363,0.451,0.664,0.576c0.3,0.128,0.653,0.188,1.062,0.188c0.705,0,1.23-0.231,1.568-0.694
+ c0.339-0.463,0.509-1.133,0.509-2.01c0-0.042-0.011-0.192-0.027-0.448C37.444,6.122,37.436,5.918,37.436,5.763z"/>
+<rect fill="none" width="48" height="24"/>
+<polygon points="41.866,7.944 46,12 41.866,16.057 "/>
+<path d="M16.327,10.237c-0.25-0.898-0.615-1.748-1.097-2.555C14.89,7.119,14.439,6.5,13.878,5.834l-1.036,2.277
+ c0.527,0.631,0.934,1.17,1.218,1.617c0.564,0.881,1.005,1.821,1.325,2.824c0.414,1.288,0.62,2.67,0.62,4.153
+ c-0.029,0.808-0.044,1.292-0.044,1.459h0.365c0.178-1.261,0.277-1.992,0.299-2.196c0.099-0.831,0.149-1.564,0.149-2.192
+ C16.775,12.479,16.626,11.301,16.327,10.237z"/>
+<path d="M20.211,18.526l5.023-13.054h1.225l-5.042,13.054H20.211z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_page_2_2.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="48px" height="24px" viewBox="0 0 48 24" enable-background="new 0 0 48 24" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="none" width="48" height="24"/>
+<polygon points="6.135,7.944 2,12 6.135,16.056 "/>
+<path d="M35.072,5.766l-0.367,0.021c-0.09,0.753-0.221,1.273-0.393,1.56c-0.303,0.527-0.855,0.792-1.646,0.792
+ c-0.752,0-1.465-0.296-2.139-0.887c-0.371-0.322-0.791-0.818-1.27-1.488l-0.691,2.11c0.932,1.151,1.629,2.159,2.096,3.027
+ c0.465,0.864,0.871,1.882,1.211,3.046c0.178,0.596,0.537,2.025,1.078,4.291h0.314c0-0.043,0.006-0.309,0.021-0.805
+ c0.016-0.49,0.023-0.848,0.023-1.063c0-1.246-0.051-2.238-0.15-2.982c-0.1-0.74-0.246-1.385-0.436-1.94
+ c-0.113-0.329-0.307-0.773-0.576-1.331c0.398,0.055,0.645,0.082,0.736,0.082c0.738,0,1.311-0.252,1.717-0.758
+ c0.369-0.463,0.555-1.078,0.555-1.852c0-0.316-0.006-0.64-0.021-0.965C35.119,6.299,35.098,6.012,35.072,5.766z"/>
+<path d="M20.211,18.527l5.023-13.054h1.225l-5.042,13.054H20.211z"/>
+<path d="M19.348,5.766l-0.366,0.021c-0.091,0.753-0.222,1.273-0.393,1.56c-0.304,0.527-0.856,0.792-1.647,0.792
+ c-0.752,0-1.465-0.296-2.138-0.887c-0.371-0.322-0.792-0.818-1.269-1.488l-0.692,2.11c0.932,1.151,1.629,2.159,2.095,3.027
+ c0.466,0.864,0.871,1.882,1.212,3.046c0.177,0.596,0.536,2.025,1.077,4.291h0.315c0-0.043,0.006-0.309,0.022-0.805
+ c0.014-0.49,0.023-0.848,0.023-1.063c0-1.246-0.052-2.238-0.151-2.982c-0.099-0.74-0.246-1.385-0.437-1.94
+ c-0.113-0.329-0.305-0.773-0.576-1.331c0.399,0.055,0.646,0.082,0.737,0.082c0.739,0,1.311-0.252,1.716-0.758
+ c0.37-0.463,0.556-1.078,0.556-1.852c0-0.316-0.006-0.64-0.022-0.965C19.395,6.299,19.375,6.012,19.348,5.766z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_page_2_3.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="48px" height="24px" viewBox="0 0 48 24" enable-background="new 0 0 48 24" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="none" width="48" height="24"/>
+<path d="M37.436,5.763h-0.365c-0.145,1.169-0.584,1.751-1.328,1.751c-0.369,0-0.648-0.128-0.848-0.39
+ c-0.201-0.258-0.326-0.712-0.383-1.361h-0.365c-0.115,0.649-0.316,1.145-0.609,1.498c-0.342,0.408-0.813,0.612-1.42,0.612
+ c-0.582,0-1.111-0.17-1.59-0.512c-0.426-0.305-0.824-0.758-1.193-1.358l-0.768,2.494c0.93,1.349,1.576,2.375,1.945,3.082
+ c0.482,0.932,0.822,1.889,1.021,2.872c0.197,0.987,0.299,2.247,0.299,3.786h0.438c0.17-1.07,0.275-1.81,0.316-2.218
+ c0.037-0.411,0.055-0.835,0.055-1.276c0-0.789-0.055-1.465-0.166-2.021c-0.111-0.561-0.27-1.087-0.477-1.587
+ c-0.117-0.271-0.307-0.665-0.57-1.176c0.521,0,0.967-0.097,1.338-0.298c0.373-0.201,0.678-0.5,0.922-0.896
+ c0.143,0.259,0.363,0.451,0.664,0.576c0.299,0.127,0.652,0.188,1.061,0.188c0.705,0,1.23-0.231,1.568-0.694
+ c0.34-0.463,0.51-1.133,0.51-2.01c0-0.042-0.012-0.192-0.027-0.448C37.444,6.122,37.436,5.918,37.436,5.763z"/>
+<polygon points="41.866,7.944 46,12 41.866,16.056 "/>
+<polygon points="6.135,7.944 2,12 6.135,16.056 "/>
+<path d="M20.211,18.527l5.023-13.054h1.225l-5.042,13.054H20.211z"/>
+<path d="M17.889,5.693l-0.366,0.021c-0.091,0.753-0.222,1.273-0.393,1.56c-0.304,0.527-0.856,0.792-1.647,0.792
+ c-0.752,0-1.465-0.296-2.138-0.887c-0.371-0.322-0.792-0.818-1.269-1.488l-0.692,2.11c0.932,1.151,1.629,2.159,2.095,3.027
+ c0.466,0.864,0.871,1.882,1.212,3.046c0.177,0.596,0.536,2.025,1.077,4.291h0.315c0-0.043,0.006-0.309,0.022-0.805
+ c0.014-0.49,0.023-0.848,0.023-1.063c0-1.246-0.052-2.238-0.151-2.982c-0.099-0.74-0.246-1.385-0.437-1.94
+ c-0.113-0.329-0.305-0.773-0.576-1.331c0.399,0.055,0.646,0.082,0.737,0.082c0.739,0,1.311-0.252,1.716-0.758
+ c0.37-0.463,0.556-1.078,0.556-1.852c0-0.316-0.006-0.64-0.022-0.965C17.936,6.227,17.916,5.939,17.889,5.693z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_page_3_3.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="48px" height="24px" viewBox="0 0 48 24" enable-background="new 0 0 48 24" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="none" width="48" height="24"/>
+<polygon points="6.135,7.944 2,12 6.135,16.057 "/>
+<path d="M20.211,18.526l5.023-13.054h1.225l-5.042,13.054H20.211z"/>
+<path d="M20.253,5.69h-0.366c-0.143,1.169-0.583,1.751-1.328,1.751c-0.369,0-0.649-0.128-0.847-0.39
+ c-0.201-0.258-0.326-0.712-0.384-1.361h-0.365c-0.114,0.649-0.316,1.145-0.609,1.498c-0.341,0.408-0.813,0.612-1.419,0.612
+ c-0.582,0-1.112-0.17-1.589-0.512c-0.427-0.305-0.826-0.758-1.195-1.358l-0.767,2.494c0.929,1.349,1.577,2.375,1.946,3.082
+ c0.481,0.932,0.822,1.888,1.02,2.872c0.198,0.987,0.299,2.248,0.299,3.786h0.438c0.17-1.069,0.274-1.81,0.315-2.218
+ c0.038-0.41,0.056-0.834,0.056-1.275c0-0.789-0.055-1.465-0.166-2.022c-0.111-0.561-0.27-1.087-0.478-1.587
+ c-0.116-0.271-0.307-0.665-0.57-1.176c0.521,0,0.966-0.097,1.338-0.298c0.372-0.201,0.678-0.5,0.922-0.896
+ c0.142,0.259,0.363,0.451,0.664,0.576c0.3,0.127,0.653,0.188,1.062,0.188c0.705,0,1.23-0.231,1.568-0.694
+ c0.338-0.463,0.508-1.133,0.508-2.01c0-0.042-0.01-0.192-0.027-0.448C20.262,6.05,20.253,5.846,20.253,5.69z"/>
+<path d="M37.436,5.763H37.07c-0.144,1.169-0.584,1.751-1.328,1.751c-0.369,0-0.648-0.128-0.847-0.39
+ c-0.201-0.258-0.326-0.712-0.384-1.361h-0.365c-0.115,0.649-0.316,1.145-0.609,1.498c-0.341,0.408-0.813,0.612-1.42,0.612
+ c-0.581,0-1.111-0.17-1.589-0.512c-0.427-0.305-0.825-0.758-1.194-1.358l-0.768,2.494c0.93,1.349,1.576,2.375,1.946,3.082
+ c0.481,0.932,0.822,1.888,1.021,2.872c0.197,0.987,0.299,2.248,0.299,3.786h0.438c0.171-1.069,0.275-1.81,0.316-2.218
+ c0.037-0.41,0.056-0.834,0.056-1.275c0-0.789-0.056-1.465-0.166-2.022c-0.111-0.561-0.271-1.087-0.478-1.587
+ c-0.116-0.271-0.307-0.665-0.57-1.176c0.521,0,0.967-0.097,1.338-0.298c0.373-0.201,0.678-0.5,0.922-0.896
+ c0.143,0.259,0.363,0.451,0.664,0.576c0.3,0.127,0.653,0.188,1.062,0.188c0.705,0,1.23-0.231,1.568-0.694
+ c0.339-0.463,0.509-1.133,0.509-2.01c0-0.042-0.011-0.192-0.027-0.448C37.444,6.122,37.436,5.918,37.436,5.763z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_symbol_table.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="none" width="24" height="24"/>
+<polygon fill="none" points="22,22 2,22 2,2 22,2 "/>
+<path d="M7.408,9.259h1.547c-0.27,1.672-0.404,2.826-0.404,3.463c0,0.395,0.037,0.692,0.111,0.891s0.256,0.299,0.545,0.299
+ c0.34,0,0.613-0.193,0.82-0.578c0.207-0.384,0.311-0.911,0.311-1.579c0-1.207-0.291-2.14-0.873-2.798S8.055,7.97,6.98,7.97
+ c-1.133,0-2.053,0.347-2.76,1.04S3.16,10.666,3.16,11.896c0,1.375,0.327,2.405,0.981,3.09s1.636,1.029,2.944,1.029
+ c0.754,0,1.537-0.145,2.35-0.434v0.938c-0.309,0.121-0.696,0.225-1.163,0.311s-0.882,0.129-1.245,0.129
+ c-1.539,0-2.762-0.434-3.668-1.299S2,13.561,2,11.955c0-1.008,0.209-1.882,0.627-2.622s1.01-1.308,1.775-1.702
+ s1.615-0.592,2.549-0.592c1.43,0,2.531,0.407,3.305,1.222s1.16,1.958,1.16,3.431c0,0.969-0.216,1.721-0.647,2.258
+ s-1.011,0.807-1.737,0.807c-0.348,0-0.648-0.104-0.902-0.311s-0.422-0.496-0.504-0.867c-0.367,0.785-0.891,1.178-1.57,1.178
+ c-0.484,0-0.882-0.191-1.192-0.572s-0.466-0.906-0.466-1.579c0-1.047,0.273-1.866,0.82-2.458S6.494,9.259,7.408,9.259z
+ M7.408,11.896l0.217-1.775H7.232c-0.473,0-0.865,0.212-1.178,0.636s-0.469,1.009-0.469,1.755c0,0.512,0.063,0.874,0.19,1.084
+ s0.327,0.316,0.601,0.316C6.9,13.912,7.244,13.24,7.408,11.896z"/>
+<path d="M20.403,16.689c-0.182-0.182-0.272-0.402-0.272-0.66s0.091-0.475,0.272-0.656c0.182-0.178,0.401-0.27,0.659-0.27
+ c0.262,0,0.483,0.092,0.665,0.27C21.909,15.555,22,15.771,22,16.029c0,0.256-0.092,0.475-0.275,0.656
+ c-0.184,0.184-0.404,0.275-0.662,0.275S20.585,16.871,20.403,16.689z"/>
+<path d="M15.698,9.057c-0.445,0-0.779,0.099-1.002,0.293c-0.223,0.196-0.334,0.489-0.334,0.879c0,0.188,0.046,0.38,0.138,0.574
+ c0.092,0.196,0.331,0.48,0.718,0.855c0.367,0.349,0.639,0.667,0.814,0.955c0.176,0.29,0.264,0.632,0.264,1.025v0.615h-1.488v-0.533
+ c0-0.236-0.062-0.447-0.188-0.629c-0.125-0.181-0.372-0.456-0.744-0.824c-0.507-0.507-0.829-0.914-0.964-1.221
+ s-0.202-0.607-0.202-0.9c0-0.694,0.233-1.22,0.7-1.576c0.467-0.354,1.143-0.533,2.024-0.533c0.531,0,1.135,0.093,1.811,0.275v1.008
+ C16.647,9.145,16.132,9.057,15.698,9.057z M14.898,16.689c-0.182-0.182-0.272-0.402-0.272-0.66s0.091-0.475,0.27-0.656
+ c0.18-0.178,0.398-0.27,0.656-0.27s0.478,0.092,0.656,0.27c0.18,0.182,0.27,0.398,0.27,0.656s-0.09,0.479-0.27,0.66
+ c-0.179,0.182-0.398,0.271-0.656,0.271C15.298,16.961,15.08,16.871,14.898,16.689z"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/data/qgn_indi_input_hwr_arabic_writing_area.svg Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<defs>
+</defs>
+<polygon fill="none" points="22,22.001 2,22.001 2,1.999 22,1.999 "/>
+<rect fill="none" width="24" height="24"/>
+<path fill="#FFFDFD" d="M20.756,21.087l-2.26-10.469c-0.033-0.15-0.115-0.281-0.23-0.373c0,0-6.611-7.95-6.68-7.998
+ c-0.116-0.083-0.255-0.129-0.395-0.129c-0.068,0-0.137,0.011-0.202,0.034c0,0-3.022,1.072-3.081,1.12L5.072,5.577
+ C5.016,5.624,3.326,8.34,3.326,8.34C3.262,8.444,3.229,8.563,3.229,8.685c0,0.155,0.055,0.328,0.156,0.447l6.976,8.255
+ c0.101,0.118,0.236,0.195,0.384,0.222l9.094,4.213c0.088,0.041,0.184,0.061,0.277,0.061c0.146,0,0.291-0.049,0.41-0.145
+ C20.719,21.582,20.809,21.33,20.756,21.087z"/>
+<path fill-opacity="0.5" d="M16.607,19.548l3.508,1.677l-0.943-4.046C19.172,17.177,18.579,18.808,16.607,19.548z"/>
+<path fill="#E5E5E5" d="M16.607,19.548c1.972-0.74,2.564-2.371,2.564-2.369l0.943,4.046l-2.262-10.468l-1.233,3.125l-2.618,2.268
+ l-3.141,0.79l9.254,4.285L16.607,19.548z"/>
+<polygon fill="#E5E5E5" points="6.465,7.337 9.238,5.026 11.206,2.772 8.322,3.781 5.486,6.087 3.885,8.685 6.452,7.323 "/>
+<polygon fill="#CCCCCC" points="11.206,2.793 9.238,5.047 16.62,13.902 17.854,10.777 "/>
+<polygon fill-opacity="0.3" points="9.225,5.036 6.451,7.348 13.988,16.159 16.607,13.892 "/>
+<polygon fill-opacity="0.5" points="6.465,7.36 6.452,7.347 3.885,8.708 10.861,16.962 14.002,16.173 "/>
+</svg>
--- a/textinput/peninputfingerhwrar/group/bld.inf Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/group/bld.inf Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -21,11 +21,20 @@
PRJ_EXPORTS
../rom/peninputfingerhwrar_variant.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH( peninputfingerhwrar_variant.iby )
+../data/qgn_indi_input_hwr_arabic_close.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_close.svg
+../data/qgn_indi_input_hwr_arabic_page_1_2.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_page_1_2.svg
+../data/qgn_indi_input_hwr_arabic_page_2_2.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_page_2_2.svg
+../data/qgn_indi_input_hwr_arabic_page_1_3.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_page_1_3.svg
+../data/qgn_indi_input_hwr_arabic_page_2_3.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_page_2_3.svg
+../data/qgn_indi_input_hwr_arabic_page_3_3.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_page_3_3.svg
+../data/qgn_indi_input_hwr_arabic_symbol_table.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_symbol_table.svg
+../data/qgn_indi_input_hwr_arabic_writing_area.svg /epoc32/s60/icons/qgn_indi_input_hwr_arabic_writing_area.svg
+../data/qgn_indi_input_arabic_backspace.svg /epoc32/s60/icons/qgn_indi_input_arabic_backspace.svg
+../data/qgn_indi_input_arabic_enter.svg /epoc32/s60/icons/qgn_indi_input_arabic_enter.svg
PRJ_MMPFILES
-//gnumakefile peninputhwrfsar_icons.mk
- peninputfingerhwrar.mmp
+peninputfingerhwrar.mmp
PRJ_EXTENSIONS
START EXTENSION s60/mifconv
--- a/textinput/peninputfingerhwrar/group/iconlist.txt Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/group/iconlist.txt Fri Mar 12 15:44:07 2010 +0200
@@ -1,31 +1,3 @@
--c8,8 qgn_graf_fep_char_6x5.svg
--c8,8 qgn_indi_fep_button_full_half_width.svg
--c8,8 qgn_indi_fep_button_full_half_width_sel.svg
--c8,8 qgn_indi_fep_button_half_full_width.svg
--c8,8 qgn_indi_fep_button_half_full_width_sel.svg
--c8,8 qgn_indi_fep_button_long_backspace.svg
--c8,8 qgn_indi_fep_button_long_backspace_sel.svg
--c8,8 qgn_indi_fep_button_case_numeric.svg
--c8,8 qgn_indi_fep_button_case_numeric_sel.svg
--c8,8 qgn_indi_fep_button_mark_case_numeric.svg
--c8,8 qgn_indi_fep_button_mark_case_numeric_sel.svg
--c8,8 qgn_indi_fep_button_case_text.svg
--c8,8 qgn_indi_fep_button_case_text_sel.svg
--c8,8 qgn_indi_fep_button_mark_case_text.svg
--c8,8 qgn_indi_fep_button_mark_case_text_sel.svg
--c8,8 qgn_indi_fep_button_chinese.svg
--c8,8 qgn_indi_fep_button_chinese_sel.svg
--c8,8 qgn_indi_fep_button_mark_chinese.svg
--c8,8 qgn_indi_fep_button_mark_chinese_sel.svg
--c8,8 qgn_graf_fep_char_button_pressed.svg
--c8,8 qgn_indi_fep_button_options.svg
--c8,8 qgn_indi_fep_button_options_sel.svg
--c8,8 qgn_indi_fep_button_switch.svg
--c8,8 qgn_indi_fep_button_switch_sel.svg
--c8,8 qgn_indi_fep_button_vkb.svg
--c8,8 qgn_indi_fep_button_vkb_sel.svg
--c8,8 qgn_indi_fep_button_enter.svg
--c8,8 qgn_indi_fep_button_enter_sel.svg
-c8,8 qgn_indi_fep_button_space1.svg
-c8,8 qgn_indi_fep_button_space1_sel.svg
@@ -42,14 +14,10 @@
-c8,8 qgn_indi_fep_button_expand.svg
-c8,8 qgn_indi_fep_button_close.svg
-c8,8 qgn_indi_fep_button_close_sel.svg
--c8,8 qgn_indi_input_chinese.svg
--c8,8 qgn_indi_input_case_text.svg
--c8,8 qgn_indi_input_case_numeric.svg
--c8,8 qgn_indi_input_case_special.svg
+
-c8,8 qgn_indi_input_backspace.svg
-c8,8 qgn_indi_input_close.svg
-c8,8 qgn_indi_input_options.svg
--c8,8 qgn_indi_input_switcher.svg
-c8,8 qgn_indi_input_enter.svg
-c8,8 qgn_indi_input_candi_list_close.svg
@@ -87,6 +55,13 @@
-c8,8 qgn_indi_keypad_space.svg
--c8,8 qgn_indi_input_fshwr_sct_page1.svg
--c8,8 qgn_indi_input_fshwr_sct_page2.svg
--c8,8 qgn_indi_input_fshwr_sct_page3.svg
+-c8,8 qgn_indi_input_hwr_arabic_close.svg
+-c8,8 qgn_indi_input_hwr_arabic_page_1_2.svg
+-c8,8 qgn_indi_input_hwr_arabic_page_2_2.svg
+-c8,8 qgn_indi_input_hwr_arabic_page_1_3.svg
+-c8,8 qgn_indi_input_hwr_arabic_page_2_3.svg
+-c8,8 qgn_indi_input_hwr_arabic_page_3_3.svg
+-c8,8 qgn_indi_input_hwr_arabic_symbol_table.svg
+-c8,8 qgn_indi_input_hwr_arabic_writing_area.svg
+-c8,8 qgn_indi_input_arabic_backspace.svg
+-c8,8 qgn_indi_input_arabic_enter.svg
\ No newline at end of file
--- a/textinput/peninputfingerhwrar/group/peninputfingerhwrar.mmp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/group/peninputfingerhwrar.mmp Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -92,7 +92,4 @@
LIBRARY peninputcommonlayout.lib
LIBRARY ptiengine.lib
-
-
-
// End Of File
--- a/textinput/peninputfingerhwrar/group/peninputfingerhwrar_icons.mk Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/group/peninputfingerhwrar_icons.mk Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009 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"
@@ -26,8 +26,8 @@
TARGETDIR=$(ZDIR)\resource\apps
HEADERDIR=\epoc32\include
-ICONTARGETFILENAME=$(TARGETDIR)\peninputfingerhwr.mif
-HEADERFILENAME=$(HEADERDIR)\peninputfingerhwr.mbg
+ICONTARGETFILENAME=$(TARGETDIR)\peninputfingerhwrar.mif
+HEADERFILENAME=$(HEADERDIR)\peninputfingerhwrar.mbg
do_nothing :
@rem do_nothing
@@ -39,7 +39,7 @@
CLEAN :
@del $(ICONTARGETFILENAME)
@del $(HEADERFILENAME)
- @del $(TARGETDIR)\peninputfingerhwr.mbm
+ @del $(TARGETDIR)\peninputfingerhwrar.mbm
LIB : do_nothing
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrar.hrh Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrar.hrh Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -19,12 +19,12 @@
#ifndef PENINPUTFINGERHWRAR_HRH
#define PENINPUTFINGERHWRAR_HRH
-#include <AknFepGlobalEnums.h>
+#include <aknfepglobalenums.h>
/**
* special scancode as virtual key mark.
*
- * @lib peninputfingerhwr.lib
+ * @lib peninputfingerhwrar.lib
* @since S60 v5.0
*/
enum TVirtualKeyMark
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrar.rh Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrar.rh Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarcontrolid.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarcontrolid.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description: Enum values of control id in fingerhwr hwr pluggin
+* Description: Enum values of control id in arabic fingerhwr hwr pluggin
*
*/
@@ -23,8 +23,8 @@
*
* defines the controlid of full screen hwr
*
- * @lib peninputfingerhwr.lib
- * @since S60 v5.0
+ * @lib peninputfingerhwrar.lib
+ * @since Symbian TB9.2
*/
enum TPenInputFingerHwrCtrlId
{
@@ -39,16 +39,13 @@
EHwrCtrlIdBackspace,
EHwrCtrlIdLanguageOption,
EHwrCtrlIdInputLangSwitcher,
- EHwrCtrlIdVkbSwitcher,
EHwrCtrlIdClose,
EHwrCtrlIdSymbolTableVkb,
EHwrCtrlIdSymbolTableVkbGroup,
- EHwrCtrlIdSctpad,
EHwrCtrlIdSymbolButton,
- EHwrCtrlIdInputModeSwitcher,
EHwrCtrlIdArrowLeft,
EHwrCtrlIdArrowRight,
EHwrCtrlIdArrowUp,
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrardatastore.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrardatastore.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -15,7 +15,6 @@
*
*/
-
#ifndef C_PENINPUTFINGERHWRARDATASTORE_H
#define C_PENINPUTFINGERHWRARDATASTORE_H
@@ -24,10 +23,10 @@
#include <e32def.h>
#include <w32std.h>
#include <eikon.hrh>
-#include <AknUtils.h>
+#include <aknutils.h>
//FEP INCLUDES
-#include <PtiEngine.h>
+#include <ptiengine.h>
#include <peninputpluginutils.h>
@@ -48,7 +47,7 @@
* CPeninputFingerHwrArDataStore
*
* @lib peninputfingerhwr.lib
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
class CPeninputFingerHwrArDataStore : public CBase
{
@@ -56,7 +55,7 @@
/**
* Symbian constructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aPtiEngine The PtiEngine
* @param aLayout The Finger HWR layout
* @return Pointer to created CPeninputFingerHwrArDataStore object
@@ -67,7 +66,7 @@
/**
* destructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
virtual ~CPeninputFingerHwrArDataStore();
@@ -77,7 +76,7 @@
/**
* Is valid candidate
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aCandidateIndex The index the candidate in list.
* @return ETrue if candidate is not empty; otherwise EFalse
*/
@@ -87,7 +86,7 @@
/**
* Is English letter
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aLetter The recognize character.
* @return ETrue if the character is English letter; otherwise EFalse
*/
@@ -96,7 +95,7 @@
/**
* Do recoginize by engine
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aTraceData The trace data.
* @return None
*/
@@ -106,27 +105,15 @@
/**
* Set Chinese symbol to writing candidate list
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void SetArabicSymbolL();
-
- /**
- * Set fixed English symbol
- *
- * @since S60 v5.0
- * @param aRowCount The flag to confirm which row
- * @return None
- */
- void SetFixEnglishSymbolL(TRowCount aRowCount = ERowOne);
-
-
-
/**
* Set permitted ranges
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aPermittedRanges The permitted ranges.
* @return None
*/
@@ -135,7 +122,7 @@
/**
* Set permitted ranges
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aPermittedRanges The permitted ranges.
* @return None
*/
@@ -145,7 +132,7 @@
/**
* Set Primary range
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aPrimaryRange The Primary range
* @return None
*/
@@ -154,7 +141,7 @@
/**
* Get Primary range
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return Primary range.
*/
TInt PrimaryRange();
@@ -162,7 +149,7 @@
/**
* Get current range
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return Current range.
*/
TFingerHwrRange CurrentRange();
@@ -171,7 +158,7 @@
/**
* Set case
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aCase The case
* @return None
*/
@@ -180,7 +167,7 @@
/**
* Set language
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aLanguage The language
* @return None
*/
@@ -190,7 +177,7 @@
/**
* Set auto complete candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aIsFirstStroke The first stroke flag
* @return None
*/
@@ -199,7 +186,7 @@
/**
* Set auto complete candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return ETrue if it's the first stroke
*/
TBool FirstStroke();
@@ -208,7 +195,7 @@
/**
* Get the candidate.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aIndex The index of candidate
* @param aCharCode The result candidate
* @return Candidate char code
@@ -219,7 +206,7 @@
/**
* Set number mode
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aNumberMode Given number mode
* @return None
*/
@@ -228,7 +215,7 @@
/**
* Set number mode
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aCustomMode The customized number key mapping, 0-9
* are not included.
* @return None
@@ -238,7 +225,7 @@
/**
* Set the screen mode.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aRange The range
* @return None
*/
@@ -250,7 +237,7 @@
/**
* Set stroke end mark to stroke end mark control
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void SetStrokeEndMark();
@@ -258,7 +245,7 @@
/**
* Get the stroke end mark.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return TPoint
*/
TPoint StrokeEndMark();
@@ -266,7 +253,7 @@
/**
* Get stroke end mark from control which handle it
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
TPoint StrokeEndMarkFromControl();
@@ -274,7 +261,7 @@
/**
* Get number keymapping string
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aKeyMappingId Keymapping id
* @return Pointer to keymapping string
*/
@@ -283,7 +270,7 @@
/**
* Check if the char is the special display char
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aChar The checked char
* @return TBool Wheater or not the input char is the special display char
*/
@@ -292,7 +279,7 @@
/**
* Check if the char is need to be sent to app directly which not need to be shown in candidate window.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aChar The checked char
* @return TBool Wheater or not the input char is the directly sent char
*/
@@ -301,7 +288,7 @@
/**
* Convert the special display char to the keycode.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aChar The special display char.
* @return HBufC* The converted keycode char.
*/
@@ -310,7 +297,7 @@
/**
* Get start writing char flag
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return ETrue If begine writing.
*/
TBool StartCharacter();
@@ -318,7 +305,7 @@
/**
* Set start writing char flag
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aStartCharacter The start writing flag
* @return ETrue If begine writing.
*/
@@ -327,7 +314,7 @@
/**
* Set input area size to engine for recognize
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aStartCharacter The start writing flag
* @return ETrue If begine writing.
*/
@@ -336,7 +323,7 @@
/**
* Set screen size to engine for recognize
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aStartCharacter The start writing flag
* @return ETrue If begine writing.
*/
@@ -346,7 +333,7 @@
/**
* Set high light flag for candidate list
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aIsHighlight The flag to decide highlight default cell or not
* @return None
*/
@@ -355,7 +342,7 @@
/**
* Get high light flag for candidate list
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return ETrue If highlight the default cell to candidate list
*/
TBool Highlight();
@@ -363,7 +350,7 @@
/**
* Remove duplicate candidate from predictive candidate list
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aSrc The punctuation candidate list
* @param aTgt The predicative candidate list
* @param aSrcStartIdx
@@ -378,35 +365,35 @@
/**
* Reset key board type
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
void ResetKeyboardType();
/**
* Set key board type to qwerty
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
void SetKeyboardToQwerty();
/**
* Get key board type
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
void GetKeyboardType();
/**
* Get top guide line from hwr engine
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
void GetTopGuideLinePos(TInt& aPos);
/**
* Get bottom guide line from hwr engine
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
void GetBottomGuideLinePos(TInt& aPos);
@@ -442,31 +429,12 @@
* @return ETrue if it is, EFalse otherwise
*/
TBool IsArabicNumber(TUint16 aChar);
-
- /**
- * Check if the passed char is arabic character
- *
- * @since s60 v5.2
- * @param aChar The passed unicode
- * @return ETrue if it is, EFalse otherwise
- */
- TBool IsArabicChar(TUint16 aChar);
-
- /**
- * Check if the passed char is arabic symbols
- *
- * @since s60 v5.2
- * @param aChar The passed unicode
- * @return ETrue if it is, EFalse otherwise
- */
- TBool IsArabicSymbol(TUint16 aChar);
-
private:
/**
* C++ constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
CPeninputFingerHwrArDataStore(CPeninputFingerHwrArLayout* aLayout);
@@ -474,7 +442,7 @@
/**
* Second phase constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void ConstructL( CPtiEngine* aPtiEngine );
@@ -482,7 +450,7 @@
/**
* Initialize the key mapping list
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void InitKeyMappingListL();
@@ -491,7 +459,7 @@
/**
* Judge if a language is Arabic
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aLanguage Given language code
* @return ETrue if aLanguage is Chinese, otherwise EFalse
*/
@@ -500,7 +468,7 @@
/**
* Set engine language
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aLanguage Given language code
* @return None
*/
@@ -509,7 +477,7 @@
/**
* Set language show text
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aLanguage language code
* @return None
*/
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarengine.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarengine.h Fri Mar 12 15:44:07 2010 +0200
@@ -22,7 +22,7 @@
// INCLUDES
#include <e32cmn.h>
#include <eikon.hrh>
-#include <PtiEngine.h>
+#include <ptiengine.h>
class CPeninputFingerHwrArDataStore;
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarevent.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarevent.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2009 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"
@@ -27,7 +27,7 @@
* defines the events from internal controls. Those events are sent
* by controls via calling ReportEvent()
*
- * @lib peninputfingerhwr.lib
+ * @lib peninputfingerhwrar.lib
* @since S60 v5.0
*/
enum TPeninputFingerHwrEvent
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarindicator.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarindicator.h Fri Mar 12 15:44:07 2010 +0200
@@ -24,7 +24,7 @@
* Label control. This class could be used directly by user.
*
* @lib peninputfingerhwrar.lib
- * @since S60 V5.0
+ * @since Symbian TB9.2
*/
class CPeninputArabicFingerHwrIndicator: public CFepUiBaseCtrl
{
@@ -34,14 +34,14 @@
/**
* Destructor.
*
- * @since S60 V4.0
+ * @since Symbian TB9.2
*/
virtual ~CPeninputArabicFingerHwrIndicator();
/**
* Factory function.
*
- * @since S60 V4.0
+ * @since Symbian TB9.2
* @param aRect The rectangle area for this control
* @param aUiLayout Ui layout who contains this control.Ownership not transferred
* @param aControlId control Id
@@ -54,7 +54,7 @@
/**
* Set bitmap for given status .
*
- * @since S60 V4.0
+ * @since Symbian TB9.2
* @param aBmp The bitmap. Ownership transferred to button
* @param aType The bitmap type used for
*/
@@ -63,7 +63,7 @@
/**
* Set mask bitmap for given status.
*
- * @since S60 V4.0
+ * @since Symbian TB9.2
* @param aBmp The bitmap. Ownership transferred to button
* @param aType The bitmap type used for
*/
@@ -74,14 +74,14 @@
* From CFepUiBaseCtrl
* Draw control
*
- * @since S60 V4.0
+ * @since Symbian TB9.2
*/
virtual void Draw();
/**
* Label size changed
*
- * @since S60 v3.2
+ * @since Symbian TB9.2
* @param aNewRect New rect for label
* @param aIsReloadImages resize image
* @return None
@@ -93,7 +93,7 @@
/**
* Constructor
*
- * @since S60 V4.0
+ * @since Symbian TB9.2
* @param aRect The rectangle area for this control
* @param aUiLayout Ui layout who contains this control.Ownership not transferred
* @param aControlId control Id
@@ -103,7 +103,7 @@
/**
* Bitmaps size changed
*
- * @since S60 v3.2
+ * @since Symbian TB9.2
* @param aSize New size for bitmaps
* @return None
*/
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlafmanager.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlafmanager.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -25,7 +25,7 @@
* Wrapper of L&F data.
*
* @lib peninputfingerhwrar.lib
-* @since S60 v5.0
+* @since Symbian TB9.2
*/
class CPeninputFingerHwrArLafManager : public CBase
{
@@ -33,7 +33,7 @@
/**
* Symbian constructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return Pointer to created object.
*/
static CPeninputFingerHwrArLafManager* NewL();
@@ -41,7 +41,7 @@
/**
* Symbian constructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return Pointer to created object.
*/
static CPeninputFingerHwrArLafManager* NewLC();
@@ -49,7 +49,7 @@
/**
* standard c++ destructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
~CPeninputFingerHwrArLafManager();
@@ -58,7 +58,7 @@
/**
* read laf data.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void ReadLafInfo();
@@ -66,7 +66,7 @@
/**
* get screen orientation.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return ETrue if is landscape.
*/
TBool IsLandscape();
@@ -74,7 +74,7 @@
/**
* get rect of layout.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return rect of layout.
*/
TRect LayoutRect();
@@ -82,7 +82,7 @@
/**
* get rect of specified control.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aCtrlId specifies control id.
* @return rect of specified control.
*/
@@ -92,7 +92,7 @@
/**
* get rect of ICF control.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return rect of icf.
*/
TRect IcfRect();
@@ -100,7 +100,7 @@
/**
* get left margin of icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return left margin of icf.
*/
TInt IcfLeftMargin();
@@ -108,7 +108,7 @@
/**
* get Right margin of icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return Right margin of icf.
*/
TInt IcfRightMargin();
@@ -116,7 +116,7 @@
/**
* get top margin of icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return top margin of icf.
*/
TInt IcfTopMargin();
@@ -124,7 +124,7 @@
/**
* get bottom margin of icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return bottom margin of icf.
*/
TInt IcfBottomMargin();
@@ -132,7 +132,7 @@
/**
* get line spacing of icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return line spacing of icf.
*/
TInt IcfLineSpaceMargin();
@@ -140,7 +140,7 @@
/**
* get font of icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return font of icf.
*/
CFont* IcfFont();
@@ -148,7 +148,7 @@
/**
* get text height of icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return text height of icf.
*/
TInt IcfTextHeight();
@@ -158,34 +158,17 @@
/**
* get inner padding of buttons.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return inner padding of buttons.
*/
TSize ButtonInnerPadding();
-public: //num pad
- /**
- * get cell size of virtual numpad.
- *
- * @since S60 v5.0
- * @return cell size of virtual numpad.
- */
- TRect VirtualNumpadCellSize();
-
- /**
- * get text layout of virtual numpad.
- *
- * @since S60 v5.0
- * @return a TAknTextLineLayout object to layout cell text.
- */
- TAknTextLineLayout NumpadKeyTxtLayout();
-
-public: //sct pad
+public: //symbol table
/**
* get row count of virtual sctpad.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return row count of virtual sctpad.
*/
TInt VirtualSctpadRowCount();
@@ -193,7 +176,7 @@
/**
* get column count of virtual sctpad.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return column count of virtual sctpad.
*/
TInt VirtualSctpadColCount();
@@ -201,7 +184,7 @@
/**
* get cell size of virtual sctpad.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return cell size of virtual sctpad.
*/
TRect VirtualSctpadCellSize();
@@ -209,7 +192,7 @@
/**
* Get cell size of Space and Enter
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return cell size of virtual sctpad.
*/
TRect FixVirtualSctpadCellSize();
@@ -217,26 +200,16 @@
/**
* get cell rect of virtual sctpad.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aArrayRects a TRect array to receive cell rect.
* @return none.
*/
void GetVirtualKeyRects( RArray<TRect>& aArrayRects );
/**
- * get cell rect of Space and Enter.
- *
- * @since S60 v5.0
- * @param aArrayRects a TRect array to receive cell rect.
- * @return none.
- */
- void GetFixVirtualKeyRects( RArray<TRect>& aArrayRects );
-
-
- /**
* get text layout of virtual sctpad.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a TAknTextLineLayout object to layout cell text.
*/
TAknTextLineLayout SctpadKeyTxtLayout();
@@ -244,7 +217,7 @@
/**
* Get text layout about Space and Enter
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a TAknTextLineLayout object to layout cell text.
*/
TAknTextLineLayout FixSctpadKeyTxtLayout();
@@ -252,7 +225,7 @@
/**
* get preview bubble rect.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a TRect object to preview bubble rect.
*/
TRect PreviewBubbleRect();
@@ -260,7 +233,7 @@
/**
* get preview bubble inner rect.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a TRect object to preview bubble inner rect.
*/
TRect PreviewBubbleInnerRect();
@@ -268,7 +241,7 @@
/**
* get preview bubble font.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a CFont pointer to preview bubble font.
*/
const CFont* PreviewBubbleFont();
@@ -276,7 +249,7 @@
/**
* get preview bubble text layout.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a TAknTextLineLayout object to preview bubble text layout.
*/
TAknTextLineLayout PreviewBubbleTextLayout();
@@ -286,7 +259,7 @@
/**
* get width unit of candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return width unit of candidate list.
*/
TInt CandidateUnitWidth();
@@ -294,7 +267,7 @@
/**
* get height unit of candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return height unit of candidate list.
*/
TInt CandidateUnitHeight();
@@ -303,7 +276,7 @@
/**
* get horizontal margin of candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return horizontal margin of candidate list.
*/
TInt CandidateHorizontalMargin();
@@ -311,7 +284,7 @@
/**
* get vertical margin of candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return vertical margin of candidate list.
*/
TInt CandidateVerticalMargin();
@@ -319,7 +292,7 @@
/**
* get top-left position of candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return top-left position of candidate list.
*/
TPoint CandidateLTPos();
@@ -327,7 +300,7 @@
/**
* get top-left position of predictive list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return top-left position of predictive list.
*/
TPoint PredictiveLTPos();
@@ -335,7 +308,7 @@
/**
* get font of candidate list.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return font of candidate list.
*/
const CFont* CandidateFont();
@@ -344,7 +317,7 @@
/**
* get text layout of sct paging button.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a TAknTextLineLayout object to layout text.
*/
TAknTextLineLayout SctPageBtnTxtLayout();
@@ -354,7 +327,7 @@
/**
* C++ constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
CPeninputFingerHwrArLafManager();
@@ -362,7 +335,7 @@
/**
* Symbian second-phase constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void ConstructL();
@@ -376,7 +349,6 @@
TRect iRectWritingBox;
TRect iRectNumpad;
TRect iRectSctpad;
- TRect iRectFixSctpad;
TRect iRectSpase;
TRect iRectEnter;
@@ -400,7 +372,6 @@
TInt iSctpadRowCount;
TInt iSctpadColCount;
TSize iSizeSctpadCell;
- TSize iSizeFixSctpadCell;
TRect iLayoutRect;
TPoint iLayoutOffset;
@@ -439,4 +410,4 @@
#endif // C_PENINPUTFINGERHWRARLAFMANAGER_H
-// End Of File
+// End Of File
\ No newline at end of file
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlayout.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlayout.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -443,15 +443,7 @@
* @param aGuideLineOn guide line on or off.
* @return none
*/
- void SetGuideLineOn(const TBool aGuideLineOn);
-
- /**
- * get current state manager.
- *
- * @since S60 v5.0
- * @return current state manager
- */
- CPeninputFingerHwrArStateManagerBase* CurStateManager();
+ void SetGuideLineOn(TBool aGuideLineOn);
/**
* change current state manager to standby state.
@@ -459,7 +451,7 @@
* @since S60 v5.0
* @return none
*/
- void ChangeCurStateManagerToStandby();
+ void ChangeCurStateToStandby();
private:
@@ -479,7 +471,7 @@
* The state manager
* Own
*/
- RPointerArray<CPeninputFingerHwrArStateManagerBase> iStateMgrArray;
+ CPeninputFingerHwrArStateManagerBase* iStateMgr;
/**
* The resource Id
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarmultipagevkb.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarmultipagevkb.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2009 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"
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarstatemanager.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarstatemanager.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -35,7 +35,7 @@
*
* The state handler interfaces
*
-* @lib peninputFingerHwr.lib
+* @lib peninputfingerhwrar.lib
* @since S60 v5.0
*/
class MPeninputFingerHwrArStateHandler
@@ -44,21 +44,21 @@
/**
* Handle state event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
virtual void HandleEventL( const TInt aEventType, const TDesC& aEventData ) = 0;
/**
* Handle the state entering action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
virtual void OnEntry() = 0;
/**
* Handle the state exiting action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
virtual void OnExit() = 0;
};
@@ -67,7 +67,7 @@
/**
* The state handler base class.
*
-* @since Series 60 5.0.
+* @since Symbian TB9.2.
*/
class CPeninputFingerHwrArStateHandlerBase :public CBase
,public MPeninputFingerHwrArStateHandler
@@ -77,7 +77,7 @@
/**
* The handler base destructor
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
virtual ~CPeninputFingerHwrArStateHandlerBase();
@@ -85,7 +85,7 @@
/**
* The constructor.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aStateManager The reference to state manager. @see CPeninputFingerHwrStateManager.
*/
CPeninputFingerHwrArStateHandlerBase( CPeninputFingerHwrArStateManagerBase& aStateManager );
@@ -94,14 +94,14 @@
/**
* The reference to state manager.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
CPeninputFingerHwrArStateManagerBase& iStateManager;
/**
* The data store reference
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
CPeninputFingerHwrArDataStore& iDataStore;
};
@@ -111,7 +111,7 @@
/**
* The finger hwr state manager base class.
*
-* @since Series 60 5.0
+* @since Symbian TB9.2
*/
class CPeninputFingerHwrArStateManagerBase : public CBase
{
@@ -124,7 +124,7 @@
/**
* The destructor
*
- *@since Series 60 5.0
+ *@since Symbian TB9.2
*/
virtual ~CPeninputFingerHwrArStateManagerBase();
@@ -132,7 +132,7 @@
/**
* Handle the hwr box and canidate events
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aEventType The event type
* @param aEventData The event data
*/
@@ -141,7 +141,7 @@
/**
* Return the layout reference
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* CPeninputFingerHwrArLayout& The hwr layout reference
*/
CPeninputFingerHwrArLayout& HwrLayout();
@@ -149,7 +149,7 @@
/**
* Is stanby state
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* TBool The standby state flag
*/
TBool IsStandbyState();
@@ -157,7 +157,7 @@
/**
* Set current state.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aState The state to be set. @See TPeninputFingerHwrState.
*/
virtual void SetState( TInt aState );
@@ -167,14 +167,14 @@
/**
* 2nd phase constructor.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void BaseConstructL();
/**
* The constructor.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aLayout The full screen HWR layout pointer.
*/
CPeninputFingerHwrArStateManagerBase( CPeninputFingerHwrArLayout* aLayout );
@@ -203,7 +203,7 @@
/**
* The finger hwr state manager for arabic.
*
-* @since Series 60 5.0
+* @since Symbian TB9.2
*/
class CPeninputFingerHwrArStateManager : public CPeninputFingerHwrArStateManagerBase
{
@@ -211,7 +211,7 @@
/**
* The factory function
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aLayout The layout reference
* @return CPeninputFingerHwrArStateManager* The newly created CPeninputFingerHwrArStateManager object
*/
@@ -220,7 +220,7 @@
/**
* The destructor
*
- *@since Series 60 5.0
+ *@since Symbian TB9.2
*/
~CPeninputFingerHwrArStateManager();
@@ -228,7 +228,7 @@
/**
* The hwr states.
*
- *@since Series 60 5.0
+ *@since Symbian TB9.2
*/
enum TPeninputFingerHwrArState
{
@@ -242,7 +242,7 @@
/**
* Handle the hwr box and canidate events
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aEventType The event type
* @param aEventData The event data
*/
@@ -251,7 +251,7 @@
/**
* Set current state.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aState The state to be set. @See TPeninputFingerHwrState.
*/
virtual void SetState( TInt aState );
@@ -260,7 +260,7 @@
/**
* The constructor.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aLayout The full screen HWR layout pointer.
*/
CPeninputFingerHwrArStateManager( CPeninputFingerHwrArLayout* aLayout );
@@ -268,14 +268,14 @@
/**
* 2nd phase constructor.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void ConstructL();
/**
* Find the current state object.
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aState According to this state type,
* we could find the corresponding state obect.
*/
@@ -300,7 +300,7 @@
/**
* The Standby state class.
*
-* @since Series 60 5.0
+* @since Symbian TB9.2
*/
class CPeninputFingerHwrArStateStandby : public CPeninputFingerHwrArStateHandlerBase
{
@@ -308,7 +308,7 @@
/**
* Factory function
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aStateManager The reference to state manager. @see CPeninputFingerHwrStateManager.
* @return CPeninputFingerHwrStateHandlerStandby* Return the
CPeninputFingerHwrStateHandlerStandby object pointer.
@@ -320,21 +320,21 @@
/**
* Handle state event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void HandleEventL( const TInt aEventType, const TDesC& aEventData );
/**
* Handle the state entering action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void OnEntry();
/**
* Handle the state exiting action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void OnExit();
@@ -342,7 +342,7 @@
/**
* The constructor
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aStateManager The reference to state manager. @see CPeninputFingerHwrStateManager.
*/
CPeninputFingerHwrArStateStandby(
@@ -354,7 +354,7 @@
/**
* The Writing state class.
*
-* @since Series 60 5.0
+* @since Symbian TB9.2
*/
class CPeninputFingerHwrArStateWriting : public CPeninputFingerHwrArStateHandlerBase
{
@@ -362,7 +362,7 @@
/**
* Factory function
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aStateManager The reference to state manager. @see CPeninputFingerHwrStateManager.
* @return CPeninputFingerHwrStateHandlerWriting* Return the
CPeninputFingerHwrStateHandlerWriting object pointer.
@@ -374,21 +374,21 @@
/**
* Handle state event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void HandleEventL( const TInt aEventType, const TDesC& aEventData );
/**
* Handle the state entering action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void OnEntry();
/**
* Handle the state exiting action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void OnExit();
@@ -396,7 +396,7 @@
/**
* The constructor
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aStateManager The reference to state manager. @see CPeninputFingerHwrStateManager.
*/
CPeninputFingerHwrArStateWriting( CPeninputFingerHwrArStateManager& aStateManager );
@@ -405,7 +405,7 @@
/**
* Handle the end stroke event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aEventData The trace data
*/
void OnEndStrokeL( const TDesC& aEventData );
@@ -413,7 +413,7 @@
/**
* Handle the end writing event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aEventData The trace data
*/
void OnEndWritingL( const TDesC& aEventData );
@@ -421,7 +421,7 @@
/**
* Handle the candidate selection event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aEventData The trace data
*/
void OnSelectedCandidatesL( const TDesC& aEventData );
@@ -431,7 +431,7 @@
/**
* The CandidateSelecting state class for Chinese.
*
-* @since Series 60 5.0
+* @since Symbian TB9.2
*/
class CPeninputFingerHwrArStateCandidateSelecting : public CPeninputFingerHwrArStateHandlerBase
{
@@ -439,7 +439,7 @@
/**
* Factory function
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aStateManager The reference to state manager. @see CPeninputFingerHwrStateManager.
* @return CPeninputFingerHwrStateHandlerCandidateSelecting Return the
CPeninputFingerHwrStateHandlerCandidateSelecting object pointer.
@@ -451,21 +451,21 @@
/**
* Handle state event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void HandleEventL( const TInt aEventType, const TDesC& aEventData );
/**
* Handle the state entering action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void OnEntry();
/**
* Handle the state exiting action
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void OnExit();
@@ -473,7 +473,7 @@
/**
* The constructor
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aStateManager The reference to state manager. @see CPeninputFingerHwrStateManager.
*/
CPeninputFingerHwrArStateCandidateSelecting(
@@ -483,7 +483,7 @@
/**
* Handle one candiate selected event
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
* @param aEventData The selected candidate
*/
void OnSelectedCandidatesL( const TDesC& aEventData );
@@ -492,7 +492,7 @@
/**
* Handle backspace events
*
- * @since Series 60 5.0
+ * @since Symbian TB9.2
*/
void OnClickBackSpaceL();
};
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarstoreconstants.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarstoreconstants.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description: const definitions for finger hwr
+* Description: const definitions for finger hwrar
*
*/
@@ -22,7 +22,7 @@
/**
* writing speed definition
*
- * @lib peninputfingerhwr.lib
+ * @lib peninputfingerhwrar.lib
* @since S60 v5.0
*/
enum TPeninputHwrfscnWritingSpeed
@@ -33,25 +33,11 @@
EHwrWritingSpeedSlow = 700*1000,
EHwrWritingSpeedVerySlow = 1000*1000
};
-
-/**
- *
- *
- * @lib peninputfingerhwr.lib
- * @since S60 v5.0
- */
-enum TPeninputHwrfscnStateMgrCmd
- {
- ERecgnizeCmd,
- EPredictiveCmd,
- ESetTriggerStringCmd,
- EAppendTriggerStringCmd
- };
/**
* char range id definition
*
- * @lib peninputfingerhwr.lib
+ * @lib peninputfingerhwrar.lib
* @since S60 v5.0
*/
enum TFingerHwrRange
@@ -65,7 +51,7 @@
/**
* pop directions definition
*
- * @lib peninputfingerhwr.lib
+ * @lib peninputfingerhwrar.lib
* @since S60 v5.0
*/
enum TPeninputPopListDirection
@@ -85,75 +71,6 @@
EPagePosLastPage,
EPagePosFirstPage,
};
-
-/**
- * row index definition
- *
- * @lib peninputfingerhwr.lib
- * @since S60 v5.0
- */
-enum TRowCount
- {
- ERowOne,
- ERowTwo
- };
-
-// the predict symbol unicode when the primary is the english
-const TUint16 EnglishSymbolCodeOneRow[6] =
- {
- 0x0027, // '
- 0x002C, // ,
- 0x002E, // .
- 0x003F, // ?
- 0x0021, // !
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- 0x002D // -
-#else
- 0xF800 // space
-#endif
- };
-
-
-const TUint16 EnglishSymbolCodeTwoRow[6] =
- {
- 0x0040, // @
- 0x003A, // :
- 0x003B, // ;
- 0x0029, // )
- 0x0044, // D
- 0x0028 // (
- };
-
-const TUint16 ColonSymbol = 0x003A;
-
-
-const TUint16 ChineseSymbolCode[6] =
- {
- 0xFF0C,
- 0x3002,
- 0xFF1F,
- 0xFF01,
- 0x3001,
- 0xFF1A
- };
-
-
-const TUint16 ChinesePredictCode[100] =
- {
- 0x6211, 0x4F60, 0x7684, 0x4E86, 0xFF0C, 0x4E0D, 0x597D, 0x5728, 0x662F, 0x6709,
- 0x3002, 0x4E00, 0x4E48, 0x53BB, 0x5427, 0x5929, 0x4E0A, 0xFF1F, 0x6765, 0x6CA1,
- 0x554A, 0x5230, 0x5417, 0xFF01, 0x4EEC, 0x5C31, 0x56DE, 0x8FD8, 0x90A3, 0x8981,
- 0x4E0B, 0x5BB6, 0x4E2A, 0x65F6, 0x70B9, 0x8FD9, 0x4E5F, 0x8FC7, 0x7ED9, 0x770B,
- 0x4EC0, 0x4F1A, 0x4EBA, 0x8BF4, 0x53EF, 0x5927, 0x4ED6, 0x4E8B, 0x591A, 0x5B66,
- 0x60F3, 0xFF1A, 0x80FD, 0x4EE5, 0x73B0, 0x90FD, 0x9053, 0x77E5, 0x660E, 0x5F97,
- 0x8BDD, 0x5403, 0x5B50, 0x53D1, 0x91CC, 0x5462, 0x548C, 0x51FA, 0x6253, 0x4ECA,
- 0x884C, 0x5C0F, 0x7535, 0x7B49, 0x6837, 0x5FC3, 0x8D77, 0x7740, 0x540E, 0x600E,
- 0x8001, 0x5F88, 0x518D, 0x628A, 0x51E0, 0x7528, 0x5F00, 0x4E2D, 0x751F, 0x95EE,
- 0x95F4, 0x5979, 0x3001, 0x513F, 0x5730, 0x5BF9, 0x81EA, 0x89C1, 0x4E3A, 0x5DF2
- };
-
-
-
// the default end mark
const TInt KDefaultStrokeEndMarkX = -65536;
@@ -161,14 +78,11 @@
//candiate number
const TInt KCandidateCount = 6;
-const TInt KMaxPredictiveCount = 100;
-const TInt KPredictiveCountPerPage = 20;
const TInt KPremaryCandidateCount = 10;
const TInt KCandidateRowCount = 2;
-const TInt KPredictiveRowCount = 3;
const TInt KCandidateCountPerRow = 5;
-const TInt KPredictiveCountPerRow = 5;
+
const TInt KSpecialConvertedCharCount = 2;
@@ -187,7 +101,7 @@
const TInt KInvalidIndex = -1;
//category
-_LIT(KCategory, "AKNFEPHWR");
+_LIT(KCategory, "AKNFEPHWRAR");
//the number string
_LIT(KNumberString,"0123456789");
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarsymboltable.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarsymboltable.h Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -29,7 +29,6 @@
// FORWARD DECLARATIONS
class CAknFepCtrlEventButton;
class CMultiPageVirtualKeyboard;
-class CPeninputSyncBitmapRotator;
// CLASS DECLARATION
@@ -38,8 +37,8 @@
*
* The symbol table control for arabic input
*
- * @lib peninputfingerhwr.lib
- * @since S60 v5.0
+ * @lib peninputfingerhwrar.lib
+ * @since Symbian TB9.2
*/
class CPeninputArabicFingerHwrSymbolTable : public CControlGroup
{
@@ -47,7 +46,7 @@
/**
* Symbian constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aUiLayout The layout
* @param aId The control id
* @return pointer of created object.
@@ -57,7 +56,7 @@
/**
* Symbian constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aUiLayout The layout
* @param aId The control id
* @return pointer of created object.
@@ -67,7 +66,7 @@
/**
* standard c++ destructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
~CPeninputArabicFingerHwrSymbolTable();
@@ -75,7 +74,7 @@
/**
* open the symbol table.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*
* @return None
*/
@@ -84,7 +83,7 @@
/**
* cancel the popup.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*
*/
@@ -92,7 +91,7 @@
/**
* get visibility of popup.
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return ETrue if the popup is visible
*/
TBool IsPopup();
@@ -114,7 +113,7 @@
void UpdatePageButtonsUi();
- void UpdateAllVirtualKeysFeedback(TInt aType);
+ void UpdateAllVirtualKeysFeedback();
protected: //virtuals from CControlGroup (CFepUiBaseCtrl)
@@ -122,7 +121,7 @@
* From CControlGroup
* Handle pointer down event
*
- * @since S60 V5.0
+ * @since Symbian TB9.2
* @param aPoint The point position relative the layout
* @return The control which handles the event.
*/
@@ -132,7 +131,7 @@
* From CControlGroup
* Handle pointer up event
*
- * @since S60 V5.0
+ * @since Symbian TB9.2
* @param aPoint The point position relative the layout
* @return The control which handles the event.
*/
@@ -149,19 +148,9 @@
CFepUiBaseCtrl* HandlePointerMoveEventL(const TPoint& aPoint);
/**
- * Handle pointer levae event.
- * This will be called only when it's got pointer down event before and
- * now pointer leaves without pointer up event
- *
- * @since S60 V4.0
- * @param aPoint current pointer position
- */
- void HandlePointerLeave(const TPoint& aPoint);
-
- /**
* C++ constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aFepUiLayout A Ui Layout environment (CFepUiLayout)
* @param aControlId Control id
* @return none.
@@ -171,7 +160,7 @@
/**
* Symbian second-phase constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void ConstructL();
@@ -179,7 +168,7 @@
/**
* create a multipate virtual keypad
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CreateVirtualKeypadL();
@@ -193,7 +182,7 @@
/**
* EventButton creation helper.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aCtrlId button control id.
* @param aResId resource id.
* @param aEvent event id;
@@ -206,7 +195,7 @@
/**
* EventButton layout helper. Move button to specified rect.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aButton the button to move
* @param aRect new rect of button
* @param aXPadding horz padding of button icon.
@@ -230,6 +219,7 @@
void UpdateVkbKeyL( CVirtualKey* aVirtualKey, TResourceReader& aReader,
const TRect aKeyRect );
void OnActivate();
+
private:
/**
* multipage viritual keyboard
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarwnd.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarwnd.h Fri Mar 12 15:44:07 2010 +0200
@@ -27,7 +27,6 @@
class CAknFepCtrlEventButton;
class CAknFepCtrlRepeatButton;
class CFepCtrlDropdownList;
-class CPeninputLayoutInputmodelChoice;
class CTransparentHwrWndExt;
class CPeninputFingerHwrArLafManager;
class CPeninputArabicFingerHwrSymbolTable;
@@ -39,17 +38,16 @@
* Main window of finger hwr arabic.
*
* @lib peninputfingerhwrar.lib
- * @since S60 v5.0
+ * @since Symbian TB9.2
*/
class CPeninputFingerHwrArWnd : public CControlGroup
- {
-
+ {
public:
/**
* Symbian constructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*
* @param aUiLayout The layout
* @param aControlId The control id
@@ -62,7 +60,7 @@
/**
* Symbian constructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
*
* @param aUiLayout The layout
* @param aControlId The control id
@@ -75,7 +73,7 @@
/**
* standard c++ destructor.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
virtual ~CPeninputFingerHwrArWnd();
@@ -102,7 +100,7 @@
/**
* Resize according to LAF.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void SizeChangedL();
@@ -111,7 +109,7 @@
/**
* accept editor's text alignment.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aAlignment text alignment id. It can be one of the following:
* EAknEditorAlignNone
* EAknEditorAlignCenter
@@ -126,7 +124,7 @@
/**
* accept editor's text.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aData editor's text.
* @return none
*/
@@ -135,7 +133,7 @@
/**
* accept editor's promopt txt
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aPromoptData editor's promopt text
* @return none
*/
@@ -144,7 +142,7 @@
/**
* Dim option button
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aEnable Enable or disable option button
* @return none
*/
@@ -153,31 +151,18 @@
/**
* accept editor's bubble text.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aPromoptData editor's bubble text.
* @return none
*/
void SetBubbleTextL( const TDesC& aInfo );
- /**
- * accept editor's char ranges restriction.
- *
- * @since S60 v5.0
- * @param aPermittedRanges permitted char range flags. It can be combination of the following:
- * ERangeNative
- * ERangeEnglish
- * ERangeNumber.
- * See TAknFepPenInputRange.
- * @return none
- */
- void SetPermittedRanges( const TInt aPermittedRanges );
-
public: //hwr
/**
* get strokes from hwr writing box
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return a TPoint array of strokes
*/
const RArray<TPoint>& StrokeList();
@@ -185,7 +170,7 @@
/**
* set end mark of hwr
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aEndMark a TPoint object as end mark
* @return none
*/
@@ -194,7 +179,7 @@
/**
* set guide line on or off.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
void SetGuideLineOn( const TBool aGuideLineOn);
@@ -202,7 +187,7 @@
/**
* set pen color of hwr writing
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
void SetBoxPenColor( const TInt aPenColor );
@@ -210,7 +195,7 @@
/**
* set pen size of hwr writing
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
void SetBoxPenSize( const TSize aPenSize );
@@ -218,7 +203,7 @@
/**
* set writing speed hwr writing
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
void SetBoxWritingSpeed( const TTimeIntervalMicroSeconds32& aCharDelay );
@@ -226,7 +211,7 @@
/**
* retrieve rect of hwr writingbox.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return rect of hwr writingbox.
*/
TRect WritingBoxRect();
@@ -234,7 +219,7 @@
/**
* Cancel wrting
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CancelWriting();
@@ -242,9 +227,9 @@
public: // show symbol table page
/**
- * Change SCT page.
+ * Change symbol table page.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aPageNo page no.
* @param aPos Specifies the interpretation of the aPageNo parameter:
EPagePosPageNo - go to page aPageNo.
@@ -254,14 +239,14 @@
EPagePosFirstPage - go to first page.
* @return none
*/
- void ShowSctPage( TInt aPageNo, TInt aPos );
+ void ShowSymbolPage( TInt aPageNo, TInt aPos );
public: //child control access
/**
* retrieve the ICF control.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return pointer to ICF
*/
CFepLayoutMultiLineIcf* Icf();
@@ -270,7 +255,7 @@
/**
* retrieve the candicate list control.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return pointer to candicate list
*/
CFepCtrlDropdownList* CandidateList();
@@ -278,38 +263,15 @@
/**
* retrieve the number candicate list control.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return pointer to candicate list
*/
CFepCtrlDropdownList* NumCandidateList();
-
-public: //ui
-
- /**
- * update layout
- * safe version of UpdateLayoutL()
- *
- * @since S60 v5.0
- * @param aIsStandby ETrue if is standby state
- * @return none
- */
- void UpdateLayout( const TBool aIsStandby,
- const TBool aReloadCandicate=ETrue );
-
- /**
- * update layout
- *
- * @since S60 v5.0
- * @param aIsStandby ETrue if is standby state
- * @return none
- */
- void UpdateLayoutL( const TBool aIsStandby,
- const TBool aReloadCandicate=ETrue);
-
+
/**
* dim arrow buttons
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aDimArrow ETrue to dim arrow buttons, EFalse to set arrow buttons as not dimmed.
* @return none
*/
@@ -317,17 +279,9 @@
public: // symbol table & candidate list
/**
- * retrieve char range of layout, including sct.
- *
- * @since S60 v5.0
- * @return char range id.
- */
- TInt CurrentCharRange();
-
- /**
* Show preview bubble
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aShow Show/Hide flag
* @return none
*/
@@ -336,7 +290,7 @@
/**
* Open the symble table
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
void OpenSymbolTable();
@@ -344,15 +298,31 @@
/**
* Close the symble table
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
void CloseSymbolTable();
/**
+ * Open the candidate list
+ *
+ * @since Symbian TB9.2
+ * @return none
+ */
+ void OpenCandidateList();
+
+ /**
+ * Close the candidate list
+ *
+ * @since Symbian TB9.2
+ * @return none
+ */
+ void CloseCandidateList();
+
+ /**
* Check if the symbol table is alreay opened up
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
TBool IsSymbolTableShowingUp();
@@ -360,14 +330,14 @@
/**
* Check if the candidate list was opened up
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
TBool IsCandidateShowup();
/**
* Hide the indicator of handwriting
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return none
*/
void HideIndicator();
@@ -377,7 +347,7 @@
*
* @param aCharPos The the char position
* @param aCharBeforeCursor The char to be retrieved
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return TBool ETrue if char have been retrieved, EFalse otherwise
*/
TBool GetCharBeforeCursor(TInt aCharPos, TUint16& aCharBeforeCursor);
@@ -387,7 +357,7 @@
/**
* C++ constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aFepUiLayout A Ui Layout environment (CFepUiLayout)
* @param aControlId Control id
* @return None
@@ -399,7 +369,7 @@
/**
* Symbian second-phase constructor
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aLandscapeStyle Current screen is landscape or not
* @return None
*/
@@ -408,7 +378,7 @@
/**
* create icf.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CreateContextFieldL();
@@ -416,14 +386,14 @@
/**
* create candidate lists.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CreateCandidateListL();
/**
* create number candidate lists.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CreateNumCandidateListL();
@@ -431,7 +401,7 @@
/**
* create writing box.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CreateWritingBoxL();
@@ -439,7 +409,7 @@
/**
* create all function buttons.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CreateButtonsL();
@@ -447,7 +417,7 @@
/**
* create virtual sct pad.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CreateSymbolTableL();
@@ -455,7 +425,7 @@
/**
* EventButton creation helper.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aCtrlId button control id.
* @param aResId resource id.
* @param aEvent event id;
@@ -468,7 +438,7 @@
/**
* RepeatButton creation helper.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aCtrlId button control id.
* @param aResId resource id.
* @param aEvent event id;
@@ -477,48 +447,37 @@
*/
CAknFepCtrlRepeatButton* CreateRepBtnL( const TInt aCtrlId, TInt32 aResId,
const TInt aEvent, const TInt aUnicode );
-
- /**
- * load virtual number pad images.
- *
- * @since S60 v5.0
- * @param aResId resource id.
- * @param aKeySize virtual key rect.
- * @return None
- */
- void LoadVkbKeyImageL( const TInt aResId, const TSize& aKeySize );
-
-
+
/**
* load virtual sct keys.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aResId resource id.
* @param aCellRects rects of virtual keys.
* @return None
*/
- void LoadVirtualSctpadKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
+ void LoadSymbolVirtualKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
/**
* relayout full ui, reset all controls position.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void ResetLayoutL();
/**
- * layout for chinese range standby.
+ * switch to arabic standby view
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void SwitchToStandbyView();
/**
- * layout for symbol range standby.
+ * switch to symbol table view
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void SwitchToSymbolTableView();
@@ -526,7 +485,7 @@
/**
* EventButton layout helper. Move button to specified rect.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aButton the button to move
* @param aRect new rect of button
* @param aXPadding horz padding of button icon.
@@ -540,7 +499,7 @@
/**
* read control's shadow info.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aResId resource id.
* @return None
*/
@@ -549,7 +508,7 @@
/**
* read control's background info.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aResId resource id.
* @return None
*/
@@ -558,7 +517,7 @@
/**
* read icf appearance info.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aResId resource id.
* @return None
*/
@@ -567,31 +526,22 @@
/**
* read writingbox appearance info.
*
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @param aResId resource id.
* @return None
*/
void ReadWritingBoxInfoL( TInt aResId );
-
- /**
- * update feedback state of all virtual keys
- *
- * @since S60 v5.0
- * @param aType char range id
- * @return None
- */
- void UpdateAllVirtualKeysFeedback( TInt aType );
/**
* Calcaulate the postion of guideline
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void CalculateGuideLinePos();
/**
* Draw the guideline
- * @since S60 v5.0
+ * @since Symbian TB9.2
* @return None
*/
void DrawGuideLine();
@@ -681,12 +631,6 @@
* Not own.
*/
CPeninputArabicFingerHwrSymbolTable* iSymbolTable;
-
- /**
- * Ime selection list control.
- * Not own.
- */
- CPeninputLayoutInputmodelChoice* iInputModeSwitch;
/**
* L&F manager.
@@ -698,17 +642,7 @@
* First time construct flag
*/
TBool iFirstTimeConstruct;
-
- /**
- * Current char range id, including SCT.
- */
- TInt iCurCharRange;
-
- /**
- * Current char range id, without SCT.
- */
- TInt iCurCharRangeNoSct;
-
+
/**
* bit mask of permitted char ranges.
*/
--- a/textinput/peninputfingerhwrar/src/hbufcarrayar.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/hbufcarrayar.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2009 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"
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrardatastore.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrardatastore.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -21,8 +21,8 @@
//FEP INCLUDE
#include <aknfeppeninputenums.h>
-#include <AknFepGlobalEnums.h>
-#include <AknFepInternalCRKeys.h>
+#include <aknfepglobalenums.h>
+#include <aknfepinternalcrkeys.h>
//USER INCLUDE
#include "peninputfingerhwrarlayout.h"
@@ -137,70 +137,8 @@
void CPeninputFingerHwrArDataStore::SetArabicSymbolL()
{
iCandidates.ResetAndDestroy();
-// TInt symCount = sizeof( ChineseSymbolCode )/sizeof( TUint16 );
-//
-// for( TInt i = 0; i < symCount; i++ )
-// {
-// TBuf<1> charBuf;
-// charBuf.Append( ChineseSymbolCode[i] );
-//
-// iCandidates.AppendL( charBuf.AllocL() );
-// }
-
}
-
-// ----------------------------------------------------------------------------
-// Set fixed English symbols
-// ----------------------------------------------------------------------------
-//
- void CPeninputFingerHwrArDataStore::SetFixEnglishSymbolL(TRowCount aRowCount)
- {
- TInt symCount = 0;
-
- switch(aRowCount)
- {
- case ERowOne: // only set one row dropdownlist
- {
- iCandidates.ResetAndDestroy();
- symCount = sizeof( EnglishSymbolCodeOneRow )/sizeof( TUint16 );
- for( TInt i = 0; i < symCount; i++ )
- {
- TBuf<1> charBuf;
- charBuf.Append( EnglishSymbolCodeOneRow[i] );
- iCandidates.AppendL( charBuf.AllocL() );
- }
- }
- break;
- case ERowTwo: // Set two rows dropdownlist
- {
- iCandidates.ResetAndDestroy();
- symCount = sizeof( EnglishSymbolCodeTwoRow )/sizeof( TUint16 );
-
- for( TInt i = 0; i < symCount; i++ )
- {
- TBuf<1> charBuf1; // the first row
- TBuf<2> charBuf2; // the second row
-
- charBuf1.Append( EnglishSymbolCodeOneRow[i] );
- iCandidates.AppendL( charBuf1.AllocL() );
-
- if(i > 2) // for smile symbol
- {
- charBuf2.Append(ColonSymbol);
- }
- charBuf2.Append( EnglishSymbolCodeTwoRow[i] );
-
- }
- }
- break;
- default:
- break;
- }
- }
-
-
-
// ----------------------------------------------------------------------------
// Set permitted ranges
// ----------------------------------------------------------------------------
@@ -360,7 +298,7 @@
}
else
{
- // aLanguage is Chinese
+ // aLanguage is arabic
if ( iLanguage != aLanguage )
{
iLanguage = aLanguage;
@@ -859,22 +797,6 @@
}
}
}
- else if(iFirstCandidateType == ECandArabicCharFirst)
- {
- for(TInt i = 0; i < candCount; i++)
- {
- TUint16 unicode = (*iCandidates[i])[0];
- if(IsArabicChar(unicode))
- {
- if(insertPos < i)
- {
- iCandidates.Insert(iCandidates[i],insertPos);
- iCandidates.Remove(i+1);
- }
- insertPos++;
- }
- }
- }
}
// ----------------------------------------------------------------------------
@@ -920,37 +842,4 @@
return EFalse;
}
-// ----------------------------------------------------------------------------
-// CPeninputFingerHwrArDataStore::IsArabicChar
-// ----------------------------------------------------------------------------
-//
-TBool CPeninputFingerHwrArDataStore::IsArabicChar(TUint16 aChar)
- {
- if((aChar >= 0x0600 && aChar <= 0x06FF && !IsArabicNumber(aChar) &&
- !IsArabicSymbol(aChar)) ||
- (aChar >= 0x0750 && aChar <= 0x077F) ||
- (aChar >= 0xFB50 && aChar <= 0xFDFF) ||
- (aChar >= 0xFE70 && aChar <= 0xFEFF))
- {
- return ETrue;
- }
-
- return EFalse;
- }
-
-// ----------------------------------------------------------------------------
-// CPeninputFingerHwrArDataStore::IsArabicSymbol
-// ----------------------------------------------------------------------------
-//
-TBool CPeninputFingerHwrArDataStore::IsArabicSymbol(TUint16 aChar)
- {
- if(aChar == 0x061B || aChar == 0x061F ||
- aChar == 0x060C || aChar == 0x066A)
- {
- return ETrue;
- }
-
- return EFalse;
- }
-
// End Of File
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarengine.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarengine.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -17,11 +17,11 @@
//FEP INCLUDES
-#include <AknFepGlobalEnums.h>
+#include <aknfepglobalenums.h>
#include <aknfeppeninputenums.h>
-#include <PtiHwrRecognizer.h>
+#include <ptihwrrecognizer.h>
#include <e32property.h>
-#include "PtiDefs.h"
+#include "ptidefs.h"
//USER INCLUDES
#include "peninputfingerhwrarengine.h"
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarindicator.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarindicator.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -15,7 +15,7 @@
*
*/
-#include <AknsUtils.h>
+#include <aknsutils.h>
#include <barsread.h>
#include "peninputfingerhwrarindicator.h"
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarlafmanager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarlafmanager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -19,7 +19,7 @@
// INCLUDES
#include <aknlayoutscalable_avkon.cdl.h>
#include <aknlayoutscalable_apps.cdl.h>
-#include <AknUtils.h>
+#include <aknutils.h>
#include "peninputfingerhwrarlafmanager.h"
#include "peninputfingerhwrarcontrolid.h"
@@ -266,7 +266,6 @@
btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1).
LayoutLine();
btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane);
- iRectBtnImeSwitch = btnbgRect.Rect();
// Arrow up button
btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 2 , 0 ).
@@ -319,10 +318,7 @@
LayoutLine();
btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane);
- iRectFixSctpad = btnrowRect.Rect();
- iSizeFixSctpadCell = btnRect.Rect().Size();
- iRectSpase = btnbgRect.Rect();
- iRectSpase.Move(-iRectFixSctpad.iTl );
+
// Enter button
btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 0 , 1 , 0 ).
@@ -333,7 +329,6 @@
btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane);
iRectEnter = btnbgRect.Rect();
- iRectEnter.Move(-iRectFixSctpad.iTl);
// Writing box
@@ -390,7 +385,7 @@
// going to be removed if the LAF data is ready
//
#ifdef HackerVersion
-
+ const TUint KMarginLayout = 4;
// hardcode those and remove them after the laf data is ready
// do we really need to read ui data from laf system?
// icf margins
@@ -406,10 +401,10 @@
if(iIsLandscape)
{
- TInt buttonHight = (iLayoutRect.Height()-20)/6;//-6; // 1mm ~= 6 pixls
- TInt buttonWidth = (iLayoutRect.Width()-20)/8;//-8;
+ TInt buttonHight = (iLayoutRect.Height()-2*KMarginLayout)/6;//-6; // 1mm ~= 6 pixls
+ TInt buttonWidth = (iLayoutRect.Width()-2*KMarginLayout)/8;//-8;
- iRectBtnClose = TRect(iLayoutRect.iTl+TPoint(10,10),TPoint(buttonWidth+10,buttonHight+10));
+ iRectBtnClose = TRect(iLayoutRect.iTl+TPoint(KMarginLayout,KMarginLayout),TPoint(buttonWidth+KMarginLayout,buttonHight+KMarginLayout));
iRectBtnOption = iRectBtnClose;
iRectBtnOption.Move(TPoint(buttonWidth,0));
@@ -433,9 +428,8 @@
iRectBtnArrowRight = iRectBtnArrowLeft;
iRectBtnArrowRight.Move(TPoint(buttonWidth,0));
- // fix symbol table
- TPoint fixSctTl = iRectBtnClose.iTl+TPoint(0,buttonHight);
- iRectFixSctpad = TRect(fixSctTl,fixSctTl+TPoint(4*buttonWidth,buttonHight));
+ iSizeBtnPadding = TSize(6,6);
+
iRectSpase = iRectBtnClose;
iRectSpase.Move(TPoint(0,buttonHight));
@@ -443,10 +437,7 @@
iRectEnter = iRectSpase;
iRectEnter.Move(TPoint(buttonWidth,0));
- iRectSpase.Move(-iRectFixSctpad.iTl );
- iRectEnter.Move(-iRectFixSctpad.iTl );
-
- iSizeFixSctpadCell = iRectSpase.Size();
+
// candate position
iCandidateLTPos = iRectBtnClose.iTl + TPoint(0,buttonHight);
@@ -454,10 +445,10 @@
iCandsUnitHeight = buttonHight;
// icf editor rect
- iRectIcf = TRect(TPoint(4*buttonWidth+10,10),TPoint(iLayoutRect.iBr.iX-10,2*buttonHight+10));
+ iRectIcf = TRect(TPoint(4*buttonWidth+KMarginLayout,KMarginLayout),TPoint(iLayoutRect.iBr.iX-KMarginLayout,2*buttonHight+KMarginLayout));
// iwriting box
- iRectWritingBox = TRect(TPoint(10,2*buttonHight+10),iLayoutRect.iBr-TPoint(10,10));
+ iRectWritingBox = TRect(TPoint(KMarginLayout,2*buttonHight+KMarginLayout),iLayoutRect.iBr-TPoint(KMarginLayout,KMarginLayout));
// construct symbol table
iRectOfSymbolTable = iRectWritingBox;
@@ -489,23 +480,26 @@
else
{
// icf rect
- iRectIcf = TRect(iLayoutRect.iTl+TPoint(10,10),TPoint(iLayoutRect.iBr.iX-10,22.5*9));
- TPoint backSpaceTl = iRectIcf.iTl+TPoint(0,iRectIcf.Height());
+ iRectIcf = TRect(iLayoutRect.iTl+TPoint(KMarginLayout,KMarginLayout),TPoint(iLayoutRect.iBr.iX-KMarginLayout,22.5*9));
- TInt buttonHight = (iLayoutRect.Height()-iRectIcf.Height()-20)/6;//(15*9)/2; // 1mm ~= 9pixls
- TInt buttonWidth = (iLayoutRect.Width()-20)/4;
+ TInt buttonHight = (iLayoutRect.Height()-iRectIcf.Height()-2*KMarginLayout)/6;//(15*9)/2; // 1mm ~= 9pixls
+ TInt buttonWidth = (iLayoutRect.Width()-2*KMarginLayout)/4;
// the button on second row
- iRectBtnBackspace = TRect(backSpaceTl,backSpaceTl+TPoint(buttonWidth,buttonHight));
- iRectBtnOption = iRectBtnBackspace;
+ TPoint firstButtonTl = iRectIcf.iTl+TPoint(0,iRectIcf.Height());
+ iRectBtnClose = TRect(firstButtonTl,firstButtonTl+TPoint(buttonWidth,buttonHight));
+
+ iRectBtnOption = iRectBtnClose;
iRectBtnOption.Move(TPoint(buttonWidth,0));
- iRectBtnRangeSmb = iRectBtnOption;
+
+ iRectBtnRangeSmb = iRectBtnOption;
iRectBtnRangeSmb.Move(TPoint(buttonWidth,0));
- iRectBtnClose = iRectBtnRangeSmb;
- iRectBtnClose.Move(TPoint(buttonWidth,0));
+
+ iRectBtnBackspace = iRectBtnRangeSmb;
+ iRectBtnBackspace.Move(TPoint(buttonWidth,0));
// arrow button: on third row
- iRectBtnArrowUp = iRectBtnBackspace;
+ iRectBtnArrowUp = iRectBtnClose;
iRectBtnArrowUp.Move(TPoint(0,buttonHight));
iRectBtnArrowDown = iRectBtnArrowUp;
@@ -516,14 +510,17 @@
iRectBtnArrowRight = iRectBtnArrowLeft;
iRectBtnArrowRight.Move(TPoint(buttonWidth,0));
-
+
+ // button padding
+ iSizeBtnPadding = TSize(6,6);
+
// candate position
- iCandidateLTPos = iRectBtnBackspace.iTl + TPoint(0,buttonHight);
+ iCandidateLTPos = iRectBtnClose.iTl + TPoint(0,buttonHight);
iCandsUnitWidth = buttonWidth-iCandsVerticalMargin;
iCandsUnitHeight = buttonHight;
// HWR Box Rect
- iRectWritingBox = TRect(TPoint(iRectBtnArrowUp.iTl.iX,iRectBtnArrowUp.iBr.iY),iLayoutRect.iBr-TPoint(10,10));
+ iRectWritingBox = TRect(TPoint(iRectBtnArrowUp.iTl.iX,iRectBtnArrowUp.iBr.iY),iLayoutRect.iBr-TPoint(KMarginLayout,KMarginLayout));
// construct symbol table
iRectOfSymbolTable = iRectWritingBox;
@@ -631,10 +628,6 @@
{
return iRectBtnOption;
}
- case EHwrCtrlIdVkbSwitcher:
- {
- return iRectBtnImeSwitch;
- }
case EHwrCtrlId3Page1Btn:
case EHwrCtrlId3Page2Btn:
case EHwrCtrlId3Page3Btn:
@@ -736,30 +729,9 @@
{
return iSizeBtnPadding;
}
-
-
-// ---------------------------------------------------------------------------
-// get cell size of virtual numpad.
-// ---------------------------------------------------------------------------
-//
-TRect CPeninputFingerHwrArLafManager::VirtualNumpadCellSize()
- {
- return iSizeNumpadCell;
- }
// ---------------------------------------------------------------------------
-// get text layout of virtual numpad.
-// ---------------------------------------------------------------------------
-//
-TAknTextLineLayout CPeninputFingerHwrArLafManager::NumpadKeyTxtLayout()
- {
- TAknTextLineLayout layout = AknLayoutScalable_Avkon::
- cell_fshwr2_syb_bg_pane_t1(0).LayoutLine();
- return layout;
- }
-
-// ---------------------------------------------------------------------------
// get row count of virtual sctpad.
// ---------------------------------------------------------------------------
//
@@ -785,15 +757,6 @@
{
return iSizeSctpadCell;
}
-
-// ---------------------------------------------------------------------------
-// get cell size of virtual sctpad.
-// ---------------------------------------------------------------------------
-//
-TRect CPeninputFingerHwrArLafManager::FixVirtualSctpadCellSize()
- {
- return iSizeFixSctpadCell;
- }
// ---------------------------------------------------------------------------
@@ -849,17 +812,6 @@
}
// ---------------------------------------------------------------------------
-// get space and enter key rect.
-// ---------------------------------------------------------------------------
-//
-void CPeninputFingerHwrArLafManager::GetFixVirtualKeyRects( RArray<TRect>& aArrayRects )
- {
- aArrayRects.Reset();
- aArrayRects.Append( iRectSpase );
- aArrayRects.Append( iRectEnter );
- }
-
-// ---------------------------------------------------------------------------
// get text layout of virtual sctpad.
// ---------------------------------------------------------------------------
//
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -20,13 +20,12 @@
#include <coemain.h>
//FEP Includes
-#include <AknFepGlobalEnums.h>
+#include <aknfepglobalenums.h>
#include <aknfeppeninputenums.h>
#include <peninputlayoutchoicelist.h>
#include <settingsinternalcrkeys.h>
#include <centralrepository.h>
#include <peninputlayoutvkb.h>
-#include <AknFepGlobalEnums.h>
#include <peninputcmdparam.h>
#include <peninputdropdownlist.h>
#include <peninputlayoutmultilineicf.h>
@@ -154,7 +153,6 @@
{
TInt ranges = *(TInt*)aData;
iDataStore->SetPermittedRanges( ranges );
- iHwrWnd->SetPermittedRanges( ranges );
ret = KErrNone;
}
break;
@@ -188,7 +186,7 @@
TSize hwrSize = hwrRect.Size();
iDataStore->SetInputAreaSize(hwrSize);
iDataStore->SetScreenSize(hwrSize);
- ChangeCurStateManagerToStandby();
+ ChangeCurStateToStandby();
iDataStore->GetKeyboardType();
iDataStore->SetKeyboardToQwerty();
@@ -299,10 +297,7 @@
{
candtype = ECandArabicIndicNumFirst;
}
- else if(iDataStore->IsArabicChar(charBeforeCursor))
- {
- candtype = ECandArabicCharFirst;
- }
+
iDataStore->SetFirstCandidateType(candtype);
}
@@ -356,13 +351,14 @@
//
void CPeninputFingerHwrArLayout::OnDeActivate()
{
- //cancel writing
+ // cancel writing
iHwrWnd->CancelWriting();
- if(!iHwrWnd->IsSymbolTableShowingUp())
- {
- iHwrWnd->UpdateLayout( ETrue );
- }
+ // close the symbol table if it's showing up
+ iHwrWnd->CloseSymbolTable();
+
+ // close the candidate list if it's showing up
+ iHwrWnd->CloseCandidateList();
CFepUiLayout::OnDeActivate();
}
@@ -445,7 +441,7 @@
case EHwrEventOutsideEvent:
{
- ChangeCurStateManagerToStandby();
+ ChangeCurStateToStandby();
iHwrWnd->CloseSymbolTable();
}
break;
@@ -549,7 +545,7 @@
break;
case KSettingsPenInputGuideLine:
{
-
+ self->SetGuideLineOn(newValue);
}
break;
default:
@@ -616,9 +612,7 @@
CCoeEnv::Static()->DeleteResourceFile( iResId );
delete iDataStore;
- iStateMgrArray.ResetAndDestroy();
- iStateMgrArray.Close();
-
+ delete iStateMgr;
delete iGSRepositoryWatcher;
delete iRepositorySetting;
}
@@ -645,7 +639,7 @@
//
void CPeninputFingerHwrArLayout::CreateStateManagerL()
{
- iStateMgrArray.AppendL( CPeninputFingerHwrArStateManager::NewL( this ) );
+ iStateMgr = CPeninputFingerHwrArStateManager::NewL( this );
}
// ---------------------------------------------------------------------------
@@ -679,8 +673,8 @@
{
iDataStore->SetStartCharacter(EFalse);
iHwrWnd->CancelWriting();
- ChangeCurStateManagerToStandby();
- iHwrWnd->UpdateLayout( ETrue );
+ ChangeCurStateToStandby();
+ iHwrWnd->CloseCandidateList();
}
SignalOwner( ESignalLayoutClosed );
@@ -698,8 +692,8 @@
{
iDataStore->SetStartCharacter(EFalse);
iHwrWnd->CancelWriting();
- ChangeCurStateManagerToStandby();
- iHwrWnd->UpdateLayout( ETrue );
+ ChangeCurStateToStandby();
+ iHwrWnd->CloseCandidateList();
}
if(iHwrWnd->IsSymbolTableShowingUp())
@@ -708,34 +702,34 @@
}
else
{
- ChangeCurStateManagerToStandby();
+ ChangeCurStateToStandby();
iHwrWnd->OpenSymbolTable();
}
}
break;
case EHwrCtrlId3Page1Btn:
{
- iHwrWnd->ShowSctPage( 1, EPagePosPageNo );
+ iHwrWnd->ShowSymbolPage( 1, EPagePosPageNo );
}
break;
case EHwrCtrlId3Page2Btn:
{
- iHwrWnd->ShowSctPage( 2, EPagePosPageNo );
+ iHwrWnd->ShowSymbolPage( 2, EPagePosPageNo );
}
break;
case EHwrCtrlId3Page3Btn:
{
- iHwrWnd->ShowSctPage( 0, EPagePosPageNo );
+ iHwrWnd->ShowSymbolPage( 0, EPagePosPageNo );
}
break;
case EHwrCtrlId2Page1Btn:
{
- iHwrWnd->ShowSctPage( 1, EPagePosPageNo );
+ iHwrWnd->ShowSymbolPage( 1, EPagePosPageNo );
}
break;
case EHwrCtrlId2Page2Btn:
{
- iHwrWnd->ShowSctPage( 0, EPagePosPageNo );
+ iHwrWnd->ShowSymbolPage( 0, EPagePosPageNo );
}
break;
case EHwrCtrlIdBtnEnter:
@@ -808,18 +802,17 @@
{
// goto standby and clear screen
iDataStore->SetStartCharacter(EFalse);
- ChangeCurStateManagerToStandby();
- iHwrWnd->UpdateLayout( ETrue );
+ ChangeCurStateToStandby();
+ iHwrWnd->CloseCandidateList();
}
else
{
-
SubmitCharToFep( EKeyBackspace );
- CurStateManager()->HandleEventL( EHwrEventKeyBack, KNullDesC );
+ iStateMgr->HandleEventL( EHwrEventKeyBack, KNullDesC );
if(iDataStore->StartCharacter())
{
- ChangeCurStateManagerToStandby();
- iHwrWnd->UpdateLayout( ETrue );
+ ChangeCurStateToStandby();
+ iHwrWnd->CloseCandidateList();;
}
}
}
@@ -875,12 +868,11 @@
return;
}
- CurStateManager()->HandleEventL( EHwrEventCandidateSelected, aData );
-
+ iStateMgr->HandleEventL( EHwrEventCandidateSelected, aData );
- ChangeCurStateManagerToStandby();
+ ChangeCurStateToStandby();
- iHwrWnd->UpdateLayout( ETrue );
+ iHwrWnd->CloseCandidateList();;
}
@@ -891,8 +883,11 @@
void CPeninputFingerHwrArLayout::OnIcfClicked()
{
// Go to standby
- ChangeCurStateManagerToStandby();
- iHwrWnd->UpdateLayout( ETrue );
+ ChangeCurStateToStandby();
+ if(iHwrWnd->IsCandidateShowup())
+ {
+ iHwrWnd->CloseCandidateList();
+ }
}
// ---------------------------------------------------------------------------
@@ -902,13 +897,19 @@
void CPeninputFingerHwrArLayout::OnHwrStrokeStartedL()
{
iHwrWnd->HideIndicator();
+
// The default candidate cell is not highlight
- iDataStore->SetHighlight(EFalse);
- iHwrWnd->UpdateLayout(ETrue);
+ iDataStore->SetHighlight(EFalse);
+
+ // close the candidate list if it's currently showing up
+ if(iHwrWnd->IsCandidateShowup())
+ {
+ iHwrWnd->CloseCandidateList();
+ }
// remember the start writing position.
iDataStore->SetStartCharacter(ETrue);
- CurStateManager()->HandleEventL( EEventHwrStrokeStarted, KNullDesC );
+ iStateMgr->HandleEventL( EEventHwrStrokeStarted, KNullDesC );
}
// ---------------------------------------------------------------------------
@@ -920,7 +921,7 @@
RArray<TPoint> points = iHwrWnd->StrokeList();
TPtrC ptr;
ptr.Set(reinterpret_cast<TText*>(&points), sizeof(&points));
- CurStateManager()->HandleEventL( EEventHwrStrokeFinished, ptr );
+ iStateMgr->HandleEventL( EEventHwrStrokeFinished, ptr );
}
// ---------------------------------------------------------------------------
@@ -934,11 +935,10 @@
RArray<TPoint> points = iHwrWnd->StrokeList();
TPtrC ptr;
ptr.Set( reinterpret_cast<TText*>( &points ), sizeof(&points) );
- CurStateManager()->HandleEventL( EEventHwrCharacterTimerOut, ptr );
-
- // When recognize Enter or Backspace, it will go to standby
- iHwrWnd->UpdateLayout( CurStateManager()->IsStandbyState(), ETrue);
- }
+ iStateMgr->HandleEventL( EEventHwrCharacterTimerOut, ptr );
+
+ iHwrWnd->OpenCandidateList();
+ }
// ---------------------------------------------------------------------------
// get value from repository.
@@ -1039,32 +1039,18 @@
// set hwr writing pen color.
// ---------------------------------------------------------------------------
//
-void CPeninputFingerHwrArLayout::SetGuideLineOn(const TBool aGuideLineOn)
+void CPeninputFingerHwrArLayout::SetGuideLineOn(TBool aGuideLineOn)
{
iHwrWnd->SetGuideLineOn( aGuideLineOn );
}
// ---------------------------------------------------------------------------
-// get current state manager.
-// ---------------------------------------------------------------------------
-//
-CPeninputFingerHwrArStateManagerBase* CPeninputFingerHwrArLayout::CurStateManager()
- {
- return iStateMgrArray[0];
- }
-
-
-// ---------------------------------------------------------------------------
// change current state manager to standby state.
// ---------------------------------------------------------------------------
//
-void CPeninputFingerHwrArLayout::ChangeCurStateManagerToStandby()
+void CPeninputFingerHwrArLayout::ChangeCurStateToStandby()
{
- CPeninputFingerHwrArStateManagerBase* stateMgr = CurStateManager();
- if ( stateMgr )
- {
- stateMgr->SetState( CPeninputFingerHwrArStateManagerBase::EStateStandBy );
- }
+ iStateMgr->SetState( CPeninputFingerHwrArStateManagerBase::EStateStandBy );
}
//End of file
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarproxy.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarproxy.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarstatemanager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarstatemanager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -189,11 +189,7 @@
iStates[++i] = EPeninputFingerHwrArStateCandidateSelecting;
iStateHandlers[i] =
CPeninputFingerHwrArStateCandidateSelecting::NewL( *this );
-
-// iStates[++i] = EPeninputFingerHwrArStatePredictSelecting;
-// iStateHandlers[i] =
-// CPeninputFingerHwrArStatePredictSelecting::NewL( *this );
-//
+
iCurrentStateHandler = iStateHandlers[0];
iCurrentState = EPeninputFingerHwrArStateStandby;
}
@@ -376,12 +372,7 @@
{
OnSelectedCandidatesL(aEventData);
}
- break;
- case EHwrEventPredictiveSelected:
- {
-// OnSelectedPredictivesL(aEventData);
- }
- break;
+ break;
default:
break;
}
@@ -559,11 +550,6 @@
OnSelectedCandidatesL( aEventData );
}
break;
- case EHwrEventPredictiveSelected:
- {
-// OnSelectedPredictivesL( aEventData );
- }
- break;
case EHwrEventKeyBack:
{
OnClickBackSpaceL();
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarsymboltable.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarsymboltable.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description: Implementation of char range selector.
+* Description: Implementation of symbol table.
*
*/
@@ -25,17 +25,15 @@
#include <aknlayoutscalable_apps.cdl.h>
#include <aknlayoutscalable_avkon.cdl.h>
-#include <AknLayoutDef.h>
-#include <AknUtils.h>
-#include <AknsUtils.h>
-#include <AknIconUtils.h>
+#include <aknlayoutdef.h>
+#include <aknutils.h>
+#include <aknsutils.h>
+#include <akniconutils.h>
#include <aknfeppeninputenums.h>
-#include <AknFepGlobalEnums.h>
+#include <aknfepglobalenums.h>
#include <peninputlayout.h>
#include <peninputrepeatbutton.h>
-#include <peninputmultiimagebutton.h>
-#include <peninputpluginutils.h>
#include "hbufcarrayar.h"
#include "peninputfingerhwrarevent.h"
@@ -91,12 +89,10 @@
void CPeninputArabicFingerHwrSymbolTable::OpenSymbolTable()
{
CapturePointer( ETrue );
- iPopupVisible = ETrue;
- iPointerMoveBack = EFalse;
- Draw();
- UpdateArea(iRect );
+ iPopupVisible = ETrue;
UiLayout()->LockArea(UiLayout()->Rect(),this);
- }
+ NavigatePage(0,EPagePosPageNo);
+ }
// ---------------------------------------------------------------------------
// cancel the popup.
@@ -105,7 +101,6 @@
void CPeninputArabicFingerHwrSymbolTable::CloseSymbolTable()
{
CapturePointer( EFalse );
- iPenDownCtrl = NULL;
iPopupVisible = EFalse;
UiLayout()->UnLockArea(UiLayout()->Rect(),this);
}
@@ -128,15 +123,13 @@
{
CancelPointerDownL();
CFepUiBaseCtrl* ctrl = CControlGroup::HandlePointerDownEventL( aPoint );
- iPenDownCtrl = ctrl;
-
+
if(!ctrl)
{
ReportEvent(EHwrEventOutsideEvent);
}
else
{
- ctrl->Draw();
ctrl->UpdateArea(ctrl->Rect(),EFalse);
}
@@ -154,7 +147,6 @@
if(ctrl)
{
- ctrl->Draw();
ctrl->UpdateArea(ctrl->Rect(),EFalse);
}
@@ -171,31 +163,17 @@
CFepUiBaseCtrl* ctrl = CControlGroup::HandlePointerMoveEventL( aPoint );
if(ctrl)
{
- ctrl->Draw();
ctrl->UpdateArea(ctrl->Rect(),EFalse);
- iPointerMoveBack = ETrue;
}
else
{
- if(iPointerMoveBack)
- {
- if(iPenDownCtrl)
- {
- iPenDownCtrl->HandlePointerLeave(aPoint);
- }
- iPointerMoveBack = EFalse;
- }
+ CControlGroup::HandlePointerLeave(aPoint);
+ UpdateArea(iRect,EFalse);
}
-
+
return ctrl;
}
-void CPeninputArabicFingerHwrSymbolTable::HandlePointerLeave(const TPoint& aPoint)
- {
- CControlGroup::HandlePointerLeave(aPoint);
- Draw();
- UpdateArea(Rect(),EFalse);
- }
// ---------------------------------------------------------------------------
// C++ constructor.
// ---------------------------------------------------------------------------
@@ -294,7 +272,7 @@
iMutiPageKeypad = CMultiPageVirtualKeyboard::NewL(
TRect(0,0,0,0),
UiLayout(),
- EHwrCtrlIdSctpad,
+ EHwrCtrlIdSymbolTableVkb,
spec );
AddControlL( iMutiPageKeypad );
@@ -368,11 +346,11 @@
void CPeninputArabicFingerHwrSymbolTable::OnActivate()
{
CControlGroup::OnActivate();
- if(IsPopup())
+ /*if(IsPopup())
{
CapturePointer( ETrue );
NavigatePage(0,EPagePosPageNo);
- }
+ }*/
}
void CPeninputArabicFingerHwrSymbolTable::LoadVkbKeyImageL(TInt aResId, const TSize& aKeySize)
@@ -580,11 +558,9 @@
break;
}
- iMutiPageKeypad->Draw();
UpdatePageButtonsUi();
- UpdateAllVirtualKeysFeedback( EFingerHwrSymbolRange );
- iEnterBtn->Draw();
- iSpaceBtn->Draw();
+ Draw();
+ UpdateAllVirtualKeysFeedback();
UpdateArea(iRect);
}
@@ -614,10 +590,8 @@
// update feedback state of all virtual keys.
// ---------------------------------------------------------------------------
//
-void CPeninputArabicFingerHwrSymbolTable::UpdateAllVirtualKeysFeedback( TInt aType )
+void CPeninputArabicFingerHwrSymbolTable::UpdateAllVirtualKeysFeedback()
{
- TBool isSctpad = ( aType == EFingerHwrSymbolRange ) ? ETrue : EFalse;
-
//update sctpad keys
TInt keyCount = iMutiPageKeypad->KeyArray().Count();
TInt pageSize = iMutiPageKeypad->PageSize();
@@ -626,8 +600,9 @@
{
CVirtualKey* vk = iMutiPageKeypad->KeyArray()[i];
TInt page = i / pageSize;
- TBool enable = !vk->Dimmed() && isSctpad && ( page == curPage );
+ TBool enable = !vk->Dimmed() && ( page == curPage );
iMutiPageKeypad->EnableKeyFeedback( vk, enable );
}
}
+
// End Of File
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarwnd.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarwnd.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -16,47 +16,40 @@
*/
// INCLUDE
-#include <peninputfingerhwrarwnd.rsg>
+#include <coemain.h>
+#include <s32mem.h>
+
#include <aknlayoutscalable_apps.cdl.h>
#include <aknlayoutscalable_avkon.cdl.h>
+#include <aknlayoutdef.h>
+#include <aknutils.h>
+#include <aknsutils.h>
+#include <akniconutils.h>
+#include <aknfepglobalenums.h>
+#include <aknfeppeninputenums.h>
+
+#include <peninputfingerhwrarwnd.rsg>
#include <peninputlayoutmultilineicf.h>
#include <peninputdropdownlist.h>
#include <peninputrepeatbutton.h>
-#include <AknLayoutDef.h>
-#include <AknUtils.h>
-#include <AknsUtils.h>
-#include <AknIconUtils.h>
-#include <coemain.h>
-#include <s32mem.h>
-#include <peninputlayoutchoicelist.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepGlobalEnums.h>
-#include <peninputlayoutinputmodechoice.h>
-#include <peninputrepeatbutton.h>
-#include <peninputlayout.h>
#include <peninputlayoutbubblectrl.h>
-#include <peninputlayoutvkb.h>
-#include <peninputmultiimagebutton.h>
-#include <peninputpluginutils.h>
-
+// USER INCLUDES
#include "peninputfingerhwrarwnd.h"
#include "peninputfingerhwrarlafmanager.h"
#include "peninputfingerhwrarevent.h"
#include "peninputfingerhwrarcontrolid.h"
#include "peninputfingerhwrarstoreconstants.h"
+#include "peninputfingerhwrarmultipagevkb.h"
#include "peninputfingerhwrarlayout.h"
#include "peninputfingerhwrardatastore.h"
#include "peninputlayouthwrwnd.h"
#include "peninputfingerhwrarsymboltable.h"
#include "peninputfingerhwrarindicator.h"
-#include "peninputfingerhwrarmultipagevkb.h"
-#include "hbufcarrayar.h"
-
-const TUint32 KDefaultTextColor = 0x000000;
-const TUint KDefaultFrameColor = 0x000000;
-const TUint32 KDefaultWriteBoxBgColor = 0xdddddd;
+const TUint32 KDefaultTextColor = 0x000000;
+const TUint KDefaultFrameColor = 0x000000;
+const TUint32 KDefaultWriteBoxBgColor = 0xdddddd;
const TUint32 KDefaultWriteBoxFrameColor = 0x000000;
// ---------------------------------------------------------------------------
@@ -329,18 +322,6 @@
}
// ---------------------------------------------------------------------------
-// accept editor's char ranges restriction.
-// ---------------------------------------------------------------------------
-//
-void CPeninputFingerHwrArWnd::SetPermittedRanges( const TInt aPermittedRanges )
- {
- if(aPermittedRanges == 0)
- return;
-
- iPermittedRanges = aPermittedRanges;
- }
-
-// ---------------------------------------------------------------------------
// get strokes from hwr writing box.
// ---------------------------------------------------------------------------
//
@@ -365,6 +346,7 @@
void CPeninputFingerHwrArWnd::SetGuideLineOn(const TBool aGuideLineOn)
{
iGuideLineOn = aGuideLineOn;
+ DrawGuideLine();
}
// ---------------------------------------------------------------------------
@@ -418,10 +400,9 @@
// Change SCT page.
// ---------------------------------------------------------------------------
//
-void CPeninputFingerHwrArWnd::ShowSctPage( TInt aPageNo, TInt aPos )
+void CPeninputFingerHwrArWnd::ShowSymbolPage( TInt aPageNo, TInt aPos )
{
iSymbolTable->NavigatePage(aPageNo,aPos);
- UpdateAllVirtualKeysFeedback( EFingerHwrSymbolRange );
}
// ---------------------------------------------------------------------------
@@ -452,72 +433,58 @@
}
// ---------------------------------------------------------------------------
-// Update layout
+// Open the candidate list
// ---------------------------------------------------------------------------
-//
-void CPeninputFingerHwrArWnd::UpdateLayout( const TBool aIsStandby, const TBool aReloadCandicate)
+//
+void CPeninputFingerHwrArWnd::OpenCandidateList()
{
- TRAP_IGNORE( UpdateLayoutL( aIsStandby, aReloadCandicate) );
- }
+ typedef CFepCtrlDropdownList::TListType TDropListType;
+
+ CPeninputFingerHwrArLayout* hwrLayout = NULL;
+ hwrLayout = static_cast<CPeninputFingerHwrArLayout*>( UiLayout() );
+ CPeninputFingerHwrArDataStore& datastore = hwrLayout->DataStore();
+
+ const RPointerArray<HBufC>& candidates = datastore.Candidate();
+
+
+ TDropListType unexpandable = CFepCtrlDropdownList::EListExpandableMultiRowWithoutIconWithBubble;
+
+ if ( datastore.PrimaryRange() == ERangeNative )
+ {
+ iCandidateList->Hide( EFalse );
+ TRAP_IGNORE(iCandidateList->SetCandidatesL( candidates, unexpandable ));
+ iCandidateList->SetHighlightCell( 0, datastore.Highlight() );
+ }
+ else
+ {
+ iNumCandidateList->Hide( EFalse );
+ TRAP_IGNORE(iNumCandidateList->SetCandidatesL( candidates, unexpandable ));
+ iNumCandidateList->SetHighlightCell( 0, datastore.Highlight() );
+ }
+
+ iArrowLeftBtn->Hide(ETrue);
+ iArrowRightBtn->Hide(ETrue);
+ iArrowUpBtn->Hide(ETrue);
+ iArrowDownBtn->Hide(ETrue);
+ }
// ---------------------------------------------------------------------------
-// Update layout
+// Close the candidate list
// ---------------------------------------------------------------------------
-//
-void CPeninputFingerHwrArWnd::UpdateLayoutL( const TBool aIsStandby,
- const TBool aReloadCandicate)
+//
+void CPeninputFingerHwrArWnd::CloseCandidateList()
{
- // Set the candidates when dropdown list is shown
- if ( !aIsStandby )
- {
- typedef CFepCtrlDropdownList::TListType TDropListType;
-
- CPeninputFingerHwrArLayout* hwrLayout = NULL;
- hwrLayout = static_cast<CPeninputFingerHwrArLayout*>( UiLayout() );
- CPeninputFingerHwrArDataStore& datastore = hwrLayout->DataStore();
-
- const RPointerArray<HBufC>& candidates = datastore.Candidate();
-
-
- TDropListType unexpandable = CFepCtrlDropdownList::EListExpandableMultiRowWithoutIconWithBubble;
-
- if ( datastore.PrimaryRange() == ERangeNative )
- {
- iCandidateList->Hide( EFalse );
-
- if ( aReloadCandicate )
- {
- iCandidateList->SetCandidatesL( candidates, unexpandable );
- }
-
- iCandidateList->SetHighlightCell( 0, datastore.Highlight() );
-
- }
- else
- {
- iNumCandidateList->Hide( EFalse );
- if ( aReloadCandicate )
- {
- iNumCandidateList->SetCandidatesL( candidates, unexpandable );
- }
-
- iNumCandidateList->SetHighlightCell( 0, datastore.Highlight() );
- }
- }
- else
- {
- iCandidateList->ResetAndClear(CFepCtrlDropdownList::EListExpandableMultiRowWithoutIconWithBubble);
- iNumCandidateList->ResetAndClear(CFepCtrlDropdownList::EListExpandableMultiRowWithoutIconWithBubble);
- // hide all the dropdown list in standby state
- iCandidateList->Hide( ETrue );
- iNumCandidateList->Hide( ETrue );
- }
+ iCandidateList->ResetAndClear(CFepCtrlDropdownList::EListExpandableMultiRowWithoutIconWithBubble);
+ iNumCandidateList->ResetAndClear(CFepCtrlDropdownList::EListExpandableMultiRowWithoutIconWithBubble);
+ // hide all the dropdown list in standby state
+ iCandidateList->Hide( ETrue );
+ iNumCandidateList->Hide( ETrue );
- iArrowLeftBtn->Hide( !aIsStandby );
- iArrowRightBtn->Hide( !aIsStandby );
- iArrowUpBtn->Hide( !aIsStandby );
- iArrowDownBtn->Hide( !aIsStandby );
- }
+ iArrowLeftBtn->Hide(EFalse);
+ iArrowRightBtn->Hide(EFalse);
+ iArrowUpBtn->Hide(EFalse);
+ iArrowDownBtn->Hide(EFalse);
+ }
// ---------------------------------------------------------------------------
// dim arrow buttons.
@@ -532,15 +499,6 @@
}
// ---------------------------------------------------------------------------
-// retrieve char range of layout, including sct.
-// ---------------------------------------------------------------------------
-//
-TInt CPeninputFingerHwrArWnd::CurrentCharRange()
- {
- return iCurCharRange;
- }
-
-// ---------------------------------------------------------------------------
// c++ constructor
// ---------------------------------------------------------------------------
//
@@ -583,11 +541,10 @@
//create control buttons
CreateButtonsL();
- iCurCharRangeNoSct = EFingerHwrNativeRange;
- iCurCharRange = EFingerHwrNativeRange;
-
- //ResetLayoutL();
+ //set controls postion and extent
SizeChangedL();
+
+ //switch to standby view
SwitchToStandbyView();
}
@@ -846,19 +803,10 @@
}
// ---------------------------------------------------------------------------
-// load virtual number pad images.
-// ---------------------------------------------------------------------------
-//
-void CPeninputFingerHwrArWnd::LoadVkbKeyImageL( TInt aResId, const TSize& aKeySize )
- {
- iSymbolTable->LoadVkbKeyImageL(aResId,aKeySize);
- }
-
-// ---------------------------------------------------------------------------
// load virtual sct keys.
// ---------------------------------------------------------------------------
//
-void CPeninputFingerHwrArWnd::LoadVirtualSctpadKeysL( const TInt aResId,
+void CPeninputFingerHwrArWnd::LoadSymbolVirtualKeysL( const TInt aResId,
const RArray<TRect>& aCellRects )
{
TAknTextLineLayout txtlayout = iLafManager->SctpadKeyTxtLayout();
@@ -931,7 +879,7 @@
// load vkb key image
TSize keysize = iLafManager->VirtualSctpadCellSize().Size();
- LoadVkbKeyImageL(R_FINGER_HWR_SCTPAD_IMAGE, keysize );
+ iSymbolTable->LoadVkbKeyImageL(R_FINGER_HWR_SCTPAD_IMAGE, keysize );
// get the key rect
RArray<TRect> rects;
@@ -941,11 +889,11 @@
// load keys
if(iLafManager->IsLandscape())
{
- LoadVirtualSctpadKeysL(R_ARABIC_FINGER_HWR_LANDSCAPE_SYMBOL_TABLE, rects);
+ LoadSymbolVirtualKeysL(R_ARABIC_FINGER_HWR_LANDSCAPE_SYMBOL_TABLE, rects);
}
else
{
- LoadVirtualSctpadKeysL(R_ARABIC_FINGER_HWR_PORTRAIT_SYMBOL_TABLE, rects);
+ LoadSymbolVirtualKeysL(R_ARABIC_FINGER_HWR_PORTRAIT_SYMBOL_TABLE, rects);
}
CleanupStack::PopAndDestroy();//rects
@@ -970,7 +918,7 @@
// hide following controls
iCandidateList->Hide( ETrue );
iNumCandidateList->Hide( ETrue );
- iSymbolTable->Hide( ETrue );
+ iSymbolTable->Hide( ETrue);
// show following controls
iArrowLeftBtn->Hide( EFalse );
@@ -978,11 +926,8 @@
iArrowUpBtn->Hide( EFalse );
iArrowDownBtn->Hide( EFalse );
iOptionBtn->Hide( EFalse );
-
- iSymbolTableBtn->Hide( EFalse );
- iSymbolTableBtn->SetHighlight( EFalse);
-
- UpdateAllVirtualKeysFeedback( EFingerHwrNativeRange );
+ iSymbolTableBtn->SetHighlight( EFalse);
+ iContextField->SetReady(ETrue);
Draw();
}
@@ -1004,13 +949,13 @@
iArrowRightBtn->Hide( ETrue );
iArrowUpBtn->Hide( ETrue );
iArrowDownBtn->Hide( ETrue );
- iOptionBtn->Hide( EFalse );
+
+ // set the symboltable button highlighted
iSymbolTableBtn->SetHighlight( ETrue );
-
- TInt pageno = ( iCurCharRangeNoSct == EFingerHwrNativeRange ) ? 0 : 1;
- ShowSctPage( pageno, EPagePosPageNo );
-
- UpdateAllVirtualKeysFeedback( EFingerHwrSymbolRange );
+
+ // avoid overlap refresh problem after opening symbil table
+ // so set this control to be not ready
+ iContextField->SetReady(EFalse);
iSymbolTable->OpenSymbolTable();
}
@@ -1279,15 +1224,6 @@
CleanupStack::PopAndDestroy(); // reader
}
-
-// ---------------------------------------------------------------------------
-// update feedback state of all virtual keys.
-// ---------------------------------------------------------------------------
-//
-void CPeninputFingerHwrArWnd::UpdateAllVirtualKeysFeedback( TInt aType )
- {
- iSymbolTable->UpdateAllVirtualKeysFeedback(aType);
- }
// ---------------------------------------------------------------------------
// show bublble or not
@@ -1363,12 +1299,13 @@
//
void CPeninputFingerHwrArWnd::DrawGuideLine()
{
- if(iGuideLineOn)
+ if(!iGuideLineOn)
{
iWritingBox->HideGuideLine(ETrue);
}
else
{
+ iWritingBox->HideGuideLine(EFalse);
TInt style = CTransparentHwrWndExt::EGuideLineBottom;
iWritingBox->SetGuideLineStyle( style );
@@ -1376,9 +1313,8 @@
CalculateGuideLinePos();
iWritingBox->SetBottomGuideLinePosition(iGuideLineBottomTl, iGuideLineBottomBr);
-
- iWritingBox->RefreshUI();
}
+ iWritingBox->RefreshUI();
}
// --------------------------------------------------------------------------
--- a/textinput/peninputgenericitut/group/iconlist.txt Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/group/iconlist.txt Fri Mar 12 15:44:07 2010 +0200
@@ -46,3 +46,4 @@
-c8,8 qgn_indi_input_list_collapse.svg
-c8,8 qgn_indi_input_backspace.svg
-c8,8 qgn_indi_input_shift.svg
+-c8,8 qgn_indi_itut_backspace1.svg
--- a/textinput/peninputgenericitut/group/peninputgenericitut.mmp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/group/peninputgenericitut.mmp Fri Mar 12 15:44:07 2010 +0200
@@ -121,5 +121,6 @@
LIBRARY fbscli.lib
LIBRARY bitgdi.lib
LIBRARY commonengine.lib
+LIBRARY centralrepository.lib
// End Of File
--- a/textinput/peninputgenericitut/inc/peninputgenericitutdata.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/inc/peninputgenericitutdata.h Fri Mar 12 15:44:07 2010 +0200
@@ -94,6 +94,17 @@
EPreviewBubbleInnerRect,
EPreviewBubbleFont,
EPreviewBubbleTextlayout,
+ EIndiPaneWithTextRect,
+ EIndiPaneWithoutTextRect,
+ EIndiIconWithTextRect,
+ EIndiIconWithoutTextRect,
+ EIndiTextLine,
+ ESpellIndiPaneWithoutTextRect,
+ ESpellIndiIconWithoutTextRect,
+ ESpellArrowLeft,
+ ESpellArrowLeftInner,
+ ESpellArrowRight,
+ ESpellArrowRightInner
};
enum TControlId
--- a/textinput/peninputgenericitut/inc/peninputgenericitutdatamgr.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/inc/peninputgenericitutdatamgr.h Fri Mar 12 15:44:07 2010 +0200
@@ -74,6 +74,7 @@
void SetCase(TInt aCase);
TAny* RequestData(TInt aDataType);
+ TAny* RequestDataForPortraitWest(TInt aDataType);
inline CPtiEngine* PtiEngine();
@@ -100,6 +101,9 @@
inline void SetLatinOnly( TBool aLatinOnly );
+ inline TBool IsPortraitWest();
+
+ TBool IsChineseGlobalLanguage();
void SetUpdate(TBool aNeedUpdate);
TBool IsUpdate() const;
// when user press navi-next button on dropdownlist, there is need to
@@ -164,6 +168,14 @@
TInt iIcfTextHeightCn;
TRect iShiftIconRect;
+ TInt iIcfTextLeftMarginForPrtWest;
+ TInt iIcfTextRightMarginForPrtWest;
+ TInt iIcfTextTopMarginForPrtWest;
+ TInt iIcfTextBottomMarginForPrtWest;
+ TInt iIcfTextLineSpaceMarginForPrtWest;
+ TInt iIcfTextHeightForPrtWest;
+ TRect iShiftIconRectForPrtWest;
+ TInt iSpellIcfTextHeightForPrtWest;
private:
CGenericItutDataMgr(MItutLayoutContext* aLayoutContext, CPtiEngine* aPtiEngine );
@@ -188,6 +200,7 @@
TInt HindiKeypadResourceId();
TInt KoreanKeypadResourceId();
+ void ReadLafInfoForPrtWest();
private: // data member
RPointerArray<MItutPropertySubscriber> iSubscriberList;
@@ -324,6 +337,24 @@
TAknTextLineLayout iBtnTextFormat1;
TFepIndicatorInfo iIndicatorData;
+ TRect iSpellQueryPaneRectForPrtWest;
+ TRect iOKRectForPrtWest;
+ TRect iCancelRectForPrtWest;
+ TAknTextLineLayout iBtnOKTextForPrtWest;
+ TAknTextLineLayout iBtnCancelTextForPrtWest;
+ TRect iSpellICFRectForPrtWest;
+ TRect iSpellICFBtnRectForPrtWest;
+ TRect iSpellICFBtnInnerRectForPrtWest;
+ TAknTextLineLayout iSpellText1ForPrtWest;
+ TAknTextLineLayout iSpellText2ForPrtWest;
+ TAknTextLineLayout iSpellText3ForPrtWest;
+ TRect iSpellIndiPaneWithoutTextForPrtWest;
+ TRect iSpellIndiIconWithoutTextForPrtWest;
+ CFont* iSpellIcfFontForPrtWest;
+ TRect iSpellArrowLeftRectForPrtWest;
+ TRect iSpellArrowLeftInnerRectForPrtWest;
+ TRect iSpellArrowRightRectForPrtWest;
+ TRect iSpellArrowRightInnerRectForPrtWest;
RPointerArray<TMenuItem> iMenuItemList;
TBool iNeedUpdate;
@@ -337,6 +368,37 @@
TBool iPlusCharFlagChanged;
TBool iNumberOnly;
+ TRect iLayoutRectForPrtWest;
+ TPoint iLayoutOffsetForPrtWest;
+ RArray<TRect> iKeypadCellRectsForPrtWest;
+ TRect iKeypadRectForPrtWest;
+ TAknTextLineLayout iVkAlphaText1ForPrtWest;
+ TAknTextLineLayout iVkAlphaText2ForPrtWest;
+ TAknTextLineLayout iVkAlphaText3ForPrtWest;
+ TAknTextLineLayout iVkNumTextForPrtWest;
+ TRect iCloseRectForPrtWest;
+ TRect iCloseInnerRectForPrtWest;
+ TRect iArrowLeftRectForPrtWest;
+ TRect iArrowLeftInnerRectForPrtWest;
+ TRect iOptionsRectForPrtWest;
+ TRect iOptionInnerRectForPrtWest;
+ TRect iArrowRightRectForPrtWest;
+ TRect iArrowRightInnerRectForPrtWest;
+ TRect iBackspaceRectForPrtWest;
+ TRect iBackspaceInnerRectForPrtWest;
+ TRect iPreviewWndRectForPrtWest;
+ TRect iPreviewWndInnerRectForPrtWest;
+ TAknTextLineLayout iPreviewWndTextForPrtWest;
+ CFont* iBubbleFontForPrtWest;
+ TRect iIcfRectForPrtWest;
+ CFont* iIcfFontForPrtWest;
+ TInt iIcfTextAlignmentForPrtWest;
+
+ TRect iIndiPaneRectWithTextForPrtWest;
+ TRect iIndiPaneRectWithoutTextForPrtWest;
+ TRect iIndiIconRectWithTextForPrtWest;
+ TRect iIndiIconRectWithoutTextForPrtWest;
+ TAknTextLineLayout iIndiTextForPrtWest;
};
inline CPtiEngine* CGenericItutDataMgr::PtiEngine()
@@ -393,6 +455,10 @@
iLatinOnly = aLatinOnly;
}
+inline TBool CGenericItutDataMgr::IsPortraitWest()
+ {
+ return !iLandScape && !IsChinese();
+ }
inline TBool CGenericItutDataMgr::IsValidLanguage(TInt aLanguage)
{
return (aLanguage != ELangTest && aLanguage != ELangNone);
--- a/textinput/peninputgenericitut/inc/peninputgenericitutwindow.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/inc/peninputgenericitutwindow.h Fri Mar 12 15:44:07 2010 +0200
@@ -125,6 +125,15 @@
void HandleButtonResOnLangDirChange( TInt aControlId );
void HandleButtonResOnLangDirChangeL( TInt aControlId );
+ TBool IsPortraitWest();
+ void IndiBubbleWithText();
+ void IndiBubbleWithoutText();
+ void UpdateIndiBubbleL( TUint8* aData );
+ void SetIndiBubbleImageL( const TInt aImgID1,
+ const TInt aMaskID1,
+ const TInt aImgID2,
+ const TInt aMaskID2 );
+ void SetIndiWithTextFlag( TBool aFlag );
private:
CGenericItutWindow(CGenericItutWindowManager* aWindowMgr,
CGenericItutUiLayout* aLayoutOwner,
@@ -251,6 +260,7 @@
CFepInputContextField* iSpell;
CPeninputSyncBitmapRotator* iBmpRotator;
TFepSymbolOfHardwareOne iSymbolData;
+ TBool iIndiWithText;
};
inline CFepLayoutMultiLineIcf* CGenericItutWindow::Icf()
--- a/textinput/peninputgenericitut/inc/peninputgenericitutwindowmanager.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/inc/peninputgenericitutwindowmanager.h Fri Mar 12 15:44:07 2010 +0200
@@ -99,6 +99,7 @@
void HideByteWarningBubble();
void DisplayWarningNote(const TDesC& aInfo);
/* Teleca change end, 18.05.2009 ssal */
+ TBool IsPortraitWest();
private:
CGenericItutWindowManager(CGenericItutUiLayout* aLayoutOwner,
--- a/textinput/peninputgenericitut/src/peninputcommonbgctrl.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/src/peninputcommonbgctrl.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -62,6 +62,12 @@
return;
}
+ TRect rect = Rect();
+ if ( aRect == rect )
+ {
+ return;
+ }
+
SetRect( aRect );
Draw();
--- a/textinput/peninputgenericitut/src/peninputgenericitutdatamgr.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/src/peninputgenericitutdatamgr.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -32,6 +32,8 @@
#include <aknlayoutscalable_avkon.cdl.h>
#include <peninputlayoutmultilineicf.h>
#include <AknSettingCache.h>
+#include <AknFepInternalCRKeys.h>
+#include <centralrepository.h>
#include "peninputgenericitutdatamgr.h"
#include "peninputgenericitutlayoutcontext.h"
@@ -110,6 +112,7 @@
iKeypadCellRects.Close();
iKeypadCellRectsCn.Close();
iKeypadCellRectsQuery.Close();
+ iKeypadCellRectsForPrtWest.Close();
delete iNumericKeymapData;
}
@@ -174,6 +177,295 @@
}
}
+void CGenericItutDataMgr::ReadLafInfoForPrtWest()
+ {
+ // Screen
+ TRect rect;
+
+ AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EApplicationWindow, rect);
+
+ TAknWindowLineLayout mainWnd, bottomWnd, bottomPane;
+ TAknLayoutRect mainWndRect, bottomwndtrect, bottompanerect;
+
+ mainWnd = AknLayoutScalable_Avkon::main_fep_vtchi_ss_pane(0).LayoutLine();
+ mainWndRect.LayoutRect(rect, mainWnd);
+
+ bottomWnd = AknLayoutScalable_Avkon::popup_fep_ituss_window(0).LayoutLine();
+ bottomwndtrect.LayoutRect(mainWndRect.Rect(), bottomWnd);
+
+ bottomPane = AknLayoutScalable_Avkon::ituss_keypad_pane(0).LayoutLine();
+ bottompanerect.LayoutRect(bottomwndtrect.Rect(), bottomPane);
+
+ iLayoutRectForPrtWest = mainWndRect.Rect();
+ iLayoutOffsetForPrtWest = mainWndRect.Rect().iTl;
+
+ // ICF
+ TAknWindowLineLayout icflayout, icflayoutbg, icflayoutpane;
+ TAknLayoutRect icfRect, icfRectBg, icfRectPane;
+
+ icflayoutpane = AknLayoutScalable_Avkon::popup_fep_vtchi_icf_pane(0).LayoutLine();
+ icfRectPane.LayoutRect( mainWndRect.Rect(), icflayoutpane );
+
+ icflayoutbg = AknLayoutScalable_Avkon::bg_icf_pane_cp01(0).LayoutLine();
+ icfRectBg.LayoutRect( icfRectPane.Rect(), icflayoutbg );
+
+ icflayout = AknLayoutScalable_Avkon::vtchi_icf_list_pane(0).LayoutLine();
+ icfRect.LayoutRect( icfRectBg.Rect(), icflayout );
+
+ iIcfRectForPrtWest = icfRect.Rect();
+
+ // icf indicator
+ TAknWindowLineLayout icfIndiPaneWithText, icfIndiPaneWithoutText,
+ indiIcon, indiText;
+ TAknLayoutRect icfIndiPaneRectWithText, icfIndiPaneRectWithoutText, indiIconRect, indiTextRect;
+ TAknTextLineLayout indiTextLayout;
+
+ icfIndiPaneWithText = AknLayoutScalable_Avkon::icf_edit_indi_pane(1).LayoutLine();
+ icfIndiPaneRectWithText.LayoutRect(icfRect.Rect(), icfIndiPaneWithText);
+ iIndiPaneRectWithTextForPrtWest = icfIndiPaneRectWithText.Rect();
+
+ icfIndiPaneWithoutText = AknLayoutScalable_Avkon::icf_edit_indi_pane(0).LayoutLine();
+ icfIndiPaneRectWithoutText.LayoutRect(icfRect.Rect(), icfIndiPaneWithoutText);
+ iIndiPaneRectWithoutTextForPrtWest = icfIndiPaneRectWithoutText.Rect();
+
+ iIndiIconRectWithTextForPrtWest = TRect( 0, 0, 60, 20 );
+ iIndiIconRectWithoutTextForPrtWest = TRect( 0, 0, 60, 20 );
+
+ indiTextLayout = AknLayoutScalable_Avkon::icf_edit_indi_pane_t1(0).LayoutLine();
+ iIndiTextForPrtWest = indiTextLayout;
+
+ // icf text
+ TAknTextLineLayout icflefttext, icflefttext1;
+ icflefttext = AknLayoutScalable_Avkon::vtchi_icf_list_pane_t1(0, 0, 0).LayoutLine();
+ icflefttext1 = AknLayoutScalable_Avkon::vtchi_icf_list_pane_t1(0, 0, 1).LayoutLine();
+
+ iIcfTextAlignmentForPrtWest = icflefttext.iJ;
+ iIcfTextLeftMarginForPrtWest = icflefttext.il;
+ //iIcfTextRightMarginForPrtWest = icflefttext.ir;
+ iIcfTextRightMarginForPrtWest = iIcfTextLeftMarginForPrtWest;
+
+ TAknLayoutText ctxt, ctxt1;
+ ctxt.LayoutText( icfRect.Rect(), icflefttext );
+ ctxt1.LayoutText( icfRect.Rect(), icflefttext1 );
+
+ iIcfTextTopMarginForPrtWest = ctxt.TextRect().iTl.iY - icfRect.Rect().iTl.iY;
+ iIcfTextLineSpaceMarginForPrtWest = ctxt1.TextRect().iTl.iY - ctxt.TextRect().iBr.iY;
+ iIcfTextHeightForPrtWest = ctxt.TextRect().Height();
+
+ TInt maxRow = ( iIcfRectForPrtWest.Height() - iIcfTextTopMarginForPrtWest )
+ / ( iIcfTextHeightForPrtWest + iIcfTextLineSpaceMarginForPrtWest );
+
+ iIcfTextBottomMarginForPrtWest =
+ iIcfRectForPrtWest.Height() - ( iIcfTextHeightForPrtWest + iIcfTextLineSpaceMarginForPrtWest )
+ * maxRow - iIcfTextTopMarginForPrtWest;
+
+ iIcfFontForPrtWest = const_cast<CFont*>(AknLayoutUtils::FontFromId(icflefttext.iFont, NULL));
+
+ // Keypad
+ TAknWindowLineLayout itucell, ituinnercell;
+ TAknLayoutRect itucellrect, ituinnercellrect;
+
+ iKeypadCellRectsForPrtWest.Reset();
+
+ itucell = AknLayoutScalable_Avkon::cell_ituss_key_pane(0).LayoutLine();
+ itucellrect.LayoutRect(bottompanerect.Rect(), itucell);
+ ituinnercell = AknLayoutScalable_Avkon::bg_cell_ituss_key_g1(1).LayoutLine();
+
+ iKeypadRectForPrtWest = bottompanerect.Rect();
+ iKeypadRectForPrtWest.SetHeight(itucellrect.Rect().Height() * 4);
+ iKeypadRectForPrtWest.Move(-iLayoutOffsetForPrtWest);
+
+ TRect cellrect = itucellrect.Rect();
+ cellrect.Move(-iLayoutOffsetForPrtWest);
+ cellrect.Move(-iKeypadRectForPrtWest.iTl);
+
+ // keypad is 4 rows, 3 cols
+ for (TInt i = 0; i < 4; i++)
+ {
+ for (TInt j = 0; j < 3; j++)
+ {
+ TRect keyrect = cellrect;
+ keyrect.Move(itucellrect.Rect().Width() * j, itucellrect.Rect().Height() * i);
+
+ ituinnercellrect.LayoutRect(keyrect, ituinnercell);
+ iKeypadCellRectsForPrtWest.Append(ituinnercellrect.Rect());
+
+ // read shift icon rect
+ if( i == 3 && j == 2 )
+ {
+ TAknWindowLineLayout shiftIcon = AknLayoutScalable_Avkon::
+ cell_ituss_key_pane_g2( 0 ).LayoutLine();
+ TAknLayoutRect shiftIconRect;
+ shiftIconRect.LayoutRect( keyrect, shiftIcon );
+ iShiftIconRectForPrtWest = shiftIconRect.Rect();
+ }
+ }
+ }
+
+
+ iVkNumTextForPrtWest = AknLayoutScalable_Avkon::cell_ituss_key_t1(0).LayoutLine();
+ // Key text row 1
+ iVkAlphaText1ForPrtWest = AknLayoutScalable_Avkon::cell_ituss_key_t2(0).LayoutLine();
+ iVkAlphaText3ForPrtWest = AknLayoutScalable_Avkon::cell_ituss_key_t4(0).LayoutLine();
+ // Key text row 2
+ iVkAlphaText2ForPrtWest = AknLayoutScalable_Avkon::cell_ituss_key_t3(0).LayoutLine();
+
+ // close button
+ TAknWindowLineLayout funcbtn, funcbtnbg, funcbtninner;
+ TAknLayoutRect funcrect, funcbgrect, funcinnerrect, arrowleftinnerrect, arrowrightinnerrect;
+ TAknLayoutRect optioninnerrect, backspaceinnerrect;
+
+ funcbtn = AknLayoutScalable_Avkon::cell_ituss_key_pane(1).LayoutLine();
+ funcrect.LayoutRect(bottompanerect.Rect(), funcbtn);
+
+ funcbtnbg = AknLayoutScalable_Avkon::bg_cell_ituss_key_g1(1).LayoutLine();
+ funcbgrect.LayoutRect(funcrect.Rect(), funcbtnbg);
+
+ funcbtninner = AknLayoutScalable_Avkon::cell_ituss_key_pane_g1(0).LayoutLine();
+ funcinnerrect.LayoutRect(funcrect.Rect(), funcbtninner);
+
+ TInt btnWidth = funcrect.Rect().Width();
+ // close button
+ iCloseRectForPrtWest = funcbgrect.Rect();
+ iCloseRectForPrtWest.Move(0, funcrect.Rect().Height() * 4);
+ iCloseRectForPrtWest.Move(-iLayoutOffsetForPrtWest);
+
+ iCloseInnerRectForPrtWest = funcinnerrect.Rect();
+ iCloseInnerRectForPrtWest.Move(0, funcrect.Rect().Height() * 4);
+ iCloseInnerRectForPrtWest.Move(-iLayoutOffsetForPrtWest);
+
+ // arrow left button
+ iArrowLeftRectForPrtWest = iCloseRectForPrtWest;
+ iArrowLeftRectForPrtWest.Move(btnWidth, 0);
+ arrowleftinnerrect.LayoutRect(iArrowLeftRectForPrtWest, funcbtninner);
+ iArrowLeftInnerRectForPrtWest = arrowleftinnerrect.Rect();
+
+ // option button
+ iOptionsRectForPrtWest = iArrowLeftRectForPrtWest;
+ iOptionsRectForPrtWest.Move(btnWidth, 0);
+ optioninnerrect.LayoutRect(iOptionsRectForPrtWest, funcbtninner);
+ iOptionInnerRectForPrtWest = optioninnerrect.Rect();
+
+ // arrow right button
+ iArrowRightRectForPrtWest = iOptionsRectForPrtWest;
+ iArrowRightRectForPrtWest.Move(btnWidth, 0);
+ arrowrightinnerrect.LayoutRect(iArrowRightRectForPrtWest, funcbtninner);
+ iArrowRightInnerRectForPrtWest = arrowrightinnerrect.Rect();
+
+ // backspace button
+ iBackspaceRectForPrtWest = iArrowRightRectForPrtWest;
+ iBackspaceRectForPrtWest.Move(btnWidth, 0);
+ backspaceinnerrect.LayoutRect(iBackspaceRectForPrtWest, funcbtninner);
+ iBackspaceInnerRectForPrtWest = backspaceinnerrect.Rect();
+
+ // preview popup window
+ TAknWindowLineLayout previewWnd, previewBackground, previewWndInner;
+ TAknLayoutRect previewWndRect, previewBackgroundRect, previewWndInnerRect;
+ TAknLayoutText previewWndText;
+ previewWnd = AknLayoutScalable_Avkon::popup_fshwr2_char_preview_window(0).LayoutLine();
+
+ previewWndRect.LayoutRect( iLayoutRectForPrtWest, previewWnd );
+ previewBackground = AknLayoutScalable_Avkon::bg_popup_fep_char_preview_window_cp01().LayoutLine();
+ previewBackgroundRect.LayoutRect( previewWndRect.Rect(), previewBackground );
+ iPreviewWndRectForPrtWest = previewBackgroundRect.Rect();
+
+ previewWndInner = AknLayoutScalable_Avkon::bg_popup_fep_char_preview_window_g9().LayoutLine();
+ previewWndInnerRect.LayoutRect( previewBackgroundRect.Rect(), previewWndInner );
+
+ iPreviewWndInnerRectForPrtWest = previewWndInnerRect.Rect();
+ iPreviewWndTextForPrtWest =
+ AknLayoutScalable_Avkon::popup_fshwr2_char_preview_window_t1(0).LayoutLine();
+ previewWndText.LayoutText(previewWndRect.Rect(), iPreviewWndTextForPrtWest);
+ iBubbleFontForPrtWest = const_cast<CFont*>(previewWndText.Font());
+
+ // LAF for spell mode
+ TAknWindowLineLayout btnPaneWnd, okBtnWnd, cancelBtnWnd, spellwnd;
+ TAknLayoutRect btnPaneRect, okBtnRect, cancelBtnRect, spellwndtrect;
+
+ iSpellQueryPaneRectForPrtWest = mainWndRect.Rect();
+
+ spellwnd = AknLayoutScalable_Avkon::popup_fep_ituss_window(1).LayoutLine();
+ spellwndtrect.LayoutRect( mainWndRect.Rect(), spellwnd );
+
+ btnPaneWnd = AknLayoutScalable_Avkon::ituss_sks_pane(0).LayoutLine();
+ btnPaneRect.LayoutRect( spellwndtrect.Rect(), btnPaneWnd );
+
+ okBtnWnd = AknLayoutScalable_Avkon::ituss_sks_pane_g1(0).LayoutLine();
+ okBtnRect.LayoutRect( btnPaneRect.Rect(), okBtnWnd );
+ iOKRectForPrtWest = okBtnRect.Rect();
+
+ cancelBtnWnd = AknLayoutScalable_Avkon::ituss_sks_pane_g2(0).LayoutLine();
+ cancelBtnRect.LayoutRect( btnPaneRect.Rect(), cancelBtnWnd );
+ iCancelRectForPrtWest = cancelBtnRect.Rect();
+
+ iBtnOKTextForPrtWest = AknLayoutScalable_Avkon::ituss_sks_pane_t1(0).LayoutLine();
+ iBtnCancelTextForPrtWest = AknLayoutScalable_Avkon::ituss_sks_pane_t2(0).LayoutLine();
+
+ iBtnOKTextForPrtWest.ir = 7;
+ iBtnCancelTextForPrtWest.ir = 7;
+
+ iBtnCancelTextForPrtWest = iBtnOKTextForPrtWest;
+
+ TAknWindowLineLayout queryTopPane, queryICFPane, icfSpellIndiPane, middleInnerBtn;
+ TAknLayoutRect queryTopPaneRect, queryICFPaneRect, icfSpellIndiPaneRect,
+ middleButton, middleInnerRect;
+
+ queryTopPane = AknLayoutScalable_Avkon::popup_fep_vtchi_icf_pane(1).LayoutLine();
+ queryTopPaneRect.LayoutRect( mainWndRect.Rect(), queryTopPane );
+
+ queryICFPane = AknLayoutScalable_Avkon::vtchi_query_pane(0).LayoutLine();
+ queryICFPaneRect.LayoutRect( queryTopPaneRect.Rect(), queryICFPane );
+ iSpellICFRectForPrtWest = queryICFPaneRect.Rect();
+
+ TRect middleButtonPaneRect = spellwndtrect.Rect();
+ middleButtonPaneRect.Move( 5, 3 );
+
+ TRect cellSpellRect;
+ cellSpellRect.iTl = middleButtonPaneRect.iTl;
+ cellSpellRect.SetHeight( itucellrect.Rect().Height());
+ cellSpellRect.SetWidth( itucellrect.Rect().Width());
+
+ // Left
+ middleButton.LayoutRect( cellSpellRect, ituinnercell );
+ iSpellArrowLeftRectForPrtWest = middleButton.Rect();
+
+ middleInnerBtn = AknLayoutScalable_Avkon::cell_ituss_key_pane_g1(2).LayoutLine();
+ middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn );
+ iSpellArrowLeftInnerRectForPrtWest = middleInnerRect.Rect();
+
+ // Right
+ cellSpellRect.Move( itucellrect.Rect().Width(), 0 );
+ middleButton.LayoutRect( cellSpellRect, ituinnercell );
+ iSpellArrowRightRectForPrtWest = middleButton.Rect();
+
+ middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn );
+ iSpellArrowRightInnerRectForPrtWest = middleInnerRect.Rect();
+
+ // BackSpace
+ cellSpellRect.Move( itucellrect.Rect().Width(), 0 );
+ middleButton.LayoutRect( cellSpellRect, ituinnercell );
+ iSpellICFBtnRectForPrtWest = middleButton.Rect();
+
+ middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn );
+ iSpellICFBtnInnerRectForPrtWest = middleInnerRect.Rect();
+
+ iSpellText1ForPrtWest = AknLayoutScalable_Avkon::vtchi_query_pane_t1(0).LayoutLine();
+ iSpellText2ForPrtWest = AknLayoutScalable_Avkon::vtchi_query_pane_t2(0).LayoutLine();
+ iSpellText3ForPrtWest = AknLayoutScalable_Avkon::vtchi_query_pane_t3(0).LayoutLine();
+
+ iSpellIcfFontForPrtWest = const_cast<CFont*>(
+ AknLayoutUtils::FontFromId(iSpellText1ForPrtWest.iFont, NULL));
+
+ TAknLayoutText cSpelltxt1;
+ cSpelltxt1.LayoutText( queryICFPaneRect.Rect(), iSpellText1ForPrtWest );
+ iSpellIcfTextHeightForPrtWest = cSpelltxt1.TextRect().Height();
+
+
+ icfSpellIndiPane = AknLayoutScalable_Avkon::icf_edit_indi_pane(0).LayoutLine();
+ icfSpellIndiPaneRect.LayoutRect(queryICFPaneRect.Rect(), icfSpellIndiPane);
+ iSpellIndiPaneWithoutTextForPrtWest = icfSpellIndiPaneRect.Rect();
+ iSpellIndiIconWithoutTextForPrtWest = TRect( 0, 0, 50, 17 );
+ }
void CGenericItutDataMgr::ReadLafInfo()
{
// Screen
@@ -183,6 +475,7 @@
iLandScape = iScreenSize.iWidth < iScreenSize.iHeight ? EFalse : ETrue;
+ ReadLafInfoForPrtWest();
AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EApplicationWindow, rect);
// finger Layout
@@ -767,13 +1060,29 @@
if (icffield && InputLanguage() != ELangNone)
{
- TRAP_IGNORE(icffield->SetTextAlignmentL(iIcfTextAlignment, InputLanguage()));
+ if ( IsPortraitWest())
+ {
+ TRAP_IGNORE(icffield->SetTextAlignmentL(
+ iIcfTextAlignmentForPrtWest, InputLanguage()));
+ }
+ else
+ {
+ TRAP_IGNORE(icffield->SetTextAlignmentL(
+ iIcfTextAlignment, InputLanguage()));
+ }
}
}
void CGenericItutDataMgr::SetIcfTextAlignment(TInt aAlignment)
{
- iIcfTextAlignment = aAlignment;
+ if ( IsPortraitWest())
+ {
+ iIcfTextAlignmentForPrtWest = aAlignment;
+ }
+ else
+ {
+ iIcfTextAlignment = aAlignment;
+ }
}
void CGenericItutDataMgr::SetLanguageL(TInt aLanguage)
@@ -890,8 +1199,474 @@
}
}
+TBool CGenericItutDataMgr::IsChineseGlobalLanguage()
+ {
+ CRepository* repository = NULL;
+ TRAPD(ret, repository = CRepository::NewL(KCRUidAknFep));
+ if (ret != KErrNone)
+ {
+ return EPluginInputModeAll;
+ }
+ TInt curLanguage ;
+ repository->Get(KAknFepInputTxtLang, curLanguage);
+ delete repository;
+
+ return (curLanguage == ELangPrcChinese || curLanguage == ELangHongKongChinese
+ || curLanguage == ELangTaiwanChinese);
+ }
+
+TAny* CGenericItutDataMgr::RequestDataForPortraitWest(TInt aDataType)
+ {
+ switch ( aDataType )
+ {
+ case EScreenSize:
+ {
+ return &iScreenSize;
+ }
+ case ELayoutOffset:
+ {
+ return &iLayoutOffsetForPrtWest;
+ }
+ case ELayoutRect:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iLayoutRect;
+ }
+ else
+ {
+ return &iLayoutRectForPrtWest;
+ }
+ }
+ case EIcfRect:
+ {
+ return &iIcfRectForPrtWest;
+ }
+ case EIcfFont:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return IsChinese() ? reinterpret_cast<TAny*>(iIcfFontCn) :
+ reinterpret_cast<TAny*>(iIcfFont);
+ }
+ else
+ {
+ return reinterpret_cast<TAny*>(iIcfFontForPrtWest);
+ }
+ }
+ case EBackspaceRect:
+ case EItutPosClear:
+ {
+ return &iBackspaceRectForPrtWest;
+ }
+ case EKeypadRect:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return IsChinese() ? &iKeypadRectCn : &iKeypadRect;
+ }
+ else
+ {
+ return &iKeypadRectForPrtWest;
+ }
+ }
+ case EKeypadCellRects:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return IsChinese() ? &iKeypadCellRectsCn : &iKeypadCellRects;
+ }
+ else
+ {
+ return &iKeypadCellRectsForPrtWest;
+ }
+ }
+ case EKeypadLeftTextLine:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iVkNumText;
+ }
+ else
+ {
+ return &iVkNumTextForPrtWest;
+ }
+ }
+ case EKeypadRightTextLine1:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return IsThai() ? &iVkAlphaText1ForThai : &iVkAlphaText1;
+ }
+ else
+ {
+ return &iVkAlphaText1ForPrtWest;
+ }
+ }
+ case EKeypadRightTextLine2:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return IsThai() ? &iVkAlphaText2ForThai : &iVkAlphaText2;
+ }
+ else
+ {
+ return &iVkAlphaText2ForPrtWest;
+ }
+ }
+ case EKeypadRightTextLine3:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return IsThai() ? &iVkAlphaText3ForThai : &iVkAlphaText3;
+ }
+ else
+ {
+ return &iVkAlphaText3ForPrtWest;
+ }
+ }
+ case EDropdownlistUnitWidth:
+ {
+ return &iCandsUnitWidth;
+ }
+ case EDropdownlistUnitHeight:
+ {
+ return &iCandsUnitHeight;
+ }
+ case EDropdownlistHorizontalMargin:
+ {
+ return &iCandsHorizontalMargin;
+ }
+ case EDropdownlistVerticalMargin:
+ {
+ return &iCandsVerticalMargin;
+ }
+ case EDropdownListNaviWidth:
+ {
+ return &iCandsNaviWidth;
+ }
+ case EDropdownListSpinBtnHeight:
+ {
+ return &iCandsSpinBtnHeight;
+ }
+ case EDropdownListSpellLTPos:
+ {
+ return &iCandsSpellLTPos;
+ }
+ case EDropdownListCandsLTPos:
+ {
+ return &iCandsLTPos;
+ }
+ case EDropdownListPuncLTPos:
+ {
+ return &iCandsPuncLTPos;
+ }
+ case EDropdownListFont:
+ {
+ return reinterpret_cast<TAny*>(iCandsFont);
+ }
+ case EDropdownListTextMargin:
+ {
+ return &iCandsTextMargin;
+ }
+ case EDropdownListTextColor:
+ {
+ return &iCandsTextColor;
+ }
+ case ESpellRect:
+ {
+ return &iSpellRect;
+ }
+ case ESpellFont:
+ {
+ return reinterpret_cast<TAny*>(iSpellIcfFontForPrtWest);
+ }
+ case ESpellTextColor:
+ {
+ return &iSpellTextColor;
+ }
+ case ELanguage:
+ {
+ return &iLanguage;
+ }
+ case EInputMode:
+ {
+ return &iInputMode;
+ }
+ case ECase:
+ {
+ return &iCase;
+ }
+ case EChnCandidates:
+ {
+ return &iCandidates;
+ }
+ case EChnPuncCandidates:
+ {
+ return &iPuncCandidates;
+ }
+ case EArrowLeftRect:
+ case EItutPosArrowLeft:
+ {
+ return &iArrowLeftRectForPrtWest;
+ }
+ case EArrowRightRect:
+ case EItutPosArrowRight:
+ {
+ return &iArrowRightRectForPrtWest;
+ }
+ case EArrowUpRect:
+ case EItutPosArrowUp:
+ {
+ return &iArrowUpRect;
+ }
+ case EArrowDownRect:
+ case EItutPosArrowDown:
+ {
+ return &iArrowDownRect;
+ }
+ case EItutPosSend:
+ {
+ return &iSendRect;
+ }
+ case EItutPosDisconn:
+ {
+ return &iDisconnRect;
+ }
+ case EMatchSelectionTlPos:
+ {
+ return &iSelectionTl;
+ }
+ case EMatchSelectionItemSize:
+ {
+ return &iSelectionItemSize;
+ }
+ case EMatchSelectionItemMargin:
+ {
+ return &iSelectionItemMargin;
+ }
+ case EMatchSelectionTextLine:
+ {
+ return &iSelectionTextLine;
+ }
+ case EOptionsRect:
+ {
+ return &iOptionsRectForPrtWest;
+ }
+ case ECloseRect:
+ {
+ return &iCloseRectForPrtWest;
+ }
+ case ELeftInnerRect:
+ {
+ return &iArrowLeftInnerRectForPrtWest;
+ }
+ case ERightInnerRect:
+ {
+ return &iArrowRightInnerRectForPrtWest;
+ }
+ case EUpInnerRect:
+ {
+ return &iArrowUpInnerRect;
+ }
+ case EDownInnerRect:
+ {
+ return &iArrowDownInnerRect;
+ }
+ case EBackspaceInnerRect:
+ {
+ return &iBackspaceInnerRectForPrtWest;
+ }
+ case ECloseInnerRect:
+ {
+ return &iCloseInnerRectForPrtWest;
+ }
+ case EOptionInnerRect:
+ {
+ return &iOptionInnerRectForPrtWest;
+ }
+ case EItutPosOk:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iOkRect;
+ }
+ else
+ {
+ return &iOKRectForPrtWest;
+ }
+ }
+ case EItutPosCancel:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iCancelRect;
+ }
+ else
+ {
+ return &iCancelRectForPrtWest;
+ }
+ }
+ case EBtnTextLine:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iBtnTextFormat;
+ }
+ else
+ {
+ return &iBtnOKTextForPrtWest;
+ }
+ }
+ case ESpellTextCancle:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iBtnTextFormat1;
+ }
+ else
+ {
+ return &iBtnCancelTextForPrtWest;
+ }
+ }
+ case ESpellICFRect:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iSpellICFRect;
+ }
+ else
+ {
+ return &iSpellICFRectForPrtWest;
+ }
+ }
+ case ESpellClrRect:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iSpellClrRect;
+ }
+ else
+ {
+ return &iSpellICFBtnRectForPrtWest;
+ }
+ }
+ case ESpellClrInnerRect:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iSpellClrInnerRect;
+ }
+ else
+ {
+ return &iSpellICFBtnInnerRectForPrtWest;
+ }
+ }
+ case ESpellEditIndicatorRect:
+ {
+ return &iSpellEditIndicator;
+ }
+ case ESpellQueryPaneRect:
+ {
+ if ( IsChineseGlobalLanguage())
+ {
+ return &iSpellQueryPaneRect;
+ }
+ else
+ {
+ return &iSpellQueryPaneRectForPrtWest;
+ }
+ }
+ case ELatinOnly:
+ {
+ return &iLatinOnly;
+ }
+ case EPreviewBubbleRect:
+ {
+ return &iPreviewWndRectForPrtWest;
+ }
+ case EPreviewBubbleInnerRect:
+ {
+ return &iPreviewWndInnerRectForPrtWest;
+ }
+ case EPreviewBubbleTextlayout:
+ {
+ return &iPreviewWndTextForPrtWest;
+ }
+ case EPreviewBubbleFont:
+ {
+ return reinterpret_cast<TAny*>(iBubbleFontForPrtWest);
+ }
+ case EImIndicatorRect:
+ {
+ if (iSpellMode)
+ {
+ return &iSpellEditIndicator;
+ }
+
+ CalWesternIndicator();
+ return &iCalindwesternRect;
+ }
+ case EImIndicatorOuterRect:
+ {
+ return &iImIndiOuterRect;
+ }
+ case EIndiPaneWithTextRect:
+ {
+ return &iIndiPaneRectWithTextForPrtWest;
+ }
+ case EIndiPaneWithoutTextRect:
+ {
+ return &iIndiPaneRectWithoutTextForPrtWest;
+ }
+ case EIndiIconWithTextRect:
+ {
+ return &iIndiIconRectWithTextForPrtWest;
+ }
+ case EIndiIconWithoutTextRect:
+ {
+ return &iIndiIconRectWithoutTextForPrtWest;
+ }
+ case EIndiTextLine:
+ {
+ return &iIndiTextForPrtWest;
+ }
+ case ESpellIndiPaneWithoutTextRect:
+ {
+ return &iSpellIndiPaneWithoutTextForPrtWest;
+ }
+ case ESpellIndiIconWithoutTextRect:
+ {
+ return &iSpellIndiIconWithoutTextForPrtWest;
+ }
+ case ESpellArrowLeft:
+ {
+ return &iSpellArrowLeftRectForPrtWest;
+ }
+ case ESpellArrowLeftInner:
+ {
+ return &iSpellArrowLeftInnerRectForPrtWest;
+ }
+ case ESpellArrowRight:
+ {
+ return &iSpellArrowRightRectForPrtWest;
+ }
+ case ESpellArrowRightInner:
+ {
+ return &iSpellArrowRightInnerRectForPrtWest;
+ }
+ default:
+ break;
+ }
+
+ return NULL;
+ }
TAny* CGenericItutDataMgr::RequestData(TInt aDataType)
{
+ if ( IsPortraitWest())
+ {
+ return RequestDataForPortraitWest( aDataType );
+ }
switch ( aDataType )
{
case EScreenSize:
--- a/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -192,8 +192,26 @@
case EItutExtCmdSetIcfData:
case ECmdPenInputCase:
case ECmdPenInputFingerMatchSelection:
+ {
+ if (UiMgr())
+ {
+ TInt handled = KErrNone;
+ TRAP_IGNORE(handled = UiMgr()->HandleCommandL(aCmd, aData));
+ return handled;
+ }
+ }
+ break;
case ECmdPenInputFingerSpelling:
{
+
+ // Fix bug EZLG-7YUAP7
+ // When writing language is Chinese, and Spell On, enforce setting language to English
+ if( (*(reinterpret_cast<TBool*>(aData))) && iDataMgr->IsChinese() )
+ {
+ iDataMgr->SetLanguageL( ELangEnglish );
+ }
+ //
+
if (UiMgr())
{
TInt handled = KErrNone;
@@ -381,6 +399,17 @@
if (previousLang != aLanguage)
{
+
+ // Fix bug for EZLG-7YUAP7
+ // When state is spelling, don¡¯t apply LAF Data
+ if(iCurrentUiMgr
+ && iCurrentUiMgr->CurrentState()
+ && iCurrentUiMgr->CurrentState()->StateType() == CGenericItutUiMgrBase::EStateSpelling)
+ {
+ return;
+ }
+ //
+
ApplyVariantLafDataL();
}
}
--- a/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -47,6 +47,7 @@
#include "peninputcommonbgctrl.h"
_LIT(KBmpFileName, "z:\\resource\\apps\\peninputgenericitut.mbm");
+_LIT(KEmptyString, "");
const TInt KImageMajorSkinId = EAknsMajorGeneric;
const TUint KDefaultSpellTextColor = 0;
@@ -74,7 +75,8 @@
CGenericItutDataMgr* aDataMgr)
: iDataMgr(aDataMgr),
iLayoutOwner(aLayoutOwner),
- iWindowMgr(aWindowMgr)
+ iWindowMgr(aWindowMgr),
+ iIndiWithText( EFalse )
{
}
@@ -158,7 +160,14 @@
// read key shift icon res
CPenInputColorIcon* shiftIcon = CPenInputColorIcon::NewL( R_ITUT_KEYPAD_SHIFT_ICON );
- shiftIcon->ResizeL( iDataMgr->iShiftIconRect.Size() );
+ if ( IsPortraitWest())
+ {
+ shiftIcon->ResizeL( iDataMgr->iShiftIconRectForPrtWest.Size());
+ }
+ else
+ {
+ shiftIcon->ResizeL( iDataMgr->iShiftIconRect.Size());
+ }
iStandardItutKp->SetShiftIcon( shiftIcon );
//set key to be 9 piece graphics
@@ -497,7 +506,7 @@
void CGenericItutWindow::CreateAllButtonL()
{
- CFepUiBaseCtrl* temp = NULL;
+ //CFepUiBaseCtrl* temp = NULL;
//create backgrand
CreateBackGroundControlL();
@@ -506,13 +515,10 @@
EBackspaceInnerRect,R_FINGER_RAWKEY_BACKSPACE);
//create switch
+ /*
CreateButtonL(ECommonButton, ECtrlIdSwitch, ESwitchRect,
ESwitchInnerRect, R_FINGER_LAYOUT_SWITCH);
-
- //create indicator
-// temp = CreateButtonL(ERawKeyButton, ECtrlIdIndicator, KUnavailableID,
-// KUnavailableID,KUnavailableID, 127);
//If open indicator menu, please use the following 2 lines
temp = CreateButtonL(ECommonButton, ECtrlIdIndicator, KUnavailableID,
KUnavailableID,KUnavailableID);
@@ -523,7 +529,7 @@
}
temp = NULL;
-
+ */
// create navi
CreateButtonL(ERawKeyButton, ECtrlIdArrowLeft, EArrowLeftRect,
@@ -547,9 +553,9 @@
ECloseInnerRect, R_PENINPUT_FINGER_CLOSE);
- CAknFepCtrlLabel* spellIndicator = CAknFepCtrlLabel::NewL(iLayoutOwner, ECtrlIdSpellIndicator);
- AddControlL(spellIndicator);
- spellIndicator->Hide(ETrue);
+ //CAknFepCtrlLabel* spellIndicator = CAknFepCtrlLabel::NewL(iLayoutOwner, ECtrlIdSpellIndicator);
+ //AddControlL(spellIndicator);
+ //spellIndicator->Hide(ETrue);
}
@@ -760,6 +766,10 @@
void CGenericItutWindow::ShowEditorMenuL(TInt* aData)
{
+ if ( NULL == iEditorMenu )
+ {
+ return;
+ }
TInt count = *aData;
iEditorMenu->ClearItemsL();
for (TInt i=1;i<=count;i++ )
@@ -790,6 +800,7 @@
CreateICFL();
CreateMatchSelectionCtrlL();
+ /*
AddEditorMenuL();
iInputModeSwitch = CPeninputLayoutInputmodelChoice::NewL(
@@ -798,6 +809,7 @@
EPluginInputModeItut );
iInputModeSwitch->SetListSkinID( KAknsIIDQsnFrList, KAknsIIDQsnFrPopupSub );
AddControlL( iInputModeSwitch );
+ */
iBubbleSize = AknLayoutScalable_Apps::popup_char_count_window().LayoutLine();
@@ -812,6 +824,7 @@
KAknsIIDQsnFrInputPreviewMiddle,
KAknsIIDQsnFrInputPreviewSideR);
iICF->SetMsgBubbleCtrlSize(TSize(iBubbleSize.iW,iBubbleSize.iH));
+ iICF->MsgBubbleCtrl()->SetTextL( KEmptyString );
/* Teleca change start, 18.05.2009 ssal */
iICF->InfoBubbleCtrl()->SetTextFormat(iBubbleTextLayout);
iICF->InfoBubbleCtrl()->SetTextColorIndex( EAknsCIQsnTextColorsCG67 );
@@ -834,6 +847,30 @@
{
return;
}
+ // create switch
+ CreateButtonL(ECommonButton, ECtrlIdSwitch, ESwitchRect,
+ ESwitchInnerRect, R_FINGER_LAYOUT_SWITCH);
+
+ // create indicator button
+ CFepUiBaseCtrl* indicatorBtn = CreateButtonL(ECommonButton,
+ ECtrlIdIndicator, KUnavailableID,
+ KUnavailableID,KUnavailableID);
+
+ // create spell indicator
+ CAknFepCtrlLabel* spellIndicator = CAknFepCtrlLabel::NewL(iLayoutOwner, ECtrlIdSpellIndicator);
+ AddControlL(spellIndicator);
+ spellIndicator->Hide(ETrue);
+
+ // create input case type menu
+ AddEditorMenuL();
+
+ // create switch input mode menu
+ iInputModeSwitch = CPeninputLayoutInputmodelChoice::NewL(
+ iLayoutOwner,
+ ECtrlIdInputSwitch,
+ EPluginInputModeItut );
+ iInputModeSwitch->SetListSkinID( KAknsIIDQsnFrList, KAknsIIDQsnFrPopupSub );
+ AddControlL( iInputModeSwitch );
CreateDropdownListL();
// create spell control for stroke/zhuyin
@@ -980,14 +1017,93 @@
return err;
}
+void CGenericItutWindow::SetIndiBubbleImageL( const TInt aImgID1,
+ const TInt aMaskID1,
+ const TInt aImgID2,
+ const TInt aMaskID2 )
+ {
+ MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+ CFbsBitmap* bmp1 = NULL;
+ CFbsBitmap* mask1 = NULL;
+ TInt colorIndex = EAknsCIQsnIconColorsCG30;
+
+ AknsUtils::CreateColorIconL(skininstance,
+ KAknsIIDQsnIconColors,
+ KAknsIIDQsnIconColors,
+ colorIndex,
+ bmp1,
+ mask1,
+ AknIconUtils::AvkonIconFileName(),
+ aImgID1,
+ aMaskID1,
+ KRgbGray);
+ CleanupStack::PushL( bmp1 );
+ CleanupStack::PushL( mask1 );
+
+ AknIconUtils::GetContentDimensions(bmp1, iIndicatorSize);
+
+ CFbsBitmap* bmp2 = NULL;
+ CFbsBitmap* mask2 = NULL;
+ AknsUtils::CreateColorIconL(skininstance,
+ KAknsIIDQsnIconColors,
+ KAknsIIDQsnIconColors,
+ colorIndex,
+ bmp2,
+ mask2,
+ AknIconUtils::AvkonIconFileName(),
+ aImgID2,
+ aMaskID2,
+ KRgbGray);
+
+ CleanupStack::PushL( bmp2 );
+ CleanupStack::PushL( mask2 );
+
+ AknIconUtils::GetContentDimensions(bmp2, iIndicatorTextSize);
+
+ TRect boundRect;
+ if ( iIndiWithText )
+ {
+ boundRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData(EIndiIconWithTextRect));
+ }
+ else
+ {
+ boundRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData(EIndiIconWithoutTextRect));
+ }
+ TRect imgrect, textrect;
+
+ CalIndicatorRect(boundRect, imgrect, textrect, EIndiAlignCenter);
+ AknIconUtils::SetSize(bmp1, imgrect.Size(), EAspectRatioNotPreserved);
+ AknIconUtils::SetSize(mask1, imgrect.Size(), EAspectRatioNotPreserved);
+ AknIconUtils::SetSize(bmp2, textrect.Size(), EAspectRatioNotPreserved);
+ AknIconUtils::SetSize(mask2, textrect.Size(), EAspectRatioNotPreserved);
+
+ CFbsBitmap* bmp3 = AknPenImageUtils::CombineTwoImagesL(bmp1, bmp2, bmp1->DisplayMode());
+ CFbsBitmap* mask3 = AknPenImageUtils::CombineTwoImagesL(mask1, mask2, EGray256);
+
+ iICF->MsgBubbleCtrl()->SetBitmapParam( bmp3, mask3,
+ KAknsIIDQsnFrInputPreviewSideL,
+ KAknsIIDQsnFrInputPreviewMiddle,
+ KAknsIIDQsnFrInputPreviewSideR );
+
+ CleanupStack::PopAndDestroy( mask2 );
+ CleanupStack::PopAndDestroy( bmp2 );
+ CleanupStack::PopAndDestroy( mask1 );
+ CleanupStack::PopAndDestroy( bmp1 );
+ }
void CGenericItutWindow::SetIndicatorImageL(CFepUiBaseCtrl* aIndicator,
const TInt aImgID1,
const TInt aMaskID1,
const TInt aImgID2,
const TInt aMaskID2)
{
+ if ( NULL == aIndicator )
+ {
+ return;
+ }
MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
CFbsBitmap* bmp1 = NULL;
@@ -1098,6 +1214,57 @@
CleanupStack::PopAndDestroy( bmp1 );
}
+void CGenericItutWindow::UpdateIndiBubbleL( TUint8* aData )
+ {
+ RDesReadStream readStream;
+ TFepIndicatorInfo indicatorData;
+
+ TPtr8 countPtr( aData, 4*sizeof(TInt), 4*sizeof(TInt) );
+ readStream.Open(countPtr);
+ CleanupClosePushL(readStream);
+
+ indicatorData.iIndicatorImgID = readStream.ReadInt32L();
+ indicatorData.iIndicatorMaskID = readStream.ReadInt32L();
+ indicatorData.iIndicatorTextImgID = readStream.ReadInt32L();
+ indicatorData.iIndicatorTextMaskID = readStream.ReadInt32L();
+
+ CleanupStack::PopAndDestroy(&readStream);
+
+ if (indicatorData.iIndicatorImgID != 0 &&
+ indicatorData.iIndicatorMaskID != 0 &&
+ indicatorData.iIndicatorTextImgID != 0 &&
+ indicatorData.iIndicatorTextMaskID != 0)
+ {
+ iDataMgr->SetIndicatorData(indicatorData);
+ iImDimensionSet = ETrue;
+
+ SetIndiBubbleImageL( indicatorData.iIndicatorImgID,
+ indicatorData.iIndicatorMaskID,
+ indicatorData.iIndicatorTextImgID,
+ indicatorData.iIndicatorTextMaskID);
+
+ if ( iLayoutOwner->UiMgr()->CurrentState()->StateType() ==
+ CGenericItutUiMgrBase::EStateSpelling )
+ {
+ TRect bubbleRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( ESpellIndiPaneWithoutTextRect ));
+ TRect iconRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( ESpellIndiIconWithoutTextRect ));
+ TSize offset( 0, 6 );
+ TSize size( iconRect.Width(), iconRect.Height());
+
+ iICF->MsgBubbleCtrl()->SetRect( bubbleRect );
+ iICF->MsgBubbleCtrl()->SetIconOffsetAndSize( offset, size );
+ iICF->ShowBubble( KEmptyString, iICF->MsgBubbleCtrl()->Rect());
+ }
+ else
+ {
+ TBuf<100> text;
+ iICF->MsgBubbleCtrl()->GetText( text );
+ iICF->ShowBubble( text, iICF->MsgBubbleCtrl()->Rect());
+ }
+ }
+ }
void CGenericItutWindow::UpdateIndicatorL(TUint8* aData)
{
@@ -1140,7 +1307,17 @@
CGenericItutUiMgrBase::EStateSpelling)
{
temp = Control(ECtrlIdSpellIndicator);
- Control(ECtrlIdIndicator)->Hide(ETrue);
+ if ( !temp )
+ {
+ return;
+ }
+
+ CFepUiBaseCtrl* indi = Control(ECtrlIdIndicator);
+ if ( !indi )
+ {
+ return;
+ }
+ indi->Hide(ETrue);
SetIndicatorImageL(temp,
indicatorData.iIndicatorImgID,
indicatorData.iIndicatorMaskID,
@@ -1159,7 +1336,17 @@
else
{
temp = Control(ECtrlIdIndicator);
- Control(ECtrlIdSpellIndicator)->Hide(ETrue);
+ if ( !temp )
+ {
+ return;
+ }
+
+ CFepUiBaseCtrl* indi = Control(ECtrlIdSpellIndicator);
+ if ( !indi )
+ {
+ return;
+ }
+ indi->Hide(ETrue);
SetIndicatorImageL(temp,
indicatorData.iIndicatorImgID,
indicatorData.iIndicatorMaskID,
@@ -1440,22 +1627,44 @@
}
else
{
- iICF->SetTextMargin ( iDataMgr->iIcfTextLeftMargin,
- iDataMgr->iIcfTextRightMargin,
- iDataMgr->iIcfTextTopMargin,
- iDataMgr->iIcfTextBottomMargin );
-
- iICF->SetLineSpace( iDataMgr->iIcfTextLineSpaceMargin );
-
- iICF->SizeChangedL(TItutDataConverter::AnyToRect(iDataMgr->RequestData(EIcfRect)),
- //icffont->HeightInPixels(),
- iDataMgr->iIcfTextHeight,
- icffont->FontMaxHeight(),
- icffont);
+ if ( iDataMgr->IsLandScape())
+ {
+ iICF->SetTextMargin ( iDataMgr->iIcfTextLeftMargin,
+ iDataMgr->iIcfTextRightMargin,
+ iDataMgr->iIcfTextTopMargin,
+ iDataMgr->iIcfTextBottomMargin );
+
+ iICF->SetLineSpace( iDataMgr->iIcfTextLineSpaceMargin );
+
+ iICF->SizeChangedL(TItutDataConverter::AnyToRect(iDataMgr->RequestData(EIcfRect)),
+ iDataMgr->iIcfTextHeight,
+ icffont->FontMaxHeight(),
+ icffont);
+ }
+ else
+ {
+ iICF->SetTextMargin ( iDataMgr->iIcfTextLeftMarginForPrtWest,
+ iDataMgr->iIcfTextRightMarginForPrtWest,
+ iDataMgr->iIcfTextTopMarginForPrtWest,
+ iDataMgr->iIcfTextBottomMarginForPrtWest );
+
+ iICF->SetLineSpace( iDataMgr->iIcfTextLineSpaceMarginForPrtWest );
+
+ iICF->SizeChangedL(TItutDataConverter::AnyToRect(iDataMgr->RequestData(EIcfRect)),
+ iDataMgr->iIcfTextHeightForPrtWest,
+ icffont->FontMaxHeight(),
+ icffont);
+ }
}
iICF->Hide(EFalse);
+ if ( IsPortraitWest() && (!iDataMgr->IsChineseGlobalLanguage()))
+ {
+ iICF->MsgBubbleCtrl()->SetTextL( KEmptyString );
+ iIndiWithText = EFalse;
+ IndiBubbleWithoutText();
+ }
if( iDataMgr->IsChinese() )
{
ControlSizeChanged(ECtrlIdArrowUp, EArrowUpRect, EUpInnerRect, ETrue);
@@ -1465,7 +1674,10 @@
TBool bSizeChanged = EFalse;
ControlSizeChanged(ECtrlIdArrowLeft, EArrowLeftRect, ELeftInnerRect, ETrue);
ControlSizeChanged(ECtrlIdArrowRight, EArrowRightRect, ERightInnerRect, ETrue);
- ControlSizeChanged(ECtrlIdSwitch, ESwitchRect, ESwitchInnerRect, ETrue);
+ if( iDataMgr->IsChinese())
+ {
+ ControlSizeChanged(ECtrlIdSwitch, ESwitchRect, ESwitchInnerRect, ETrue);
+ }
bSizeChanged = ControlSizeChanged(ECtrlIdBackspace, EBackspaceRect, EBackspaceInnerRect, ETrue);
ControlSizeChanged(ECtrlIdOptions, EOptionsRect, EOptionInnerRect, ETrue);
ControlSizeChanged(ECtrlIdClose, ECloseRect, ECloseInnerRect, ETrue);
@@ -1528,7 +1740,14 @@
// reconstruct shift icon when skin changed
TRAP_IGNORE(iStandardItutKp->ShiftIcon()->ReConstructL());
- TRAP_IGNORE(iStandardItutKp->ShiftIcon()->ResizeL(iDataMgr->iShiftIconRect.Size()));
+ if ( IsPortraitWest())
+ {
+ TRAP_IGNORE(iStandardItutKp->ShiftIcon()->ResizeL(iDataMgr->iShiftIconRectForPrtWest.Size()));
+ }
+ else
+ {
+ TRAP_IGNORE(iStandardItutKp->ShiftIcon()->ResizeL(iDataMgr->iShiftIconRect.Size()));
+ }
//Skin change will case the reconstuction of the button graphic.
//When language is RToL, it should be mirrored again.
@@ -1564,6 +1783,10 @@
void CGenericItutWindow::ResetIndicatorL(CFepUiBaseCtrl* aIndicator)
{
+ if ( NULL == aIndicator )
+ {
+ return;
+ }
SetIndicatorImageL(aIndicator,
iDataMgr->IndicatorData().iIndicatorImgID,
iDataMgr->IndicatorData().iIndicatorMaskID,
@@ -1592,7 +1815,13 @@
void CGenericItutWindow::DisplayInputmodeSwitchL()
{
- TRect rect = Control(ECtrlIdSwitch)->Rect();
+ CFepUiBaseCtrl* btn = Control(ECtrlIdSwitch);
+ if ( NULL == btn )
+ {
+ return;
+ }
+
+ TRect rect = btn->Rect();
TRAP_IGNORE( iInputModeSwitch->PopUpSwitchListL(rect) );
}
@@ -1793,4 +2022,49 @@
unicodesInt.Close();
}
+TBool CGenericItutWindow::IsPortraitWest()
+ {
+ return !iDataMgr->IsChinese() && !iDataMgr->IsLandScape();
+ }
+
+void CGenericItutWindow::IndiBubbleWithText()
+ {
+ if ( iICF )
+ {
+ TAknTextLineLayout textLine = TItutDataConverter::AnyToTextLine(
+ iDataMgr->RequestData( EIndiTextLine ));
+ TRect bubbleRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( EIndiPaneWithTextRect ));
+ TRect iconRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( EIndiIconWithTextRect ));
+ TSize offset( 60, 6 );
+ TSize size( iconRect.Width(), iconRect.Height());
+
+ iICF->MsgBubbleCtrl()->SetRect( bubbleRect );
+ iICF->MsgBubbleCtrl()->SetIconOffsetAndSize( offset, size );
+ iICF->MsgBubbleCtrl()->SetTextFormat( textLine );
+ iICF->MsgBubbleCtrl()->SetTextColorIndex( EAknsCIQsnTextColorsCG67 );
+ }
+ }
+
+void CGenericItutWindow::IndiBubbleWithoutText()
+ {
+ if ( iICF )
+ {
+ TRect bubbleRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( EIndiPaneWithoutTextRect ));
+ TRect iconRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( EIndiIconWithoutTextRect ));
+ TSize offset( 0, 6 );
+ TSize size( iconRect.Width(), iconRect.Height());
+
+ iICF->MsgBubbleCtrl()->SetRect( bubbleRect );
+ iICF->MsgBubbleCtrl()->SetIconOffsetAndSize( offset, size );
+ }
+ }
+
+void CGenericItutWindow::SetIndiWithTextFlag( TBool aFlag )
+ {
+ iIndiWithText = aFlag;
+ }
// End Of File
--- a/textinput/peninputgenericitut/src/peninputgenericitutwindowmanager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/src/peninputgenericitutwindowmanager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -45,6 +45,7 @@
#include "peninputgenericitutuistatebase.h"
#include "peninputgenericitutconverter.h"
+_LIT(KEmptyString, "");
const TInt KPeriodicTimerIntervalSec(2500000);
/* Teleca change end, 18.05.2009 ssal */
CGenericItutWindowManager* CGenericItutWindowManager::NewL(CGenericItutUiLayout* aLayoutOwner,
@@ -283,7 +284,12 @@
case ECmdPenInputIsSecretText:
{
iWindow->Icf()->SetTextIsSecret(*aData);
- iWindow->InputModeSwitch()->SetSecretEditor(*aData);
+ CPeninputLayoutInputmodelChoice* choice =
+ iWindow->InputModeSwitch();
+ if ( choice )
+ {
+ choice->SetSecretEditor(*aData);
+ }
}
break;
case ECmdPenInputIsNumberGrouping:
@@ -299,7 +305,14 @@
break;
case ECmdPenInputFingerMatchIndicator:
{
- UpdateIndicatorL(aData);
+ if ( IsPortraitWest() && ( !iDataMgr->IsChineseGlobalLanguage()))
+ {
+ iWindow->UpdateIndiBubbleL( aData );
+ }
+ else
+ {
+ UpdateIndicatorL( aData );
+ }
handle = ETrue;
}
break;
@@ -337,15 +350,18 @@
case ECmdPenInputEnableIndicatorButton:
{
- if (*data)
+ if ( NULL != static_cast<CAknFepCtrlCommonButton*>(Control(ECtrlIdIndicator)))
{
- static_cast<CAknFepCtrlCommonButton*>(
- Control(ECtrlIdIndicator))->SetDimmed(EFalse);
- }
- else
- {
- static_cast<CAknFepCtrlCommonButton*>(
- Control(ECtrlIdIndicator))->SetDimmed(ETrue);
+ if (*data)
+ {
+ static_cast<CAknFepCtrlCommonButton*>(
+ Control(ECtrlIdIndicator))->SetDimmed(EFalse);
+ }
+ else
+ {
+ static_cast<CAknFepCtrlCommonButton*>(
+ Control(ECtrlIdIndicator))->SetDimmed(ETrue);
+ }
}
}
break;
@@ -416,6 +432,10 @@
return iLayoutOwner;
}
+TBool CGenericItutWindowManager::IsPortraitWest()
+ {
+ return !iDataMgr->IsChinese() && !iDataMgr->IsLandScape();
+ }
void CGenericItutWindowManager::HandleAppInfoChangeL(const TDesC& aInfo)
{
CGenericItutUiLayout * itutLayoutOwner;
@@ -426,11 +446,58 @@
CGenericItutUiMgrBase::EStateSpelling &&
!iInEditWordQueryDlg)
{
+ if ( IsPortraitWest() && (!iDataMgr->IsChineseGlobalLanguage()))
+ {
+ iWindow->Icf()->HideBubble();
+ iWindow->SetIndiWithTextFlag( ETrue );
+ iWindow->IndiBubbleWithText();
+
+ if ( iDataMgr->IndicatorData().iIndicatorImgID != 0 &&
+ iDataMgr->IndicatorData().iIndicatorMaskID != 0 &&
+ iDataMgr->IndicatorData().iIndicatorTextImgID != 0 &&
+ iDataMgr->IndicatorData().iIndicatorTextMaskID != 0 )
+ {
+ iWindow->SetIndiBubbleImageL(
+ iDataMgr->IndicatorData().iIndicatorImgID,
+ iDataMgr->IndicatorData().iIndicatorMaskID,
+ iDataMgr->IndicatorData().iIndicatorTextImgID,
+ iDataMgr->IndicatorData().iIndicatorTextMaskID);
+ }
+ }
iWindow->Icf()->ShowBubble(aInfo,iWindow->Icf()->MsgBubbleCtrl()->Rect());
}
else
{
- iWindow->Icf()->HideBubble();
+ if ((!IsPortraitWest()) || iDataMgr->IsChineseGlobalLanguage())
+ {
+ iWindow->Icf()->HideBubble();
+ }
+ else
+ {
+ if ( itutLayoutOwner->UiMgr()->CurrentState() &&
+ itutLayoutOwner->UiMgr()->CurrentState()->StateType() !=
+ CGenericItutUiMgrBase::EStateSpelling )
+ {
+ iWindow->Icf()->HideBubble();
+ iWindow->SetIndiWithTextFlag( EFalse );
+ iWindow->IndiBubbleWithoutText();
+ }
+
+ if ( iDataMgr->IndicatorData().iIndicatorImgID != 0 &&
+ iDataMgr->IndicatorData().iIndicatorMaskID != 0 &&
+ iDataMgr->IndicatorData().iIndicatorTextImgID != 0 &&
+ iDataMgr->IndicatorData().iIndicatorTextMaskID != 0 )
+ {
+ iWindow->SetIndiBubbleImageL(
+ iDataMgr->IndicatorData().iIndicatorImgID,
+ iDataMgr->IndicatorData().iIndicatorMaskID,
+ iDataMgr->IndicatorData().iIndicatorTextImgID,
+ iDataMgr->IndicatorData().iIndicatorTextMaskID);
+ }
+
+ iWindow->Icf()->ShowBubble( KEmptyString,
+ iWindow->Icf()->MsgBubbleCtrl()->Rect());
+ }
}
}
--- a/textinput/peninputgenericitut/src/peninputitutwesternuistatenonpredict.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/src/peninputitutwesternuistatenonpredict.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -111,10 +111,10 @@
}
else
{
- iOwner->LayoutContext()->Control(ECtrlIdSwitch)->Hide(EFalse);
+ //iOwner->LayoutContext()->Control(ECtrlIdSwitch)->Hide(EFalse);
iOwner->LayoutContext()->Control(ECtrlIdOptions)->Hide(EFalse);
iOwner->LayoutContext()->Control(ECtrlIdClose)->Hide(EFalse);
- iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(EFalse);
+ //iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(EFalse);
iOwner->LayoutContext()->ShowArrowBtn(EBtnArrowLeft | EBtnArrowRight);
if(iOwner->LayoutContext()->IsSecretEdtior())
--- a/textinput/peninputgenericitut/src/peninputitutwesternuistatespelling.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/src/peninputitutwesternuistatespelling.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -25,6 +25,9 @@
#include <peninputcmd.h>
#include <peninputlabel.h>
+// Fix bug for EZLG-7YUAP7
+#include <peninputrawkeybutton.h>
+
#include "peninputitutwesternuistatespelling.h"
#include "peninputgenericitutuimgrbase.h"
#include "peninputgenericitutdatamgr.h"
@@ -35,6 +38,7 @@
#include "peninputcommonbgctrl.h"
#include "peninputgenericitutwindowmanager.h"
#include "peninputgenericitutwindow.h"
+#include <peninputlayoutbubblectrl.h>
CWesternItutUiStateSpelling* CWesternItutUiStateSpelling::NewL(CGenericItutUiMgrBase* aOwner)
{
@@ -115,12 +119,38 @@
MItutPropertySubscriber::EItutPropertyKeypadResourceId, keypadResId);
// hide not needed controls
- iOwner->LayoutContext()->Control(ECtrlIdSwitch)->Hide(ETrue);
+ CFepUiBaseCtrl* baseCtrl = iOwner->LayoutContext()->Control(ECtrlIdSwitch);
+ if ( baseCtrl )
+ {
+ baseCtrl->Hide(ETrue);
+ }
iOwner->LayoutContext()->Control(ECtrlIdArrowLeft)->Hide(ETrue);
iOwner->LayoutContext()->Control(ECtrlIdArrowRight)->Hide(ETrue);
iOwner->LayoutContext()->Control(ECtrlIdOptions)->Hide(ETrue);
iOwner->LayoutContext()->Control(ECtrlIdClose)->Hide(ETrue);
- iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(ETrue);
+ baseCtrl = iOwner->LayoutContext()->Control(ECtrlIdIndicator);
+ if ( baseCtrl )
+ {
+ baseCtrl->Hide(ETrue);
+ }
+ // Fix bug for EZLG-7YUAP7
+ // Hide Chinese Arrow Up button and Arrow Down button
+ CAknFepCtrlRawKeyButton* upbtn =
+ static_cast<CAknFepCtrlRawKeyButton *>(iOwner->LayoutContext()->Control(ECtrlIdArrowUp));
+ CAknFepCtrlRawKeyButton* downbtn =
+ static_cast<CAknFepCtrlRawKeyButton *>(iOwner->LayoutContext()->Control(ECtrlIdArrowDown));
+
+ if( upbtn )
+ {
+ upbtn->Hide(ETrue);
+ }
+
+ if( downbtn )
+ {
+ downbtn->Hide(ETrue);
+ }
+ //
+
TAknTextLineLayout btntextformat = TItutDataConverter::AnyToTextLine(
iOwner->DataMgr()->RequestData(EBtnTextLine));
@@ -141,16 +171,22 @@
ReCalcLayoutL();
CAknFepCtrlLabel* indilabel = static_cast<CAknFepCtrlLabel*>
- (iOwner->LayoutContext()->Control(ECtrlIdSpellIndicator));
- indilabel->Hide( EFalse );
+ (iOwner->LayoutContext()->Control(ECtrlIdSpellIndicator));
+ if ( indilabel )
+ {
+ indilabel->Hide( EFalse );
+ }
iOwner->DataMgr()->SetUpdate(ETrue);
}
void CWesternItutUiStateSpelling::OnExit()
{
CAknFepCtrlLabel* indilabel = static_cast<CAknFepCtrlLabel*>
- (iOwner->LayoutContext()->Control(ECtrlIdSpellIndicator));
- indilabel->Hide( ETrue );
+ (iOwner->LayoutContext()->Control(ECtrlIdSpellIndicator));
+ if ( indilabel )
+ {
+ indilabel->Hide( ETrue );
+ }
iOk->Hide(ETrue);
iCancel->Hide(ETrue);
iOwner->DataMgr()->SetSpellMode(EFalse);
@@ -233,7 +269,16 @@
iCancel->SetTextFormat(btntextCancel);
iCancel->SizeChanged(btnrect, btnrect, ETrue);
//iICF->SetRect( TItutDataConverter::AnyToRect(iOwner->DataMgr()->RequestData(ESpellICFRect)) );
- CFont* icffont = TItutDataConverter::AnyToFont(iOwner->DataMgr()->RequestData(EIcfFont));
+ CFont* icffont;
+ if ( iOwner->DataMgr()->IsPortraitWest() &&
+ (!iOwner->DataMgr()->IsChineseGlobalLanguage()))
+ {
+ icffont = TItutDataConverter::AnyToFont(iOwner->DataMgr()->RequestData(ESpellFont));
+ }
+ else
+ {
+ icffont = TItutDataConverter::AnyToFont(iOwner->DataMgr()->RequestData(EIcfFont));
+ }
TRect rect = TItutDataConverter::AnyToRect(iOwner->DataMgr()->RequestData(ESpellICFRect) );
//rect.iTl.iY -= 50;
@@ -243,11 +288,21 @@
2);
iICF->SetLineSpace( 1 );
- iICF->SizeChangedL(rect,
- //icffont->HeightInPixels(),
- iOwner->DataMgr()->iIcfTextHeight,
- icffont->FontMaxHeight(),
- icffont);
+ if ( iOwner->DataMgr()->IsPortraitWest() &&
+ (!iOwner->DataMgr()->IsChineseGlobalLanguage()))
+ {
+ iICF->SizeChangedL(rect,
+ iOwner->DataMgr()->iSpellIcfTextHeightForPrtWest,
+ icffont->FontMaxHeight(),
+ icffont);
+ }
+ else
+ {
+ iICF->SizeChangedL(rect,
+ iOwner->DataMgr()->iIcfTextHeight,
+ icffont->FontMaxHeight(),
+ icffont);
+ }
CAknFepCtrlCommonButton* clrBtn = static_cast<CAknFepCtrlCommonButton*>(
iOwner->LayoutContext()->Control(ECtrlIdBackspace) );
@@ -264,6 +319,45 @@
{
iOwner->UiManager()->Window()->HandleButtonResOnLangDirChange( ECtrlIdBackspace );
}
+ if ( iOwner->DataMgr()->IsPortraitWest() &&
+ (!iOwner->DataMgr()->IsChineseGlobalLanguage()))
+ {
+ iOwner->LayoutContext()->Control(ECtrlIdArrowLeft)->Hide( EFalse );
+ iOwner->LayoutContext()->Control(ECtrlIdArrowRight)->Hide( EFalse );
+
+ // left button
+ CAknFepCtrlCommonButton* middleBtn = static_cast<CAknFepCtrlCommonButton*>(
+ iOwner->LayoutContext()->Control(ECtrlIdArrowLeft));
+ TRect middleRect = TItutDataConverter::AnyToRect(
+ iOwner->DataMgr()->RequestData(ESpellArrowLeft));
+ TRect middleInnerRect = TItutDataConverter::AnyToRect(
+ iOwner->DataMgr()->RequestData(ESpellArrowLeftInner));
+ middleBtn->SizeChanged( middleRect, middleInnerRect, ETrue );
+
+ // right button
+ middleBtn = static_cast<CAknFepCtrlCommonButton*>(
+ iOwner->LayoutContext()->Control(ECtrlIdArrowRight));
+ middleRect = TItutDataConverter::AnyToRect(
+ iOwner->DataMgr()->RequestData(ESpellArrowRight));
+ middleInnerRect = TItutDataConverter::AnyToRect(
+ iOwner->DataMgr()->RequestData(ESpellArrowRightInner));
+ middleBtn->SizeChanged( middleRect, middleInnerRect, ETrue );
+
+ // Indicator bubble
+ TRect bubbleRect = TItutDataConverter::AnyToRect(
+ iOwner->DataMgr()->RequestData( ESpellIndiPaneWithoutTextRect ));
+ TRect iconRect = TItutDataConverter::AnyToRect(
+ iOwner->DataMgr()->RequestData( ESpellIndiIconWithoutTextRect ));
+ TSize offset( 0, 6 );
+ TSize size( iconRect.Width(), iconRect.Height());
+
+ iICF->MsgBubbleCtrl()->SetRect( bubbleRect );
+ iICF->MsgBubbleCtrl()->SetIconOffsetAndSize( offset, size );
+
+ TBuf<100> text;
+ iICF->MsgBubbleCtrl()->GetText( text );
+ iICF->ShowBubble( text, iICF->MsgBubbleCtrl()->Rect());
+ }
}
// End Of File
--- a/textinput/peninputgenericitut/srcdata/peninputgeneralitutnew.rss Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericitut/srcdata/peninputgeneralitutnew.rss Fri Mar 12 15:44:07 2010 +0200
@@ -126,8 +126,8 @@
bmpfile=AKN_FEP_ITUT_BMP;
imgmajorskinid=EAknsMajorGeneric;
- forground=EMbmPeninputgenericitutQgn_indi_input_backspace;
- forgroundmsk=EMbmPeninputgenericitutQgn_indi_input_backspace_mask;
+ forground=EMbmPeninputgenericitutQgn_indi_itut_backspace1;
+ forgroundmsk=EMbmPeninputgenericitutQgn_indi_itut_backspace1_mask;
//forgroundskinid=EAknsMinorGenericQgnIndiDialerClear;
}
@@ -136,8 +136,8 @@
bmpfile=AKN_FEP_ITUT_BMP;
imgmajorskinid=EAknsMajorGeneric;
- forground=EMbmPeninputgenericitutQgn_indi_itut_backspace;
- forgroundmsk=EMbmPeninputgenericitutQgn_indi_itut_backspace_mask;
+ forground=EMbmPeninputgenericitutQgn_indi_itut_backspace1;
+ forgroundmsk=EMbmPeninputgenericitutQgn_indi_itut_backspace1_mask;
//forgroundskinid=EAknsMinorGenericQgnIndiDialerClear;
}
--- a/textinput/peninputgenericvkb/group/iconlist.txt Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/group/iconlist.txt Fri Mar 12 15:44:07 2010 +0200
@@ -194,3 +194,4 @@
-c8,8 qgn_indi_input_space_r.svg
-c8,8 qgn_indi_fsq_cursor_up.svg
-c8,8 qgn_indi_fsq_cursor_down.svg
+-c8,8 qgn_indi_input_backspace1.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputgenericvkb/inc/peninputgenericvkb.rh Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,42 @@
+// Modify begin
+/*
+* Copyright (c) 2002-2006 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: Resource headers for project peninputgenericvkb
+*
+*/
+
+
+#ifndef PENINPUTGENERICVKB_RH
+#define PENINPUTGENERICVKB_RH
+
+// system includes
+#include <uikon.rh>
+
+// -----------------------------------------------------------------------------
+// PENINPUT_FSQQWERTY_RANGELABELS
+// Resource definition for range labels of range list
+// -----------------------------------------------------------------------------
+//
+STRUCT PENINPUT_FSQQWERTY_RANGELABELS
+ {
+ LTEXT nativeChar ="";
+ LTEXT nativeNumber ="";
+ LTEXT latinChar ="";
+ LTEXT latinNumber ="";
+ LTEXT symbol ="";
+ LTEXT accent ="";
+ }
+
+#endif /* PENINPUTGENERICVKB_RH */
+// Modify end
--- a/textinput/peninputgenericvkb/inc/peninputgenericvkblafdatamgr.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/inc/peninputgenericvkblafdatamgr.h Fri Mar 12 15:44:07 2010 +0200
@@ -133,6 +133,12 @@
TPeninputButtonLayoutDataEx iSpaceButtonEx;
TPeninputButtonLayoutData iEnterButton;
TPeninputButtonLayoutData iSwitchButton;
+ TPeninputButtonLayoutData iMultiRangeButton;
+ TRect iIndiPaneRectWithTextForFSQ;
+ TRect iIndiPaneRectWithoutTextForFSQ;
+ TRect iIndiIconRectWithTextForFSQ;
+ TRect iIndiIconRectWithoutTextForFSQ;
+ TAknTextLineLayout iIndiTextForFSQ;
TRect iTitlebarRect;
TRect iClientRect;
TRect iQwtRect;
@@ -195,11 +201,16 @@
inline TPeninputVkbLafOption LafOption() const;
void ConstructL();
TBool IsValid() const;
+ TRect& IndiPaneRectWithText();
+ TRect& IndiPaneRectWithoutText();
+ TRect& IndiIconRectWithText();
+ TRect& IndiIconRectWithoutText();
+ TAknTextLineLayout& IndiText();
protected:
- void GetTopAndBottomPaneInfo( const TRect& aParentWndRect,
+ virtual void GetTopAndBottomPaneInfo( const TRect& aParentWndRect,
TInt aLayoutType,
TInt aLayoutParam,
- CPeninputQwtLayoutDataInfo& aDataInfo );
+ CPeninputQwtLayoutDataInfo& aDataInfo ) = 0;
virtual void ReadLafInfoL() = 0;
TInt iLayoutType;
@@ -219,6 +230,10 @@
protected:
CPeninputLafDataVKB( TInt aLayoutType );
+ void GetTopAndBottomPaneInfo( const TRect& aParentWndRect,
+ TInt aLayoutType,
+ TInt aLayoutParam,
+ CPeninputQwtLayoutDataInfo& aDataInfo );
void ReadLafInfoL();
};
@@ -234,6 +249,10 @@
protected:
CPeninputLafDataFSQ( TInt aLayoutType );
+ void GetTopAndBottomPaneInfo( const TRect& aParentWndRect,
+ TInt aLayoutType,
+ TInt aLayoutParam,
+ CPeninputQwtLayoutDataInfo& aDataInfo );
void ReadLafInfoL();
private:
@@ -253,6 +272,10 @@
* @return tooltip box layout data
*/
TPeninputTooltipBoxLayoutData ReadLafForTooltipBox( const TRect& aRect );
+ TRect RelativeRect( const TRect& aRect, const TPoint& aPoint );
+
+ TRect CPeninputLafDataFSQ::OffsetRect(
+ const TRect& aRect, TInt aDx, TInt aDy );
};
/**
@@ -402,6 +425,11 @@
*/
const TPeninputTooltipBoxLayoutData& TooltipBoxLayoutData() const;
+ TRect& IndiPaneRectWithText();
+ TRect& IndiPaneRectWithoutText();
+ TRect& IndiIconRectWithText();
+ TRect& IndiIconRectWithoutText();
+ TAknTextLineLayout& IndiText();
protected:
/**
--- a/textinput/peninputgenericvkb/inc/peninputgenericvkbwindow.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/inc/peninputgenericvkbwindow.h Fri Mar 12 15:44:07 2010 +0200
@@ -38,6 +38,21 @@
// Constants
const TInt KMaxFileLength = 80;
+const TInt KMaxRangeLabelLength = 100;
+
+/**
+ * class TAllRangeLabels
+ */
+class TAllRangeLabels
+ {
+public:
+ TBuf<KMaxRangeLabelLength> iLabelNativeChar;
+ TBuf<KMaxRangeLabelLength> iLabelNativeNumber;
+ TBuf<KMaxRangeLabelLength> iLabelLatinChar;
+ TBuf<KMaxRangeLabelLength> iLabelLatinNumber;
+ TBuf<KMaxRangeLabelLength> iLabelSymbol;
+ TBuf<KMaxRangeLabelLength> iLabelAccent;
+ };
/**
* Vkb layout window class
* This class define methods to deal with window layout and
@@ -48,7 +63,13 @@
*/
class CPeninputGenericVkbWindow : public CPeninputLayoutWindowExt
{
-
+private:
+ enum TIndicatorAlign
+ {
+ EIndiAlignLeft,
+ EIndiAlignCenter,
+ EIndiAlignRight
+ };
public:
/**
@@ -355,6 +376,41 @@
*/
void HandleCandidateListSelectedL( CFepUiBaseCtrl* aCtrl, const TDesC& aEventData );
+ /*
+ * Load range labels for range list
+ *
+ * @since S60 v5.0
+ * @param aLangId current language id
+ * @return None
+ */
+ void ConstructRangeLabelListL( TInt aLangId );
+
+ /**
+ * Update state of range button
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void UpdateRangeCtrlsL();
+
+ void ConstructFSQAccentListL( TInt aLangId );
+
+ void SetIndiBubbleImageL( const TInt aImgID1,
+ const TInt aMaskID1,
+ const TInt aImgID2,
+ const TInt aMaskID2 );
+
+ void IndiBubbleWithText();
+
+ void IndiBubbleWithoutText();
+
+ void SetIndiWithTextFlag( TBool aFlag );
+
+ void UpdateIndiBubbleL( TUint8* aData );
+
+ inline TFepIndicatorInfo IndicatorData();
+
+ inline void SetIndicatorData( const TFepIndicatorInfo& aIndicatorData );
protected:
/**
@@ -374,6 +430,60 @@
virtual void AddCustomControlGroupL(CFepUiBaseCtrl* aCtrl);
private:
+
+ /**
+ * Show range list
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void PopupRangeListL();
+
+ /**
+ * Prepare range list items
+ *
+ * @since S60 v5.0
+ * @param aRangeItems items in range list
+ * @return None
+ */
+ void PrepareRangeListItems( RArray<CFepLayoutChoiceList::SItem>&
+ aRangeItems );
+
+ /**
+ * Utils to get context value
+ *
+ * @since S60 v5.0
+ * @param aDataIndex index of context value
+ * @return conext value
+ */
+ TInt IntContext( TPeninputDataType aDataIndex );
+
+ void CalIndicatorRect(const TRect& aBoundRect,
+ TRect& aRealRect1,
+ TRect& aRealRect2,
+ TIndicatorAlign aAlign);
+
+ /**
+ * Handle range list event
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void HandleRangeListSelectedL( CFepUiBaseCtrl* aCtrl,
+ const TDesC& aData );
+
+ /**
+ * Get resource ids of range button icon
+ *
+ * @since S60 v5.0
+ * @param aLangId current language id
+ * @param aAlphaRange variable to receive icon resource id for alpha range
+ * @param aOtherRange variable to receive icon resource id for other ranges
+ * @return None
+ */
+ void GetRangeIconResource( TInt aLangId, TInt& aAlphaRange,
+ TInt& aOtherRange );
+
/**
* Add range bar into client area
*
@@ -441,7 +551,7 @@
TBool HandleDeadKeyL(TInt aEventType, const TDesC& aEventData );
- void ReorgnizeTitleBar();
+ void ReorgnizeICFAndButtons();
void UpdateICFTextL();
@@ -590,6 +700,23 @@
* Bitmap rotator
*/
CPeninputSyncBitmapRotator* iBmpRotator;
+ /**
+ * Accent command list
+ */
+ RArray<CFepLayoutChoiceList::SItem> iAccentCmdList;
+
+ TSize iIndicatorSize;
+
+ TSize iIndicatorTextSize;
+
+ TBool iIndiWithText;
+
+ TFepIndicatorInfo iIndicatorData;
+
+ /**
+ * Range labels for range list
+ */
+ TAllRangeLabels iRangeLabels;
private:
CFepLayoutScrollableList* iCandidateList;
@@ -608,4 +735,17 @@
{
return (aLanguage != ELangTest && aLanguage != ELangNone);
}
+inline void CPeninputGenericVkbWindow::SetIndicatorData(
+ const TFepIndicatorInfo& aIndicatorData )
+ {
+ iIndicatorData.iIndicatorImgID = aIndicatorData.iIndicatorImgID;
+ iIndicatorData.iIndicatorMaskID = aIndicatorData.iIndicatorMaskID;
+ iIndicatorData.iIndicatorTextImgID = aIndicatorData.iIndicatorTextImgID;
+ iIndicatorData.iIndicatorTextMaskID = aIndicatorData.iIndicatorTextMaskID;
+ }
+
+inline TFepIndicatorInfo CPeninputGenericVkbWindow::IndicatorData()
+ {
+ return iIndicatorData;
+ }
#endif // C_PENINPUTGENERICVKBWINDOW_H
--- a/textinput/peninputgenericvkb/loc/peninputgenericvkbaccentlist.loc Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/loc/peninputgenericvkbaccentlist.loc Fri Mar 12 15:44:07 2010 +0200
@@ -36,4 +36,27 @@
//r: 3.2
#define qtn_tin_vkb_accented_set3 "Accented "<0x0151>" - "<0x01EF>
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_alpha_range "ABC"
+
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_native_characters_range "Native char"
+
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_numbers_symbols "123*&#"
+
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_native_numbers_symbols "Native number"
// End of File
--- a/textinput/peninputgenericvkb/src/peninputgenericlafdatamgr.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/src/peninputgenericlafdatamgr.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -444,6 +444,35 @@
aMiddleIconRect = iLafData->QwtLayoutData().iSpaceButtonEx.iMiddleIconRect;
}
+TRect& CPeninputGenericVkbLafMgr::IndiPaneRectWithText()
+ {
+ ASSERT(iLafData);
+ return iLafData->IndiPaneRectWithText();
+ }
+
+TRect& CPeninputGenericVkbLafMgr::IndiPaneRectWithoutText()
+ {
+ ASSERT(iLafData);
+ return iLafData->IndiPaneRectWithoutText();
+ }
+
+TRect& CPeninputGenericVkbLafMgr::IndiIconRectWithText()
+ {
+ ASSERT(iLafData);
+ return iLafData->IndiIconRectWithText();
+ }
+
+TRect& CPeninputGenericVkbLafMgr::IndiIconRectWithoutText()
+ {
+ ASSERT(iLafData);
+ return iLafData->IndiIconRectWithoutText();
+ }
+
+TAknTextLineLayout& CPeninputGenericVkbLafMgr::IndiText()
+ {
+ ASSERT(iLafData);
+ return iLafData->IndiText();
+ }
// ---------------------------------------------------------------------------
// Return layout data for candidate list
// ---------------------------------------------------------------------------
@@ -554,6 +583,11 @@
pData = &(iLayoutDataInfo[iLayoutType]->iRightButton);
}
break;
+ case EPeninutWindowCtrlIdMultiRangeBtn:
+ {
+ pData = &(iLayoutDataInfo[iLayoutType]->iMultiRangeButton);
+ }
+ break;
default:
ASSERT(EFalse);
break;
@@ -605,6 +639,35 @@
return *iLayoutDataInfo[iLayoutType];
}
+TRect& MPeninputLafDataCommon::IndiPaneRectWithText()
+ {
+ ASSERT( IsValid());
+ return iLayoutDataInfo[iLayoutType]->iIndiPaneRectWithTextForFSQ;
+ }
+
+TRect& MPeninputLafDataCommon::IndiPaneRectWithoutText()
+ {
+ ASSERT( IsValid());
+ return iLayoutDataInfo[iLayoutType]->iIndiPaneRectWithoutTextForFSQ;
+ }
+
+TRect& MPeninputLafDataCommon::IndiIconRectWithText()
+ {
+ ASSERT( IsValid());
+ return iLayoutDataInfo[iLayoutType]->iIndiIconRectWithTextForFSQ;
+ }
+
+TRect& MPeninputLafDataCommon::IndiIconRectWithoutText()
+ {
+ ASSERT( IsValid());
+ return iLayoutDataInfo[iLayoutType]->iIndiIconRectWithoutTextForFSQ;
+ }
+
+TAknTextLineLayout& MPeninputLafDataCommon::IndiText()
+ {
+ ASSERT( IsValid());
+ return iLayoutDataInfo[iLayoutType]->iIndiTextForFSQ;
+ }
// ---------------------------------------------------------------------------
// CPeninputLafDataCommon::ConstructL()
// (other items were commented in a header)
@@ -627,11 +690,11 @@
// ---------------------------------------------------------------------------
-// CPeninputLafDataCommon::GetTopAndBottomPaneInfo
+// CPeninputLafDataVKB::GetTopAndBottomPaneInfo
// (other items were commented in a header)
// ---------------------------------------------------------------------------
//
-void MPeninputLafDataCommon::GetTopAndBottomPaneInfo( const TRect& aParentWndRect,
+void CPeninputLafDataVKB::GetTopAndBottomPaneInfo( const TRect& aParentWndRect,
TInt aLayoutType,
TInt aLayoutParam,
CPeninputQwtLayoutDataInfo& aDataInfo )
@@ -922,6 +985,244 @@
}
// ---------------------------------------------------------------------------
+// CPeninputLafDataFSQ::RelativeRect
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+TRect CPeninputLafDataFSQ::RelativeRect( const TRect& aRect, const TPoint& aPoint )
+ {
+ TRect rect = aRect;
+ rect.Move( - aPoint.iX, - aPoint.iY );
+ return rect;
+ }
+
+// ---------------------------------------------------------------------------
+// CPeninputLafDataFSQ::OffsetRect
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+TRect CPeninputLafDataFSQ::OffsetRect( const TRect& aRect, TInt aDx, TInt aDy )
+ {
+ TRect rect = aRect;
+ rect.Move( aDx, aDy );
+ return rect;
+ }
+
+// ---------------------------------------------------------------------------
+// CPeninputLafDataFSQ::GetTopAndBottomPaneInfo
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+void CPeninputLafDataFSQ::GetTopAndBottomPaneInfo( const TRect& aParentWndRect,
+ TInt aLayoutType,
+ TInt aLayoutParam,
+ CPeninputQwtLayoutDataInfo& aDataInfo )
+ {
+ TAknWindowLineLayout linelayout;
+ TAknLayoutRect layoutrect;
+
+ TAknLayoutRect keypadRect, keypaneRect, keycellRect, keylabelRect;
+ TAknLayoutRect pic3paneRect;
+
+ TPoint base;
+ TRect rectBottomWin, rectICFBg, rectICF, rectICFpane;
+ TAknTextLineLayout cellText;
+ TAknLayoutText txt;
+ TInt pic3pLeftWidth, pic3pRightWidth;
+
+ base = aParentWndRect.iTl;
+ TRect rect = aParentWndRect;
+ rect.Move( - base.iX, - base.iY );
+ aDataInfo.iClientRect = rect;
+ aDataInfo.iQwtRect = aParentWndRect;
+
+ TInt v1, v2;
+ switch ( aLayoutType )
+ {
+ case ELayout10x3:
+ {
+ v1 = 0;
+ v2 = 0;
+ break;
+ }
+ case ELayout11x3:
+ {
+ v1 = 1;
+ v2 = 2;
+ break;
+ }
+ case ELayout11x4:
+ {
+ v1 = 1;
+ v2 = 3;
+ break;
+ }
+ default:
+ {
+ v1 = 0;
+ v2 = 0;
+ }
+ }
+
+ // Bottom pane rect
+ linelayout = AknLayoutScalable_Avkon::popup_fep_vkbss_window(0).LayoutLine();
+ layoutrect.LayoutRect( aParentWndRect, linelayout );
+ rectBottomWin = layoutrect.Rect();
+
+ // ICF pane rect
+ linelayout = AknLayoutScalable_Avkon::popup_fep_vkb_icf_pane(0).LayoutLine();
+ layoutrect.LayoutRect( aParentWndRect, linelayout );
+ rectICFpane = layoutrect.Rect();
+
+ // ICF bg pane rect
+ linelayout = AknLayoutScalable_Avkon::bg_icf_pane(0).LayoutLine();
+ layoutrect.LayoutRect( rectICFpane, linelayout );
+ rectICFBg = layoutrect.Rect();
+
+ // ICF area rect
+ linelayout = AknLayoutScalable_Avkon::list_vkb_icf_pane(0).LayoutLine();
+ layoutrect.LayoutRect( rectICFBg, linelayout );
+ rectICF = layoutrect.Rect();
+
+ aDataInfo.iICF.iRect = rectICF;
+ cellText = AknLayoutScalable_Avkon::list_vkb_icf_pane_t1(0, 0, 0).LayoutLine();
+ aDataInfo.iICF.iPromptTextFont = AknLayoutUtils::FontFromId(cellText.iFont, NULL);
+ txt.LayoutText( rectICF, cellText );
+ aDataInfo.iICF.iPromptTextRect = txt.TextRect();
+ cellText = AknLayoutScalable_Avkon::list_vkb_icf_pane_t1(0, 0, 1).LayoutLine();
+ aDataInfo.iICF.iTextFont = AknLayoutUtils::FontFromId(cellText.iFont, NULL);
+ txt.LayoutText( rectICF, cellText );
+ aDataInfo.iICF.iTextRect = txt.TextRect();
+
+ // icf indicator
+ TAknWindowLineLayout icfIndiPaneWithText, icfIndiPaneWithoutText,
+ indiIconWithText, indiIconWithoutText, indiText;
+ TAknLayoutRect icfIndiPaneRectWithText, icfIndiPaneRectWithoutText,
+ indiIconRectWithText, indiIconRectWithoutText, indiTextRect;
+ TAknTextLineLayout indiTextLayout;
+
+ icfIndiPaneWithText = AknLayoutScalable_Avkon::icf_edit_indi_pane(1).LayoutLine();
+ icfIndiPaneRectWithText.LayoutRect( rectICF, icfIndiPaneWithText );
+ aDataInfo.iIndiPaneRectWithTextForFSQ = icfIndiPaneRectWithText.Rect();
+
+ icfIndiPaneWithoutText = AknLayoutScalable_Avkon::icf_edit_indi_pane(0).LayoutLine();
+ icfIndiPaneRectWithoutText.LayoutRect( rectICF, icfIndiPaneWithoutText );
+ aDataInfo.iIndiPaneRectWithoutTextForFSQ = icfIndiPaneRectWithoutText.Rect();
+
+ aDataInfo.iIndiIconRectWithTextForFSQ = TRect( 0, 0, 60, 20 );
+ aDataInfo.iIndiIconRectWithoutTextForFSQ = TRect( 0, 0, 60, 20 );
+
+ indiTextLayout = AknLayoutScalable_Avkon::icf_edit_indi_pane_t1(0).LayoutLine();
+ aDataInfo.iIndiTextForFSQ = indiTextLayout;
+
+ // keypad pane rect
+ linelayout = AknLayoutScalable_Avkon::grid_vkbss_keypad_pane(v1).LayoutLine();
+ keypadRect.LayoutRect( rectBottomWin, linelayout );
+
+ // key pane rect
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(v2).LayoutLine();
+ keypaneRect.LayoutRect( keypadRect.Rect(), linelayout );
+
+ // key cell rect
+ linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(v2).LayoutLine();
+ keycellRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ // key label rect
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(v2).LayoutLine();
+ keylabelRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ // pic3pane rect
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane(v2).LayoutLine();
+ pic3paneRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g1(0).LayoutLine();
+ layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout );
+ pic3pLeftWidth = layoutrect.Rect().Width();
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g3(0).LayoutLine();
+ layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout );
+ pic3pRightWidth = layoutrect.Rect().Width();
+
+ TRect rectXPane = keypaneRect.Rect();
+ rect = keycellRect.Rect();
+ rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY );
+ TRect rectXBorder = rect;
+ rect = keylabelRect.Rect();
+ rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY );
+ TRect rectXInner = rect;
+ rect = pic3paneRect.Rect();
+ rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY );
+ TRect rect3PicPane = rect;
+ rectXPane.Move( - rectXPane.iTl );
+
+ rect = keypadRect.Rect();
+ rect.Move( - base.iX, - base.iY );
+ TRect rectOfKeypad = rect;
+ TRect rectOfButtons = rectOfKeypad;
+ rectOfKeypad.iBr.iY -= keypaneRect.Rect().Height();
+ rectOfButtons.iTl.iY += rectOfKeypad.Height();
+
+ TInt spaceBtnWidth = rectOfButtons.Width() - rectXPane.Width() * 8;
+ TInt dx = rectOfButtons.iTl.iX;
+ TInt dy = rectOfButtons.iTl.iY;
+
+ aDataInfo.iCloseButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iCloseButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ dx += rectXPane.Width();
+
+ aDataInfo.iShiftButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iShiftButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ dx += rectXPane.Width();
+
+ aDataInfo.iMultiRangeButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iMultiRangeButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ dx += rectXPane.Width();
+
+ aDataInfo.iLeftButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iLeftButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ dx += rectXPane.Width();
+
+ TInt expand = spaceBtnWidth - rectXPane.Width();
+ aDataInfo.iSpaceButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iSpaceButton.iRect.Resize( expand, 0 );
+ aDataInfo.iSpaceButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ aDataInfo.iSpaceButton.iInnerRect.Resize( expand, 0 );
+ aDataInfo.iSpaceButtonEx.iIconsFrameRect = OffsetRect( rect3PicPane, dx, dy );
+ aDataInfo.iSpaceButtonEx.iIconsFrameRect.Resize( expand, 0 );
+ aDataInfo.iSpaceButtonEx.iMiddleIconRect =
+ aDataInfo.iSpaceButtonEx.iIconsFrameRect;
+ aDataInfo.iSpaceButtonEx.iMiddleIconRect.iTl.iX += pic3pLeftWidth;
+ aDataInfo.iSpaceButtonEx.iMiddleIconRect.iBr.iX -= pic3pRightWidth;
+ dx += spaceBtnWidth;
+
+ aDataInfo.iRightButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iRightButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ dx += rectXPane.Width();
+
+ aDataInfo.iOptionButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iOptionButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ dx += rectXPane.Width();
+
+ aDataInfo.iEnterButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iEnterButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+ dx += rectXPane.Width();
+
+ aDataInfo.iClearButton.iRect = OffsetRect( rectXBorder, dx, dy );
+ aDataInfo.iClearButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
+
+ // preview popup window
+ TAknWindowLineLayout previewWnd, previewWndInner;
+ TAknLayoutRect previewWndRect, previewWndInnerRect;
+ previewWnd = AknLayoutScalable_Avkon::popup_fep_char_preview_window(aLayoutParam).LayoutLine();
+ previewWndRect.LayoutRect( aParentWndRect, previewWnd );
+ previewWndInner = AknLayoutScalable_Avkon::bg_popup_fep_char_preview_window_g9().LayoutLine();
+ previewWndInnerRect.LayoutRect( previewWndRect.Rect(), previewWndInner );
+ aDataInfo.iPreviewWndRect = previewWndRect.Rect();
+ aDataInfo.iPreviewWndInnerRect = previewWndInnerRect.Rect();
+ aDataInfo.iPreviewWndText = AknLayoutScalable_Avkon::popup_fep_char_preview_window_t1(
+ aLayoutParam).LayoutLine();
+ }
+// ---------------------------------------------------------------------------
// CPeninputLafDataVKB::NewL( TInt aLayoutType )
// (other items were commented in a header)
// ---------------------------------------------------------------------------
@@ -1147,6 +1448,10 @@
CPeninputQwtLayoutDataInfo* dataInfo = new( ELeave ) CPeninputQwtLayoutDataInfo;
TAknWindowLineLayout appWnd;
TAknWindowLineLayout wndLayout;
+ TAknWindowLineLayout linelayout;
+ TAknLayoutRect layoutrect, keypaneRect, keycellRect, keylabelRect;
+ TRect rectBottomWin, rectVkbCtrl;
+ TPoint base;
TAknWindowLineLayout keypad, cellpane;
TAknWindowLineLayout cellPaneBK;
@@ -1159,40 +1464,80 @@
TRect keyRect;
// -----------------------Landscape Mode--------------------------
appWnd = AknLayoutScalable_Avkon::application_window(0).LayoutLine();
- wndLayout = AknLayoutScalable_Avkon::popup_fep_vkb2_window(0).LayoutLine();
+ wndLayout = AknLayoutScalable_Avkon::main_fep_vtchi_ss_pane(0).LayoutLine();
wndRect.LayoutRect(appWnd.Rect(), wndLayout);
+ // Bottom pane rect
+ linelayout = AknLayoutScalable_Avkon::popup_fep_vkbss_window(0).LayoutLine();
+ layoutrect.LayoutRect( wndRect.Rect(), linelayout );
+ rectBottomWin = layoutrect.Rect();
+ base = wndRect.Rect().iTl;
// ==================10x3====================
// top pane and bottom pane
GetTopAndBottomPaneInfo( wndRect.Rect(), ELayout10x3, 0, *dataInfo );
// keypad
- keyText = AknLayoutScalable_Avkon::vkb2_cell_keypad_pane_t1(0).LayoutLine();
+ // Modify begin
+ keyText = AknLayoutScalable_Avkon::cell_vkbss_key_t1(0).LayoutLine();
+ keyText.iB += 3;
dataInfo->iKeypad.iTextLayout = keyText;
- dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId(keyText.iFont, NULL);
- //dataInfo->iKeypad.iTxtRect = keyText.TextRect();
+ dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId( keyText.iFont, NULL );
+
+ keypad = AknLayoutScalable_Avkon::grid_vkbss_keypad_pane(0).LayoutLine();
+ keypadRect.LayoutRect( rectBottomWin, keypad );
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(0).LayoutLine();
+ keypaneRect.LayoutRect( keypadRect.Rect(), linelayout );
+
+ rectVkbCtrl = keypadRect.Rect();
+ rectVkbCtrl.iBr.iY -= keypaneRect.Rect().Height();
+ dataInfo->iKeypad.iKaypadRect = rectVkbCtrl;
- keypad = AknLayoutScalable_Avkon::vkb2_area_keypad_pane(0).LayoutLine();
- keypadRect.LayoutRect(wndRect.Rect(), keypad);
- dataInfo->iKeypad.iKaypadRect = keypadRect.Rect();
- //iKeypadRect10x3 = keypadRect.Rect();
- cellPaneBK = AknLayoutScalable_Avkon::vkb2_cell_keypad_pane_g1(0, 0, 0).LayoutLine();
+ linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(0).LayoutLine();
+ keycellRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(0).LayoutLine();
+ keylabelRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ linelayout = AknLayoutScalable_Avkon::aid_vkbss_key_offset(0).LayoutLine();
+ layoutrect.LayoutRect( keypadRect.Rect(), linelayout );
+ TInt rowIndentWidth = layoutrect.Rect().Width();
+
+ TRect rectOfKeypad = RelativeRect( keypadRect.Rect(), base );
+ rectOfKeypad.iBr.iY -= keypaneRect.Rect().Height();
+
+ TRect rectXPane = RelativeRect( keypaneRect.Rect(), base );
+ TRect rectXBorder = RelativeRect( keycellRect.Rect(), base );
+ TRect rectXInner = RelativeRect( keylabelRect.Rect(), base );
+
+ rectXPane.Move( - rectOfKeypad.iTl ); //translate to keypad coord-sys
+ rectXBorder.Move( - rectOfKeypad.iTl );
+ rectXInner.Move( - rectOfKeypad.iTl );
+
for( TInt i = 0; i < KKeypadLayout[0][1]; i++)
{
+ TInt indent = ( i % 2 == 1 ) ? rowIndentWidth : 0;
for( TInt j = 0; j < KKeypadLayout[0][0]; j++)
- {
- cellpane = AknLayoutScalable_Avkon::vkb2_cell_keypad_pane(0, j, i).LayoutLine();
- cellpaneRect.LayoutRect(keypadRect.Rect(), cellpane);
- keyRect = cellpaneRect.Rect();
- keyRect.Move( -keypadRect.Rect().iTl.iX, -keypadRect.Rect().iTl.iY );
- cellPaneBKRect.LayoutRect( keyRect, cellPaneBK );
- keyBKRect = cellPaneBKRect.Rect();
- dataInfo->iKeypad.iRects.AppendL(keyBKRect);
- keyTextLayout.LayoutText(keyRect, keyText);
- dataInfo->iKeypad.iCharRects.AppendL(keyTextLayout.TextRect());
- }
+ {
+ TRect bound = rectXBorder;
+ bound.Move( j * rectXPane.Width(), i * rectXPane.Height() );
+ bound.Move( indent, 0 );
+
+ dataInfo->iKeypad.iRects.AppendL( bound );
+
+ TRect inner = rectXPane;
+ inner.Move( j * rectXPane.Width(), i * rectXPane.Height() );
+ inner.Move( indent, 0 );
+
+ TAknLayoutText keyTextLayout;
+ keyTextLayout.LayoutText( inner, keyText );
+ dataInfo->iKeypad.iCharRects.AppendL( keyTextLayout.TextRect() );
+ }
}
- keyText = AknLayoutScalable_Avkon::vkb2_cell_keypad_pane_t1(0).LayoutLine();
- dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId(keyText.iFont, NULL);
- //dataInfo->iKeypad.iTxtRect = keyText.TextRect();
+ // Modify end
+
+ // Modify begin
+ //keyText = AknLayoutScalable_Avkon::vkb2_cell_keypad_pane_t1(0).LayoutLine();
+ //dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId(keyText.iFont, NULL);
+ // Modify end
// Add candate list laf data for ITI features
// Candidate list's parent Layout window is ITUT window
@@ -1217,11 +1562,15 @@
// ==================11x3====================
dataInfo = new( ELeave ) CPeninputQwtLayoutDataInfo;
- wndLayout = AknLayoutScalable_Avkon::popup_fep_vkb2_window(0).LayoutLine();
- wndRect.LayoutRect(appWnd.Rect(), wndLayout);
+ // Modify begin
+ //wndLayout = AknLayoutScalable_Avkon::popup_fep_vkb2_window(0).LayoutLine();
+ //wndRect.LayoutRect(appWnd.Rect(), wndLayout);
+ // Modify end
// top pane and bottom pane
GetTopAndBottomPaneInfo( wndRect.Rect(), ELayout11x3, 1, *dataInfo );
// keypad
+ // Modify begin
+ /*
keypad = AknLayoutScalable_Avkon::vkb2_area_keypad_pane(1).LayoutLine();
keypadRect.LayoutRect(wndRect.Rect(), keypad);
dataInfo->iKeypad.iKaypadRect = keypadRect.Rect();
@@ -1245,7 +1594,65 @@
keyText = AknLayoutScalable_Avkon::vkb2_cell_keypad_pane_t1(1).LayoutLine();
dataInfo->iKeypad.iTextLayout = keyText;
dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId(keyText.iFont, NULL);
- //dataInfo->iKeypad.iTxtRect = keyText.TextRect();
+ */
+
+ keyText = AknLayoutScalable_Avkon::cell_vkbss_key_t1(2).LayoutLine();
+ keyText.iB += 3;
+ dataInfo->iKeypad.iTextLayout = keyText;
+ dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId( keyText.iFont, NULL );
+
+ keypad = AknLayoutScalable_Avkon::grid_vkbss_keypad_pane(1).LayoutLine();
+ keypadRect.LayoutRect( rectBottomWin, keypad );
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(2).LayoutLine();
+ keypaneRect.LayoutRect( keypadRect.Rect(), linelayout );
+
+ rectVkbCtrl = keypadRect.Rect();
+ rectVkbCtrl.iBr.iY -= keypaneRect.Rect().Height();
+ dataInfo->iKeypad.iKaypadRect = rectVkbCtrl;
+
+ linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(2).LayoutLine();
+ keycellRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(2).LayoutLine();
+ keylabelRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ linelayout = AknLayoutScalable_Avkon::aid_vkbss_key_offset(1).LayoutLine();
+ layoutrect.LayoutRect( keypadRect.Rect(), linelayout );
+ rowIndentWidth = layoutrect.Rect().Width();
+
+ rectOfKeypad = RelativeRect( keypadRect.Rect(), base );
+ rectOfKeypad.iBr.iY -= keypaneRect.Rect().Height();
+
+ rectXPane = RelativeRect( keypaneRect.Rect(), base );
+ rectXBorder = RelativeRect( keycellRect.Rect(), base );
+ rectXInner = RelativeRect( keylabelRect.Rect(), base );
+
+ rectXPane.Move( - rectOfKeypad.iTl ); //translate to keypad coord-sys
+ rectXBorder.Move( - rectOfKeypad.iTl );
+ rectXInner.Move( - rectOfKeypad.iTl );
+
+ for( TInt i = 0; i < KKeypadLayout[1][1]; i++)
+ {
+ TInt indent = ( i % 2 == 1 ) ? rowIndentWidth : 0;
+ for( TInt j = 0; j < KKeypadLayout[1][0]; j++)
+ {
+ TRect bound = rectXBorder;
+ bound.Move( j * rectXPane.Width(), i * rectXPane.Height() );
+ bound.Move( indent, 0 );
+
+ dataInfo->iKeypad.iRects.AppendL( bound );
+
+ TRect inner = rectXPane;
+ inner.Move( j * rectXPane.Width(), i * rectXPane.Height() );
+ inner.Move( indent, 0 );
+
+ TAknLayoutText keyTextLayout;
+ keyTextLayout.LayoutText( inner, keyText );
+ dataInfo->iKeypad.iCharRects.AppendL( keyTextLayout.TextRect() );
+ }
+ }
+ // Modify end
if ( isLandscape )
{
@@ -1260,11 +1667,15 @@
// ==================11x4====================
dataInfo = new( ELeave ) CPeninputQwtLayoutDataInfo;
- wndLayout = AknLayoutScalable_Avkon::popup_fep_vkb2_window(0).LayoutLine();
- wndRect.LayoutRect(appWnd.Rect(), wndLayout);
+ // Modify begin
+ //wndLayout = AknLayoutScalable_Avkon::popup_fep_vkb2_window(0).LayoutLine();
+ //wndRect.LayoutRect(appWnd.Rect(), wndLayout);
+ // Modify end
// top pane and bottom pane
GetTopAndBottomPaneInfo( wndRect.Rect(), ELayout11x4, 2, *dataInfo );
+ // Modify begin
// keypad
+ /*
keypad = AknLayoutScalable_Avkon::vkb2_area_keypad_pane(2).LayoutLine();
keypadRect.LayoutRect(wndRect.Rect(), keypad);
dataInfo->iKeypad.iKaypadRect = keypadRect.Rect();
@@ -1287,7 +1698,65 @@
keyText = AknLayoutScalable_Avkon::vkb2_cell_keypad_pane_t1(2).LayoutLine();
dataInfo->iKeypad.iTextLayout = keyText;
dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId(keyText.iFont, NULL);
- //dataInfo->iKeypad.iTxtRect = keyText.TextRect();
+ */
+
+ keyText = AknLayoutScalable_Avkon::cell_vkbss_key_t1(3).LayoutLine();
+ keyText.iB += 3;
+ dataInfo->iKeypad.iTextLayout = keyText;
+ dataInfo->iKeypad.iFont = AknLayoutUtils::FontFromId( keyText.iFont, NULL );
+
+ keypad = AknLayoutScalable_Avkon::grid_vkbss_keypad_pane(1).LayoutLine();
+ keypadRect.LayoutRect( rectBottomWin, keypad );
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(3).LayoutLine();
+ keypaneRect.LayoutRect( keypadRect.Rect(), linelayout );
+
+ rectVkbCtrl = keypadRect.Rect();
+ rectVkbCtrl.iBr.iY -= keypaneRect.Rect().Height();
+ dataInfo->iKeypad.iKaypadRect = rectVkbCtrl;
+
+ linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(3).LayoutLine();
+ keycellRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(3).LayoutLine();
+ keylabelRect.LayoutRect( keypaneRect.Rect(), linelayout );
+
+ linelayout = AknLayoutScalable_Avkon::aid_vkbss_key_offset(1).LayoutLine();
+ layoutrect.LayoutRect( keypadRect.Rect(), linelayout );
+ rowIndentWidth = layoutrect.Rect().Width();
+
+ rectOfKeypad = RelativeRect( keypadRect.Rect(), base );
+ rectOfKeypad.iBr.iY -= keypaneRect.Rect().Height();
+
+ rectXPane = RelativeRect( keypaneRect.Rect(), base );
+ rectXBorder = RelativeRect( keycellRect.Rect(), base );
+ rectXInner = RelativeRect( keylabelRect.Rect(), base );
+
+ rectXPane.Move( - rectOfKeypad.iTl ); //translate to keypad coord-sys
+ rectXBorder.Move( - rectOfKeypad.iTl );
+ rectXInner.Move( - rectOfKeypad.iTl );
+
+ for( TInt i = 0; i < KKeypadLayout[2][1]; i++)
+ {
+ TInt indent = ( i % 2 == 1 ) ? rowIndentWidth : 0;
+ for( TInt j = 0; j < KKeypadLayout[2][0]; j++)
+ {
+ TRect bound = rectXBorder;
+ bound.Move( j * rectXPane.Width(), i * rectXPane.Height() );
+ bound.Move( indent, 0 );
+
+ dataInfo->iKeypad.iRects.AppendL( bound );
+
+ TRect inner = rectXPane;
+ inner.Move( j * rectXPane.Width(), i * rectXPane.Height() );
+ inner.Move( indent, 0 );
+
+ TAknLayoutText keyTextLayout;
+ keyTextLayout.LayoutText( inner, keyText );
+ dataInfo->iKeypad.iCharRects.AppendL( keyTextLayout.TextRect() );
+ }
+ }
+ // Modify end
if ( isLandscape )
{
--- a/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -50,6 +50,7 @@
_LIT(KDisplaySpace, "\x0020");
+_LIT(KEmptyString, "");
// ---------------------------------------------------------------------------
// CPeninputGenericVkbLayoutImp::NewL
@@ -222,7 +223,23 @@
{
vkbWindow->SetSwitchlistLanguage(*aData);
vkbWindow->SetDeadKey();
- TRAP_IGNORE(vkbWindow->ConstructAccentListL(*aData));
+ if ( iLayoutType == EPluginInputModeFSQ )
+ {
+ TRAP_IGNORE(vkbWindow->ConstructFSQAccentListL( *aData ));
+ TRAP_IGNORE(vkbWindow->ConstructRangeLabelListL( *aData ));
+ }
+ else
+ {
+ TRAP_IGNORE(vkbWindow->ConstructAccentListL(*aData));
+ }
+ }
+ break;
+ case ECmdPenInputRange:
+ {
+ if ( iLayoutType == EPluginInputModeFSQ )
+ {
+ TRAP_IGNORE( vkbWindow->UpdateRangeCtrlsL());
+ }
}
break;
case ECmdPenInputIsSecretText:
@@ -278,6 +295,14 @@
iITIEnabled = CPeninputDataConverter::AnyToInt( aData );
}
break;
+ case ECmdPenInputFingerMatchIndicator:
+ {
+ if ( iLayoutType == EPluginInputModeFSQ )
+ {
+ TRAP_IGNORE( vkbWindow->UpdateIndiBubbleL( aData ));
+ }
+ }
+ break;
default:
{
}
@@ -375,11 +400,46 @@
{
if ( aInfo.Length() > 0 && !iInEditWordQueryDlg)
{
+ icf->HideBubble();
+ CPeninputGenericVkbWindow* vkbWindow =
+ static_cast<CPeninputGenericVkbWindow*>(iLayoutWindow);
+ vkbWindow->SetIndiWithTextFlag( ETrue );
+ vkbWindow->IndiBubbleWithText();
+
+ if ( vkbWindow->IndicatorData().iIndicatorImgID != 0 &&
+ vkbWindow->IndicatorData().iIndicatorMaskID != 0 &&
+ vkbWindow->IndicatorData().iIndicatorTextImgID != 0 &&
+ vkbWindow->IndicatorData().iIndicatorTextMaskID != 0 )
+ {
+ TRAP_IGNORE( vkbWindow->SetIndiBubbleImageL(
+ vkbWindow->IndicatorData().iIndicatorImgID,
+ vkbWindow->IndicatorData().iIndicatorMaskID,
+ vkbWindow->IndicatorData().iIndicatorTextImgID,
+ vkbWindow->IndicatorData().iIndicatorTextMaskID ));
+ }
icf->ShowBubble(aInfo,icf->MsgBubbleCtrl()->Rect());
}
else
{
icf->HideBubble();
+ CPeninputGenericVkbWindow* vkbWindow =
+ static_cast<CPeninputGenericVkbWindow*>(iLayoutWindow);
+ vkbWindow->SetIndiWithTextFlag( EFalse );
+ vkbWindow->IndiBubbleWithoutText();
+
+ if ( vkbWindow->IndicatorData().iIndicatorImgID != 0 &&
+ vkbWindow->IndicatorData().iIndicatorMaskID != 0 &&
+ vkbWindow->IndicatorData().iIndicatorTextImgID != 0 &&
+ vkbWindow->IndicatorData().iIndicatorTextMaskID != 0 )
+ {
+ TRAP_IGNORE( vkbWindow->SetIndiBubbleImageL(
+ vkbWindow->IndicatorData().iIndicatorImgID,
+ vkbWindow->IndicatorData().iIndicatorMaskID,
+ vkbWindow->IndicatorData().iIndicatorTextImgID,
+ vkbWindow->IndicatorData().iIndicatorTextMaskID));
+ }
+
+ icf->ShowBubble(KEmptyString, icf->MsgBubbleCtrl()->Rect());
}
}
else
--- a/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -76,6 +76,8 @@
"z:\\resource\\plugins\\peninputvkbwindowconfiginfo_" );
_LIT( KResourceFileExtName, ".RSC" );
+_LIT(KEmptyString, "");
+
// ======== MEMBER FUNCTIONS ========
// --------------------------------------------------------------------------
@@ -91,7 +93,8 @@
iPopupInited(EFalse),
iPopupSet(EFalse),
iLafMgr(NULL),
- iFirstConstruct(ETrue)
+ iFirstConstruct(ETrue),
+ iIndiWithText( EFalse )
{
}
@@ -126,6 +129,7 @@
delete iLafMgr;
iLafMgr = NULL;
delete iBmpRotator;
+ iAccentCmdList.Close();
}
void CPeninputGenericVkbWindow::ConstructL()
{
@@ -155,6 +159,14 @@
switch ( aEventType )
{
+ case EPeninputLayoutEventMultiRange:
+ {
+ if ( aCtrl->ControlId() == EPeninutWindowCtrlIdMultiRangeBtn )
+ {
+ PopupChoiceList();
+ }
+ }
+ break;
case EPeninputLayoutVkbEventResetShift:
{
HandleShiftAndCapslockBtnClicked();
@@ -165,7 +177,10 @@
if ( iPopupWnd && !iPopupWnd->Hiden() )
{
iPopupWnd->CloseWindow();
- ResetAccentButton();
+ if ( iLayoutContext->LayoutType() != EPluginInputModeFSQ )
+ {
+ ResetAccentButton();
+ }
iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStateStandby );
}
}
@@ -179,25 +194,32 @@
{
if (aCtrl->ControlId() == EPeninutWindowCtrlIdAccentPopupWindow)
{
- TInt currentRange = CPeninputDataConverter::AnyToInt(
- iLayoutContext->RequestData(EPeninputDataTypeCurrentRange));
- TInt currentAccent = CPeninputDataConverter::AnyToInt(
- iLayoutContext->RequestData(EPeninputDataTypeCurrentAccent));
-
- if ((currentRange == ERangeAccent) && (currentAccent == event->iIndex))
+ if ( iLayoutContext->LayoutType() == EPluginInputModeFSQ )
{
- iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStateStandby );
- return;
+ TRAP_IGNORE( HandleRangeListSelectedL( aCtrl, aEventData ));
}
-
- iLayoutContext->SetData( EPeninputDataTypeCurrentAccent, &(event->iIndex));
-
- // Active range, update rangebar and vkb layout
- //ChangeRange( ERangeAccent, EPeninputVkbLayoutAccented1 + 2 * event->iIndex);
- (currentRange == ERangeAccent) ? ChangeRange(ERangeAccent,
- EPeninputVkbLayoutAccented1 + 2 * event->iIndex, EFalse) :
- ChangeRange(ERangeAccent,
- EPeninputVkbLayoutAccented1 + 2 * event->iIndex, ETrue);
+ else
+ {
+ TInt currentRange = CPeninputDataConverter::AnyToInt(
+ iLayoutContext->RequestData(EPeninputDataTypeCurrentRange));
+ TInt currentAccent = CPeninputDataConverter::AnyToInt(
+ iLayoutContext->RequestData(EPeninputDataTypeCurrentAccent));
+
+ if ((currentRange == ERangeAccent) && (currentAccent == event->iIndex))
+ {
+ iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStateStandby );
+ return;
+ }
+
+ iLayoutContext->SetData( EPeninputDataTypeCurrentAccent, &(event->iIndex));
+
+ // Active range, update rangebar and vkb layout
+ //ChangeRange( ERangeAccent, EPeninputVkbLayoutAccented1 + 2 * event->iIndex);
+ (currentRange == ERangeAccent) ? ChangeRange(ERangeAccent,
+ EPeninputVkbLayoutAccented1 + 2 * event->iIndex, EFalse) :
+ ChangeRange(ERangeAccent,
+ EPeninputVkbLayoutAccented1 + 2 * event->iIndex, ETrue);
+ }
}
else if (aCtrl->ControlId() == EPeninutWindowCtrlIdSwitcherPopupWindow)
{
@@ -220,7 +242,10 @@
}
else
{
- ResetAccentButton();
+ if ( iLayoutContext->LayoutType() != EPluginInputModeFSQ )
+ {
+ ResetAccentButton();
+ }
}
iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStateStandby );
}
@@ -429,6 +454,7 @@
KAknsIIDQsnFrInputPreviewSideL,
KAknsIIDQsnFrInputPreviewMiddle,
KAknsIIDQsnFrInputPreviewSideR);
+ icf->MsgBubbleCtrl()->SetTextL( KEmptyString );
icf->InfoBubbleCtrl()->SetTextFormat(iBubbleTextLayout);
icf->InfoBubbleCtrl()->SetTextColorIndex( EAknsCIQsnTextColorsCG67 );
icf->InfoBubbleCtrl()->SetBitmapParam(NULL,
@@ -442,8 +468,11 @@
icf->SetInfoBubbleCtrlSize(TSize(iBubbleSize.iW,iBubbleSize.iH));
}
- // Range bar
- AddRangeBarL();
+ if ( !( iLayoutContext->LayoutType() == EPluginInputModeFSQ ))
+ {
+ // Range bar
+ AddRangeBarL();
+ }
// Vkb control
iVkbCtrl = CPeninputVkbCtrlExt::NewL( TRect(), UiLayout(),
@@ -527,10 +556,20 @@
KAknsIIDQsnFrKeypadButtonFrInactive );
}
- // Switch to hwr button
- AddButtonL( EPeninutWindowCtrlIdSwitchToHwrBtn,
- EPeninputLayoutEventToHwr,
- R_PENINPUT_LAYOUT_VKB_HWR );
+ if ( iLayoutContext->LayoutType() == EPluginInputModeFSQ )
+ {
+ // Switch to hwr button
+ AddButtonL( EPeninutWindowCtrlIdMultiRangeBtn,
+ EPeninputLayoutEventMultiRange,
+ R_PENINPUT_LAYOUT_FSQ_MULTIRANGE );
+ }
+ else
+ {
+ // Switch to hwr button
+ AddButtonL( EPeninutWindowCtrlIdSwitchToHwrBtn,
+ EPeninputLayoutEventToHwr,
+ R_PENINPUT_LAYOUT_VKB_HWR );
+ }
// Add popup window
AddPopupWindowL();
@@ -557,7 +596,10 @@
if ( !iPopupWnd->Hiden() )
{
iPopupWnd->CloseWindow();
- ResetAccentButton();
+ if ( iLayoutContext->LayoutType() != EPluginInputModeFSQ )
+ {
+ ResetAccentButton();
+ }
iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStateStandby );
}
@@ -683,7 +725,8 @@
TRect winRect( Rect().iTl, iLafMgr->EntirePaneRect().Size());
SetWindowRect(winRect);
- ReorgnizeTitleBar();
+ //ReorgnizeTitleBar();
+ ReorgnizeICFAndButtons();
const TInt count = controlList.Count();
TInt controlID = 0;
@@ -897,15 +940,366 @@
//
void CPeninputGenericVkbWindow::PopupChoiceList()
{
- CFepUiBaseCtrl* accentBtn = Control( EPeninutWindowCtrlIdAccentedBtn );
+ if ( iLayoutContext->LayoutType() == EPluginInputModeFSQ )
+ {
+ TRAP_IGNORE( PopupRangeListL());
+ }
+ else
+ {
+ CFepUiBaseCtrl* accentBtn = Control( EPeninutWindowCtrlIdAccentedBtn );
+
+ if ( accentBtn )
+ {
+ if(!iPopupInited)
+ TRAP_IGNORE(DoIdleConstructL());
+ iPopupWnd->Display( accentBtn->Rect() );
+ iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStatePopup );
+ }
+ }
+ }
+// ---------------------------------------------------------------------------
+// Show range list
+// ---------------------------------------------------------------------------
+//
+void CPeninputGenericVkbWindow::PopupRangeListL()
+ {
+ if ( !iPopupInited )
+ {
+ TRAP_IGNORE( DoIdleConstructL() );
+ }
+
+
+ iPopupWnd->ClearItemsL();
+ RArray<CFepLayoutChoiceList::SItem> items;
+ PrepareRangeListItems( items );
+ TInt count = items.Count();
+ for ( TInt i = 0; i < count; i++ )
+ {
+ iPopupWnd->AddItemL( items[i] );
+ }
+ items.Close();
+
+ if ( iPopupWnd->ItemsCount() < 1 )
+ {
+ return;
+ }
+
+ if ( iPopupWnd->ItemsCount() < 2 )
+ {
+ const CFepLayoutChoiceList::SItem* item = iPopupWnd->ItemByIndex( 0 );
+ CFepLayoutChoiceList::SEvent event;
+ event.iIndex = 0;
+ event.iCommand = item->iCommand;
+ TPtrC ptr;
+ ptr.Set(reinterpret_cast<TText*>(&event), sizeof(event));
+ HandleRangeListSelectedL( iPopupWnd, ptr );
+ return;
+ }
+
+ CFepUiBaseCtrl* btn = Control( EPeninutWindowCtrlIdMultiRangeBtn );
+ iPopupWnd->SetListColumnNumWithLafL( iPopupWnd->ItemsCount() );
+ iPopupWnd->SetCurrentFocusedIndex( - 1 ); //no active item
+ iPopupWnd->Display( btn->Rect() );
+ iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStatePopup );
+ }
+
+// ---------------------------------------------------------------------------
+// Handle range list event
+// ---------------------------------------------------------------------------
+//
+void CPeninputGenericVkbWindow::HandleRangeListSelectedL( CFepUiBaseCtrl* /*aCtrl*/,
+ const TDesC& aData )
+ {
+ CFepLayoutChoiceList::SEvent* event =
+ (CFepLayoutChoiceList::SEvent*)aData.Ptr();
+
+ TInt index = -1;
+ TInt range = ERangeInvalid;
+
+ if ( event->iCommand == EPeninputVkbLayoutNativeChar )
+ {
+ range = ERangeNative;
+ }
+
+ else if ( event->iCommand == EPeninputVkbLayoutNativeNumber )
+ {
+ range = ERangeNativeNumber;
+ }
- if ( accentBtn )
+ else if ( event->iCommand == EPeninputVkbLayoutLatinChar )
+ {
+ range = ERangeEnglish;
+ }
+
+ else if ( event->iCommand == EPeninputVkbLayoutLatinNumber )
+ {
+ range = ERangeNumber;
+ }
+
+ else if ( event->iCommand == EPeninputVkbLayoutSymbol )
+ {
+ range = ERangeSymbol;
+ }
+
+ else if ( event->iCommand == EPeninputVkbLayoutAccented1 )
+ {
+ index = 0;
+ range = ERangeAccent;
+ }
+
+ else if ( event->iCommand == EPeninputVkbLayoutAccented2 )
+ {
+ index = 1;
+ range = ERangeAccent;
+ }
+
+ else if ( event->iCommand == EPeninputVkbLayoutAccented3 )
+ {
+ index = 2;
+ range = ERangeAccent;
+ }
+
+ TInt currentRange = IntContext( EPeninputDataTypeCurrentRange );
+ TInt currentAccent = IntContext( EPeninputDataTypeCurrentAccent );
+
+ if ( currentRange == range )
+ {
+ if ( range != ERangeAccent || currentAccent == index )
+ {
+ iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStateStandby );
+ return;
+ }
+ }
+
+ iLayoutContext->SetData( EPeninputDataTypeCurrentAccent, &index );
+
+ if ( range != ERangeAccent )
+ {
+ ChangeRange( range );
+ }
+ else
+ {
+ ChangeRange( ERangeAccent,
+ EPeninputVkbLayoutAccented1 + 2 * index, ETrue );
+ }
+ UpdateRangeCtrlsL();
+ }
+
+// ---------------------------------------------------------------------------
+// Update state of range button
+// ---------------------------------------------------------------------------
+//
+void CPeninputGenericVkbWindow::UpdateRangeCtrlsL()
+ {
+ CAknFepCtrlCommonButton* rangeBtn =
+ static_cast<CAknFepCtrlCommonButton*>(
+ Control(EPeninutWindowCtrlIdMultiRangeBtn));
+ if ( !rangeBtn )
+ {
+ return;
+ }
+
+ RArray<CFepLayoutChoiceList::SItem> items;
+ PrepareRangeListItems( items );
+ TInt count = items.Count();
+ items.Close();
+
+ TInt languageId = IntContext( EPeninputDataTypeInputLanguage );
+ TInt range = IntContext( EPeninputDataTypeCurrentRange );
+
+ TInt resId = -1;
+ TInt aplhaRangeResId = -1;
+ TInt numberRangeResId = -1;
+ GetRangeIconResource( languageId, aplhaRangeResId, numberRangeResId );
+
+ if ( range == ERangeEnglish || range == ERangeNative )
+ {
+ resId = aplhaRangeResId;
+ }
+ else
{
- if(!iPopupInited)
- TRAP_IGNORE(DoIdleConstructL());
- iPopupWnd->Display( accentBtn->Rect() );
- iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStatePopup );
+ resId = numberRangeResId;
+ }
+
+ rangeBtn->SetResourceId( resId );
+ rangeBtn->ConstructFromResourceL();
+ rangeBtn->SetDimmed( count < 1 );
+ }
+
+// ---------------------------------------------------------------------------
+// Get resource ids of range button icon
+// ---------------------------------------------------------------------------
+//
+void CPeninputGenericVkbWindow::GetRangeIconResource( TInt aLangId,
+ TInt& aAlphaRange,
+ TInt& aOtherRange )
+ {
+ switch ( aLangId )
+ {
+ case ELangRussian: //Cyrillic
+ case ELangBulgarian:
+ case ELangUkrainian:
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_CYRILLIC_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_CYRILLIC_NUMERIC;
+ }
+ break;
+ case ELangGreek: //Greek
+ case ELangCyprusGreek:
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_GREEK_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_GREEK_NUMERIC;
+ }
+ break;
+ case ELangHebrew: //Hebrew
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_HEBREW_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_HEBREW_NUMERIC;
+ }
+ break;
+ case ELangArabic: //Arabic
+ case ELangFarsi: //Farsi
+ case ELangUrdu: //Urdu
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_ARABIC_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_ARABIC_NUMERIC;
+ }
+ break;
+ case ELangThai: //Thai
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_THAI_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_THAI_NUMERIC;
+ }
+ break;
+ default: //others
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_LATIN_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_LATIN_NUMERIC;
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Prepare range list items
+// ---------------------------------------------------------------------------
+//
+void CPeninputGenericVkbWindow::PrepareRangeListItems(
+ RArray<CFepLayoutChoiceList::SItem>& aRangeItems )
+ {
+ aRangeItems.Reset();
+ TInt currentRange = IntContext( EPeninputDataTypeCurrentRange );
+ TInt permittedRange = IntContext( EPeninputDataTypePermittedRange );
+ TInt currentAccent = IntContext( EPeninputDataTypeCurrentAccent );
+
+ CPeninputRangeBarInfo* rbinfo= ConfigInfo()->RangeBarInfo();
+ CPeninputRangeInfo* rgninfo = NULL;
+
+ //add accent items
+ if ( permittedRange & ERangeAccent )
+ {
+ rgninfo = rbinfo->FindRange( ERangeAccent );
+ if ( rgninfo )
+ {
+ for ( TInt i = 0; i < iAccentCmdList.Count(); i++ )
+ {
+ if( currentRange != ERangeAccent || currentAccent != i )
+ {
+ aRangeItems.Append( iAccentCmdList[i] );
+ }
+ }
+ }
}
+
+ //add range items
+ CFepLayoutChoiceList::SItem item;
+
+ if ( permittedRange & ERangeNative )
+ {
+ rgninfo = rbinfo->FindRange( ERangeNative );
+ if ( rgninfo && currentRange != ERangeNative )
+ {
+ item.iCommand = EPeninputVkbLayoutNativeChar;
+ item.iText.Copy( iRangeLabels.iLabelNativeChar );
+ aRangeItems.Append( item );
+ }
+ }
+
+ if ( permittedRange & ERangeNativeNumber )
+ {
+ rgninfo = rbinfo->FindRange( ERangeNativeNumber );
+ if ( rgninfo && currentRange != ERangeNativeNumber )
+ {
+ item.iCommand = EPeninputVkbLayoutNativeNumber;
+ item.iText.Copy( iRangeLabels.iLabelNativeNumber );
+ aRangeItems.Append( item );
+ }
+ }
+
+ if ( permittedRange & ERangeEnglish )
+ {
+ rgninfo = rbinfo->FindRange( ERangeEnglish );
+ if ( rgninfo && currentRange != ERangeEnglish )
+ {
+ item.iCommand = EPeninputVkbLayoutLatinChar;
+ item.iText.Copy( iRangeLabels.iLabelLatinChar );
+ aRangeItems.Append( item );
+ }
+ }
+
+ if ( permittedRange & ERangeNumber )
+ {
+ rgninfo = rbinfo->FindRange( ERangeNumber );
+ if ( rgninfo && currentRange != ERangeNumber )
+ {
+ item.iCommand = EPeninputVkbLayoutLatinNumber;
+ item.iText.Copy( iRangeLabels.iLabelLatinNumber );
+ aRangeItems.Append( item );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Load range labels for range list
+// ---------------------------------------------------------------------------
+//
+void CPeninputGenericVkbWindow::ConstructRangeLabelListL( TInt /*aLangId*/ )
+ {
+ iRangeLabels.iLabelNativeChar.Zero();
+ iRangeLabels.iLabelNativeNumber.Zero();
+ iRangeLabels.iLabelLatinChar.Zero();
+ iRangeLabels.iLabelLatinNumber.Zero();
+ iRangeLabels.iLabelSymbol.Zero();
+ iRangeLabels.iLabelAccent.Zero();
+
+ TInt resid = R_PENINPUT_LAYOUT_VKB_RANGES;
+
+ TResourceReader reader;
+ CCoeEnv::Static()->CreateResourceReaderLC( reader, resid );
+ TPtrC ptr1 = reader.ReadTPtrC();
+ TPtrC ptr2 = reader.ReadTPtrC();
+ TPtrC ptr3 = reader.ReadTPtrC();
+ TPtrC ptr4 = reader.ReadTPtrC();
+ TPtrC ptr5 = reader.ReadTPtrC();
+ TPtrC ptr6 = reader.ReadTPtrC();
+
+ iRangeLabels.iLabelNativeChar.Copy( ptr1 );
+ iRangeLabels.iLabelNativeNumber.Copy( ptr2 );
+ iRangeLabels.iLabelLatinChar.Copy( ptr3 );
+ iRangeLabels.iLabelLatinNumber.Copy( ptr4 );
+ iRangeLabels.iLabelSymbol.Copy( ptr5 );
+ iRangeLabels.iLabelAccent.Copy( ptr6 );
+
+ CleanupStack::PopAndDestroy( 1 ); //reader
+ }
+
+// ---------------------------------------------------------------------------
+// Utils to get context value
+// ---------------------------------------------------------------------------
+//
+TInt CPeninputGenericVkbWindow::IntContext( TPeninputDataType aDataIndex )
+ {
+ return CPeninputDataConverter::AnyToInt(
+ iLayoutContext->RequestData( aDataIndex ));
}
// --------------------------------------------------------------------------
@@ -1246,8 +1640,14 @@
//
void CPeninputGenericVkbWindow::SetSwitchlistSecretFlag(TBool aSecret)
{
- static_cast<CPeninputLayoutInputmodelChoice*>
- (Control(EPeninutWindowCtrlIdSwitcherPopupWindow))->SetSecretEditor(aSecret);
+ CPeninputLayoutInputmodelChoice* choiceList =
+ static_cast<CPeninputLayoutInputmodelChoice*>(
+ Control(EPeninutWindowCtrlIdSwitcherPopupWindow ));
+
+ if ( choiceList )
+ {
+ choiceList->SetSecretEditor( aSecret );
+ }
//disable or enable arrow keys of FSQ in secret editor.
}
@@ -1680,7 +2080,7 @@
TRAP_IGNORE( iLafMgr->UpdateLafDataL() );
}
-void CPeninputGenericVkbWindow::ReorgnizeTitleBar()
+void CPeninputGenericVkbWindow::ReorgnizeICFAndButtons()
{
TRect rect;
@@ -1721,6 +2121,20 @@
icfFont->FontMaxHeight(),
icfFont));
+ if ( iLayoutContext->LayoutType() == EPluginInputModeFSQ )
+ {
+ iLafMgr->GetButtonRect(
+ EPeninutWindowCtrlIdMultiRangeBtn, exRect, inRect );
+ exRect.Move(x, y);
+ inRect.Move(x, y);
+ static_cast<CAknFepCtrlEventButton*>
+ ( Control( EPeninutWindowCtrlIdMultiRangeBtn ))->SizeChanged(
+ exRect, inRect, ETrue );
+
+ TRAP_IGNORE( icf->MsgBubbleCtrl()->SetTextL( KEmptyString ));
+ iIndiWithText = EFalse;
+ IndiBubbleWithoutText();
+ }
iLafMgr->GetButtonRect(EPeninutWindowCtrlIdOptionBtn,exRect ,inRect);
exRect.Move(x, y);
@@ -1885,6 +2299,88 @@
iPopupInited = ETrue;
iPopupSet = ETrue;
}
+// ---------------------------------------------------------------------------
+// Load accent labels for range list
+// ---------------------------------------------------------------------------
+//
+void CPeninputGenericVkbWindow::ConstructFSQAccentListL( TInt aLangId )
+ {
+ iAccentCmdList.Reset();
+
+ TBool is10x3 = ( aLangId == ELangEnglish ) || ( aLangId == ELangAmerican )
+ || ( aLangId == ELangDutch) || (aLangId == ELangTagalog )
+ || ( aLangId == ELangIndonesian) || (aLangId == ELangMalay );
+
+ if ( aLangId == ELangVietnamese )
+ {
+ _LIT( KVietAccentList1, "\x00E0 - \x013A" );
+ _LIT( KVietAccentList2, "\x013C - \x017E" );
+
+ CFepLayoutChoiceList::SItem item;
+
+ item.iCommand = EPeninputVkbLayoutAccented1;
+ item.iText.Copy( KVietAccentList1 );
+ iAccentCmdList.Append( item );
+
+ item.iCommand = EPeninputVkbLayoutAccented2;
+ item.iText.Copy( KVietAccentList2 );
+ iAccentCmdList.Append( item );
+ }
+
+ // 10X3
+ else if ( is10x3 )
+ {
+ _LIT( KVietAccentList1, "\x00E0 - \x0121" );
+ _LIT( KVietAccentList2, "\x0123 - \x014F" );
+ _LIT( KVietAccentList3, "\x0151 - \x017E" );
+
+ CFepLayoutChoiceList::SItem item;
+
+ item.iCommand = EPeninputVkbLayoutAccented1;
+ item.iText.Copy( KVietAccentList1 );
+ iAccentCmdList.Append( item );
+
+ item.iCommand = EPeninputVkbLayoutAccented2;
+ item.iText.Copy( KVietAccentList2 );
+ iAccentCmdList.Append( item );
+
+
+ item.iCommand = EPeninputVkbLayoutAccented3;
+ item.iText.Copy( KVietAccentList3 );
+ iAccentCmdList.Append( item );
+ }
+ //10X4
+ else
+ {
+ // Add item
+ TResourceReader reader;
+ CFepLayoutChoiceList::SItem item;
+
+ item.iCommand = EPeninputVkbLayoutAccented1;
+ CCoeEnv::Static()->CreateResourceReaderLC( reader, R_PENINPUT_VKB_ACCENT1 );
+ TPtrC p1 = reader.ReadTPtrC();
+ item.iText.Copy( p1 );
+ iAccentCmdList.Append( item );
+ CleanupStack::PopAndDestroy( 1 ); //reader
+
+ item.iCommand = EPeninputVkbLayoutAccented2;
+ CCoeEnv::Static()->CreateResourceReaderLC( reader, R_PENINPUT_VKB_ACCENT2 );
+ TPtrC p2 = reader.ReadTPtrC();
+ item.iText.Copy( p2 );
+ iAccentCmdList.Append( item );
+ CleanupStack::PopAndDestroy( 1 ); //reader
+
+ item.iCommand = EPeninputVkbLayoutAccented3;
+ CCoeEnv::Static()->CreateResourceReaderLC( reader, R_PENINPUT_VKB_ACCENT3 );
+ TPtrC p3 = reader.ReadTPtrC();
+ item.iText.Copy( p3 );
+ iAccentCmdList.Append( item );
+ CleanupStack::PopAndDestroy( 1 );//reader
+ }
+
+ iPopupInited = ETrue;
+ iPopupSet = ETrue;
+ }
void CPeninputGenericVkbWindow::UpdateICFTextL()
{
CFepLayoutMultiLineIcf* icf =
@@ -2101,4 +2597,208 @@
return matchlistcolor;
}
+void CPeninputGenericVkbWindow::SetIndiBubbleImageL( const TInt aImgID1,
+ const TInt aMaskID1,
+ const TInt aImgID2,
+ const TInt aMaskID2 )
+ {
+ MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+
+ CFbsBitmap* bmp1 = NULL;
+ CFbsBitmap* mask1 = NULL;
+
+ TInt colorIndex = EAknsCIQsnIconColorsCG30;
+
+ AknsUtils::CreateColorIconL(skininstance,
+ KAknsIIDQsnIconColors,
+ KAknsIIDQsnIconColors,
+ colorIndex,
+ bmp1,
+ mask1,
+ AknIconUtils::AvkonIconFileName(),
+ aImgID1,
+ aMaskID1,
+ KRgbGray);
+ CleanupStack::PushL( bmp1 );
+ CleanupStack::PushL( mask1 );
+
+ AknIconUtils::GetContentDimensions(bmp1, iIndicatorSize);
+
+ CFbsBitmap* bmp2 = NULL;
+ CFbsBitmap* mask2 = NULL;
+ AknsUtils::CreateColorIconL(skininstance,
+ KAknsIIDQsnIconColors,
+ KAknsIIDQsnIconColors,
+ colorIndex,
+ bmp2,
+ mask2,
+ AknIconUtils::AvkonIconFileName(),
+ aImgID2,
+ aMaskID2,
+ KRgbGray);
+
+ CleanupStack::PushL( bmp2 );
+ CleanupStack::PushL( mask2 );
+
+ AknIconUtils::GetContentDimensions(bmp2, iIndicatorTextSize);
+
+ TRect boundRect;
+ if ( iIndiWithText )
+ {
+ boundRect = iLafMgr->IndiIconRectWithText();
+ }
+ else
+ {
+ boundRect = iLafMgr->IndiIconRectWithoutText();
+ }
+
+ TRect imgrect, textrect;
+
+ CalIndicatorRect(boundRect, imgrect, textrect, EIndiAlignCenter);
+ AknIconUtils::SetSize(bmp1, imgrect.Size(), EAspectRatioNotPreserved);
+ AknIconUtils::SetSize(mask1, imgrect.Size(), EAspectRatioNotPreserved);
+ AknIconUtils::SetSize(bmp2, textrect.Size(), EAspectRatioNotPreserved);
+ AknIconUtils::SetSize(mask2, textrect.Size(), EAspectRatioNotPreserved);
+
+ CFbsBitmap* bmp3 = AknPenImageUtils::CombineTwoImagesL(bmp1, bmp2, bmp1->DisplayMode());
+ CFbsBitmap* mask3 = AknPenImageUtils::CombineTwoImagesL(mask1, mask2, EGray256);
+
+ CFepLayoutMultiLineIcf* icf = static_cast<CFepLayoutMultiLineIcf*>
+ (Control(EPeninputWindowCtrlIdMultiLineICF));
+ icf->MsgBubbleCtrl()->SetBitmapParam( bmp3, mask3,
+ KAknsIIDQsnFrInputPreviewSideL,
+ KAknsIIDQsnFrInputPreviewMiddle,
+ KAknsIIDQsnFrInputPreviewSideR );
+
+ CleanupStack::PopAndDestroy( mask2 );
+ CleanupStack::PopAndDestroy( bmp2 );
+ CleanupStack::PopAndDestroy( mask1 );
+ CleanupStack::PopAndDestroy( bmp1 );
+ }
+
+void CPeninputGenericVkbWindow::CalIndicatorRect(const TRect& aBoundRect,
+ TRect& aRealRect1,
+ TRect& aRealRect2,
+ TIndicatorAlign aAlign)
+ {
+ TInt imgAspectText = iIndicatorTextSize.iWidth / iIndicatorTextSize.iHeight;
+ TInt imgAspectIndi = iIndicatorSize.iWidth / iIndicatorSize.iHeight;
+ TSize imgSizeText( aBoundRect.Size().iHeight * imgAspectText,
+ aBoundRect.Size().iHeight );
+ TSize imgSizeIndi( aBoundRect.Size().iHeight * imgAspectIndi,
+ aBoundRect.Size().iHeight );
+ // check if the length of img > bound rect width
+ TInt nTotalWidth = imgSizeText.iWidth + imgSizeIndi.iWidth;
+ if( nTotalWidth > aBoundRect.Size().iWidth )
+ {
+ TReal nAspect = (TReal)imgSizeText.iWidth / nTotalWidth;
+ imgSizeText.iWidth = aBoundRect.Size().iWidth * nAspect;
+ imgSizeIndi.iWidth = aBoundRect.Size().iWidth - imgSizeText.iWidth;
+ imgSizeText.iHeight = imgSizeText.iWidth / imgAspectText;
+ // make sure the height of two rect is equal
+ imgSizeIndi.iHeight = imgSizeText.iHeight;
+ }
+ if( aAlign == EIndiAlignRight )
+ {
+ aRealRect2 = TRect(TPoint( aBoundRect.iBr.iX - imgSizeText.iWidth, aBoundRect.iTl.iY),
+ imgSizeText);
+ aRealRect1 = TRect(TPoint(aRealRect2.iTl.iX - imgSizeIndi.iWidth, aRealRect2.iTl.iY),
+ imgSizeIndi);
+ }
+ else if( aAlign == EIndiAlignCenter )
+ {
+ TInt offsetX = ( aBoundRect.Size().iWidth - imgSizeText.iWidth - imgSizeIndi.iWidth ) / 2;
+ TInt offsetY = ( aBoundRect.Size().iHeight - imgSizeText.iHeight ) / 2;
+ aRealRect2 = TRect( TPoint( aBoundRect.iBr.iX - imgSizeText.iWidth - offsetX,
+ aBoundRect.iTl.iY + offsetY),
+ imgSizeText );
+ aRealRect1 = TRect( TPoint(aRealRect2.iTl.iX - imgSizeIndi.iWidth, aRealRect2.iTl.iY),
+ imgSizeIndi );
+ }
+ else if( aAlign == EIndiAlignLeft )
+ {
+ aRealRect1 = TRect( aBoundRect.iTl, imgSizeIndi );
+ aRealRect2 = TRect( TPoint( aRealRect1.iBr.iX, aRealRect1.iTl.iY ), imgSizeText );
+ }
+ }
+
+void CPeninputGenericVkbWindow::IndiBubbleWithText()
+ {
+ CFepLayoutMultiLineIcf* icf = static_cast<CFepLayoutMultiLineIcf*>
+ (Control(EPeninputWindowCtrlIdMultiLineICF));
+ if ( icf )
+ {
+ TAknTextLineLayout textLine = iLafMgr->IndiText();
+ TRect bubbleRect = iLafMgr->IndiPaneRectWithText();
+ TRect iconRect = iLafMgr->IndiIconRectWithText();
+ TSize offset( 60, 6 );
+ TSize size( iconRect.Width(), iconRect.Height());
+
+ icf->MsgBubbleCtrl()->SetRect( bubbleRect );
+ icf->MsgBubbleCtrl()->SetIconOffsetAndSize( offset, size );
+ icf->MsgBubbleCtrl()->SetTextFormat( textLine );
+ icf->MsgBubbleCtrl()->SetTextColorIndex( EAknsCIQsnTextColorsCG67 );
+ }
+ }
+
+void CPeninputGenericVkbWindow::IndiBubbleWithoutText()
+ {
+ CFepLayoutMultiLineIcf* icf = static_cast<CFepLayoutMultiLineIcf*>
+ (Control(EPeninputWindowCtrlIdMultiLineICF));
+ if ( icf )
+ {
+ TRect bubbleRect = iLafMgr->IndiPaneRectWithoutText();
+ TRect iconRect = iLafMgr->IndiIconRectWithoutText();
+ TSize offset( 0, 6 );
+ TSize size( iconRect.Width(), iconRect.Height());
+
+ icf->MsgBubbleCtrl()->SetRect( bubbleRect );
+ icf->MsgBubbleCtrl()->SetIconOffsetAndSize( offset, size );
+ }
+ }
+
+void CPeninputGenericVkbWindow::SetIndiWithTextFlag( TBool aFlag )
+ {
+ iIndiWithText = aFlag;
+ }
+
+void CPeninputGenericVkbWindow::UpdateIndiBubbleL( TUint8* aData )
+ {
+ CFepLayoutMultiLineIcf* icf = static_cast<CFepLayoutMultiLineIcf*>
+ (Control(EPeninputWindowCtrlIdMultiLineICF));
+
+ RDesReadStream readStream;
+ TFepIndicatorInfo indicatorData;
+
+ TPtr8 countPtr( aData, 4*sizeof(TInt), 4*sizeof(TInt) );
+ readStream.Open(countPtr);
+ CleanupClosePushL(readStream);
+
+ indicatorData.iIndicatorImgID = readStream.ReadInt32L();
+ indicatorData.iIndicatorMaskID = readStream.ReadInt32L();
+ indicatorData.iIndicatorTextImgID = readStream.ReadInt32L();
+ indicatorData.iIndicatorTextMaskID = readStream.ReadInt32L();
+
+ CleanupStack::PopAndDestroy(&readStream);
+
+ if ( indicatorData.iIndicatorImgID != 0 &&
+ indicatorData.iIndicatorMaskID != 0 &&
+ indicatorData.iIndicatorTextImgID != 0 &&
+ indicatorData.iIndicatorTextMaskID != 0 )
+ {
+ SetIndicatorData( indicatorData );
+
+ if ( icf )
+ {
+ SetIndiBubbleImageL( indicatorData.iIndicatorImgID,
+ indicatorData.iIndicatorMaskID,
+ indicatorData.iIndicatorTextImgID,
+ indicatorData.iIndicatorTextMaskID );
+
+ TBuf<100> text;
+ icf->MsgBubbleCtrl()->GetText( text );
+ icf->ShowBubble( text, icf->MsgBubbleCtrl()->Rect());
+ }
+ }
+ }
// End Of File
--- a/textinput/peninputgenericvkb/srcdata/peninputvkbwindow.rss Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputgenericvkb/srcdata/peninputvkbwindow.rss Fri Mar 12 15:44:07 2010 +0200
@@ -28,6 +28,7 @@
// User includes
#include "peninputcommonlayout.rh"
#include "peninputgenericvkb.hrh"
+#include "peninputgenericvkb.rh"
#include <peninputgenericvkbaccentlist.loc>
// Resource identifiers
@@ -203,14 +204,14 @@
//controltype = EPeninputCtrlTypeEventBtn;
//controleventid = EPeninputLayoutEventBack;
image = r_peninput_layout_vkb_enter;
- },
- PENINPUT_LAYOUT_CONTROL_INFO
- {
- id = EPeninutWindowCtrlIdSwitcherPopupWindow;
- //controltype = EPeninputCtrlTypePopupInputModeChoiceList;
- //controleventid = ;
- image = r_peninput_layout_vkb_hwr;
}
+ //PENINPUT_LAYOUT_CONTROL_INFO
+ // {
+ // id = EPeninutWindowCtrlIdSwitcherPopupWindow;
+ // //controltype = EPeninputCtrlTypePopupInputModeChoiceList;
+ // //controleventid = ;
+ // image = r_peninput_layout_vkb_hwr;
+ // }
};
}
// end by vv
@@ -533,20 +534,20 @@
bmpfile=PENINPUT_LAYOUT_VKB_BMP;
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputgenericvkbQgn_indi_input_backspace;
- nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_backspace_mask;
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
nactiveskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- nactivep=EMbmPeninputgenericvkbQgn_indi_input_backspace;
- nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_backspace_mask;
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
nactivepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
- active=EMbmPeninputgenericvkbQgn_indi_input_backspace;
- activemsk=EMbmPeninputgenericvkbQgn_indi_input_backspace_mask;
+ active=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
activeskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- activep=EMbmPeninputgenericvkbQgn_indi_input_backspace;
- activepmsk=EMbmPeninputgenericvkbQgn_indi_input_backspace_mask;
+ activep=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
activepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
}
@@ -560,20 +561,20 @@
bmpfile=PENINPUT_LAYOUT_VKB_BMP;
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputgenericvkbQgn_indi_itut_backspace;
- nactivemsk=EMbmPeninputgenericvkbQgn_indi_itut_backspace_mask;
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
nactiveskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- nactivep=EMbmPeninputgenericvkbQgn_indi_itut_backspace;
- nactivepmsk=EMbmPeninputgenericvkbQgn_indi_itut_backspace_mask;
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
nactivepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
- active=EMbmPeninputgenericvkbQgn_indi_itut_backspace;
- activemsk=EMbmPeninputgenericvkbQgn_indi_itut_backspace_mask;
+ active=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
activeskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- activep=EMbmPeninputgenericvkbQgn_indi_itut_backspace;
- activepmsk=EMbmPeninputgenericvkbQgn_indi_itut_backspace_mask;
+ activep=EMbmPeninputgenericvkbQgn_indi_input_backspace1;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_backspace1_mask;
activepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
}
@@ -1007,6 +1008,358 @@
bgimgskinid = EAknsMinorGenericQgnGrafInputBg;
}
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_fsq_multirange
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE PENINPUT_FSQQWERTY_RANGELABELS r_peninput_layout_vkb_ranges
+ {
+ nativeChar = qtn_tin_vkb_native_characters_range;
+ nativeNumber = qtn_tin_vkb_native_numbers_symbols;
+ latinChar = qtn_tin_vkb_alpha_range;
+ latinNumber = qtn_tin_vkb_numbers_symbols;
+ }
+
+//for Cyrillic
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_cyrillic_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_cyrillic_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_cyrillic_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+//for Greek
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_greek_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_greek_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_greek_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+//for Hebrew
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_hebrew_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_hebrew_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hebrew_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+//for Arabic, Farsi and Urdu
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_arabic_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_arabic_indic_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_arabic_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_arabic_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+
+//for Thai
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_thai_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_thai_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_thai_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+//for Latin
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_latin_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_latin_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
+ disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
RESOURCE AKN_FEP_SCROLLABLE_LIST_IMAGE r_peninput_fsq_candidate_list
{
bmpfile = PENINPUT_LAYOUT_VKB_BMP;
--- a/textinput/peninputsplititut/group/iconlist.txt Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/group/iconlist.txt Fri Mar 12 15:44:07 2010 +0200
@@ -46,3 +46,4 @@
-c8,8 qgn_indi_input_list_collapse.svg
-c8,8 qgn_indi_input_backspace.svg
-c8,8 qgn_indi_input_shift.svg
+-c8,8 qgn_indi_input_backspace1.svg
--- a/textinput/peninputsplititut/group/peninputsplititut.mmp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/group/peninputsplititut.mmp Fri Mar 12 15:44:07 2010 +0200
@@ -42,6 +42,7 @@
SOURCE peninputsplititutchnuistatepinyincomposition.cpp peninputsplititutwesternuimgr.cpp peninputsplititutwesternuistatenonpredict.cpp
SOURCE peninputsplititutconverter.cpp peninputcommonbgctrl.cpp
+SOURCE peninputsplititutwesternuistatespelling.cpp
USERINCLUDE ../inc
--- a/textinput/peninputsplititut/inc/peninputsplititutdata.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutdata.h Fri Mar 12 15:44:07 2010 +0200
@@ -80,6 +80,18 @@
EPreviewBubbleInnerRect,
EPreviewBubbleFont,
EPreviewBubbleTextlayout,
+ ESpellICFRect,
+ EBtnTextLine,
+ EItutPosOk,
+ EItutPosCancel,
+ EIcfFont,
+ ESpellEditIndicatorRect,
+ EImIndicatorRect,
+ ESpellBackSpcae,
+ ESpellBackSpcaeInner,
+ EIndiPaneWithoutTextRect,
+ EIndiIconWithoutTextRect,
+ EIndiTextLine
};
enum TControlId
@@ -98,7 +110,10 @@
ECtrlIdPuncCandsList,
ECtrlIdBackground, // used to display background
ECtrlIdCancelWindow,
- ECtrlIdLastStdCtrl = ECtrlIdBackground + 1
+ ECtrlIdICF,
+ ECtrlIdOkBtn,
+ ECtrlIdCancelBtn,
+ ECtrlIdLastStdCtrl = ECtrlIdCancelBtn+ 1
};
enum TItutCommand
@@ -110,6 +125,7 @@
EItutCmdPredictItemSelected,
EItutCmdArrowUp,
EItutCmdArrowDown,
+ EItutExtCmdSizeChanged,
EItutCmdCheckIcfEmpty
};
--- a/textinput/peninputsplititut/inc/peninputsplititutdatamgr.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutdatamgr.h Fri Mar 12 15:44:07 2010 +0200
@@ -188,6 +188,40 @@
inline void SetLatinOnly( TBool aLatinOnly );
/**
+ * Is in Spell mode
+ *
+ * @since S60 v5.0
+ * @return TBool
+ */
+ inline TBool IsSpellMode();
+
+ /**
+ * Set Spell mode flag
+ *
+ * @since S60 v5.0
+ * @param aSpellMode Spell mode flag
+ * @return void
+ */
+ inline void SetSpellMode(TBool aSpellMode);
+
+ /**
+ * Set Indicator Data
+ *
+ * @since S60 v5.0
+ * @param aIndicatorData Indicator Data
+ * @return void
+ */
+ inline void SetIndicatorData(TFepIndicatorInfo &aIndicatorData);
+
+ /**
+ * Get Indicator Data
+ *
+ * @since S60 v5.0
+ * @return TFepIndicatorInfo
+ */
+ inline TFepIndicatorInfo IndicatorData();
+
+ /**
* Set update flag
*
* @since S60 v5.0
@@ -393,6 +427,13 @@
* @return resource id
*/
TInt HindiKeypadResourceId();
+public:
+ TInt iIcfTextLeftMargin;
+ TInt iIcfTextRightMargin;
+ TInt iIcfTextTopMargin;
+ TInt iIcfTextBottomMargin;
+ TInt iIcfTextLineSpaceMargin;
+ TInt iIcfTextHeight;
private: // data member
RPointerArray<MItutPropertySubscriber> iSubscriberList;
@@ -406,6 +447,7 @@
// offset of layout, compare to screen
TPoint iLayoutOffset;
TRect iLayoutRect;
+ TRect iLayoutRectSpell;
TRect iBackgroundRect;
TRect iBackspaceRect;
@@ -498,7 +540,33 @@
TBool iExistPlusChar;
TBool iPlusCharFlagChanged;
TBool iNumberOnly;
+ // For spell mode
+ TBool iSpellMode;
+ TRect iSpellICFRect;
+ TRect iSpellEditIndicator;
+ TRect iOkRect;
+ TRect iCancelRect;
+ CFont* iIcfFont;
+ TInt iIcfTextAlignment;
+
+ // Spell Back space rect
+ TRect iSpellBackSpcace;
+ TRect iSpellBackSpcaceInner;
+
+ // Left&Right arrow
+ TRect iSpellArrowLeftRect;
+ TRect iSpellArrowLeftRectInner;
+ TRect iSpellArrowRightRect;
+ TRect iSpellArrowRightRectInner;
+
+ //TRect iIndiPaneRectWithTextForPrtWest;
+ TRect iIndiPaneRectWithoutTextForPrtWest;
+ //TRect iIndiIconRectWithTextForPrtWest;
+ TRect iIndiIconRectWithoutTextForPrtWest;
+ TAknTextLineLayout iIndiTextForPrtWest;
+ TAknTextLineLayout iSpellBtnTextFormat;
+ TFepIndicatorInfo iIndicatorData;
};
// ---------------------------------------------------------------------------
@@ -547,6 +615,46 @@
}
// ---------------------------------------------------------------------------
+// CSplitItutDataMgr::IsSpellMode
+// ---------------------------------------------------------------------------
+//
+inline TBool CSplitItutDataMgr::IsSpellMode()
+ {
+ return iSpellMode;
+ }
+
+// ---------------------------------------------------------------------------
+// CSplitItutDataMgr::SetSpellMode
+// ---------------------------------------------------------------------------
+//
+inline void CSplitItutDataMgr::SetSpellMode(TBool aSpellMode)
+ {
+ iSpellMode = aSpellMode;
+ }
+
+// ---------------------------------------------------------------------------
+// CSplitItutDataMgr::SetIndicatorData
+// ---------------------------------------------------------------------------
+//
+inline void CSplitItutDataMgr::SetIndicatorData(TFepIndicatorInfo &aIndicatorData)
+ {
+ iIndicatorData.iIndicatorImgID = aIndicatorData.iIndicatorImgID;
+ iIndicatorData.iIndicatorMaskID = aIndicatorData.iIndicatorMaskID;
+ iIndicatorData.iIndicatorTextImgID = aIndicatorData.iIndicatorTextImgID;
+ iIndicatorData.iIndicatorTextMaskID = aIndicatorData.iIndicatorTextMaskID;
+ }
+
+// ---------------------------------------------------------------------------
+// CSplitItutDataMgr::IndicatorData
+// ---------------------------------------------------------------------------
+//
+inline TFepIndicatorInfo CSplitItutDataMgr::IndicatorData()
+ {
+ return iIndicatorData;
+ }
+
+
+// ---------------------------------------------------------------------------
// CSplitItutDataMgr::IsValidLanguage
// ---------------------------------------------------------------------------
//
--- a/textinput/peninputsplititut/inc/peninputsplititutlayout.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutlayout.h Fri Mar 12 15:44:07 2010 +0200
@@ -60,6 +60,15 @@
~CSplitItutUiLayout();
/**
+ * Process text update
+ *
+ * @since S60 v5.0
+ * @param aData context data
+ * @return TInt
+ */
+ TInt OnAppEditorTextComing(const TFepInputContextFieldData& aData);
+
+ /**
* handle control event
*
* @since S60 v5.0
@@ -188,6 +197,14 @@
* @return None
*/
void ApplyVariantLafDataL(TBool aResolutionChange = EFalse);
+ /**
+ * apply spell modelaf data
+ *
+ * @since S60 v5.0
+ * @return None
+ */
+ void ApplyVariantLafDataForSpellL();
+
/**
* get ui manager
--- a/textinput/peninputsplititut/inc/peninputsplititutlayoutcontext.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutlayoutcontext.h Fri Mar 12 15:44:07 2010 +0200
@@ -49,6 +49,7 @@
virtual CFepUiLayout* UiLayout() = 0;
virtual TBool IsSecretEdtior() = 0;
virtual void ApplyVariantLafDataL(TBool aResolutionChange = EFalse) = 0;
+ virtual void ApplyVariantLafDataForSpellL() = 0;
virtual CSplitItutWindowManager* UiManager() = 0;
};
--- a/textinput/peninputsplititut/inc/peninputsplititutuimgrbase.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutuimgrbase.h Fri Mar 12 15:44:07 2010 +0200
@@ -47,7 +47,8 @@
EStateComposition,
EStatePredict,
// western ui state
- EStateWesternStandby
+ EStateWesternStandby,
+ EStateSpelling
};
public:
--- a/textinput/peninputsplititut/inc/peninputsplititutwesternuimgr.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutwesternuimgr.h Fri Mar 12 15:44:07 2010 +0200
@@ -133,6 +133,12 @@
* own
*/
CSplitItutUiStateBase* iNormalState;
+
+ /**
+ * Spell state.
+ * own
+ */
+ CSplitItutUiStateBase* iSpellState;
};
#endif // C_WESTERNSPLITITUTUIMGR_H
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputsplititut/inc/peninputsplititutwesternuistatespelling.h Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+
+#ifndef C_WESTERNITUTUISTATESPELLING_H
+#define C_WESTERNITUTUISTATESPELLING_H
+
+#include "peninputsplititutuistatebase.h"
+
+class CFepLayoutMultiLineIcf;
+class CAknFepCtrlCommonButton;
+
+class CWesternSplitItutUiStateSpelling : public CSplitItutUiStateBase
+ {
+public:
+ static CWesternSplitItutUiStateSpelling* NewL(CSplitItutUiMgrBase* aOwner);
+
+ ~CWesternSplitItutUiStateSpelling();
+
+ void OnExit();
+
+ void OnEntryL();
+
+ CSplitItutUiMgrBase::TUiState StateType();
+
+ TInt HandleCommandL(TInt aCmd, TUint8* aData);
+
+ TBool HandleCtrlEventL(TInt aEventType,
+ CFepUiBaseCtrl* aCtrl,
+ const TDesC& aEventData);
+
+protected:
+ CWesternSplitItutUiStateSpelling(CSplitItutUiMgrBase* aOwner);
+ void ConstructL();
+ void CreateTextBtnIfNeededL(CAknFepCtrlCommonButton*& aBtn,
+ TInt aCtrlId,
+ TInt aCtrlPos,
+ TInt aTextResId,
+ TAknTextLineLayout aTextFormat);
+ void ReCalcLayoutL();
+private:
+ CFepLayoutMultiLineIcf* iICF;
+ CAknFepCtrlCommonButton* iOk;
+ CAknFepCtrlCommonButton* iCancel;
+ };
+
+#endif //C_WESTERNITUTUISTATESPELLING_H
\ No newline at end of file
--- a/textinput/peninputsplititut/inc/peninputsplititutwindow.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutwindow.h Fri Mar 12 15:44:07 2010 +0200
@@ -22,6 +22,7 @@
#include <peninputlayout.h>
#include <peninputpluginutils.h>
#include <peninputinputcontextfield.h>
+#include <peninputlayoutmultilineicf.h>
#include <peninputlayoutvkb.h>
#include "peninputsplititutwindowmanager.h"
@@ -83,6 +84,14 @@
*/
~CSplitItutWindow();
+
+ /**
+ * Get Icf pointer
+ *
+ * @since S60 v5.0
+ * @return CFepLayoutMultiLineIcf*
+ */
+ inline CFepLayoutMultiLineIcf* Icf();
/**
* get pen input type
*
@@ -145,6 +154,14 @@
void ConstructItutKeypadFromResourceL(TInt aResId);
/**
+ * construct icf from resource
+ *
+ * @since S60 5.0
+ * @return None
+ */
+ void ConstructIcfFromResourceL();
+
+ /**
* handle skin change
*
* @since S60 5.0
@@ -160,6 +177,14 @@
* @return None
*/
void ApplyVariantLafDataL(TBool aResolutionChange = EFalse);
+
+ /**
+ * apply spell variant laf data
+ *
+ * @since S60 5.0
+ * @return None
+ */
+ void ApplyVariantLafDataForSpellL();
/**
* construct spell control
@@ -204,7 +229,47 @@
* @return None
*/
void HandleButtonResOnLangDirChangeL( TInt aControlId );
+
+ /**
+ * Set prompt text
+ *
+ * @since S60 5.0
+ * @param aData text
+ * @return None
+ */
+ void SetPromptTextL( TUint8* aData );
+ /**
+ * Set bubble
+ *
+ * @since S60 5.0
+ * @return None
+ */
+ void SetIndiBubble();
+
+ /**
+ * Update bubble prompt text
+ *
+ * @since S60 5.0
+ * @param aData text
+ * @return None
+ */
+ void UpdateIndiBubbleL( TUint8* aData );
+
+ /**
+ * Set bubble image
+ *
+ * @since S60 5.0
+ * @param aImgID1 image ID1
+ * @param aMaskID1 mask image id1
+ * @param aImgID2 image ID2
+ * @param aMaskID2 mask image id2
+ * @return None
+ */
+ void SetIndiBubbleImageL( const TInt aImgID1,
+ const TInt aMaskID1,
+ const TInt aImgID2,
+ const TInt aMaskID2 );
private:
/**
* C++ constructor
@@ -317,7 +382,7 @@
* @param aRectIdx
* @return None
*/
- void SetCtrlRect(CFepUiBaseCtrl* aCtrl, TInt aRectIdx);
+ void SetCtrlRect(CFepUiBaseCtrl* aCtrl, TInt aRectIdx, const TBool aOffset = EFalse);
/**
* resize candidate list
@@ -403,7 +468,15 @@
const TInt aInnerRectId,
const TInt aResourceId,
const TInt aCommand = KUnavailableID);
-
+
+ /**
+ * Create ICF for spell mode
+ *
+ * @since S60 5.0
+ * @return None
+ */
+ void CreateICFL();
+
/**
* Check control size change
*
@@ -463,6 +536,21 @@
* @return None
*/
void SetUnicodesForHardKey1L(CVirtualKey* aKey, const TDesC& aMapData);
+
+ /**
+ * Indicator rect
+ *
+ * @since S60 5.0
+ * @param aBoundRect
+ * @param aRealRect1
+ * @param aRealRect2
+ * @param aAlign
+ * @return None
+ */
+ void CalIndicatorRect( const TRect& aBoundRect,
+ TRect& aRealRect1,
+ TRect& aRealRect2,
+ TIndicatorAlign aAlign );
private:
/**
* ITUT keypad.
@@ -533,6 +621,11 @@
* symbol data for chinese
*/
TFepSymbolOfHardwareOne iSymbolData;
+
+ TSize iIndicatorSize;
+ TSize iIndicatorTextSize;
+ TBool iImDimensionSet;
+ CFepLayoutMultiLineIcf* iICF;
};
// ---------------------------------------------------------------------------
@@ -543,5 +636,13 @@
{
return iStandardItutKp;
}
-
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::Icf
+// ---------------------------------------------------------------------------
+//
+inline CFepLayoutMultiLineIcf* CSplitItutWindow::Icf()
+ {
+ return iICF;
+ }
#endif //C_SPLITITUTWINDOW_H
--- a/textinput/peninputsplititut/inc/peninputsplititutwindowmanager.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/inc/peninputsplititutwindowmanager.h Fri Mar 12 15:44:07 2010 +0200
@@ -64,6 +64,15 @@
~CSplitItutWindowManager();
/**
+ * Process text update
+ *
+ * @since S60 v5.0
+ * @param aData context data
+ * @return TInt
+ */
+ TInt OnAppEditorTextComing(const TFepInputContextFieldData& aData);
+
+ /**
* Handle control event
*
* @since Series 60 5.0
@@ -187,6 +196,14 @@
*/
void ApplyVariantLafDataL(TBool aResolutionChange);
+ /**
+ * apply spell variant laf data
+ *
+ * @since S60 5.0
+ * @return None
+ */
+ void ApplyVariantLafDataForSpellL();
+
/**
* apply variant laf data
*
@@ -249,6 +266,15 @@
* @return none
*/
void ConstructL();
+
+ /**
+ * Set prompt text
+ *
+ * @since S60 5.0
+ * paran aData
+ * @return none
+ */
+ void SetPromptTextL( TUint8* aData );
private:
/**
--- a/textinput/peninputsplititut/src/peninputsplititutdatamgr.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/src/peninputsplititutdatamgr.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -167,6 +167,8 @@
splitpanerect.LayoutRect(spliwndtrect.Rect(), splitpane);
iLayoutRect = spliwndtrect.Rect();
+ // spell layout rect
+ iLayoutRectSpell = rect;
iLayoutOffset = spliwndtrect.Rect().iTl;
iBackgroundRect = iLayoutRect;
iBackgroundRect.Move(-iLayoutOffset);
@@ -290,6 +292,120 @@
AknLayoutScalable_Avkon::popup_fshwr2_char_preview_window_t1(0).LayoutLine();
previewWndText.LayoutText(previewWndRect.Rect(), iPreviewWndText);
iBubbleFont = const_cast<CFont*>(previewWndText.Font());
+
+ // for spell window
+ // OK and Cancel button
+ TAknWindowLineLayout spellwnd, softkeypane, okkeypane, cancelkeypane ;
+ TAknLayoutRect spellwndtrect, softkeypanerect, okkeyRect, cancelkeyRect ;
+
+ spellwnd = AknLayoutScalable_Avkon::popup_fep_ituss_window(1).LayoutLine();
+ spellwndtrect.LayoutRect(rect, spellwnd);
+
+ softkeypane = AknLayoutScalable_Avkon::ituss_sks_pane().LayoutLine();
+ softkeypanerect.LayoutRect(spellwndtrect.Rect(), softkeypane);
+
+ okkeypane = AknLayoutScalable_Avkon::ituss_sks_pane_g1().LayoutLine();
+ okkeyRect.LayoutRect(softkeypanerect.Rect(), okkeypane);
+ iOkRect = okkeyRect.Rect();
+
+ iSpellBtnTextFormat = AknLayoutScalable_Avkon::ituss_sks_pane_t1().LayoutLine();
+ iSpellBtnTextFormat.ir = 7;
+
+ cancelkeypane = AknLayoutScalable_Avkon::ituss_sks_pane_g2().LayoutLine();
+ cancelkeyRect.LayoutRect(softkeypanerect.Rect(), cancelkeypane);
+ iCancelRect = cancelkeyRect.Rect();
+
+ // icf in spell mode
+ TAknWindowLineLayout icfpane, querypane, focuspane, backkeyInnerpane, backkeypane,
+ middleInnerBtn;
+ TAknLayoutRect icfpaneRect, querypaneRect, focuspaneRect, backInnerRect, backkeyRect,
+ middleButton, middleInnerRect;
+
+ icfpane = AknLayoutScalable_Avkon::popup_fep_vtchi_icf_pane(1).LayoutLine();
+ icfpaneRect.LayoutRect(rect, icfpane);
+
+ querypane = AknLayoutScalable_Avkon::vtchi_query_pane().LayoutLine();
+ querypaneRect.LayoutRect(icfpaneRect.Rect(), querypane);
+
+ focuspane = AknLayoutScalable_Avkon::vtchi_query_pane(0).LayoutLine();
+ focuspaneRect.LayoutRect(querypaneRect.Rect(), focuspane);
+ iSpellICFRect = focuspaneRect.Rect();
+
+ TRect middleButtonPaneRect = spellwndtrect.Rect();
+ middleButtonPaneRect.Move( 5, 3 );
+
+ TRect cellSpellRect;
+ cellSpellRect.iTl = middleButtonPaneRect.iTl;
+ cellSpellRect.SetHeight( itucellrect.Rect().Height());
+ cellSpellRect.SetWidth( itucellrect.Rect().Width());
+
+ // Left
+ middleButton.LayoutRect( cellSpellRect, ituinnercell );
+ iSpellArrowLeftRect = middleButton.Rect();
+
+ middleInnerBtn = AknLayoutScalable_Avkon::cell_ituss_key_pane_g1(2).LayoutLine();
+ middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn );
+ iSpellArrowLeftRectInner = middleInnerRect.Rect();
+
+ // Right
+ cellSpellRect.Move( itucellrect.Rect().Width(), 0 );
+ middleButton.LayoutRect( cellSpellRect, ituinnercell );
+ iSpellArrowRightRect = middleButton.Rect();
+
+ middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn );
+ iSpellArrowRightRectInner = middleInnerRect.Rect();
+
+
+ // backspace in spell mode
+
+ cellSpellRect.Move( itucellrect.Rect().Width(), 0 );
+ middleButton.LayoutRect( cellSpellRect, ituinnercell );
+ iSpellBackSpcace = middleButton.Rect();
+
+ middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn );
+ iSpellBackSpcaceInner = middleInnerRect.Rect();
+
+
+
+ // icf indicator
+ TAknWindowLineLayout icfIndiPaneWithoutText, indiIcon, indiText;
+ TAknLayoutRect icfIndiPaneRectWithoutText, indiIconRect, indiTextRect;
+ TAknTextLineLayout indiTextLayout;
+
+
+
+ icfIndiPaneWithoutText = AknLayoutScalable_Avkon::icf_edit_indi_pane(0).LayoutLine();
+ icfIndiPaneRectWithoutText.LayoutRect(icfpaneRect.Rect(), icfIndiPaneWithoutText);
+ iIndiPaneRectWithoutTextForPrtWest = icfIndiPaneRectWithoutText.Rect();
+
+
+ iIndiIconRectWithoutTextForPrtWest = TRect( 0, 0, 60, 20 );
+
+ indiTextLayout = AknLayoutScalable_Avkon::icf_edit_indi_pane_t1(0).LayoutLine();
+ iIndiTextForPrtWest = indiTextLayout;
+
+ // ICF text line info
+ TAknTextLineLayout icftextT1, icftextT2, icftextT3;
+ icftextT1 = AknLayoutScalable_Avkon::vtchi_query_pane_t1(0).LayoutLine();
+ icftextT2 = AknLayoutScalable_Avkon::vtchi_query_pane_t2(0).LayoutLine();
+ icftextT3 = AknLayoutScalable_Avkon::vtchi_query_pane_t3(0).LayoutLine();
+
+ iIcfTextAlignment = icftextT1.iJ;
+ iIcfTextLeftMargin = icftextT1.il;
+ iIcfTextRightMargin = icftextT1.ir;
+
+ TAknLayoutText ctxt1, ctxt2, ctxt3;
+ ctxt1.LayoutText( focuspaneRect.Rect(), icftextT1 );
+ ctxt2.LayoutText( focuspaneRect.Rect(), icftextT2 );
+ ctxt3.LayoutText( focuspaneRect.Rect(), icftextT3 );
+
+ iIcfTextTopMargin = ctxt1.TextRect().iTl.iY - focuspaneRect.Rect().iTl.iY;
+ iIcfTextLineSpaceMargin = ctxt2.TextRect().iTl.iY - ctxt1.TextRect().iBr.iY;
+ iIcfTextBottomMargin = focuspaneRect.Rect().iBr.iY - ctxt3.TextRect().iBr.iY
+ - iIcfTextLineSpaceMargin;
+ iIcfTextHeight = ctxt1.TextRect().Height();
+
+ iIcfFont = const_cast<CFont*>(AknLayoutUtils::FontFromId(icftextT1.iFont, NULL));
}
// ---------------------------------------------------------------------------
@@ -453,9 +569,9 @@
case ELayoutOffset:
return &iLayoutOffset;
case ELayoutRect:
- return &iLayoutRect;
+ return iSpellMode ? &iLayoutRectSpell : &iLayoutRect;
case EBackgroundRect:
- return &iBackgroundRect;
+ return iSpellMode ? &iLayoutRectSpell : &iBackgroundRect;
case EBackspaceRect:
return IsChinese() ? &iBackspaceCnRect : &iBackspaceRect;
case EKeypadRect:
@@ -512,11 +628,23 @@
return &iPuncCandidates;
*/
case EArrowLeftRect:
- // case EItutPosArrowLeft:
- return IsChinese() ? &iArrowLeftCnRect : &iArrowLeftRect;
+ if( iSpellMode )
+ {
+ return &iSpellArrowLeftRect;
+ }
+ else
+ {
+ return IsChinese() ? &iArrowLeftCnRect : &iArrowLeftRect;
+ }
case EArrowRightRect:
-// case EItutPosArrowRight:
- return IsChinese() ? &iArrowRightCnRect : &iArrowRightRect;
+ if( iSpellMode )
+ {
+ return &iSpellArrowRightRect;
+ }
+ else
+ {
+ return IsChinese() ? &iArrowRightCnRect : &iArrowRightRect;
+ }
case EArrowUpRect:
// case EItutPosArrowUp:
return &iArrowUpRect;
@@ -536,9 +664,23 @@
return &iCloseRect;
#endif
case ELeftInnerRect:
- return IsChinese() ? &iArrowLeftInnerCnRect : &iArrowLeftInnerRect;
+ if( iSpellMode )
+ {
+ return &iSpellArrowLeftRectInner;
+ }
+ else
+ {
+ return IsChinese() ? &iArrowLeftInnerCnRect : &iArrowLeftInnerRect;
+ }
case ERightInnerRect:
- return IsChinese() ? &iArrowRightInnerCnRect : &iArrowRightInnerRect;
+ if( iSpellMode )
+ {
+ return &iSpellArrowRightRectInner;
+ }
+ else
+ {
+ return IsChinese() ? &iArrowRightInnerCnRect : &iArrowRightInnerRect;
+ }
case EBackspaceInnerRect:
return IsChinese() ? &iBackspaceInnerCnRect : &iBackspaceInnerRect;
case EUpInnerRect:
@@ -567,6 +709,30 @@
return &iPreviewWndText;
case EPreviewBubbleFont:
return reinterpret_cast<TAny*>(iBubbleFont);
+ case EItutPosOk:
+ return &iOkRect;
+ case EItutPosCancel:
+ return &iCancelRect;
+ case EBtnTextLine:
+ return &iSpellBtnTextFormat;
+ case ESpellICFRect:
+ return &iSpellICFRect;
+ case ESpellEditIndicatorRect:
+ return &iSpellEditIndicator;
+ case EIcfFont:
+ return reinterpret_cast<TAny*>(iIcfFont);
+ case EImIndicatorRect:
+ return &iSpellEditIndicator;
+ case ESpellBackSpcae:
+ return &iSpellBackSpcace;
+ case ESpellBackSpcaeInner:
+ return &iSpellBackSpcaceInner;
+ case EIndiPaneWithoutTextRect:
+ return &iIndiPaneRectWithoutTextForPrtWest;
+ case EIndiIconWithoutTextRect:
+ return &iIndiIconRectWithoutTextForPrtWest;
+ case EIndiTextLine:
+ return &iIndiTextForPrtWest;
default:
break;
}
@@ -588,7 +754,8 @@
iCase(EAknEditorUpperCase),
iConfigResId(0),
iLayoutContext(aLayoutContext),
- iCurrentScriptIdx(KInvalidIndex)
+ iCurrentScriptIdx(KInvalidIndex),
+ iSpellMode(EFalse)
{
}
--- a/textinput/peninputsplititut/src/peninputsplititutlayout.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/src/peninputsplititutlayout.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -86,6 +86,30 @@
}
// ---------------------------------------------------------------------------
+// CSplitItutUiLayout::OnAppEditorTextComing
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+TInt CSplitItutUiLayout::OnAppEditorTextComing(const TFepInputContextFieldData& aData)
+ {
+ TInt err = 0;
+ if ( iDataMgr->IsSpellMode())
+ {
+ // Update the icf text
+ err = iWindowMgr->OnAppEditorTextComing( aData );
+ }
+
+ // notify icf has text or not
+ if ( UiMgr()->CurrentState() &&
+ UiMgr()->CurrentState()->StateType() == CSplitItutUiMgrBase::EStateSpelling )
+ {
+ TRAP_IGNORE(UiMgr()->HandleCommandL(EItutCmdCheckIcfEmpty, NULL));
+ }
+
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
// CSplitItutUiLayout::ConstructL
// (other items were commented in a header)
// ---------------------------------------------------------------------------
@@ -184,6 +208,7 @@
case ECmdPenInputFingerLongKeyPress:
case ECmdPenInputCase:
case ECmdPenInputFingerMatchSelection:
+ case ECmdPenInputFingerSpelling:
{
if (UiMgr())
{
@@ -207,6 +232,7 @@
{
TRAP_IGNORE(ChineseUiManager()->HandleCommandL(ECmdPenInputNoFreeSpace, NULL));
}
+ case ECmdPenInputSetPromptText:
case ECmdPenInputFingerMatchIndicator:
case ECmdPenInputSendEditMenuData:
case ECmdPenInputEnableSettingBtn:
@@ -422,6 +448,12 @@
SetRect(TItutDataConverter::AnyToRect(iDataMgr->RequestData(ELayoutRect)));
TPoint offset = TItutDataConverter::AnyToPoint(iDataMgr->RequestData(ELayoutOffset));
+
+ if(iDataMgr->IsSpellMode())
+ {
+ offset = TPoint(0,0);
+ }
+
LayoutOwner()->SetPosition( offset );
iWindowMgr->OnActivate();
@@ -470,6 +502,16 @@
{
iWindowMgr->ApplyVariantLafDataL(aResolutionChange);
}
+
+// ---------------------------------------------------------------------------
+// CSplitItutUiLayout::ApplyVariantLafDataForSpellL
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+void CSplitItutUiLayout::ApplyVariantLafDataForSpellL()
+ {
+ iWindowMgr->ApplyVariantLafDataForSpellL();
+ }
// ---------------------------------------------------------------------------
// CSplitItutUiLayout::UiManager
--- a/textinput/peninputsplititut/src/peninputsplititutwesternuimgr.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/src/peninputsplititutwesternuimgr.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -20,6 +20,7 @@
#include "peninputsplititutdata.h"
#include "peninputsplititutdatamgr.h"
#include "peninputsplititutwesternuistatenonpredict.h"
+#include "peninputsplititutwesternuistatespelling.h"
#include "peninputsplititutlayoutcontext.h"
#include "peninputsplititutlayout.h"
#include "peninputsplititutwindowmanager.h"
@@ -54,6 +55,7 @@
}
delete iNormalState;
+ delete iSpellState;
}
// ---------------------------------------------------------------------------
@@ -77,6 +79,7 @@
CSplitItutUiMgrBase::ConstructL();
iNormalState = CWesternSplitItutUiStateNonPredict::NewL(this);
+ iSpellState = CWesternSplitItutUiStateSpelling::NewL(this);
}
// ---------------------------------------------------------------------------
@@ -115,6 +118,11 @@
newstate = iNormalState;
}
break;
+ case CSplitItutUiMgrBase::EStateSpelling:
+ {
+ newstate = iSpellState;
+ }
+ break;
default:
return;
}
@@ -169,7 +177,8 @@
//
TInt CWesternSplitItutUiMgr::HandleCommandL(TInt aCmd, TUint8* aData)
{
- if ( aCmd == ECmdPenInputFingerMatchSelection )
+ if ( aCmd == ECmdPenInputFingerMatchSelection ||
+ aCmd == ECmdPenInputFingerSpelling )
{
if (!(*(reinterpret_cast<TBool*>(aData))))
{
@@ -190,7 +199,13 @@
return KErrNone;
}
}
- break;
+ case ECmdPenInputFingerSpelling:
+ {
+ SetCurrentStateL(CSplitItutUiMgrBase::EStateSpelling);
+ return KErrNone;
+ }
+ // Modify warning
+ //break;
default:
break;
}
--- a/textinput/peninputsplititut/src/peninputsplititutwesternuistatenonpredict.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/src/peninputsplititutwesternuistatenonpredict.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -121,7 +121,10 @@
}
else
{
- iOwner->LayoutContext()->ShowArrowBtn(EBtnArrowLeft | EBtnArrowRight);
+ iOwner->LayoutContext()->ShowArrowBtn(EBtnArrowLeft | EBtnArrowRight);
+ iOwner->LayoutContext()->Control(ECtrlIdOptions)->Hide(EFalse);
+ iOwner->LayoutContext()->Control(ECtrlIdClose)->Hide(EFalse);
+
if(iOwner->LayoutContext()->IsSecretEdtior())
{
CAknFepCtrlRawKeyButton * leftbtn;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputsplititut/src/peninputsplititutwesternuistatespelling.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -0,0 +1,216 @@
+/*
+* Copyright (c) 2002-2005 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: drop-down list control
+*
+*/
+
+
+#include <AknFepGlobalEnums.h>
+#include <peninputsplititutnew.rsg>
+#include <peninputlayoutmultilineicf.h>
+#include <StringLoader.h>
+#include <peninputcommonbutton.h>
+#include <peninputlayout.h>
+#include <peninputcmd.h>
+#include <peninputlabel.h>
+
+#include "peninputsplititutwesternuistatespelling.h"
+#include "peninputsplititutuimgrbase.h"
+#include "peninputsplititutdatamgr.h"
+#include "peninputsplititutlayoutcontext.h"
+#include "peninputsplititutconverter.h"
+#include "peninputsplititutlayout.h"
+#include "peninputcommonbgctrl.h"
+#include "peninputsplititutwindowmanager.h"
+#include "peninputsplititutwindow.h"
+
+CWesternSplitItutUiStateSpelling* CWesternSplitItutUiStateSpelling::NewL(CSplitItutUiMgrBase* aOwner)
+ {
+ CWesternSplitItutUiStateSpelling* self = new (ELeave) CWesternSplitItutUiStateSpelling(aOwner);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CWesternSplitItutUiStateSpelling::~CWesternSplitItutUiStateSpelling()
+ {
+ }
+
+CWesternSplitItutUiStateSpelling::CWesternSplitItutUiStateSpelling(CSplitItutUiMgrBase* aOwner)
+ :CSplitItutUiStateBase(aOwner)
+ {
+ iICF = static_cast<CFepLayoutMultiLineIcf*>(iOwner->LayoutContext()->Control(ECtrlIdICF));
+ }
+
+void CWesternSplitItutUiStateSpelling::ConstructL()
+ {
+ CSplitItutUiStateBase::ConstructL();
+ }
+
+void CWesternSplitItutUiStateSpelling::CreateTextBtnIfNeededL(CAknFepCtrlCommonButton*& aBtn,
+ TInt aCtrlId,
+ TInt aCtrlPos,
+ TInt aTextResId,
+ TAknTextLineLayout aTextFormat)
+ {
+ if (!aBtn)
+ {
+ aBtn = CAknFepCtrlCommonButton::NewL(iOwner->LayoutContext()->UiLayout(),
+ aCtrlId,
+ KAknsIIDQsnFrFunctionButtonNormal,
+ KAknsIIDQsnFrFunctionButtonPressed,
+ KAknsIIDQsnFrFunctionButtonInactive);
+ aBtn->SetRect(TItutDataConverter::AnyToRect(iOwner->DataMgr()->RequestData(aCtrlPos)));
+ HBufC* btntext = StringLoader::LoadLC(aTextResId);
+ aBtn->SetTextFormat(aTextFormat);
+ aBtn->SetTextL(*btntext);
+ aBtn->SetTextColorIndex( EAknsCIQsnTextColorsCG65 );
+ CleanupStack::PopAndDestroy(btntext);
+ iOwner->LayoutContext()->UiLayout()->AddControlL(aBtn);
+ }
+ }
+
+void CWesternSplitItutUiStateSpelling::OnEntryL()
+ {
+ TInt keypadResId = KInvalidResId;
+ switch (iOwner->DataMgr()->InputMode())
+ {
+ case ENumber:
+ keypadResId = R_FINGER_INPUT_KEYPAD_NUMBER;
+ break;
+ case ELatin:
+ keypadResId = iOwner->DataMgr()->KeypadResourceId();
+ break;
+ default:
+ break;
+ }
+ //hide bubble in the first place.
+ iICF->HideBubble();
+
+ // update resource id of keypad
+ iOwner->DataMgr()->NotifyChangeControlLayout(
+ MItutPropertySubscriber::EItutPropertyKeypadResourceId, keypadResId);
+
+ // hide not needed controls
+ //iOwner->LayoutContext()->Control(ECtrlIdArrowLeft)->Hide(ETrue);
+ //iOwner->LayoutContext()->Control(ECtrlIdArrowRight)->Hide(ETrue);
+ iOwner->LayoutContext()->ShowArrowBtn( EBtnArrowLeft | EBtnArrowRight );
+ iOwner->LayoutContext()->Control(ECtrlIdOptions)->Hide(ETrue);
+ iOwner->LayoutContext()->Control(ECtrlIdClose)->Hide(ETrue);
+
+ TAknTextLineLayout btntextformat = TItutDataConverter::AnyToTextLine(
+ iOwner->DataMgr()->RequestData(EBtnTextLine));
+ CreateTextBtnIfNeededL(iOk, ECtrlIdOkBtn, EItutPosOk, R_PENINPUT_FINGER_OK, btntextformat);
+ iOk->SetReady(ETrue);
+ iOk->Hide(EFalse);
+ iICF->IsEmpty() ? iOk->SetDimmed(ETrue) : iOk->SetDimmed(EFalse);
+
+ CreateTextBtnIfNeededL(iCancel, ECtrlIdCancelBtn, EItutPosCancel,
+ R_PENINPUT_FINGER_CANCEL, btntextformat);
+ iCancel->SetReady(ETrue);
+ iCancel->Hide(EFalse);
+
+ iOwner->DataMgr()->SetSpellMode(ETrue);
+ iICF->SetLineSeparatorAfterPrompt(ETrue);
+
+ ReCalcLayoutL();
+
+ iICF->Hide( EFalse );
+ iOwner->DataMgr()->SetUpdate(ETrue);
+ }
+
+void CWesternSplitItutUiStateSpelling::OnExit()
+ {
+ iOk->Hide(ETrue);
+ iCancel->Hide(ETrue);
+ iOwner->DataMgr()->SetSpellMode(EFalse);
+ iICF->Hide( ETrue );
+ iOwner->LayoutContext()->ShowArrowBtn(0);
+ }
+
+CSplitItutUiMgrBase::TUiState CWesternSplitItutUiStateSpelling::StateType()
+ {
+ return CSplitItutUiMgrBase::EStateSpelling;
+ }
+
+TInt CWesternSplitItutUiStateSpelling::HandleCommandL(TInt aCmd, TUint8* /*aData*/)
+ {
+ switch (aCmd)
+ {
+ case EItutExtCmdSizeChanged:
+ {
+ ReCalcLayoutL();
+ return KErrNone;
+ }
+
+ case EItutCmdCheckIcfEmpty:
+ {
+ iICF->IsEmpty() ? iOk->SetDimmed(ETrue) : iOk->SetDimmed(EFalse);
+ return KErrNone;
+ }
+ default:
+ break;
+ }
+
+ return KErrNotSupported;
+ }
+
+TBool CWesternSplitItutUiStateSpelling::HandleCtrlEventL(TInt aEventType,
+ CFepUiBaseCtrl* aCtrl,
+ const TDesC& /*aEventData*/)
+ {
+ switch (aEventType)
+ {
+ case EEventButtonUp:
+ {
+ TInt ctrlid = aCtrl->ControlId();
+
+ if (ctrlid != ECtrlIdOkBtn && ctrlid != ECtrlIdCancelBtn)
+ {
+ return EFalse;
+ }
+
+ TBuf<4> buf;
+ TBool exitbyok = (ctrlid == ECtrlIdOkBtn);
+ buf.Append(reinterpret_cast<TText*>(&exitbyok), sizeof(TBool)/sizeof(TText));
+
+ iOwner->LayoutContext()->UiLayout()->SignalOwner(ESignalExitSpellMode, buf);
+ return ETrue;
+ }
+ default:
+ break;
+ }
+
+ return EFalse;
+ }
+
+void CWesternSplitItutUiStateSpelling::ReCalcLayoutL()
+ {
+ // Update "OK" and "Cancel" position
+ TAknTextLineLayout btntextformat = TItutDataConverter::AnyToTextLine(
+ iOwner->DataMgr()->RequestData(EBtnTextLine));
+ TRect btnrect = TItutDataConverter::AnyToRect(iOwner->DataMgr()->RequestData(EItutPosOk));
+ iOk->SetTextFormat(btntextformat);
+ iOk->SizeChanged(btnrect, btnrect, ETrue);
+
+ btnrect = TItutDataConverter::AnyToRect(iOwner->DataMgr()->RequestData(EItutPosCancel));
+ iCancel->SetTextFormat(btntextformat);
+ iCancel->SizeChanged(btnrect, btnrect, ETrue);
+
+ // Update key position
+ iOwner->LayoutContext()->ApplyVariantLafDataForSpellL();
+ }
+
+// End Of File
--- a/textinput/peninputsplititut/src/peninputsplititutwindow.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/src/peninputsplititutwindow.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -30,7 +30,8 @@
#include <peninputdropdownlist.h>
#include <s32mem.h>
#include <peninputlabel.h>
-//#include <peninputlayoutbubblectrl.h>
+#include <peninputlayoutbubblectrl.h>
+#include <aknlayoutscalable_apps.cdl.h>
#include "peninputsplititutwindow.h"
#include "peninputsplititutdatamgr.h"
@@ -42,6 +43,7 @@
#include "peninputcommonbgctrl.h"
_LIT(KBmpFileName, "z:\\resource\\apps\\peninputsplititut.mbm");
+_LIT(KEmptyString, "");
const TInt KImageMajorSkinId = EAknsMajorGeneric;
const TUint KDefaultSpellTextColor = 0;
@@ -50,6 +52,12 @@
const TInt KButtonOneUnicode = 49;
const TInt KInvalidBmp = -1;
+const TUint KDefaultIcfTextColor = 0x000000;
+const TUint KDefaultIcfFrameColor = 0x000000;
+
+
+
+
// ============================ MEMBER FUNCTIONS =============================
@@ -92,6 +100,7 @@
delete iBmpRotator;
}
+
// ---------------------------------------------------------------------------
// CSplitItutWindow::SetPropertyL
// ---------------------------------------------------------------------------
@@ -170,7 +179,7 @@
// read keypad image info
ConstructKeyImageFromResourceL( R_ITUT_KEYPAD_BITMAP );
- iStandardItutKp->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG68 );
+ iStandardItutKp->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG65 );
iStandardItutKp->SetDrawOpaqueBackground(EFalse);
// read key shift icon res
@@ -664,6 +673,125 @@
iPuncCandsList->SetDropdownListImgID(candiDrawInfo);
iPuncCandsList->Hide(ETrue);
}
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::ConstructIcfFromResourceL
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindow::ConstructIcfFromResourceL()
+ {
+ if (!iICF->ResourceId())
+ {
+ return;
+ }
+
+ TResourceReader icfreader;
+ CCoeEnv::Static()->CreateResourceReaderLC(icfreader, iICF->ResourceId());
+ TInt32 colorMajorSkinId = icfreader.ReadInt32();
+ TInt skinitemid = icfreader.ReadInt16();
+ TInt coloridx = icfreader.ReadInt16();
+
+ TAknsItemID colorid;
+ colorid.Set(TInt(colorMajorSkinId), skinitemid);
+
+ TRgb icftextcolor;
+ MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+ TInt error = AknsUtils::GetCachedColor( skininstance,
+ icftextcolor,
+ colorid,
+ coloridx );
+
+ if ( error != KErrNone )
+ {
+ icftextcolor = TRgb( KDefaultIcfTextColor );
+ }
+
+ iICF->SetTextColorL( icftextcolor );
+
+ // Set highlight color
+ TRgb icfhightlightcolor;
+ error = AknsUtils::GetCachedColor( skininstance,
+ icfhightlightcolor,
+ KAknsIIDQsnHighlightColors,
+ EAknsCIQsnHighlightColorsCG2 );
+ if ( error == KErrNone )
+ {
+ iICF->SetTextSelColorL( icfhightlightcolor );
+ }
+
+ skinitemid = icfreader.ReadInt16();
+ coloridx = icfreader.ReadInt16();
+
+ colorid.Set(TInt(colorMajorSkinId), skinitemid);
+
+ TRgb icfframecolor;
+ error = AknsUtils::GetCachedColor(skininstance,
+ icfframecolor,
+ colorid,
+ coloridx);
+
+ if ( error != KErrNone )
+ {
+ icfframecolor = TRgb(KDefaultIcfFrameColor);
+ }
+
+ iICF->SetBorderColor( icfframecolor );
+ CleanupStack::PopAndDestroy( 1 ); // icfreader
+ }
+
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::CreateICFL
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindow::CreateICFL()
+ {
+ CFont* icffont = TItutDataConverter::AnyToFont(iDataMgr->RequestData(EIcfFont));
+ TRect rect = TItutDataConverter::AnyToRect(iDataMgr->RequestData(ESpellICFRect));
+
+ // Create ICF
+ iICF = CFepLayoutMultiLineIcf::NewL( rect,
+ iLayoutOwner,
+ ECtrlIdICF,
+ iDataMgr->iIcfTextHeight,
+ icffont->FontMaxHeight(),
+ icffont );
+
+ iICF->SetFocus(ETrue);
+ iICF->SetResourceId( R_SPLIT_ITUT_ICF );
+ ConstructIcfFromResourceL();
+ iICF->SetBgImgSkinId( KAknsIIDQsnFrCall2Rect );
+
+ AddControlL( iICF );
+
+ // Set indicator parameters
+ TAknWindowLineLayout iBubbleSize = AknLayoutScalable_Apps::popup_char_count_window().LayoutLine();
+ TAknTextLineLayout iBubbleTextLayout = AknLayoutScalable_Apps::popup_char_count_window_t1(0).LayoutLine();
+
+ iICF->MsgBubbleCtrl()->SetTextFormat(iBubbleTextLayout);
+ iICF->MsgBubbleCtrl()->SetTextColorIndex( EAknsCIQsnTextColorsCG67 );
+
+ //Change the ID when ID into release
+ iICF->MsgBubbleCtrl()->SetBitmapParam( NULL,
+ NULL,
+ KAknsIIDQsnFrInputPreviewSideL,
+ KAknsIIDQsnFrInputPreviewMiddle,
+ KAknsIIDQsnFrInputPreviewSideR );
+ iICF->SetMsgBubbleCtrlSize(TSize(iBubbleSize.iW,iBubbleSize.iH));
+
+ iICF->MsgBubbleCtrl()->SetTextL( KEmptyString );
+
+ iICF->SetTextMargin( iDataMgr->iIcfTextLeftMargin,
+ iDataMgr->iIcfTextRightMargin,
+ iDataMgr->iIcfTextTopMargin,
+ iDataMgr->iIcfTextBottomMargin );
+
+ iICF->SetLineSpace( iDataMgr->iIcfTextLineSpaceMargin );
+
+ SetIndiBubble();
+ iICF->Hide( ETrue );
+ }
+
// ---------------------------------------------------------------------------
// CSplitItutWindow::ConstructL
@@ -674,6 +802,7 @@
iBmpRotator = CPeninputSyncBitmapRotator::NewL();
CreateAllButtonL();
CreateItutKeypadL();
+ CreateICFL();
}
// ---------------------------------------------------------------------------
@@ -794,9 +923,15 @@
// CSplitItutWindow::SetCtrlRect
// ---------------------------------------------------------------------------
//
-void CSplitItutWindow::SetCtrlRect(CFepUiBaseCtrl* aCtrl, TInt aRectIdx)
+void CSplitItutWindow::SetCtrlRect(CFepUiBaseCtrl* aCtrl, TInt aRectIdx, const TBool aOffset )
{
- aCtrl->SetRect(TItutDataConverter::AnyToRect(iDataMgr->RequestData(aRectIdx)));
+ TRect rect = TItutDataConverter::AnyToRect(iDataMgr->RequestData(aRectIdx));
+ if(aOffset)
+ {
+ TPoint offset = TItutDataConverter::AnyToPoint(iDataMgr->RequestData(ELayoutOffset));
+ rect.Move(offset);
+ }
+ aCtrl->SetRect(rect);
}
// ---------------------------------------------------------------------------
@@ -930,6 +1065,41 @@
iDataMgr->SetLangDirectionSwitch( EFalse );
}
}
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::ApplyVariantLafDataForSpellL
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindow::ApplyVariantLafDataForSpellL()
+ {
+ TBool bSizeChanged = EFalse;
+ ControlSizeChanged( ECtrlIdArrowLeft, EArrowLeftRect, ELeftInnerRect, ETrue );
+ ControlSizeChanged( ECtrlIdArrowRight, EArrowRightRect, ERightInnerRect, ETrue );
+
+ bSizeChanged = ControlSizeChanged( ECtrlIdBackspace, ESpellBackSpcae,
+ ESpellBackSpcaeInner, ETrue );
+
+ // resize all controls
+ SetCtrlRect( iBackgroundCtrl, EBackgroundRect );
+ SetCtrlRect( iStandardItutKp, EKeypadRect, ETrue );
+
+ // Handle control res when language direction changing here.
+ if ( iDataMgr->IsLangDirectionSwitch() ||
+ ( bSizeChanged && iDataMgr->IsRtoLLanguage()))
+ {
+ HandleButtonResOnLangDirChange( ECtrlIdBackspace );
+ iDataMgr->SetLangDirectionSwitch( EFalse );
+ }
+
+ CFont* icffont = TItutDataConverter::AnyToFont(iDataMgr->RequestData( EIcfFont ));
+ iICF->Hide( ETrue );
+ iICF->SizeChangedL( TItutDataConverter::AnyToRect( iDataMgr->RequestData( ESpellICFRect )),
+ iDataMgr->iIcfTextHeight,
+ icffont->FontMaxHeight(),
+ icffont );
+ iICF->Hide( EFalse );
+ }
+
// ---------------------------------------------------------------------------
// CSplitItutWindow::ResizeCandidateList
@@ -1275,4 +1445,241 @@
unicodesInt.Close();
}
+
+void CSplitItutWindow::UpdateIndiBubbleL( TUint8* aData )
+ {
+ RDesReadStream readStream;
+ TFepIndicatorInfo indicatorData;
+
+ TPtr8 countPtr( aData, 4*sizeof(TInt), 4*sizeof(TInt) );
+ readStream.Open(countPtr);
+ CleanupClosePushL(readStream);
+
+ indicatorData.iIndicatorImgID = readStream.ReadInt32L();
+ indicatorData.iIndicatorMaskID = readStream.ReadInt32L();
+ indicatorData.iIndicatorTextImgID = readStream.ReadInt32L();
+ indicatorData.iIndicatorTextMaskID = readStream.ReadInt32L();
+
+ CleanupStack::PopAndDestroy(&readStream);
+
+ if ( indicatorData.iIndicatorImgID != 0 &&
+ indicatorData.iIndicatorMaskID != 0 &&
+ indicatorData.iIndicatorTextImgID != 0 &&
+ indicatorData.iIndicatorTextMaskID != 0)
+ {
+ iDataMgr->SetIndicatorData( indicatorData );
+ iImDimensionSet = ETrue;
+
+ SetIndiBubbleImageL( indicatorData.iIndicatorImgID,
+ indicatorData.iIndicatorMaskID,
+ indicatorData.iIndicatorTextImgID,
+ indicatorData.iIndicatorTextMaskID );
+
+ TBuf<100> text;
+ iICF->MsgBubbleCtrl()->GetText( text );
+ iICF->ShowBubble( text, iICF->MsgBubbleCtrl()->Rect());
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::CalIndicatorRect
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindow::CalIndicatorRect(const TRect& aBoundRect,
+ TRect& aRealRect1,
+ TRect& aRealRect2,
+ TIndicatorAlign aAlign)
+ {
+ if (!iImDimensionSet)
+ {
+ return;
+ }
+
+ TInt imgAspectText = iIndicatorTextSize.iWidth / iIndicatorTextSize.iHeight;
+ TInt imgAspectIndi = iIndicatorSize.iWidth / iIndicatorSize.iHeight;
+ TSize imgSizeText( aBoundRect.Size().iHeight * imgAspectText,
+ aBoundRect.Size().iHeight );
+ TSize imgSizeIndi( aBoundRect.Size().iHeight * imgAspectIndi,
+ aBoundRect.Size().iHeight );
+ // check if the length of img > bound rect width
+ TInt nTotalWidth = imgSizeText.iWidth + imgSizeIndi.iWidth;
+ if( nTotalWidth > aBoundRect.Size().iWidth )
+ {
+ TReal nAspect = (TReal)imgSizeText.iWidth / nTotalWidth;
+ imgSizeText.iWidth = aBoundRect.Size().iWidth * nAspect;
+ imgSizeIndi.iWidth = aBoundRect.Size().iWidth - imgSizeText.iWidth;
+ imgSizeText.iHeight = imgSizeText.iWidth / imgAspectText;
+ // make sure the height of two rect is equal
+ imgSizeIndi.iHeight = imgSizeText.iHeight;
+ }
+ if( aAlign == EIndiAlignRight )
+ {
+ aRealRect2 = TRect(TPoint( aBoundRect.iBr.iX - imgSizeText.iWidth, aBoundRect.iTl.iY),
+ imgSizeText);
+ aRealRect1 = TRect(TPoint(aRealRect2.iTl.iX - imgSizeIndi.iWidth, aRealRect2.iTl.iY),
+ imgSizeIndi);
+ }
+ else if( aAlign == EIndiAlignCenter )
+ {
+ TInt offsetX = ( aBoundRect.Size().iWidth - imgSizeText.iWidth - imgSizeIndi.iWidth ) / 2;
+ TInt offsetY = ( aBoundRect.Size().iHeight - imgSizeText.iHeight ) / 2;
+ aRealRect2 = TRect( TPoint( aBoundRect.iBr.iX - imgSizeText.iWidth - offsetX,
+ aBoundRect.iTl.iY + offsetY),
+ imgSizeText );
+ aRealRect1 = TRect( TPoint(aRealRect2.iTl.iX - imgSizeIndi.iWidth, aRealRect2.iTl.iY),
+ imgSizeIndi );
+ }
+ else if( aAlign == EIndiAlignLeft )
+ {
+ aRealRect1 = TRect( aBoundRect.iTl, imgSizeIndi );
+ aRealRect2 = TRect( TPoint( aRealRect1.iBr.iX, aRealRect1.iTl.iY ), imgSizeText );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::SetPromptTextL
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindow::SetPromptTextL( TUint8* aData )
+ {
+ RDesReadStream readStream;
+
+ TPtr8 countPtr( aData, 2*sizeof(TInt), 2*sizeof(TInt));
+ readStream.Open(countPtr);
+ CleanupClosePushL(readStream);
+ const TInt dataCount = readStream.ReadInt32L();
+ const TInt textCount = readStream.ReadInt32L();
+ CleanupStack::PopAndDestroy(&readStream);
+
+ TPtr8 ptr( aData+2*sizeof(TInt), dataCount+textCount, dataCount+textCount );
+ readStream.Open(ptr);
+ CleanupClosePushL(readStream);
+
+ HBufC8* dataBuf = HBufC8::NewLC(dataCount);
+ TPtr8 dataBufPtr = dataBuf->Des();
+ readStream.ReadL(dataBufPtr, dataCount);
+
+ TFepPromptText* pIcfData =
+ reinterpret_cast<TFepPromptText*>(const_cast<TUint8*>(dataBufPtr.Ptr()));
+
+ HBufC* textBuf;
+ if ( textCount > 0 )
+ {
+ textBuf = HBufC::NewLC( textCount/2 );
+ TPtr textBufPtr = textBuf->Des();
+ readStream.ReadL( textBufPtr, textCount/2 );
+
+ const HBufC* icfPromptText = iICF->PromptText();
+
+ if (!icfPromptText || icfPromptText->Compare( textBuf->Des()) != 0 )
+ {
+ iICF->SetPromptTextL( textBuf->Des(), pIcfData->iCleanContent );
+ }
+ CleanupStack::PopAndDestroy( textBuf );
+ }
+ else
+ {
+ iICF->SetPromptTextL( KNullDesC, pIcfData->iCleanContent );
+ }
+
+ CleanupStack::PopAndDestroy( dataBuf );
+ CleanupStack::PopAndDestroy( &readStream );
+ }
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::SetIndiBubbleImageL
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindow::SetIndiBubbleImageL( const TInt aImgID1,
+ const TInt aMaskID1,
+ const TInt aImgID2,
+ const TInt aMaskID2 )
+ {
+ MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+
+ CFbsBitmap* bmp1 = NULL;
+ CFbsBitmap* mask1 = NULL;
+
+ TInt colorIndex = EAknsCIQsnIconColorsCG30;
+
+ AknsUtils::CreateColorIconL( skininstance,
+ KAknsIIDQsnIconColors,
+ KAknsIIDQsnIconColors,
+ colorIndex,
+ bmp1,
+ mask1,
+ AknIconUtils::AvkonIconFileName(),
+ aImgID1,
+ aMaskID1,
+ KRgbGray );
+ CleanupStack::PushL( bmp1 );
+ CleanupStack::PushL( mask1 );
+
+ AknIconUtils::GetContentDimensions( bmp1, iIndicatorSize );
+
+ CFbsBitmap* bmp2 = NULL;
+ CFbsBitmap* mask2 = NULL;
+ AknsUtils::CreateColorIconL( skininstance,
+ KAknsIIDQsnIconColors,
+ KAknsIIDQsnIconColors,
+ colorIndex,
+ bmp2,
+ mask2,
+ AknIconUtils::AvkonIconFileName(),
+ aImgID2,
+ aMaskID2,
+ KRgbGray );
+
+ CleanupStack::PushL( bmp2 );
+ CleanupStack::PushL( mask2 );
+
+ AknIconUtils::GetContentDimensions( bmp2, iIndicatorTextSize );
+
+ TRect boundRect;
+ boundRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( EIndiIconWithoutTextRect ));
+
+ TRect imgrect, textrect;
+
+ CalIndicatorRect( boundRect, imgrect, textrect, EIndiAlignCenter );
+ AknIconUtils::SetSize( bmp1, imgrect.Size(), EAspectRatioNotPreserved );
+ AknIconUtils::SetSize( mask1, imgrect.Size(), EAspectRatioNotPreserved );
+ AknIconUtils::SetSize( bmp2, textrect.Size(), EAspectRatioNotPreserved) ;
+ AknIconUtils::SetSize( mask2, textrect.Size(), EAspectRatioNotPreserved );
+
+ CFbsBitmap* bmp3 = AknPenImageUtils::CombineTwoImagesL(bmp1, bmp2, EColor256);
+ CFbsBitmap* mask3 = AknPenImageUtils::CombineTwoImagesL(mask1, mask2, EGray256);
+
+ iICF->MsgBubbleCtrl()->SetBitmapParam( bmp3, mask3,
+ KAknsIIDQsnFrInputPreviewSideL,
+ KAknsIIDQsnFrInputPreviewMiddle,
+ KAknsIIDQsnFrInputPreviewSideR );
+
+ CleanupStack::PopAndDestroy( mask2 );
+ CleanupStack::PopAndDestroy( bmp2 );
+ CleanupStack::PopAndDestroy( mask1 );
+ CleanupStack::PopAndDestroy( bmp1 );
+ }
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindow::SetIndiBubble
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindow::SetIndiBubble()
+ {
+ if ( iICF )
+ {
+ TRect bubbleRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( EIndiPaneWithoutTextRect ));
+ TRect iconRect = TItutDataConverter::AnyToRect(
+ iDataMgr->RequestData( EIndiIconWithoutTextRect ));
+
+ TSize offset( 0, 6 );
+ TSize size( iconRect.Width(), iconRect.Height());
+
+ iICF->MsgBubbleCtrl()->SetRect( bubbleRect );
+ iICF->MsgBubbleCtrl()->SetIconOffsetAndSize( offset, size );
+ }
+ }
+
// End Of File
--- a/textinput/peninputsplititut/src/peninputsplititutwindowmanager.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/src/peninputsplititutwindowmanager.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -31,7 +31,7 @@
#include <s32mem.h>
#include <peninputlabel.h>
#include <peninputlayoutinputmodechoice.h>
-//#include <peninputlayoutbubblectrl.h>
+#include <peninputlayoutbubblectrl.h>
#include <peninputcommonlayoutglobalenum.h>
#include "peninputsplititutwindowmanager.h"
@@ -83,6 +83,16 @@
}
// ---------------------------------------------------------------------------
+// CSplitItutWindowManager::CSplitItutWindowManager
+// ---------------------------------------------------------------------------
+//
+TInt CSplitItutWindowManager::OnAppEditorTextComing(const TFepInputContextFieldData& aData)
+ {
+ TRAPD(err, iWindow->Icf()->SetTextL(aData));
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
// CSplitItutWindowManager::SetPropertyL
// ---------------------------------------------------------------------------
//
@@ -238,6 +248,21 @@
iInEditWordQueryDlg = *data;
}
break;
+ case ECmdPenInputSetPromptText:
+ {
+ if( iDataMgr->IsSpellMode())
+ {
+ SetPromptTextL(aData);
+ handle = ETrue;
+ }
+ }
+ break;
+ case ECmdPenInputFingerMatchIndicator:
+ {
+ iWindow->UpdateIndiBubbleL( aData );
+ handle = ETrue;
+ }
+ break;
default:
break;
@@ -317,6 +342,16 @@
}
// ---------------------------------------------------------------------------
+// CSplitItutWindowManager::ApplyVariantLafDataForSpellL
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindowManager::ApplyVariantLafDataForSpellL()
+ {
+ iWindow->ApplyVariantLafDataForSpellL();
+ }
+
+
+// ---------------------------------------------------------------------------
// CSplitItutWindowManager::CreateChineseSpecificCtrlsIfNeededL
// ---------------------------------------------------------------------------
//
@@ -463,5 +498,14 @@
}
*/
}
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindowManager::ShowBubble
+// ---------------------------------------------------------------------------
+//
+void CSplitItutWindowManager::SetPromptTextL(TUint8* aData)
+ {
+ iWindow->SetPromptTextL(aData);
+ }
// End Of File
--- a/textinput/peninputsplititut/srcdata/peninputsplititutnew.rss Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplititut/srcdata/peninputsplititutnew.rss Fri Mar 12 15:44:07 2010 +0200
@@ -35,6 +35,12 @@
RESOURCE TBUF { buf=""; }
+RESOURCE TBUF r_peninput_finger_ok {buf = text_softkey_ok;}
+RESOURCE TBUF r_peninput_finger_cancel {buf = text_softkey_cancel;}
+RESOURCE TBUF r_peninput_finger_spell {buf = qtn_t9_match_selection_list;}
+RESOURCE TBUF r_peninput_finger_spell_colon {buf = qtn_colon_in_prompt;}
+
+
RESOURCE AKN_FEP_COMMON_BUTTON_IMAGE r_peninput_finger_cursor_up
{
bmpfile=AKN_FEP_ITUT_BMP;
@@ -96,8 +102,8 @@
bmpfile=AKN_FEP_ITUT_BMP;
imgmajorskinid=EAknsMajorGeneric;
- forground=EMbmPeninputgenericitutQgn_indi_input_backspace;
- forgroundmsk=EMbmPeninputgenericitutQgn_indi_input_backspace_mask;
+ forground=EMbmPeninputgenericitutQgn_indi_itut_backspace1;
+ forgroundmsk=EMbmPeninputgenericitutQgn_indi_itut_backspace1_mask;
//forgroundskinid=EAknsMinorGenericQgnIndiDialerClear;
}
@@ -106,8 +112,8 @@
bmpfile=AKN_FEP_ITUT_BMP;
imgmajorskinid=EAknsMajorGeneric;
- forground=EMbmPeninputgenericitutQgn_indi_itut_backspace;
- forgroundmsk=EMbmPeninputgenericitutQgn_indi_itut_backspace_mask;
+ forground=EMbmPeninputgenericitutQgn_indi_itut_backspace1;
+ forgroundmsk=EMbmPeninputgenericitutQgn_indi_itut_backspace1_mask;
//forgroundskinid=EAknsMinorGenericQgnIndiDialerClear;
}
@@ -427,6 +433,15 @@
};
}
+RESOURCE SPLIT_VIRTUAL_ITUT_ICF r_split_itut_icf
+ {
+ colormajorskinid = EAknsMajorSkin;
+ textcolorgrp = EAknsMinorQsnTextColors;
+ textcoloridx = 50;
+ bordercolorgrp = EAknsMinorQsnOtherColors;
+ bordercoloridx = 8;
+ }
+
RESOURCE AKN_FEP_NONIRREGULAR_VKB_BITMAP r_itut_keypad_bitmap
{
bmpfile = AKN_FEP_ITUT_BMP;
--- a/textinput/peninputsplitqwerty/group/iconlist.txt Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplitqwerty/group/iconlist.txt Fri Mar 12 15:44:07 2010 +0200
@@ -194,3 +194,4 @@
-c8,8 qgn_indi_input_space_r.svg
-c8,8 qgn_indi_itut_cursor_up.svg
-c8,8 qgn_indi_itut_cursor_down.svg
+-c8,8 qgn_indi_input_backspace1.svg
--- a/textinput/peninputsplitqwerty/inc/peninputsplitqwertywindow.h Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplitqwerty/inc/peninputsplitqwertywindow.h Fri Mar 12 15:44:07 2010 +0200
@@ -36,7 +36,7 @@
// Constants
const TInt KMaxFileLength = 80;
-const TInt KMaxRangeLabelLength = 32;
+const TInt KMaxRangeLabelLength = 50;
/**
* class TAllRangeLabels
@@ -497,10 +497,6 @@
inline TBool IsRtoLLanguage( TInt aLanguage );
inline TBool IsValidLanguage( TInt aLanguage );
- inline CAknFepCtrlEventButton* EventButtonCtrl( TInt aCtrlId );
- inline CAknFepCtrlCommonButton* CommonButtonCtrl( TInt aCtrlId );
- TInt IntContext( TPeninputDataType aDataIndex );
-
/**
* Handle size changed for range list
*
@@ -530,6 +526,33 @@
void HandleButtonResOnLangDirChangeL( TInt aControlId );
/**
+ * Utils to get an event button
+ *
+ * @since S60 v5.0
+ * @param aCtrlId id of button control
+ * @return pointer to an event button
+ */
+ inline CAknFepCtrlEventButton* EventButtonCtrl( TInt aCtrlId );
+
+ /**
+ * Utils to get an common button
+ *
+ * @since S60 v5.0
+ * @param aCtrlId id of button control
+ * @return pointer to an common button
+ */
+ inline CAknFepCtrlCommonButton* CommonButtonCtrl( TInt aCtrlId );
+
+ /**
+ * Utils to get context value
+ *
+ * @since S60 v5.0
+ * @param aDataIndex index of context value
+ * @return conext value
+ */
+ TInt IntContext( TPeninputDataType aDataIndex );
+
+ /**
* Handle range list event
*
* @since S60 v5.0
@@ -537,6 +560,28 @@
*/
void HandleRangeListSelectedL( CFepUiBaseCtrl* aCtrl, const TDesC& aData );
+ //todo new rangelist
+ /**
+ * Get resource ids of range button icon
+ *
+ * @since S60 v5.0
+ * @param aLangId current language id
+ * @param aAlphaRange variable to receive icon resource id for alpha range
+ * @param aOtherRange variable to receive icon resource id for other ranges
+ * @return None
+ */
+ void GetRangeIconResource( TInt aLangId, TInt& aAlphaRange, TInt& aOtherRange );
+
+ //todo new rangelist
+ /**
+ * Prepare range list items
+ *
+ * @since S60 v5.0
+ * @param aRangeItems items in range list
+ * @return None
+ */
+ void PrepareRangeListItems( RArray<CFepLayoutChoiceList::SItem>& aRangeItems );
+
private: // Data
/**
--- a/textinput/peninputsplitqwerty/loc/peninputsplitqwertyaccentlist.loc Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplitqwerty/loc/peninputsplitqwertyaccentlist.loc Fri Mar 12 15:44:07 2010 +0200
@@ -36,4 +36,29 @@
//r: 3.2
#define qtn_tin_vkb_accented_set3 "Accented "<0x0151>" - "<0x01EF>
+
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_alpha_range "ABC"
+
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_native_characters_range "Native char"
+
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_numbers_symbols "123*&#"
+
+//d:Text in range list of VKB range bar
+//l:list_single_choice_list_pane_t1
+//w:
+//r: 3.2
+#define qtn_tin_vkb_native_numbers_symbols "Native number"
+
// End of File
--- a/textinput/peninputsplitqwerty/src/peninputsplitqwertylafdatamgr.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplitqwerty/src/peninputsplitqwertylafdatamgr.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -451,6 +451,19 @@
data->iClearButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
dx += rectXPane.Width();
+ keyText = AknLayoutScalable_Avkon::popup_fep_char_pre_window_t1(0).LayoutLine();
+
+ linelayout = AknLayoutScalable_Avkon::popup_fep_char_pre_window(0).LayoutLine();
+ layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout );
+ TRect preBubbleRect = layoutrect.Rect();
+ preBubbleRect.Move( -preBubbleRect.iTl );
+ TRect preBubbleInner = preBubbleRect;
+ preBubbleInner.Shrink( 10, 10 );
+
+ data->iPreviewWndText = keyText;
+ data->iPreviewWndRect = preBubbleRect;
+ data->iPreviewWndInnerRect = preBubbleInner;
+
return data;
}
--- a/textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -56,6 +56,8 @@
#include "peninputsplitqwertylangmeritpair.h"
#include "peninputsplitqwertylayout.h"
+#include <peninputaknvkbpreviewbubblerenderer.h>
+
// Constants
const TInt KPeninputVkbWndInvalidIndex = -1;
const TInt KInvalidImg = -1 ;
@@ -227,11 +229,12 @@
iVkbLayout->ConstructFromNonIrregularResourceL();
//todo split-view FSQ, bubble support
- /*
- iVkbCtrl->ShowBubble(ETrue);
- iVkbCtrl->SetGowithPointerDown(ETrue);
- iVkbCtrl->SetBubbleBitmapParam(NULL,NULL,KAknsIIDQsnFrInputCharPreview);
- */
+ CPeninputAknVkbPreviewBubbleRenderer* renderer = CPeninputAknVkbPreviewBubbleRenderer::NewL();
+ iVkbCtrl->SetPreviewBubbleRenderer( renderer );
+ iVkbCtrl->ShowBubble( ETrue );
+ iVkbCtrl->SetGowithPointerDown( ETrue );
+ iVkbCtrl->SetBubbleBitmapParam( NULL, NULL, KAknsIIDQsnFrInputCharPreview );
+ iVkbCtrl->SetBubbleSize( TSize(80,80) ); //todo preview-bubble
//set key to be 9 piece graphics
iVkbCtrl->SetKeySkinId( EKeyBmpNormal, KAknsIIDQsnFrKeypadButtonFrNormal );
@@ -977,7 +980,7 @@
// Load range labels for range list
// ---------------------------------------------------------------------------
//
-void CPeninputSplitQwertyWindow::ConstructRangeLabelListL( TInt aLangId )
+void CPeninputSplitQwertyWindow::ConstructRangeLabelListL( TInt /*aLangId*/ )
{
iRangeLabels.iLabelNativeChar.Zero();
iRangeLabels.iLabelNativeNumber.Zero();
@@ -986,68 +989,7 @@
iRangeLabels.iLabelSymbol.Zero();
iRangeLabels.iLabelAccent.Zero();
- TInt resid = -1;
- switch ( aLangId )
- {
- case 16: //Cyrillic
- case 42:
- case 93:
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_CYRILLIC;
- }
- break;
-
- case 54: //Greek
- case 55:
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_GREEK;
- }
- break;
- case 57: //Hebrew
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_HEBREW;
- }
- break;
- case 37: //Arabic
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_ARABIC;
- }
- break;
- case 50://Farsi
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_FARSI;
- }
- break;
- case 94: //Urdu
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_URDU;
- }
- break;
- case 33: //Thai
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_THAI;
- }
- break;
- case 29: //chinese
- case 30:
- case 31:
- break;
- case 58: //Devanagiri
- case 72:
- {
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_DEVANAGIRI;
- }
- break;
- default: //Latin
- {
- //1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- //11, 12, 13, 14, 15, 17, 18, 20, 21, 22,
- //23, 24, 25, 26, 27, 28, 39, 44, 45, 46,
- //47, 48, 49, 51, 59, 67, 68, 70, 76, 78,
- //79, 82, 83, 85, 91, 96, 102, 103, 401, 402
- resid = R_PENINPUT_LAYOUT_VKB_RANGES_LATIN;
- }
- }
+ TInt resid = R_PENINPUT_LAYOUT_VKB_RANGES;
TResourceReader reader;
CCoeEnv::Static()->CreateResourceReaderLC( reader, resid );
@@ -1074,7 +1016,7 @@
//
void CPeninputSplitQwertyWindow::ShowBubble( TInt aShow )
{
- iVkbCtrl->ShowBubble( EFalse );
+ iVkbCtrl->ShowBubble( aShow > 0 ? ETrue : EFalse );
}
// ---------------------------------------------------------------------------
@@ -1083,37 +1025,31 @@
//
void CPeninputSplitQwertyWindow::UpdateRangeCtrlsL()
{
- TInt currentRange = IntContext( EPeninputDataTypeCurrentRange );
-
- TInt resid = ConfigInfo()->RangebarResId();
+ RArray<CFepLayoutChoiceList::SItem> items;
+ PrepareRangeListItems( items );
+ TInt count = items.Count();
+ items.Close();
- TResourceReader reader;
+ TInt languageId = IntContext( EPeninputDataTypeInputLanguage );
+ TInt range = IntContext( EPeninputDataTypeCurrentRange );
+
+ TInt resId = -1;
+ TInt aplhaRangeResId = -1;
+ TInt numberRangeResId = -1;
+ GetRangeIconResource( languageId, aplhaRangeResId, numberRangeResId );
- CCoeEnv::Static()->CreateResourceReaderLC( reader, resid );
-
- TInt count = reader.ReadInt16();
- for ( TInt i = 0; i < count; i++ )
+ if ( range == ERangeEnglish || range == ERangeNative )
{
- const TInt16 rangeId = reader.ReadInt16();
- const TInt16 rangeType = reader.ReadInt16();
- const TInt16 ctrlId = reader.ReadInt16();
- const TInt16 ctrlType = reader.ReadInt16();
- const TInt32 ctrlResId = reader.ReadInt32();
- const TInt actionStyle = reader.ReadInt16();
- TBool hide = reader.ReadInt16();
- TInt posidx = reader.ReadInt16();
+ resId = aplhaRangeResId;
+ }
+ else
+ {
+ resId = numberRangeResId;
+ }
- if ( currentRange == rangeId )
- {
- iRangeButton->SetResourceId( ctrlResId );
- iRangeButton->ConstructFromResourceL();
- break;
- }
- }
-
- // Pop and destroy reader
- CleanupStack::PopAndDestroy( 1 );
-
+ iRangeButton->SetResourceId( resId );
+ iRangeButton->ConstructFromResourceL();
+ iRangeButton->SetDimmed( count < 1 );
}
// ---------------------------------------------------------------------------
@@ -1519,105 +1455,41 @@
//
void CPeninputSplitQwertyWindow::PopupRangeListL()
{
- TInt currentRange = IntContext( EPeninputDataTypeCurrentRange );
- TInt permittedRange = IntContext( EPeninputDataTypePermittedRange );
- TInt currentAccent = IntContext( EPeninputDataTypeCurrentAccent );
-
- CFepUiBaseCtrl* btn = Control( EPeninutWindowCtrlIdRangeBtn );
- if( !btn )
- {
- return;
- }
-
if ( !iPopupInited )
{
TRAP_IGNORE( DoIdleConstructL() );
}
+
iPopupWnd->ClearItemsL();
-
- CPeninputRangeBarInfo* rbinfo= ConfigInfo()->RangeBarInfo();
- CPeninputRangeInfo* rgninfo = NULL;
-
- //add accent items
- if ( permittedRange & ERangeAccent )
+ RArray<CFepLayoutChoiceList::SItem> items;
+ PrepareRangeListItems( items );
+ TInt count = items.Count();
+ for ( TInt i = 0; i < count; i++ )
{
- rgninfo = rbinfo->FindRange( ERangeAccent );
- if ( rgninfo )
- {
- for ( TInt i = 0; i < iAccentCmdList.Count(); i++ )
- {
- if( currentRange != ERangeAccent || currentAccent != i )
- {
- iPopupWnd->AddItemL( iAccentCmdList[i] );
- }
- }
- }
+ iPopupWnd->AddItemL( items[i] );
}
-
- //add range items
-
- CFepLayoutChoiceList::SItem item;
-
- if ( permittedRange & ERangeNative )
+ items.Close();
+
+ if ( iPopupWnd->ItemsCount() < 1 )
{
- rgninfo = rbinfo->FindRange( ERangeNative );
- if ( rgninfo && currentRange != ERangeNative )
- {
- item.iCommand = EPeninputVkbLayoutNativeChar;
- item.iText.Copy( iRangeLabels.iLabelNativeChar );
- iPopupWnd->AddItemL( item );
- }
+ return;
}
- if ( permittedRange & ERangeNativeNumber )
+ if ( iPopupWnd->ItemsCount() < 2 )
{
- rgninfo = rbinfo->FindRange( ERangeNativeNumber );
- if ( rgninfo && currentRange != ERangeNativeNumber )
- {
- item.iCommand = EPeninputVkbLayoutNativeNumber;
- item.iText.Copy( iRangeLabels.iLabelNativeNumber );
- iPopupWnd->AddItemL( item );
- }
- }
-
- if ( permittedRange & ERangeEnglish )
- {
- rgninfo = rbinfo->FindRange( ERangeEnglish );
- if ( rgninfo && currentRange != ERangeEnglish )
- {
- item.iCommand = EPeninputVkbLayoutLatinChar;
- item.iText.Copy( iRangeLabels.iLabelLatinChar );
- iPopupWnd->AddItemL( item );
- }
+ const CFepLayoutChoiceList::SItem* item = iPopupWnd->ItemByIndex( 0 );
+ CFepLayoutChoiceList::SEvent event;
+ event.iIndex = 0;
+ event.iCommand = item->iCommand;
+ TPtrC ptr;
+ ptr.Set(reinterpret_cast<TText*>(&event), sizeof(event));
+ HandleRangeListSelectedL( iPopupWnd, ptr );
+ return;
}
- if ( permittedRange & ERangeNumber )
- {
- rgninfo = rbinfo->FindRange( ERangeNumber );
- if ( rgninfo && currentRange != ERangeNumber )
- {
- item.iCommand = EPeninputVkbLayoutLatinNumber;
- item.iText.Copy( iRangeLabels.iLabelLatinNumber );
- iPopupWnd->AddItemL( item );
- }
- }
-
- /*
- if ( permittedRange & ERangeSymbol )
- {
- rgninfo = rbinfo->FindRange( ERangeSymbol );
- if ( rgninfo && currentRange != ERangeSymbol )
- {
- item.iCommand = EPeninputVkbLayoutSymbol;
- item.iText.Copy( _L("#*") );
- iPopupWnd->AddItemL( item );
- }
- }
- */
-
- iPopupWnd->SetListColumnNumWithLafL( iPopupWnd->ItemsCount() );
-
+ CFepUiBaseCtrl* btn = Control( EPeninutWindowCtrlIdRangeBtn );
+ iPopupWnd->SetListColumnNumWithLafL( iPopupWnd->ItemsCount() );
iPopupWnd->SetCurrentFocusedIndex( - 1 ); //no active item
iPopupWnd->Display( btn->Rect() );
iUiStateMgr->SetCurrentUiState( EPeninputVkbUiStatePopup );
@@ -1717,12 +1589,6 @@
UiLayout()->SignalOwner(ESignalSimulateEvent,eventPtr);
}
-TInt CPeninputSplitQwertyWindow::IntContext( TPeninputDataType aDataIndex )
- {
- return CPeninputDataConverter::AnyToInt(
- iLayoutContext->RequestData( aDataIndex )
- );
- }
// ---------------------------------------------------------------------------
// Handle size changed for range list
@@ -1834,11 +1700,22 @@
}
// ---------------------------------------------------------------------------
+// Utils to get context value
+// ---------------------------------------------------------------------------
+//
+TInt CPeninputSplitQwertyWindow::IntContext( TPeninputDataType aDataIndex )
+ {
+ return CPeninputDataConverter::AnyToInt(
+ iLayoutContext->RequestData( aDataIndex )
+ );
+ }
+
+// ---------------------------------------------------------------------------
// Handle range list event
// ---------------------------------------------------------------------------
//
void CPeninputSplitQwertyWindow::HandleRangeListSelectedL( CFepUiBaseCtrl* /*aCtrl*/,
- const TDesC& aData )
+ const TDesC& aData )
{
CFepLayoutChoiceList::SEvent* event = (CFepLayoutChoiceList::SEvent*)aData.Ptr();
@@ -1913,4 +1790,138 @@
UpdateRangeCtrlsL();
}
+//todo new rangelist
+// ---------------------------------------------------------------------------
+// Get resource ids of range button icon
+// ---------------------------------------------------------------------------
+//
+void CPeninputSplitQwertyWindow::GetRangeIconResource( TInt aLangId,
+ TInt& aAlphaRange,
+ TInt& aOtherRange )
+ {
+ switch ( aLangId )
+ {
+ case ELangRussian: //Cyrillic
+ case ELangBulgarian:
+ case ELangUkrainian:
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_CYRILLIC_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_CYRILLIC_NUMERIC;
+ }
+ break;
+ case ELangGreek: //Greek
+ case ELangCyprusGreek:
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_GREEK_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_GREEK_NUMERIC;
+ }
+ break;
+ case ELangHebrew: //Hebrew
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_HEBREW_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_HEBREW_NUMERIC;
+ }
+ break;
+ case ELangArabic: //Arabic
+ case ELangFarsi: //Farsi
+ case ELangUrdu: //Urdu
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_ARABIC_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_ARABIC_NUMERIC;
+ }
+ break;
+ case ELangThai: //Thai
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_THAI_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_THAI_NUMERIC;
+ }
+ break;
+ default: //others
+ {
+ aAlphaRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_LATIN_ALPHA;
+ aOtherRange = R_PENINPUT_LAYOUT_VKB_RANGECTRL_LATIN_NUMERIC;
+ }
+ }
+ }
+
+//todo new rangelist
+// ---------------------------------------------------------------------------
+// Prepare range list items
+// ---------------------------------------------------------------------------
+//
+void CPeninputSplitQwertyWindow::PrepareRangeListItems(
+ RArray<CFepLayoutChoiceList::SItem>& aRangeItems )
+ {
+ aRangeItems.Reset();
+ TInt currentRange = IntContext( EPeninputDataTypeCurrentRange );
+ TInt permittedRange = IntContext( EPeninputDataTypePermittedRange );
+ TInt currentAccent = IntContext( EPeninputDataTypeCurrentAccent );
+
+ CPeninputRangeBarInfo* rbinfo= ConfigInfo()->RangeBarInfo();
+ CPeninputRangeInfo* rgninfo = NULL;
+
+ //add accent items
+ if ( permittedRange & ERangeAccent )
+ {
+ rgninfo = rbinfo->FindRange( ERangeAccent );
+ if ( rgninfo )
+ {
+ for ( TInt i = 0; i < iAccentCmdList.Count(); i++ )
+ {
+ if( currentRange != ERangeAccent || currentAccent != i )
+ {
+ aRangeItems.Append( iAccentCmdList[i] );
+ }
+ }
+ }
+ }
+
+ //add range items
+
+ CFepLayoutChoiceList::SItem item;
+
+ if ( permittedRange & ERangeNative )
+ {
+ rgninfo = rbinfo->FindRange( ERangeNative );
+ if ( rgninfo && currentRange != ERangeNative )
+ {
+ item.iCommand = EPeninputVkbLayoutNativeChar;
+ item.iText.Copy( iRangeLabels.iLabelNativeChar );
+ aRangeItems.Append( item );
+ }
+ }
+
+ if ( permittedRange & ERangeNativeNumber )
+ {
+ rgninfo = rbinfo->FindRange( ERangeNativeNumber );
+ if ( rgninfo && currentRange != ERangeNativeNumber )
+ {
+ item.iCommand = EPeninputVkbLayoutNativeNumber;
+ item.iText.Copy( iRangeLabels.iLabelNativeNumber );
+ aRangeItems.Append( item );
+ }
+ }
+
+ if ( permittedRange & ERangeEnglish )
+ {
+ rgninfo = rbinfo->FindRange( ERangeEnglish );
+ if ( rgninfo && currentRange != ERangeEnglish )
+ {
+ item.iCommand = EPeninputVkbLayoutLatinChar;
+ item.iText.Copy( iRangeLabels.iLabelLatinChar );
+ aRangeItems.Append( item );
+ }
+ }
+
+ if ( permittedRange & ERangeNumber )
+ {
+ rgninfo = rbinfo->FindRange( ERangeNumber );
+ if ( rgninfo && currentRange != ERangeNumber )
+ {
+ item.iCommand = EPeninputVkbLayoutLatinNumber;
+ item.iText.Copy( iRangeLabels.iLabelLatinNumber );
+ aRangeItems.Append( item );
+ }
+ }
+ }
// End Of File
--- a/textinput/peninputsplitqwerty/srcdata/peninputssqwin.rss Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputsplitqwerty/srcdata/peninputssqwin.rss Fri Mar 12 15:44:07 2010 +0200
@@ -409,20 +409,20 @@
bmpfile=PENINPUT_LAYOUT_VKB_BMP;
imgmajorskinid=EAknsMajorGeneric;
- nactive=EMbmPeninputsplitqwertyQgn_indi_input_backspace;
- nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace_mask;
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
nactiveskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- nactivep=EMbmPeninputsplitqwertyQgn_indi_input_backspace;
- nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace_mask;
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
nactivepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
- active=EMbmPeninputsplitqwertyQgn_indi_input_backspace;
- activemsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace_mask;
+ active=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
activeskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- activep=EMbmPeninputsplitqwertyQgn_indi_input_backspace;
- activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace_mask;
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
activepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
}
@@ -435,21 +435,21 @@
{
bmpfile=PENINPUT_LAYOUT_VKB_BMP;
imgmajorskinid=EAknsMajorGeneric;
-
- nactive=EMbmPeninputsplitqwertyQgn_indi_itut_backspace;
- nactivemsk=EMbmPeninputsplitqwertyQgn_indi_itut_backspace_mask;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
nactiveskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- nactivep=EMbmPeninputsplitqwertyQgn_indi_itut_backspace;
- nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_itut_backspace_mask;
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
nactivepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
- active=EMbmPeninputsplitqwertyQgn_indi_itut_backspace;
- activemsk=EMbmPeninputsplitqwertyQgn_indi_itut_backspace_mask;
+ active=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
activeskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1;
- activep=EMbmPeninputsplitqwertyQgn_indi_itut_backspace;
- activepmsk=EMbmPeninputsplitqwertyQgn_indi_itut_backspace_mask;
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_backspace1;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_backspace1_mask;
activepskinid=EAknsMinorGenericQgnIndiFepButtonBackspace1Sel;
}
@@ -914,90 +914,332 @@
disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
}
-//todo split-view
-
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_latin
- {
- latinChar ="ABC";
- latinNumber ="#+=123";
- }
-
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_cyrillic
+//todo new rangelist
+RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges
{
- nativeChar =<0x0410><0x0411>;
- nativeNumber ="";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
- }
-
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_greek
- {
- nativeChar =<0x0391><0x03A9>;
- nativeNumber ="";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
- }
-
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_hebrew
- {
- nativeChar =<0x05D0><0x05D1>;
- nativeNumber ="";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
+ nativeChar = qtn_tin_vkb_native_characters_range;
+ nativeNumber = qtn_tin_vkb_native_numbers_symbols;
+ latinChar = qtn_tin_vkb_alpha_range;
+ latinNumber = qtn_tin_vkb_numbers_symbols;
}
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_arabic
+//todo new rangelist
+
+//for Cyrillic
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_cyrillic_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_cyrillic_numeric
{
- nativeChar ="arabic char";
- nativeNumber ="arabic num";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_cyrillic_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+//for Greek
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_greek_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
}
-
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_farsi
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_greek_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_greek_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+//for Hebrew
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_hebrew_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_hebrew_numeric
{
- nativeChar ="farsi char";
- nativeNumber ="farsi num";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hebrew_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+//for Arabic, Farsi and Urdu
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_arabic_alpha
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_arabic_indic_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_arabic_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_arabic_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
}
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_urdu
+
+//for Thai
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_thai_alpha
{
- nativeChar ="urdu char";
- nativeNumber ="urdu num";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
}
-
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_thai
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_thai_numeric
{
- nativeChar ="thai char";
- nativeNumber ="thai num";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_thai_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
}
-
-RESOURCE PENINPUT_SPLITQWERTY_RANGELABELS r_peninput_layout_vkb_ranges_devanagiri
+
+//for Latin
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_latin_alpha
{
- nativeChar ="devanagiri char";
- nativeNumber ="devanagiri num";
- latinChar ="ABC";
- latinNumber ="#+=123";
- symbol ="";
- accent ="";
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
}
+
+RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_rangectrl_latin_numeric
+ {
+ bmpfile=PENINPUT_LAYOUT_VKB_BMP;
+ imgmajorskinid=EAknsMajorGeneric;
+
+ nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
+ nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
+ nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
+ nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
+ nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+
+ active=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
+ activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
+ activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ activep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
+ activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
+ activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
+
+ disable=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
+ disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
+ disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
+ }
--- a/textinput/ptienginev2/group/VariantParser.pl Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/ptienginev2/group/VariantParser.pl Fri Mar 12 15:44:07 2010 +0200
@@ -54,12 +54,12 @@
}
print(INFFILE "/*\n");
-print(INFFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+print(INFFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(INFFILE "* All rights reserved.\n");
print(INFFILE "* This component and the accompanying materials are made available\n");
print(INFFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(INFFILE "* which accompanies this distribution, and is available\n");
-print(INFFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+print(INFFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(INFFILE "*\n");
print(INFFILE "* Initial Contributors:\n");
print(INFFILE "* Nokia Corporation - initial contribution.\n");
@@ -194,12 +194,12 @@
}
print(RESFILE "/*\n");
- print(RESFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(RESFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(RESFILE "* All rights reserved.\n");
print(RESFILE "* This component and the accompanying materials are made available\n");
print(RESFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(RESFILE "* which accompanies this distribution, and is available\n");
- print(RESFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(RESFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(RESFILE "*\n");
print(RESFILE "* Initial Contributors:\n");
print(RESFILE "* Nokia Corporation - initial contribution.\n");
@@ -254,12 +254,12 @@
}
print(MMPFILE "/*\n");
- print(MMPFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(MMPFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(MMPFILE "* All rights reserved.\n");
print(MMPFILE "* This component and the accompanying materials are made available\n");
print(MMPFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(MMPFILE "* which accompanies this distribution, and is available\n");
- print(MMPFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(MMPFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(MMPFILE "*\n");
print(MMPFILE "* Initial Contributors:\n");
print(MMPFILE "* Nokia Corporation - initial contribution.\n");
@@ -335,12 +335,12 @@
}
print(IBYFILE "/*\n");
- print(IBYFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(IBYFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(IBYFILE "* All rights reserved.\n");
print(IBYFILE "* This component and the accompanying materials are made available\n");
print(IBYFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(IBYFILE "* which accompanies this distribution, and is available\n");
- print(IBYFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(IBYFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(IBYFILE "*\n");
print(IBYFILE "* Initial Contributors:\n");
print(IBYFILE "* Nokia Corporation - initial contribution.\n");
@@ -389,12 +389,12 @@
}
print(CPPFILE "/*\n");
- print(CPPFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(CPPFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(CPPFILE "* All rights reserved.\n");
print(CPPFILE "* This component and the accompanying materials are made available\n");
print(CPPFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(CPPFILE "* which accompanies this distribution, and is available\n");
- print(CPPFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(CPPFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(CPPFILE "*\n");
print(CPPFILE "* Initial Contributors:\n");
print(CPPFILE "* Nokia Corporation - initial contribution.\n");
@@ -425,12 +425,12 @@
}
print(CHHFILE "/*\n");
- print(CHHFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(CHHFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(CHHFILE "* All rights reserved.\n");
print(CHHFILE "* This component and the accompanying materials are made available\n");
print(CHHFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(CHHFILE "* which accompanies this distribution, and is available\n");
- print(CHHFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(CHHFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(CHHFILE "*\n");
print(CHHFILE "* Initial Contributors:\n");
print(CHHFILE "* Nokia Corporation - initial contribution.\n");
@@ -462,12 +462,12 @@
}
print(CFFFILE "/*\n");
- print(CFFFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(CFFFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(CFFFILE "* All rights reserved.\n");
print(CFFFILE "* This component and the accompanying materials are made available\n");
print(CFFFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(CFFFILE "* which accompanies this distribution, and is available\n");
- print(CFFFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(CFFFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(CFFFILE "*\n");
print(CFFFILE "* Initial Contributors:\n");
print(CFFFILE "* Nokia Corporation - initial contribution.\n");
@@ -677,4 +677,4 @@
close(MASTERVARFILE);
-# End of file
+# End of file
\ No newline at end of file
--- a/textinput/ptienginev2/languages/PtiKeymappings_ITUT_01.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/ptienginev2/languages/PtiKeymappings_ITUT_01.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -97,192 +97,168 @@
//
const TUint16 StandardQwertyData_table_English[] =
{
- 0x31,
- 0x32,
- 0x33,
- 0x34,
- 0x35,
- 0x36,
- 0x37,
- 0x38,
- 0x39,
- 0x30,
- 0x2b,
- 0x71,
- 0x77,
- 0x65,0xe8,0xe9,0xea,0xeb,
- 0x72,
- 0x74,0xfe,
- 0x79,0xfd,
- 0x75,0xf9,0xfa,0xfb,0xfc,
- 0x69,0xec,0xed,0xee,0xef,
- 0x6f,0xf6,0xf8,0xf2,0xf3,0xf4,0xf5,
- 0x70,
- 0x2d,
- 0x23,
- 0x61,0xe4,0xe6,0xe5,0xe0,0xe1,0xe2,0xe3,
- 0x73,0xdf,
- 0x64,0xf0,
- 0x66,
- 0x67,
- 0x68,
- 0x6a,
- 0x6b,
- 0x6c,
- 0x3b,
- 0x27,
- 0x7a,
- 0x78,
- 0x63,0xe7,
- 0x76,
- 0x62,
- 0x6e,0xf1,
- 0x6d,
- 0x2c,
- 0x2e,
- 0x2f,
- 0x21,
- 0x22,
- 0xa3,
- 0x24,
- 0x20ac,
- 0x25,
- 0x26,
- 0x2a,
- 0x28,
- 0x29,
- 0x3d,
- 0x51,
- 0x57,
- 0x45,0xc8,0xc9,0xca,0xcb,
- 0x52,
- 0x54,0xde,
- 0x59,0xdd,
- 0x55,0xd9,0xda,0xdb,0xdc,
- 0x49,0xcc,0xcd,0xce,0xcf,
- 0x4f,0xd6,0xd8,0xd2,0xd3,0xd4,0xd5,
- 0x50,
- 0x5f,
- 0x7e,
- 0x41,0xc4,0xc6,0xc5,0xc0,0xc1,0xc2,0xc3,
- 0x53,
- 0x44,0xd0,
- 0x46,
- 0x47,
- 0x48,
- 0x4a,
- 0x4b,
- 0x4c,
- 0x3a,
- 0x40,
- 0x5a,
- 0x58,
- 0x43,0xc7,
- 0x56,
- 0x42,
- 0x4e,0xd1,
- 0x4d,
- 0x3c,
- 0x3e,
- 0x3f,
+ 0x0071,
+ 0x0077,
+ 0x0065,
+ 0x0072,
+ 0x0074,
+ 0x0079,
+ 0x0075,
+ 0x0069,
+ 0x006F,
+ 0x0070,
+ 0x0061,
+ 0x0073,
+ 0x0064,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x006A,
+ 0x006B,
+ 0x006C,
+ 0x0027,
+ 0x007A,
+ 0x0078,
+ 0x0063,
+ 0x0076,
+ 0x0062,
+ 0x006E,
+ 0x006D,
+ 0x002C,
+ 0x002E,
+ 0x003F,
+ 0x0051,
+ 0x0057,
+ 0x0045,
+ 0x0052,
+ 0x0054,
+ 0x0059,
+ 0x0055,
+ 0x0049,
+ 0x004F,
+ 0x0050,
+ 0x0041,
+ 0x0053,
+ 0x0044,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x004A,
+ 0x004B,
+ 0x004C,
+ 0x002F,
+ 0x005A,
+ 0x0058,
+ 0x0043,
+ 0x0056,
+ 0x0042,
+ 0x004E,
+ 0x004D,
+ 0x002B,
+ 0x002D,
+ 0x0021,
};
-const TInt KStandardQwertyDataSize_English = 149;
+const TInt KStandardQwertyDataSize_English = 60;
const TPtiKeyBinding StandardQwertyKeyBindings_table_English[] =
{
- {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
- {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
- {EPtiKeyQwerty3, EPtiCaseLower, 2, 1},
- {EPtiKeyQwerty4, EPtiCaseLower, 3, 1},
- {EPtiKeyQwerty5, EPtiCaseLower, 4, 1},
- {EPtiKeyQwerty6, EPtiCaseLower, 5, 1},
- {EPtiKeyQwerty7, EPtiCaseLower, 6, 1},
- {EPtiKeyQwerty8, EPtiCaseLower, 7, 1},
- {EPtiKeyQwerty9, EPtiCaseLower, 8, 1},
- {EPtiKeyQwerty0, EPtiCaseLower, 9, 1},
+ {EPtiKeyQwertyAtCharacter, EPtiCaseLower, 0, 1},
+ {EPtiKeyQwerty1, EPtiCaseLower, 1, 1},
+ {EPtiKeyQwerty2, EPtiCaseLower, 2, 1},
+ {EPtiKeyQwerty3, EPtiCaseLower, 3, 1},
+ {EPtiKeyQwerty4, EPtiCaseLower, 4, 1},
+ {EPtiKeyQwerty5, EPtiCaseLower, 5, 1},
+ {EPtiKeyQwerty6, EPtiCaseLower, 6, 1},
+ {EPtiKeyQwerty7, EPtiCaseLower, 7, 1},
+ {EPtiKeyQwerty8, EPtiCaseLower, 8, 1},
+ {EPtiKeyQwerty9, EPtiCaseLower, 9, 1},
+ {EPtiKeyQwerty0, EPtiCaseLower, 10, 0},
{EPtiKeyQwertyPlus, EPtiCaseLower, 10, 1},
{EPtiKeyQwertyQ, EPtiCaseLower, 11, 1},
{EPtiKeyQwertyW, EPtiCaseLower, 12, 1},
- {EPtiKeyQwertyE, EPtiCaseLower, 13, 5},
- {EPtiKeyQwertyR, EPtiCaseLower, 18, 1},
- {EPtiKeyQwertyT, EPtiCaseLower, 19, 2},
- {EPtiKeyQwertyY, EPtiCaseLower, 21, 2},
- {EPtiKeyQwertyU, EPtiCaseLower, 23, 5},
- {EPtiKeyQwertyI, EPtiCaseLower, 28, 5},
- {EPtiKeyQwertyO, EPtiCaseLower, 33, 7},
- {EPtiKeyQwertyP, EPtiCaseLower, 40, 1},
- {EPtiKeyQwertyMinus, EPtiCaseLower, 41, 1},
- {EPtiKeyQwertyHash, EPtiCaseLower, 42, 1},
- {EPtiKeyQwertyA, EPtiCaseLower, 43, 8},
- {EPtiKeyQwertyS, EPtiCaseLower, 51, 2},
- {EPtiKeyQwertyD, EPtiCaseLower, 53, 2},
- {EPtiKeyQwertyF, EPtiCaseLower, 55, 1},
- {EPtiKeyQwertyG, EPtiCaseLower, 56, 1},
- {EPtiKeyQwertyH, EPtiCaseLower, 57, 1},
- {EPtiKeyQwertyJ, EPtiCaseLower, 58, 1},
- {EPtiKeyQwertyK, EPtiCaseLower, 59, 1},
- {EPtiKeyQwertyL, EPtiCaseLower, 60, 1},
- {EPtiKeyQwertySemicolon, EPtiCaseLower, 61, 1},
- {EPtiKeyQwertyApostrophe, EPtiCaseLower, 62, 1},
- {EPtiKeyQwertyZ, EPtiCaseLower, 63, 1},
- {EPtiKeyQwertyX, EPtiCaseLower, 64, 1},
- {EPtiKeyQwertyC, EPtiCaseLower, 65, 2},
- {EPtiKeyQwertyV, EPtiCaseLower, 67, 1},
- {EPtiKeyQwertyB, EPtiCaseLower, 68, 1},
- {EPtiKeyQwertyN, EPtiCaseLower, 69, 2},
- {EPtiKeyQwertyM, EPtiCaseLower, 71, 1},
- {EPtiKeyQwertyComma, EPtiCaseLower, 72, 1},
- {EPtiKeyQwertyFullstop, EPtiCaseLower, 73, 1},
- {EPtiKeyQwertySlash, EPtiCaseLower, 74, 1},
- {EPtiKeyQwerty1, EPtiCaseUpper, 75, 1},
- {EPtiKeyQwerty2, EPtiCaseUpper, 76, 1},
- {EPtiKeyQwerty3, EPtiCaseUpper, 77, 1},
- {EPtiKeyQwerty4, EPtiCaseUpper, 78, 1},
- {EPtiKeyQwerty5, EPtiCaseUpper, 79, 1},
- {EPtiKeyQwerty6, EPtiCaseUpper, 80, 1},
- {EPtiKeyQwerty7, EPtiCaseUpper, 81, 1},
- {EPtiKeyQwerty8, EPtiCaseUpper, 82, 1},
- {EPtiKeyQwerty9, EPtiCaseUpper, 83, 1},
- {EPtiKeyQwerty0, EPtiCaseUpper, 84, 1},
- {EPtiKeyQwertyPlus, EPtiCaseUpper, 85, 1},
- {EPtiKeyQwertyQ, EPtiCaseUpper, 86, 1},
- {EPtiKeyQwertyW, EPtiCaseUpper, 87, 1},
- {EPtiKeyQwertyE, EPtiCaseUpper, 88, 5},
- {EPtiKeyQwertyR, EPtiCaseUpper, 93, 1},
- {EPtiKeyQwertyT, EPtiCaseUpper, 94, 2},
- {EPtiKeyQwertyY, EPtiCaseUpper, 96, 2},
- {EPtiKeyQwertyU, EPtiCaseUpper, 98, 5},
- {EPtiKeyQwertyI, EPtiCaseUpper, 103, 5},
- {EPtiKeyQwertyO, EPtiCaseUpper, 108, 7},
- {EPtiKeyQwertyP, EPtiCaseUpper, 115, 1},
- {EPtiKeyQwertyMinus, EPtiCaseUpper, 116, 1},
- {EPtiKeyQwertyHash, EPtiCaseUpper, 117, 1},
- {EPtiKeyQwertyA, EPtiCaseUpper, 118, 8},
- {EPtiKeyQwertyS, EPtiCaseUpper, 126, 1},
- {EPtiKeyQwertyD, EPtiCaseUpper, 127, 2},
- {EPtiKeyQwertyF, EPtiCaseUpper, 129, 1},
- {EPtiKeyQwertyG, EPtiCaseUpper, 130, 1},
- {EPtiKeyQwertyH, EPtiCaseUpper, 131, 1},
- {EPtiKeyQwertyJ, EPtiCaseUpper, 132, 1},
- {EPtiKeyQwertyK, EPtiCaseUpper, 133, 1},
- {EPtiKeyQwertyL, EPtiCaseUpper, 134, 1},
- {EPtiKeyQwertySemicolon, EPtiCaseUpper, 135, 1},
- {EPtiKeyQwertyApostrophe, EPtiCaseUpper, 136, 1},
- {EPtiKeyQwertyZ, EPtiCaseUpper, 137, 1},
- {EPtiKeyQwertyX, EPtiCaseUpper, 138, 1},
- {EPtiKeyQwertyC, EPtiCaseUpper, 139, 2},
- {EPtiKeyQwertyV, EPtiCaseUpper, 141, 1},
- {EPtiKeyQwertyB, EPtiCaseUpper, 142, 1},
- {EPtiKeyQwertyN, EPtiCaseUpper, 143, 2},
- {EPtiKeyQwertyM, EPtiCaseUpper, 145, 1},
- {EPtiKeyQwertyComma, EPtiCaseUpper, 146, 1},
- {EPtiKeyQwertyFullstop, EPtiCaseUpper, 147, 1},
- {EPtiKeyQwertySlash, EPtiCaseUpper, 148, 1},
+ {EPtiKeyQwertyE, EPtiCaseLower, 13, 1},
+ {EPtiKeyQwertyR, EPtiCaseLower, 14, 1},
+ {EPtiKeyQwertyT, EPtiCaseLower, 15, 1},
+ {EPtiKeyQwertyY, EPtiCaseLower, 16, 1},
+ {EPtiKeyQwertyU, EPtiCaseLower, 17, 1},
+ {EPtiKeyQwertyI, EPtiCaseLower, 18, 1},
+ {EPtiKeyQwertyO, EPtiCaseLower, 19, 1},
+ {EPtiKeyQwertyP, EPtiCaseLower, 20, 0},
+ {EPtiKeyQwertyMinus, EPtiCaseLower, 20, 0},
+ {EPtiKeyQwertyHash, EPtiCaseLower, 20, 1},
+ {EPtiKeyQwertyA, EPtiCaseLower, 21, 1},
+ {EPtiKeyQwertyS, EPtiCaseLower, 22, 1},
+ {EPtiKeyQwertyD, EPtiCaseLower, 23, 1},
+ {EPtiKeyQwertyF, EPtiCaseLower, 24, 1},
+ {EPtiKeyQwertyG, EPtiCaseLower, 25, 1},
+ {EPtiKeyQwertyH, EPtiCaseLower, 26, 1},
+ {EPtiKeyQwertyJ, EPtiCaseLower, 27, 1},
+ {EPtiKeyQwertyK, EPtiCaseLower, 28, 1},
+ {EPtiKeyQwertyL, EPtiCaseLower, 29, 1},
+ {EPtiKeyQwertySemicolon, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyApostrophe, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertySpace, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyZ, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyX, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyC, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyV, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyB, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyN, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyM, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyComma, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyFullstop, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertySlash, EPtiCaseLower, 30, 0},
+ {EPtiKeyQwertyAtCharacter, EPtiCaseUpper, 30, 1},
+ {EPtiKeyQwerty1, EPtiCaseUpper, 31, 1},
+ {EPtiKeyQwerty2, EPtiCaseUpper, 32, 1},
+ {EPtiKeyQwerty3, EPtiCaseUpper, 33, 1},
+ {EPtiKeyQwerty4, EPtiCaseUpper, 34, 1},
+ {EPtiKeyQwerty5, EPtiCaseUpper, 35, 1},
+ {EPtiKeyQwerty6, EPtiCaseUpper, 36, 1},
+ {EPtiKeyQwerty7, EPtiCaseUpper, 37, 1},
+ {EPtiKeyQwerty8, EPtiCaseUpper, 38, 1},
+ {EPtiKeyQwerty9, EPtiCaseUpper, 39, 1},
+ {EPtiKeyQwerty0, EPtiCaseUpper, 40, 0},
+ {EPtiKeyQwertyPlus, EPtiCaseUpper, 40, 1},
+ {EPtiKeyQwertyQ, EPtiCaseUpper, 41, 1},
+ {EPtiKeyQwertyW, EPtiCaseUpper, 42, 1},
+ {EPtiKeyQwertyE, EPtiCaseUpper, 43, 1},
+ {EPtiKeyQwertyR, EPtiCaseUpper, 44, 1},
+ {EPtiKeyQwertyT, EPtiCaseUpper, 45, 1},
+ {EPtiKeyQwertyY, EPtiCaseUpper, 46, 1},
+ {EPtiKeyQwertyU, EPtiCaseUpper, 47, 1},
+ {EPtiKeyQwertyI, EPtiCaseUpper, 48, 1},
+ {EPtiKeyQwertyO, EPtiCaseUpper, 49, 1},
+ {EPtiKeyQwertyP, EPtiCaseUpper, 50, 0},
+ {EPtiKeyQwertyMinus, EPtiCaseUpper, 50, 0},
+ {EPtiKeyQwertyHash, EPtiCaseUpper, 50, 1},
+ {EPtiKeyQwertyA, EPtiCaseUpper, 51, 1},
+ {EPtiKeyQwertyS, EPtiCaseUpper, 52, 1},
+ {EPtiKeyQwertyD, EPtiCaseUpper, 53, 1},
+ {EPtiKeyQwertyF, EPtiCaseUpper, 54, 1},
+ {EPtiKeyQwertyG, EPtiCaseUpper, 55, 1},
+ {EPtiKeyQwertyH, EPtiCaseUpper, 56, 1},
+ {EPtiKeyQwertyJ, EPtiCaseUpper, 57, 1},
+ {EPtiKeyQwertyK, EPtiCaseUpper, 58, 1},
+ {EPtiKeyQwertyL, EPtiCaseUpper, 59, 1},
+ {EPtiKeyQwertySemicolon, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyApostrophe, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertySpace, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyZ, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyX, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyC, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyV, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyB, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyN, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyM, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyComma, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertyFullstop, EPtiCaseUpper, 60, 0},
+ {EPtiKeyQwertySlash, EPtiCaseUpper, 60, 0},
};
-const TInt KMaxStandardQwertyIndex_English = 88;
+const TInt KMaxStandardQwertyIndex_English = 92;
//
// MiniQwerty keymap data table
--- a/textinput/ptienginev2/src/PtiLanguageDatabase.cpp Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/ptienginev2/src/PtiLanguageDatabase.cpp Fri Mar 12 15:44:07 2010 +0200
@@ -342,6 +342,8 @@
{0, 0}
};
+const TInt xt9LangImplUidDanish = 0x10282D36;
+const TInt xt9LangImplUidNorwegian = 0x10282D38;
// ---------------------------------------------------------------------------
// CPtiLanguageDatabase::LanguageCodeForUid
@@ -351,6 +353,15 @@
EXPORT_C TInt CPtiLanguageDatabase::LanguageCodeForUid(TInt aUid)
{
TInt i;
+
+ if ( aUid == xt9LangImplUidDanish )
+ {
+ return ELangDanish;
+ }
+ else if ( aUid == xt9LangImplUidNorwegian )
+ {
+ return ELangNorwegian;
+ }
for (i = 0; ; i++)
{
--- a/textinput/ptienginev2/tools/VariantParser.pl Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/ptienginev2/tools/VariantParser.pl Fri Mar 12 15:44:07 2010 +0200
@@ -54,12 +54,12 @@
}
print(INFFILE "/*\n");
-print(INFFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+print(INFFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(INFFILE "* All rights reserved.\n");
print(INFFILE "* This component and the accompanying materials are made available\n");
print(INFFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(INFFILE "* which accompanies this distribution, and is available\n");
-print(INFFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+print(INFFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(INFFILE "*\n");
print(INFFILE "* Initial Contributors:\n");
print(INFFILE "* Nokia Corporation - initial contribution.\n");
@@ -194,12 +194,12 @@
}
print(RESFILE "/*\n");
- print(RESFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(RESFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(RESFILE "* All rights reserved.\n");
print(RESFILE "* This component and the accompanying materials are made available\n");
print(RESFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(RESFILE "* which accompanies this distribution, and is available\n");
- print(RESFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(RESFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(RESFILE "*\n");
print(RESFILE "* Initial Contributors:\n");
print(RESFILE "* Nokia Corporation - initial contribution.\n");
@@ -254,12 +254,12 @@
}
print(MMPFILE "/*\n");
- print(MMPFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(MMPFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(MMPFILE "* All rights reserved.\n");
print(MMPFILE "* This component and the accompanying materials are made available\n");
print(MMPFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(MMPFILE "* which accompanies this distribution, and is available\n");
- print(MMPFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(MMPFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(MMPFILE "*\n");
print(MMPFILE "* Initial Contributors:\n");
print(MMPFILE "* Nokia Corporation - initial contribution.\n");
@@ -335,12 +335,12 @@
}
print(IBYFILE "/*\n");
- print(IBYFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(IBYFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(IBYFILE "* All rights reserved.\n");
print(IBYFILE "* This component and the accompanying materials are made available\n");
print(IBYFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(IBYFILE "* which accompanies this distribution, and is available\n");
- print(IBYFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(IBYFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(IBYFILE "*\n");
print(IBYFILE "* Initial Contributors:\n");
print(IBYFILE "* Nokia Corporation - initial contribution.\n");
@@ -389,12 +389,12 @@
}
print(CPPFILE "/*\n");
- print(CPPFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(CPPFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(CPPFILE "* All rights reserved.\n");
print(CPPFILE "* This component and the accompanying materials are made available\n");
print(CPPFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(CPPFILE "* which accompanies this distribution, and is available\n");
- print(CPPFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(CPPFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(CPPFILE "*\n");
print(CPPFILE "* Initial Contributors:\n");
print(CPPFILE "* Nokia Corporation - initial contribution.\n");
@@ -425,12 +425,12 @@
}
print(CHHFILE "/*\n");
- print(CHHFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(CHHFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(CHHFILE "* All rights reserved.\n");
print(CHHFILE "* This component and the accompanying materials are made available\n");
print(CHHFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(CHHFILE "* which accompanies this distribution, and is available\n");
- print(CHHFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(CHHFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(CHHFILE "*\n");
print(CHHFILE "* Initial Contributors:\n");
print(CHHFILE "* Nokia Corporation - initial contribution.\n");
@@ -462,12 +462,12 @@
}
print(CFFFILE "/*\n");
- print(CFFFILE "* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).\n");
+ print(CFFFILE "* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).\n");
print(CFFFILE "* All rights reserved.\n");
print(CFFFILE "* This component and the accompanying materials are made available\n");
print(CFFFILE "* under the terms of the License \"Eclipse Public License v1.0\"\n");
print(CFFFILE "* which accompanies this distribution, and is available\n");
- print(CFFFILE "* at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+ print(CFFFILE "* at the URL "http://www.eclipse.org/legal/epl-v10.html".\n");
print(CFFFILE "*\n");
print(CFFFILE "* Initial Contributors:\n");
print(CFFFILE "* Nokia Corporation - initial contribution.\n");
@@ -677,4 +677,4 @@
close(MASTERVARFILE);
-# End of file
+# End of file
\ No newline at end of file