|
1 /* |
|
2 * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0"" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include <coemain.h> |
|
20 #include <peninputsplititutnew.rsg> |
|
21 #include <peninputsplititutconfig_chinese.rsg> |
|
22 #include <AknFepGlobalEnums.h> |
|
23 #include <peninputlabel.h> |
|
24 |
|
25 #include "peninputsplititutchnuistatestandby.h" |
|
26 #include "peninputsplititutuimgrbase.h" |
|
27 #include "peninputsplititutlayoutcontext.h" |
|
28 #include "peninputsplititutdatamgr.h" |
|
29 |
|
30 |
|
31 // ============================ MEMBER FUNCTIONS ============================= |
|
32 |
|
33 // --------------------------------------------------------------------------- |
|
34 // CChnSplitItutUiStateStandby::NewL |
|
35 // --------------------------------------------------------------------------- |
|
36 // |
|
37 CChnSplitItutUiStateStandby* CChnSplitItutUiStateStandby::NewL(CSplitItutUiMgrBase* aOwner) |
|
38 { |
|
39 CChnSplitItutUiStateStandby* self = new (ELeave) CChnSplitItutUiStateStandby(aOwner); |
|
40 CleanupStack::PushL(self); |
|
41 self->ConstructL(); |
|
42 CleanupStack::Pop(self); |
|
43 return self; |
|
44 } |
|
45 |
|
46 // --------------------------------------------------------------------------- |
|
47 // CChnSplitItutUiStateStandby::~CChnSplitItutUiStateStandby |
|
48 // --------------------------------------------------------------------------- |
|
49 // |
|
50 CChnSplitItutUiStateStandby::~CChnSplitItutUiStateStandby() |
|
51 { |
|
52 } |
|
53 |
|
54 // --------------------------------------------------------------------------- |
|
55 // CChnSplitItutUiStateStandby::CChnSplitItutUiStateStandby |
|
56 // --------------------------------------------------------------------------- |
|
57 // |
|
58 CChnSplitItutUiStateStandby::CChnSplitItutUiStateStandby(CSplitItutUiMgrBase* aOwner) |
|
59 :CSplitItutUiStateBase(aOwner) |
|
60 { |
|
61 } |
|
62 |
|
63 // --------------------------------------------------------------------------- |
|
64 // CChnSplitItutUiStateStandby::StateType |
|
65 // --------------------------------------------------------------------------- |
|
66 // |
|
67 CSplitItutUiMgrBase::TUiState CChnSplitItutUiStateStandby::StateType() |
|
68 { |
|
69 return CSplitItutUiMgrBase::EStateStandby; |
|
70 } |
|
71 |
|
72 // --------------------------------------------------------------------------- |
|
73 // CChnSplitItutUiStateStandby::OnEntryL |
|
74 // --------------------------------------------------------------------------- |
|
75 // |
|
76 void CChnSplitItutUiStateStandby::OnEntryL() |
|
77 { |
|
78 // pinyin |
|
79 switch (iOwner->DataMgr()->InputMode()) |
|
80 { |
|
81 case EPinyin: |
|
82 { |
|
83 iOwner->DataMgr()->NotifyChangeControlLayout( |
|
84 MItutPropertySubscriber::EItutPropertyKeypadResourceId, |
|
85 R_FINGER_INPUT_KEYPAD_PINYIN_STANDBY_PREDICT); |
|
86 } |
|
87 break; |
|
88 case EStroke: |
|
89 { |
|
90 TInt resID; |
|
91 if (iOwner->DataMgr()->InputLanguage() == ELangPrcChinese) |
|
92 { |
|
93 resID = R_FINGER_INPUT_KEYPAD_STROKE_STANDBY_PREDICT_PRC; |
|
94 } |
|
95 else |
|
96 { |
|
97 resID = R_FINGER_INPUT_KEYPAD_STROKE_STANDBY_PREDICT_TRA; |
|
98 } |
|
99 iOwner->DataMgr()->NotifyChangeControlLayout( |
|
100 MItutPropertySubscriber::EItutPropertyKeypadResourceId, |
|
101 resID); |
|
102 } |
|
103 break; |
|
104 case EZhuyin: |
|
105 { |
|
106 iOwner->DataMgr()->NotifyChangeControlLayout( |
|
107 MItutPropertySubscriber::EItutPropertyKeypadResourceId, |
|
108 R_FINGER_INPUT_KEYPAD_ZHUYIN_STANDBY_PREDICT); |
|
109 } |
|
110 break; |
|
111 default: |
|
112 break; |
|
113 } |
|
114 |
|
115 |
|
116 iOwner->LayoutContext()->ShowArrowBtn( |
|
117 EBtnArrowLeft | EBtnArrowRight | EBtnArrowUp | EBtnArrowDown); |
|
118 } |
|
119 |
|
120 // --------------------------------------------------------------------------- |
|
121 // CChnSplitItutUiStateStandby::OnExit |
|
122 // --------------------------------------------------------------------------- |
|
123 // |
|
124 void CChnSplitItutUiStateStandby::OnExit() |
|
125 { |
|
126 // hide input mode indicator |
|
127 |
|
128 iOwner->LayoutContext()->ShowArrowBtn(0); |
|
129 } |
|
130 |
|
131 // --------------------------------------------------------------------------- |
|
132 // CChnSplitItutUiStateStandby::HandleKeyL |
|
133 // --------------------------------------------------------------------------- |
|
134 // |
|
135 TBool CChnSplitItutUiStateStandby::HandleKeyL(TInt aCmd, TInt aKey) |
|
136 { |
|
137 if (aKey == EKeyBackspace) |
|
138 { |
|
139 return iOwner->ClrConsumed(); |
|
140 } |
|
141 |
|
142 if (IsKeyValid(aKey)) |
|
143 { |
|
144 iOwner->SetNumLongPressValid(ETrue); |
|
145 iOwner->SetCurrentStateL(CSplitItutUiMgrBase::EStateComposition); |
|
146 iOwner->CurrentState()->HandleKeyL(aCmd, aKey); |
|
147 return ETrue; |
|
148 } |
|
149 |
|
150 return EFalse; |
|
151 } |
|
152 |
|
153 // --------------------------------------------------------------------------- |
|
154 // CChnSplitItutUiStateStandby::IsKeyValid |
|
155 // --------------------------------------------------------------------------- |
|
156 // |
|
157 TBool CChnSplitItutUiStateStandby::IsKeyValid(TInt aKey) |
|
158 { |
|
159 TInt immode = iOwner->DataMgr()->InputMode(); |
|
160 |
|
161 return (immode == EPinyin && aKey >= EPtiKey2 && aKey <= EPtiKey9) || |
|
162 (immode == EStroke && aKey >= EPtiKey1 && aKey <= EPtiKey6) || |
|
163 (immode == EZhuyin && aKey >= EPtiKey0 && aKey <= EPtiKey9); |
|
164 } |
|
165 |
|
166 // End Of File |