94 TCallBack( HandleGSRepositoryCallBack, this ), |
94 TCallBack( HandleGSRepositoryCallBack, this ), |
95 iRepositorySetting ); |
95 iRepositorySetting ); |
96 |
96 |
97 //create state manager |
97 //create state manager |
98 CreateStateManagerL(); |
98 CreateStateManagerL(); |
99 |
99 |
|
100 //create the arabic window control |
100 CreateHwrWindowL(); |
101 CreateHwrWindowL(); |
101 |
102 |
|
103 //retrieve the settings |
102 LoadAndPublishDefaultL(); |
104 LoadAndPublishDefaultL(); |
|
105 |
103 //set screen layout extent |
106 //set screen layout extent |
104 SetRect( TRect( TPoint( 0, 0 ), ScreenSize() ) ); |
107 SetRect( TRect( TPoint( 0, 0 ), ScreenSize() ) ); |
105 } |
108 } |
106 |
109 |
107 // --------------------------------------------------------------------------- |
110 // --------------------------------------------------------------------------- |
144 case ECmdPenInputEditorCustomNumericKeyMap: |
147 case ECmdPenInputEditorCustomNumericKeyMap: |
145 { |
148 { |
146 TInt len = *( TInt* )( aData - KIntSize ); |
149 TInt len = *( TInt* )( aData - KIntSize ); |
147 TPtrC16 keymapRes( (TUint16*)aData, len / 2 ); |
150 TPtrC16 keymapRes( (TUint16*)aData, len / 2 ); |
148 iDataStore->SetCustomNumberModeL( keymapRes ); |
151 iDataStore->SetCustomNumberModeL( keymapRes ); |
149 ret = KErrNone; |
|
150 } |
152 } |
151 break; |
153 break; |
152 case ECmdPenInputPermittedRange: |
154 case ECmdPenInputPermittedRange: |
153 { |
155 { |
154 TInt ranges = *(TInt*)aData; |
156 TInt ranges = *(TInt*)aData; |
155 iDataStore->SetPermittedRanges( ranges ); |
157 iDataStore->SetPermittedRanges( ranges ); |
156 ret = KErrNone; |
|
157 } |
158 } |
158 break; |
159 break; |
159 case ECmdPenInputLanguage: |
160 case ECmdPenInputLanguage: |
160 { |
161 { |
161 TInt language = *( TInt* )aData; |
162 TInt language = *( TInt* )aData; |
162 iDataStore->SetLanguageL( language ); |
163 iDataStore->SetLanguageL( language ); |
163 ret = KErrNone; |
|
164 } |
164 } |
165 break; |
165 break; |
166 case ECmdPenInputPermittedCase: |
166 case ECmdPenInputPermittedCase: |
167 { |
167 { |
168 TInt cs = *( TInt* )aData; |
168 TInt cs = *( TInt* )aData; |
169 iDataStore->SetPermittedCases( cs ); |
169 iDataStore->SetPermittedCases( cs ); |
170 ret = KErrNone; |
|
171 } |
170 } |
172 break; |
171 break; |
173 case ECmdPenInputCase: |
172 case ECmdPenInputCase: |
174 { |
173 { |
175 TInt cs = *( TInt* )aData; |
174 TInt cs = *( TInt* )aData; |
176 iDataStore->SetCase( cs ); |
175 iDataStore->SetCase( cs ); |
177 ret = KErrNone; |
|
178 } |
176 } |
179 break; |
177 break; |
180 case ECmdPenInputWindowOpen: |
178 case ECmdPenInputWindowOpen: |
181 { |
179 { |
182 LayoutOwner()->Hide( EFalse ); |
180 LayoutOwner()->Hide( EFalse ); |
183 RootControl()->UpdateValidRegion( NULL, EFalse ); |
181 RootControl()->UpdateValidRegion( NULL, EFalse ); |
184 |
182 |
|
183 // tell the engine the hwr writing area |
185 TRect hwrRect = iHwrWnd->WritingBoxRect(); |
184 TRect hwrRect = iHwrWnd->WritingBoxRect(); |
186 TSize hwrSize = hwrRect.Size(); |
185 TSize hwrSize = hwrRect.Size(); |
187 iDataStore->SetInputAreaSize(hwrSize); |
186 iDataStore->SetInputAreaSize(hwrSize); |
188 iDataStore->SetScreenSize(hwrSize); |
187 iDataStore->SetScreenSize(hwrSize); |
|
188 |
|
189 // tell the HWR window to handle the window open command |
|
190 iHwrWnd->HandleWindowOpenCommandL(); |
|
191 |
|
192 // switch to standby state |
189 ChangeCurStateToStandby(); |
193 ChangeCurStateToStandby(); |
190 |
|
191 iDataStore->GetKeyboardType(); |
|
192 iDataStore->SetKeyboardToQwerty(); |
|
193 ret = KErrNone; |
|
194 } |
194 } |
195 break; |
195 break; |
196 case ECmdPenInputWindowClose: |
196 case ECmdPenInputWindowClose: |
197 { |
197 { |
198 iDataStore->ResetKeyboardType(); |
|
199 LayoutOwner()->Hide( ETrue ); |
198 LayoutOwner()->Hide( ETrue ); |
200 ret = KErrNone; |
|
201 } |
199 } |
202 break; |
200 break; |
203 case ECmdPenInputSetTextAlignment: |
201 case ECmdPenInputSetTextAlignment: |
204 { |
202 { |
205 iHwrWnd->SetTextAlignmentL( *aData, ELangArabic ); |
203 iHwrWnd->SetTextAlignmentL( *aData, ELangArabic ); |
206 ret = KErrNone; |
|
207 } |
204 } |
208 break; |
205 break; |
209 case ECmdPenInputSetPromptText: |
206 case ECmdPenInputSetPromptText: |
210 { |
207 { |
211 iHwrWnd->SetPromptTextL( aData ); |
208 iHwrWnd->SetPromptTextL( aData ); |
212 ret = KErrNone; |
|
213 } |
209 } |
214 break; |
210 break; |
215 case ECmdPenInputDimArrowKeys: |
211 case ECmdPenInputDimArrowKeys: |
216 { |
212 { |
217 TBool IsDimArrowKeys = *aData; |
213 TBool IsDimArrowKeys = *aData; |
218 iHwrWnd->DimArrowKeys( IsDimArrowKeys ); |
214 iHwrWnd->DimArrowKeys( IsDimArrowKeys ); |
219 ret = KErrNone; |
|
220 } |
215 } |
221 break; |
216 break; |
222 case ECmdPenInputCharacterPreview: |
217 case ECmdPenInputCharacterPreview: |
223 { |
218 { |
224 iHwrWnd->ShowBubble(*aData); |
219 iHwrWnd->ShowBubble(*aData); |
349 // Called by owner when the layout is going to be hidden. |
353 // Called by owner when the layout is going to be hidden. |
350 // --------------------------------------------------------------------------- |
354 // --------------------------------------------------------------------------- |
351 // |
355 // |
352 void CPeninputFingerHwrArLayout::OnDeActivate() |
356 void CPeninputFingerHwrArLayout::OnDeActivate() |
353 { |
357 { |
354 // cancel writing |
358 ChangeCurStateToStandby(); |
355 iHwrWnd->CancelWriting(); |
|
356 |
|
357 // close the symbol table if it's showing up |
|
358 iHwrWnd->CloseSymbolTable(); |
|
359 |
|
360 // close the candidate list if it's showing up |
|
361 iHwrWnd->CloseCandidateList(); |
|
362 |
359 |
363 CFepUiLayout::OnDeActivate(); |
360 CFepUiLayout::OnDeActivate(); |
364 } |
361 } |
365 |
362 |
366 // --------------------------------------------------------------------------- |
363 // --------------------------------------------------------------------------- |
568 |
559 |
569 TInt newValue; |
560 TInt newValue; |
570 |
561 |
571 iRepositorySetting->Get( KSettingsWritingSpeed, newValue ); |
562 iRepositorySetting->Get( KSettingsWritingSpeed, newValue ); |
572 SetWritingSpeed( newValue ); |
563 SetWritingSpeed( newValue ); |
573 |
564 |
|
565 iRepositorySetting->Get(KSettingsPenInputGuideLine,newValue); |
|
566 SetGuideLineOn(newValue); |
|
567 |
574 iRepositorySetting->Get( KSettingsPenWidth, newValue ); |
568 iRepositorySetting->Get( KSettingsPenWidth, newValue ); |
575 SetBoxPenSize( TSize( newValue, newValue ) ); |
569 SetBoxPenSize( TSize( newValue, newValue ) ); |
576 |
570 |
577 newValue = GetPenTrailColor(); |
571 newValue = GetPenTrailColor(); |
578 SetBoxPenColor( newValue ); |
572 SetBoxPenColor( newValue ); |
686 OnDeActivate(); |
673 OnDeActivate(); |
687 } |
674 } |
688 break; |
675 break; |
689 case EHwrCtrlIdSymbolButton: |
676 case EHwrCtrlIdSymbolButton: |
690 { |
677 { |
691 // Go to standby when button up before character timeout |
678 // Go to standby before opening symbol table |
692 if ( iDataStore->StartCharacter()) |
679 ChangeCurStateToStandby(); |
693 { |
680 iHwrWnd->OpenSymbolTable(); |
694 iDataStore->SetStartCharacter(EFalse); |
|
695 iHwrWnd->CancelWriting(); |
|
696 ChangeCurStateToStandby(); |
|
697 iHwrWnd->CloseCandidateList(); |
|
698 } |
|
699 |
|
700 if(iHwrWnd->IsSymbolTableShowingUp()) |
|
701 { |
|
702 iHwrWnd->CloseSymbolTable(); |
|
703 } |
|
704 else |
|
705 { |
|
706 ChangeCurStateToStandby(); |
|
707 iHwrWnd->OpenSymbolTable(); |
|
708 } |
|
709 } |
681 } |
710 break; |
682 break; |
711 case EHwrCtrlId3Page1Btn: |
683 case EHwrCtrlId3Page1Btn: |
712 { |
684 { |
713 iHwrWnd->ShowSymbolPage( 1, EPagePosPageNo ); |
685 iHwrWnd->ShowSymbolPage( 1, EPagePosPageNo ); |
799 void CPeninputFingerHwrArLayout::OnBackspaceClickedL() |
771 void CPeninputFingerHwrArLayout::OnBackspaceClickedL() |
800 { |
772 { |
801 iHwrWnd->CancelWriting(); |
773 iHwrWnd->CancelWriting(); |
802 if (iHwrWnd->IsCandidateShowup()) |
774 if (iHwrWnd->IsCandidateShowup()) |
803 { |
775 { |
804 // goto standby and clear screen |
776 // goto standby and clear screen |
805 iDataStore->SetStartCharacter(EFalse); |
|
806 ChangeCurStateToStandby(); |
777 ChangeCurStateToStandby(); |
807 iHwrWnd->CloseCandidateList(); |
|
808 } |
778 } |
809 else |
779 else |
810 { |
780 { |
811 SubmitCharToFep( EKeyBackspace ); |
781 SubmitCharToFep( EKeyBackspace ); |
812 iStateMgr->HandleEventL( EHwrEventKeyBack, KNullDesC ); |
782 iStateMgr->HandleEventL( EHwrEventKeyBack, KNullDesC ); |
813 if(iDataStore->StartCharacter()) |
783 if(iIsStrokeOfDrawingCharacerStarted) |
814 { |
784 { |
815 ChangeCurStateToStandby(); |
785 ChangeCurStateToStandby(); |
816 iHwrWnd->CloseCandidateList();; |
|
817 } |
786 } |
818 } |
787 } |
819 } |
788 } |
820 |
789 |
821 // --------------------------------------------------------------------------- |
790 // --------------------------------------------------------------------------- |
929 // handler of CharacterFinished event. |
893 // handler of CharacterFinished event. |
930 // --------------------------------------------------------------------------- |
894 // --------------------------------------------------------------------------- |
931 // |
895 // |
932 void CPeninputFingerHwrArLayout::OnHwrCharacterFinishedL() |
896 void CPeninputFingerHwrArLayout::OnHwrCharacterFinishedL() |
933 { |
897 { |
934 iDataStore->SetStartCharacter( EFalse ); |
898 iIsStrokeOfDrawingCharacerStarted = EFalse; |
935 |
899 |
936 RArray<TPoint> points = iHwrWnd->StrokeList(); |
900 RArray<TPoint> points = iHwrWnd->StrokeList(); |
937 TPtrC ptr; |
901 TPtrC ptr; |
938 ptr.Set( reinterpret_cast<TText*>( &points ), sizeof(&points) ); |
902 ptr.Set( reinterpret_cast<TText*>( &points ), sizeof(&points) ); |
939 iStateMgr->HandleEventL( EEventHwrCharacterTimerOut, ptr ); |
903 iStateMgr->HandleEventL( EEventHwrCharacterTimerOut, ptr ); |
940 |
904 |
941 iHwrWnd->OpenCandidateList(); |
905 iHwrWnd->OpenCandidateList(); |
942 } |
906 } |
943 |
907 |
944 // --------------------------------------------------------------------------- |
908 // --------------------------------------------------------------------------- |
945 // get value from repository. |
909 // get value from repository. |
1049 // change current state manager to standby state. |
1013 // change current state manager to standby state. |
1050 // --------------------------------------------------------------------------- |
1014 // --------------------------------------------------------------------------- |
1051 // |
1015 // |
1052 void CPeninputFingerHwrArLayout::ChangeCurStateToStandby() |
1016 void CPeninputFingerHwrArLayout::ChangeCurStateToStandby() |
1053 { |
1017 { |
|
1018 iIsStrokeOfDrawingCharacerStarted = EFalse; |
1054 iHwrWnd->CancelWriting(); |
1019 iHwrWnd->CancelWriting(); |
|
1020 |
|
1021 // close the candidate list if it's currently showing up |
|
1022 if(iHwrWnd->IsCandidateShowup()) |
|
1023 { |
|
1024 iHwrWnd->CloseCandidateList(); |
|
1025 } |
|
1026 |
|
1027 // close the symbol table |
|
1028 if(iHwrWnd->IsSymbolTableShowingUp()) |
|
1029 { |
|
1030 iHwrWnd->CloseSymbolTable(); |
|
1031 } |
|
1032 |
|
1033 // set the state to be standby |
1055 iStateMgr->SetState( CPeninputFingerHwrArStateManagerBase::EStateStandBy ); |
1034 iStateMgr->SetState( CPeninputFingerHwrArStateManagerBase::EStateStandBy ); |
1056 } |
1035 } |
1057 |
1036 |
1058 //End of file |
1037 //End of file |