17 |
17 |
18 |
18 |
19 // INCLUDES |
19 // INCLUDES |
20 #include <e32base.h> |
20 #include <e32base.h> |
21 |
21 |
22 #include <akntoolbar.h> |
|
23 #include <AknsItemID.h> |
22 #include <AknsItemID.h> |
|
23 #include <AknsUtils.h> |
24 #include <StringLoader.h> |
24 #include <StringLoader.h> |
25 #include "phoneresourceids.h" |
25 |
|
26 #include <phoneui.mbg> |
|
27 #include <phoneui.rsg> |
|
28 #include <phoneuivoip.rsg> |
|
29 #include <data_caging_path_literals.hrh> // For KDC_APP_BITMAP_DIR |
|
30 |
26 #include "phoneui.pan" |
31 #include "phoneui.pan" |
27 #include "phonelogger.h" |
32 #include "phonelogger.h" |
28 #include <data_caging_path_literals.hrh> |
|
29 #include "cphonetransferdialercontroller.h" |
33 #include "cphonetransferdialercontroller.h" |
30 #include "cphonemainresourceresolver.h" |
34 #include "cphonemainresourceresolver.h" |
31 #include "phonerssvoip.h" |
35 #include "phonerssvoip.h" |
32 #include "phoneappcommands.hrh" |
36 #include "phoneappcommands.hrh" |
33 #include "phoneappvoipcommands.hrh" |
37 #include "phoneappvoipcommands.hrh" |
34 |
38 |
35 |
39 |
36 // CONSTANTS |
40 // CONSTANTS |
37 _LIT ( KPhoneMifFileName, "phoneui.mif" ); |
41 _LIT ( KPhoneMifFileName, "phoneui.mif" ); |
38 |
42 |
|
43 // Number of buttons |
|
44 const TInt KButtonCount = 2; |
|
45 |
|
46 class TPhoneDialerToolbarButton |
|
47 { |
|
48 public: |
|
49 TInt iIconIndex; |
|
50 TInt iMaskIndex; |
|
51 TInt iCommandId; |
|
52 }; |
|
53 |
|
54 const TPhoneDialerToolbarButton bArray[KButtonCount] = |
|
55 { |
|
56 { EMbmPhoneuiQgn_indi_button_send_dtmf, |
|
57 EMbmPhoneuiQgn_indi_button_send_dtmf_mask, |
|
58 EPhoneCmdTransferDialerOk |
|
59 }, |
|
60 { EMbmPhoneuiQgn_indi_dialer_contacts, |
|
61 EMbmPhoneuiQgn_indi_dialer_contacts_mask, |
|
62 EPhoneCmdTransferDialerSearch |
|
63 } |
|
64 }; |
|
65 |
39 // ================= MEMBER FUNCTIONS ======================= |
66 // ================= MEMBER FUNCTIONS ======================= |
40 |
67 |
41 // C++ default constructor can NOT contain any code, that |
68 // C++ default constructor can NOT contain any code, that |
42 // might leave. |
69 // might leave. |
43 // |
70 // |
44 CPhoneTransferDialerController::CPhoneTransferDialerController() |
71 CPhoneTransferDialerController::CPhoneTransferDialerController() |
|
72 : CPhoneDialerController( NULL, *CCoeEnv::Static() ) |
45 { |
73 { |
46 } |
74 } |
47 |
75 |
48 // ----------------------------------------------------------- |
76 // ----------------------------------------------------------- |
49 // CPhoneTransferDialerController::~CPhoneTransferDialerController() |
77 // CPhoneTransferDialerController::~CPhoneTransferDialerController() |
128 "CPhoneTransferDialerController::NumberEntryPromptTextL()"); |
133 "CPhoneTransferDialerController::NumberEntryPromptTextL()"); |
129 if ( !iNumberEntryPromptText ) |
134 if ( !iNumberEntryPromptText ) |
130 { |
135 { |
131 iNumberEntryPromptText = StringLoader::LoadL( |
136 iNumberEntryPromptText = StringLoader::LoadL( |
132 CPhoneMainResourceResolver::Instance()-> |
137 CPhoneMainResourceResolver::Instance()-> |
133 ResolveResourceID( EPhoneVoIPTransferAddress ) ); |
138 ResolveResourceID( EPhoneVoIPTransferAddress ), &iCoeEnv ); |
134 } |
139 } |
135 |
140 |
136 return *iNumberEntryPromptText; |
141 return *iNumberEntryPromptText; |
137 } |
142 } |
138 |
143 |
139 // ----------------------------------------------------------- |
144 // --------------------------------------------------------------------------- |
140 // CPhoneTransferDialerController::HandleNumberEntryIsEmpty |
145 // GetButtonData |
141 // ----------------------------------------------------------- |
146 // --------------------------------------------------------------------------- |
142 // |
147 // |
143 void CPhoneTransferDialerController::HandleNumberEntryIsEmpty( TBool aIsEmpty ) |
148 TInt CPhoneTransferDialerController::GetButtonData( TButtonIndex aIndex, RPointerArray<CButtonData>& aData ) const |
|
149 { |
|
150 TInt err = KErrNone; |
|
151 |
|
152 TInt arrayIdx = KErrNotFound; |
|
153 if ( aIndex == ECallButton ) |
|
154 { |
|
155 arrayIdx = 0; |
|
156 } |
|
157 else if ( aIndex == EPhonebookButton ) |
|
158 { |
|
159 arrayIdx = 1; |
|
160 } |
|
161 |
|
162 if ( arrayIdx >= 0 ) |
|
163 { |
|
164 const TPhoneDialerToolbarButton& arrItem = bArray[ arrayIdx ]; |
|
165 CButtonData* btn = NULL; |
|
166 TRAP( err, btn = CreateButtonDataL( arrItem.iCommandId, |
|
167 arrItem.iIconIndex, |
|
168 arrItem.iMaskIndex ) ); |
|
169 if ( !err ) |
|
170 { |
|
171 err = aData.Append( btn ); |
|
172 if ( err ) |
|
173 { |
|
174 delete btn; |
|
175 } |
|
176 } |
|
177 } |
|
178 else |
|
179 { |
|
180 // Trust base class on other buttons (i.e. the clear button) |
|
181 err = CPhoneDialerController::GetButtonData( aIndex, aData ); |
|
182 } |
|
183 |
|
184 return err; |
|
185 } |
|
186 |
|
187 // --------------------------------------------------------------------------- |
|
188 // ButtonState |
|
189 // --------------------------------------------------------------------------- |
|
190 // |
|
191 TInt CPhoneTransferDialerController::ButtonState( TButtonIndex aIndex ) const |
|
192 { |
|
193 // Out button have only one state. Trust base class on clear button |
|
194 if ( aIndex == ECallButton || aIndex == EPhonebookButton ) |
|
195 { |
|
196 return 0; |
|
197 } |
|
198 else |
|
199 { |
|
200 return CPhoneDialerController::ButtonState( aIndex ); |
|
201 } |
|
202 } |
|
203 |
|
204 // --------------------------------------------------------------------------- |
|
205 // ButtonDimmed |
|
206 // --------------------------------------------------------------------------- |
|
207 // |
|
208 TBool CPhoneTransferDialerController::ButtonDimmed( TButtonIndex aIndex ) const |
|
209 { |
|
210 TBool dimmed = EFalse; |
|
211 |
|
212 // Ok is dimmed when there's no number. Search is dimmed when there is |
|
213 // a number. Trust base class on clear button. |
|
214 if ( aIndex == ECallButton ) |
|
215 { |
|
216 dimmed = !iNumberAvailable; |
|
217 } |
|
218 else if ( aIndex == EPhonebookButton ) |
|
219 { |
|
220 dimmed = iNumberAvailable; |
|
221 } |
|
222 else |
|
223 { |
|
224 dimmed = CPhoneDialerController::ButtonDimmed( aIndex ); |
|
225 } |
|
226 return dimmed; |
|
227 } |
|
228 |
|
229 // --------------------------------------------------------------------------- |
|
230 // EasyDialingAllowed |
|
231 // --------------------------------------------------------------------------- |
|
232 // |
|
233 TBool CPhoneTransferDialerController::EasyDialingAllowed() const |
|
234 { |
|
235 return EFalse; |
|
236 } |
|
237 |
|
238 // --------------------------------------------------------------------------- |
|
239 // PhoneTransferDialerController::CreateButtonDataL |
|
240 // --------------------------------------------------------------------------- |
|
241 // |
|
242 MPhoneDialerController::CButtonData* CPhoneTransferDialerController::CreateButtonDataL( |
|
243 TInt aCommandId, |
|
244 TInt aNormalIconId, |
|
245 TInt aNormalMaskId ) const |
144 { |
246 { |
145 __LOGMETHODSTARTEND( PhoneUIVoIPExtension, |
247 __LOGMETHODSTARTEND( PhoneUIVoIPExtension, |
146 "CPhoneTransferDialerController::HandleNumberEntryIsEmpty()"); |
248 "CPhoneTransferDialerController::CreateButtonDataL()"); |
147 __ASSERT_DEBUG( iToolbar, Panic( EPhoneCtrlInvariant ) ); |
249 |
148 iToolbar->SetItemDimmed( EPhoneCmdTransferDialerOk, aIsEmpty, EFalse ); |
250 // Load tooltip text. |
149 iToolbar->SetItemDimmed( EPhoneCmdTransferDialerSearch, !aIsEmpty, EFalse ); |
251 HBufC* tooltipText = GetTooltipTextL( aCommandId ); |
150 iToolbar->SetItemDimmed( EPhoneDialerCmdClear, aIsEmpty, EFalse ); |
252 CleanupStack::PushL( tooltipText ); |
151 iNumberEntryIsEmpty = aIsEmpty; |
253 |
152 } |
254 // Load icon |
153 |
|
154 // ----------------------------------------------------------- |
|
155 // CPhoneTransferDialerController::ShowButtons |
|
156 // ----------------------------------------------------------- |
|
157 // |
|
158 void CPhoneTransferDialerController::ShowButtons( TBool aShow ) |
|
159 { |
|
160 __LOGMETHODSTARTEND( PhoneUIVoIPExtension, |
|
161 "CPhoneTransferDialerController::ShowButtons()"); |
|
162 __ASSERT_DEBUG( iToolbar, Panic( EPhoneCtrlInvariant ) ); |
|
163 if ( aShow ) |
|
164 { |
|
165 iToolbar->SetItemDimmed( EPhoneCmdTransferDialerOk, ETrue, EFalse ); |
|
166 iToolbar->SetItemDimmed( EPhoneCmdTransferDialerSearch, EFalse, EFalse ); |
|
167 iToolbar->SetItemDimmed( EPhoneDialerCmdClear, ETrue, EFalse ); |
|
168 } |
|
169 } |
|
170 |
|
171 // --------------------------------------------------------------------------- |
|
172 // PhoneTransferDialerController::CreateButtonLC |
|
173 // --------------------------------------------------------------------------- |
|
174 // |
|
175 CAknButton* CPhoneTransferDialerController::CreateButtonLC( |
|
176 TInt aNormalIconId, |
|
177 TInt aNormalMaskId, |
|
178 const TDesC& aTooltipText, |
|
179 const TAknsItemID& aSkinIconId ) const |
|
180 { |
|
181 __LOGMETHODSTARTEND( PhoneUIVoIPExtension, |
|
182 "CPhoneTransferDialerController::CreateButtonLC()"); |
|
183 TFileName mifPath( KDriveZ ); |
255 TFileName mifPath( KDriveZ ); |
184 mifPath.Append( KDC_APP_BITMAP_DIR ); |
256 mifPath.Append( KDC_APP_BITMAP_DIR ); |
185 mifPath.Append( KPhoneMifFileName ); |
257 mifPath.Append( KPhoneMifFileName ); |
186 |
258 |
187 CAknButton* button = CAknButton::NewLC( |
259 TAknsItemID skinId = SkinId( aNormalIconId ); |
188 mifPath, |
260 MAknsSkinInstance* skin = AknsUtils::SkinInstance(); |
189 aNormalIconId, |
261 CGulIcon* icon = AknsUtils::CreateGulIconL( skin, skinId, mifPath, |
190 aNormalMaskId, |
262 aNormalIconId, aNormalMaskId ); |
191 -1, -1, // dimmed |
263 CleanupStack::PushL( icon ); |
192 -1, -1, // pressed |
264 |
193 -1, -1, // hover |
265 CButtonData* btnData = new (ELeave) CButtonData( aCommandId, icon, tooltipText ); |
194 KNullDesC, |
266 CleanupStack::Pop( icon ); |
195 aTooltipText, // help |
267 CleanupStack::Pop( tooltipText ); |
196 0, // flags |
268 |
197 0, // state flags |
269 return btnData; |
198 aSkinIconId ); |
|
199 |
|
200 button->SetFocusing( EFalse ); |
|
201 button->SetBackground( iToolbar ); |
|
202 |
|
203 return button; |
|
204 } |
270 } |
205 |
271 |
206 // --------------------------------------------------------------------------- |
272 // --------------------------------------------------------------------------- |
207 // CPhoneTransferDialerController::GetTooltipText |
273 // CPhoneTransferDialerController::GetTooltipText |
208 // |
274 // |