132 delete iBmpRotator; |
132 delete iBmpRotator; |
133 iAccentCmdList.Close(); |
133 iAccentCmdList.Close(); |
134 } |
134 } |
135 void CPeninputGenericVkbWindow::ConstructL() |
135 void CPeninputGenericVkbWindow::ConstructL() |
136 { |
136 { |
|
137 iHandleRangeShortPress = ETrue; |
137 iBmpRotator = CPeninputSyncBitmapRotator::NewL(); |
138 iBmpRotator = CPeninputSyncBitmapRotator::NewL(); |
138 iLafMgr = CPeninputGenericVkbLafMgr::NewL(); |
139 iLafMgr = CPeninputGenericVkbLafMgr::NewL(); |
139 iLafMgr->SetInputModeL(TPluginInputMode (iLayoutContext->LayoutType())); |
140 iLafMgr->SetInputModeL(TPluginInputMode (iLayoutContext->LayoutType())); |
140 CPeninputLayoutWindowExt::ConstructL(); |
141 CPeninputLayoutWindowExt::ConstructL(); |
141 |
142 |
162 { |
163 { |
163 case EPeninputLayoutEventMultiRange: |
164 case EPeninputLayoutEventMultiRange: |
164 { |
165 { |
165 if ( aCtrl->ControlId() == EPeninutWindowCtrlIdMultiRangeBtn ) |
166 if ( aCtrl->ControlId() == EPeninutWindowCtrlIdMultiRangeBtn ) |
166 { |
167 { |
167 PopupChoiceList(); |
168 if ( iHandleRangeShortPress ) |
|
169 { |
|
170 HandleRangeButtonShortPress(); |
|
171 } |
168 } |
172 } |
|
173 iHandleRangeShortPress = ETrue; |
169 } |
174 } |
170 break; |
175 break; |
171 case EPeninputLayoutEventMultiRangeLongPress: |
176 case EPeninputLayoutEventMultiRangeLongPress: |
172 { |
177 { |
173 const TInt range = CPeninputDataConverter::AnyToInt( |
|
174 iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); |
|
175 |
|
176 const TInt langId = IntContext( EPeninputDataTypeInputLanguage ); |
|
177 |
|
178 if ( aCtrl->ControlId() == EPeninutWindowCtrlIdMultiRangeBtn ) |
178 if ( aCtrl->ControlId() == EPeninutWindowCtrlIdMultiRangeBtn ) |
179 { |
179 { |
180 |
180 // Before pop up list, cancel down event, and set range button un-highlight. |
181 if ( range == ERangeAccent ) |
181 TRAP_IGNORE( aCtrl->CancelPointerDownL()); |
182 { |
182 static_cast<CAknFepCtrlCommonButton*>(aCtrl)->SetHighlight( EFalse ); |
183 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
183 PopupChoiceList(); |
184 { |
|
185 ChangeRange(ERangeNative); |
|
186 } |
|
187 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
188 { |
|
189 ChangeRange(ERangeEnglish); |
|
190 } |
|
191 } |
|
192 else if ( range == ERangeNative ) |
|
193 { |
|
194 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) |
|
195 { |
|
196 |
|
197 if ( langId != ELangArabic && langId != ELangFarsi |
|
198 && langId != ELangUrdu && langId != ELangThai ) |
|
199 { |
|
200 ChangeRange(ERangeNativeNumber); |
|
201 } |
|
202 } |
|
203 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) |
|
204 { |
|
205 if ( langId != ELangArabic && langId != ELangFarsi |
|
206 && langId != ELangUrdu && langId != ELangThai ) |
|
207 { |
|
208 ChangeRange(ERangeNumber); |
|
209 } |
|
210 } |
|
211 } |
|
212 else if ( range == ERangeEnglish ) |
|
213 { |
|
214 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) |
|
215 { |
|
216 ChangeRange(ERangeNumber); |
|
217 } |
|
218 } |
|
219 else if ( range == ERangeNativeNumber ) |
|
220 { |
|
221 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
|
222 { |
|
223 ChangeRange(ERangeNative); |
|
224 } |
|
225 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
226 { |
|
227 ChangeRange(ERangeEnglish); |
|
228 } |
|
229 } |
|
230 else if ( range == ERangeNumber ) |
|
231 { |
|
232 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
|
233 { |
|
234 ChangeRange(ERangeNative); |
|
235 } |
|
236 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
237 { |
|
238 ChangeRange(ERangeEnglish); |
|
239 } |
|
240 } |
|
241 |
|
242 TRAP_IGNORE( UpdateRangeCtrlsL() ); |
|
243 } |
184 } |
244 } |
185 } |
245 break; |
186 break; |
246 case EPeninputLayoutVkbEventResetShift: |
187 case EPeninputLayoutVkbEventResetShift: |
247 { |
188 { |
261 } |
202 } |
262 } |
203 } |
263 break; |
204 break; |
264 case EEventChoiceSelected: |
205 case EEventChoiceSelected: |
265 { |
206 { |
|
207 CFepUiBaseCtrl* btn = Control( EPeninutWindowCtrlIdMultiRangeBtn ); |
|
208 |
|
209 if ( btn ) |
|
210 { |
|
211 iHandleRangeShortPress = EFalse; |
|
212 TRAP_IGNORE( btn->HandlePointerUpEventL( btn->Rect().iBr ) ); |
|
213 iHandleRangeShortPress = ETrue; |
|
214 } |
266 CFepLayoutChoiceList::SEvent* event = |
215 CFepLayoutChoiceList::SEvent* event = |
267 ( CFepLayoutChoiceList::SEvent* ) aEventData.Ptr(); |
216 ( CFepLayoutChoiceList::SEvent* ) aEventData.Ptr(); |
268 |
217 |
269 if ( event->iIndex != KPeninputVkbWndInvalidIndex ) |
218 if ( event->iIndex != KPeninputVkbWndInvalidIndex ) |
270 { |
219 { |
1708 { |
1657 { |
1709 if( iVkbCtrl->IsIrregularKeyBoard() ) |
1658 if( iVkbCtrl->IsIrregularKeyBoard() ) |
1710 iVkbLayout->ConstructFromIrregularResourceL(); |
1659 iVkbLayout->ConstructFromIrregularResourceL(); |
1711 else |
1660 else |
1712 iVkbLayout->ConstructFromNonIrregularResourceL(); |
1661 iVkbLayout->ConstructFromNonIrregularResourceL(); |
1713 SetVkbLayoutSize(); |
1662 |
|
1663 //SetVkbLayoutSize(); |
1714 |
1664 |
1715 if( IsRtoLLanguage( iLanguage ) ) |
1665 if( IsRtoLLanguage( iLanguage ) ) |
1716 { |
1666 { |
1717 //Mirror backspace graphic |
1667 //Mirror backspace graphic |
1718 HandleButtonResOnLangDirChange( EPeninutWindowCtrlIdBackspaceBtn ); |
1668 HandleButtonResOnLangDirChange( EPeninutWindowCtrlIdBackspaceBtn ); |
2963 icf->MsgBubbleCtrl()->GetText( text ); |
2913 icf->MsgBubbleCtrl()->GetText( text ); |
2964 icf->ShowBubble( text, icf->MsgBubbleCtrl()->Rect()); |
2914 icf->ShowBubble( text, icf->MsgBubbleCtrl()->Rect()); |
2965 } |
2915 } |
2966 } |
2916 } |
2967 } |
2917 } |
|
2918 |
|
2919 void CPeninputGenericVkbWindow::HandleRangeButtonShortPress() |
|
2920 { |
|
2921 const TInt range = CPeninputDataConverter::AnyToInt( |
|
2922 iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); |
|
2923 |
|
2924 const TInt langId = IntContext( EPeninputDataTypeInputLanguage ); |
|
2925 |
|
2926 switch ( langId ) |
|
2927 { |
|
2928 case ELangRussian: |
|
2929 case ELangBulgarian: |
|
2930 case ELangUkrainian: |
|
2931 { |
|
2932 range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); |
|
2933 } |
|
2934 break; |
|
2935 |
|
2936 case ELangArabic: |
|
2937 case ELangFarsi: |
|
2938 case ELangUrdu: |
|
2939 { |
|
2940 range == ERangeNative ? ChangeRange( ERangeNativeNumber ) : ChangeRange( ERangeNative ); |
|
2941 } |
|
2942 break; |
|
2943 |
|
2944 case ELangThai: |
|
2945 { |
|
2946 range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); |
|
2947 } |
|
2948 break; |
|
2949 |
|
2950 case ELangGreek: |
|
2951 case ELangHebrew: |
|
2952 { |
|
2953 range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); |
|
2954 } |
|
2955 break; |
|
2956 default: // Latin, vietnamese, and other possible languages |
|
2957 { |
|
2958 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) |
|
2959 { |
|
2960 if ( range == ERangeNative ) |
|
2961 { |
|
2962 if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) |
|
2963 { |
|
2964 ChangeRange( ERangeNativeNumber ); |
|
2965 } |
|
2966 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) |
|
2967 { |
|
2968 ChangeRange( ERangeNumber ); |
|
2969 } |
|
2970 } |
|
2971 else |
|
2972 { |
|
2973 ChangeRange( ERangeNative ); |
|
2974 } |
|
2975 } |
|
2976 else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) |
|
2977 { |
|
2978 range == ERangeEnglish ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeEnglish ); |
|
2979 } |
|
2980 } |
|
2981 break; |
|
2982 } |
|
2983 |
|
2984 TRAP_IGNORE( UpdateRangeCtrlsL() ); |
|
2985 } |
2968 // End Of File |
2986 // End Of File |