--- a/textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp Tue May 11 16:31:42 2010 +0300
+++ b/textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp Tue May 25 13:03:44 2010 +0300
@@ -57,6 +57,7 @@
#include "peninputsplitqwertylayout.h"
#include <peninputaknvkbpreviewbubblerenderer.h>
+#include <peninputlongpressbutton.h>
// Constants
const TInt KPeninputVkbWndInvalidIndex = -1;
@@ -481,7 +482,82 @@
switch ( aEventType )
{
- case EEventButtonUp:
+ case EPeninputLayoutEventMultiRangeLongPress:
+ {
+ const TInt range = CPeninputDataConverter::AnyToInt(
+ iLayoutContext->RequestData(EPeninputDataTypeCurrentRange));
+
+ const TInt langId = CPeninputDataConverter::AnyToInt(
+ iLayoutContext->RequestData(EPeninputDataTypeInputLanguage));
+
+ if ( aCtrl->ControlId() == EPeninutWindowCtrlIdRangeBtn )
+ {
+ if ( range == ERangeAccent )
+ {
+ if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) )
+ {
+ ChangeRange(ERangeNative);
+ }
+ else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) )
+ {
+ ChangeRange(ERangeEnglish);
+ }
+ }
+ else if ( range == ERangeNative )
+ {
+ if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) )
+ {
+
+ if ( langId != ELangArabic && langId != ELangFarsi
+ && langId != ELangUrdu && langId != ELangThai )
+ {
+ ChangeRange(ERangeNativeNumber);
+ }
+ }
+ else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) )
+ {
+ if ( langId != ELangArabic && langId != ELangFarsi
+ && langId != ELangUrdu && langId != ELangThai )
+ {
+ ChangeRange(ERangeNumber);
+ }
+ }
+ }
+ else if ( range == ERangeEnglish )
+ {
+ if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) )
+ {
+ ChangeRange(ERangeNumber);
+ }
+ }
+ else if ( range == ERangeNativeNumber )
+ {
+ if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) )
+ {
+ ChangeRange(ERangeNative);
+ }
+ else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) )
+ {
+ ChangeRange(ERangeEnglish);
+ }
+ }
+ else if ( range == ERangeNumber )
+ {
+ if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) )
+ {
+ ChangeRange(ERangeNative);
+ }
+ else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) )
+ {
+ ChangeRange(ERangeEnglish);
+ }
+ }
+
+ TRAP_IGNORE( UpdateRangeCtrlsL() );
+ }
+ }
+ break;
+ case EPeninputLayoutEventMultiRange:
{
if ( ctrlId == EPeninutWindowCtrlIdRangeBtn )
{
@@ -1293,12 +1369,13 @@
//
void CPeninputSplitQwertyWindow::AddRangeBarL()
{
- CAknFepCtrlCommonButton* button = CAknFepCtrlCommonButton::NewL(
- UiLayout(),
- EPeninutWindowCtrlIdRangeBtn,
- KAknsIIDQsnFrFunctionButtonNormal,
- KAknsIIDQsnFrFunctionButtonPressed,
- KAknsIIDQsnFrFunctionButtonInactive );
+ CAknFepCtrlLongPressButton* button = CAknFepCtrlLongPressButton::NewL(
+ UiLayout(),
+ EPeninutWindowCtrlIdRangeBtn,
+ 0xffff, 0,
+ KAknsIIDQsnFrFunctionButtonNormal,
+ KAknsIIDQsnFrFunctionButtonPressed,
+ KAknsIIDQsnFrFunctionButtonInactive );
CleanupStack::PushL( button );
button->SetResourceId( R_PENINPUT_LAYOUT_VKB_RANGE_DEFAULT );