84 fshwrlayout = AknLayoutScalable_Avkon::main_fep_fshwr2_pane(0).LayoutLine(); |
106 fshwrlayout = AknLayoutScalable_Avkon::main_fep_fshwr2_pane(0).LayoutLine(); |
85 fshwrRect.LayoutRect(rect, fshwrlayout); |
107 fshwrRect.LayoutRect(rect, fshwrlayout); |
86 |
108 |
87 iLayoutRect = fshwrRect.Rect(); |
109 iLayoutRect = fshwrRect.Rect(); |
88 iLayoutOffset = iLayoutRect.iTl; |
110 iLayoutOffset = iLayoutRect.iTl; |
89 |
111 } |
90 // ICF & Keypad |
112 |
91 TAknWindowLineLayout icflayoutcn,icflayoutbgcn; |
113 // --------------------------------------------------------------------------- |
92 TAknTextLineLayout icflefttext; |
114 // CPeninputFingerHwrArLafManager::RetrieveLafDataForICF() |
93 TAknTextLineLayout icflefttext1, icflefttext2, icflefttext3; |
115 // Retrieve laf data for ICF editor |
94 TAknLayoutRect icfrectlatin, icfrectcn; |
116 // --------------------------------------------------------------------------- |
95 |
117 // |
96 if (iIsLandscape) |
118 void CPeninputFingerHwrArLafManager::RetrieveLafDataForICF() |
|
119 { |
|
120 // ICF laf data |
|
121 TAknWindowLineLayout icfLayout; |
|
122 TAknLayoutRect icfLayoutRect; |
|
123 |
|
124 // read the icf layout |
|
125 icfLayout = AknLayoutScalable_Avkon::fshwr2_icf_pane(1).LayoutLine(); |
|
126 |
|
127 icfLayoutRect.LayoutRect(iLayoutRect, icfLayout); |
|
128 iRectIcf = icfLayoutRect.Rect(); |
|
129 |
|
130 // read icf text line layout |
|
131 TAknTextLineLayout icfTextLineLayoutRow1 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 0).LayoutLine(); |
|
132 TAknTextLineLayout icfTextLineLayoutRow2 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 1).LayoutLine(); |
|
133 TInt maxRow = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1_ParamLimits(0).LastRow(); |
|
134 TAknTextLineLayout icfTextLineLayoutLastRow = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, maxRow-1).LayoutLine(); |
|
135 |
|
136 // read icf layout text |
|
137 TAknLayoutText icfLayoutText1; |
|
138 TAknLayoutText icfLayoutText2; |
|
139 TAknLayoutText icfLayoutTextLastRow; |
|
140 |
|
141 icfLayoutText1.LayoutText( iRectIcf, icfTextLineLayoutRow1 ); |
|
142 icfLayoutText2.LayoutText( iRectIcf, icfTextLineLayoutRow2 ); |
|
143 icfLayoutTextLastRow.LayoutText( iRectIcf, icfTextLineLayoutLastRow ); |
|
144 |
|
145 // get the margins |
|
146 iIcfTextLeftMargin = icfTextLineLayoutRow1.il; |
|
147 iIcfTextRightMargin = iIcfTextLeftMargin; |
|
148 iIcfTextTopMargin = icfLayoutText1.TextRect().iTl.iY - iRectIcf.iTl.iY; |
|
149 iIcfTextLineSpaceMargin = icfLayoutText2.TextRect().iTl.iY - icfLayoutText1.TextRect().iBr.iY; |
|
150 iIcfTextBottomMargin = iRectIcf.iBr.iY - icfLayoutTextLastRow.TextRect().iBr.iY - iIcfTextLineSpaceMargin; |
|
151 iIcfTextHeight = icfLayoutText1.TextRect().Height(); |
|
152 |
|
153 // get font for text |
|
154 iIcfFont = const_cast<CFont*>(AknLayoutUtils::FontFromId(icfTextLineLayoutRow1.iFont, NULL)); |
|
155 } |
|
156 |
|
157 // --------------------------------------------------------------------------- |
|
158 // CPeninputFingerHwrArLafManager::RetrieveLafDataForCandidateList() |
|
159 // Retrieve the laf data for candidate list |
|
160 // --------------------------------------------------------------------------- |
|
161 // |
|
162 void CPeninputFingerHwrArLafManager::RetrieveLafDataForCandidateList() |
|
163 { |
|
164 // retrieve the cell flow: |
|
165 // fshwr2_func_candi_pane->fshwr2_func_candi_row_pane->fshwr2_func_candi_cell_pane |
|
166 // ->fshwr2_func_candi_cell_bg_pane |
|
167 |
|
168 // candidate list |
|
169 TAknWindowLineLayout candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(1).LayoutLine(); |
|
170 |
|
171 TAknLayoutRect candpaneRect; |
|
172 candpaneRect.LayoutRect( iLayoutRect, candlistpane ); |
|
173 TRect rect = candpaneRect.Rect(); |
|
174 |
|
175 // get candiate row1 pane |
|
176 TAknWindowLineLayout candRow1Pane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 1). |
|
177 LayoutLine(); |
|
178 TAknLayoutRect candrow1paneRect; |
|
179 candrow1paneRect.LayoutRect( rect, candRow1Pane ); |
|
180 |
|
181 // get candidate cell pane with row 1 and col 0 |
|
182 TAknWindowLineLayout cellPane1Row1 = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 0 , 1 ). |
|
183 LayoutLine(); |
|
184 TAknLayoutRect cellPane1Row1Rect; |
|
185 cellPane1Row1Rect.LayoutRect( candrow1paneRect.Rect(), cellPane1Row1 ); |
|
186 |
|
187 // get candidate cell bg pane |
|
188 TAknWindowLineLayout candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2).LayoutLine(); |
|
189 TAknLayoutRect cellPane1Row1BgRect; |
|
190 cellPane1Row1BgRect.LayoutRect( cellPane1Row1Rect.Rect(), candbgpane ); |
|
191 |
|
192 // get candidate cell pane with row 1 and col 1 |
|
193 TAknWindowLineLayout cellPane2Row1 = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 1 , 1 ). |
|
194 LayoutLine(); |
|
195 TAknLayoutRect cellPane2Row1Rect; |
|
196 cellPane2Row1Rect.LayoutRect( candrow1paneRect.Rect(), cellPane2Row1 ); |
|
197 |
|
198 // get candidate cell2 bg pane |
|
199 candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2).LayoutLine(); |
|
200 TAknLayoutRect cellPane2Row1BgRect; |
|
201 cellPane2Row1BgRect.LayoutRect( cellPane2Row1Rect.Rect(), candbgpane ); |
|
202 |
|
203 // ==================================================================================================== |
|
204 // get candidate row2 pane |
|
205 TAknWindowLineLayout candRow2Pane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 2). |
|
206 LayoutLine(); |
|
207 TAknLayoutRect candrow2paneRect; |
|
208 candrow2paneRect.LayoutRect( rect, candRow2Pane ); |
|
209 |
|
210 // get candidate cell pane with row 2 and col 0 |
|
211 TAknWindowLineLayout cellPane1Row2 = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 0 , 0 ). |
|
212 LayoutLine(); |
|
213 TAknLayoutRect cellPane1Row2Rect; |
|
214 cellPane1Row2Rect.LayoutRect( candrow2paneRect.Rect(), cellPane1Row2 ); |
|
215 |
|
216 // get the candidate cell bg pane with row 2 and col 0 |
|
217 candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2).LayoutLine(); |
|
218 TAknLayoutRect cellPane1Row2BgRect; |
|
219 cellPane1Row2BgRect.LayoutRect( cellPane1Row2Rect.Rect(), candbgpane ); |
|
220 |
|
221 // calculate the margins |
|
222 iCandsHorizontalMargin = cellPane2Row1BgRect.Rect().iTl.iX - cellPane1Row1BgRect.Rect().iBr.iX; |
|
223 iCandsVerticalMargin = cellPane1Row2BgRect.Rect().iTl.iY - cellPane1Row1BgRect.Rect().iBr.iY; |
|
224 |
|
225 iCandsUnitWidth = cellPane1Row1BgRect.Rect().Width(); |
|
226 iCandsUnitHeight = cellPane1Row1BgRect.Rect().Height(); |
|
227 |
|
228 iCandidateLTPos = candrow1paneRect.Rect().iTl; |
|
229 |
|
230 // get candidate text laf data |
|
231 TAknTextLineLayout candsTextLayout = |
|
232 AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane_t1(1).LayoutLine(); |
|
233 TAknLayoutText candsText; |
|
234 candsText.LayoutText( cellPane1Row1Rect.Rect(), candsTextLayout ); |
|
235 iCandsFont = const_cast<CFont*>( AknLayoutUtils::FontFromId( candsTextLayout.iFont, NULL ) ); |
|
236 iCandsTextMargin = candsText.TextRect().iTl.iX - cellPane1Row1Rect.Rect().iTl.iX; |
|
237 } |
|
238 |
|
239 // --------------------------------------------------------------------------- |
|
240 // CPeninputFingerHwrArLafManager::RetrieveLafDataForFunctionalButton() |
|
241 // Retrieve the laf data for functional group |
|
242 // --------------------------------------------------------------------------- |
|
243 // |
|
244 void CPeninputFingerHwrArLafManager::RetrieveLafDataForFunctionalButton() |
|
245 { |
|
246 // retrieve the button laf flow: |
|
247 // fshwr2_func_candi_pane->fshwr2_func_candi_row_pane->fshwr2_func_candi_cell_pane |
|
248 // ->fshwr2_func_candi_cell_bg_pane |
|
249 |
|
250 // candidate list |
|
251 TAknWindowLineLayout candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(1).LayoutLine(); |
|
252 |
|
253 TAknLayoutRect candpaneRect; |
|
254 candpaneRect.LayoutRect( iLayoutRect, candlistpane ); |
|
255 TRect rect = candpaneRect.Rect(); |
|
256 |
|
257 TAknWindowLineLayout candRowPane; |
|
258 TAknLayoutRect candRowPaneRect; |
|
259 |
|
260 TAknWindowLineLayout cellPane; |
|
261 TAknLayoutRect cellPaneRect; |
|
262 |
|
263 TAknWindowLineLayout buttonBgPane; |
|
264 TAknLayoutRect cellPaneRowBgRect; |
|
265 |
|
266 RArray<TRect> buttonRect; |
|
267 for(TInt row = 0; row < KFuncButtonRowNum; row++) |
|
268 { |
|
269 candRowPane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, row).LayoutLine(); |
|
270 candRowPaneRect.LayoutRect( rect, candRowPane ); |
|
271 |
|
272 for(TInt col = 0; col < KFuncButtonColNum; col++) |
|
273 { |
|
274 // cell pane |
|
275 cellPane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , col , row ).LayoutLine(); |
|
276 cellPaneRect.LayoutRect(candRowPaneRect.Rect(),cellPane); |
|
277 |
|
278 // cell bg pane |
|
279 buttonBgPane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2).LayoutLine(); |
|
280 cellPaneRowBgRect.LayoutRect( cellPaneRect.Rect(), buttonBgPane ); |
|
281 buttonRect.Append(cellPaneRowBgRect.Rect()); |
|
282 } |
|
283 } |
|
284 |
|
285 // assign the functional button |
|
286 TInt i = 0; |
|
287 iRectBtnClose = buttonRect[i++]; |
|
288 iRectBtnOption = buttonRect[i++]; |
|
289 iRectBtnRangeSmb = buttonRect[i++]; |
|
290 iRectBtnBackspace = buttonRect[i++]; |
|
291 iRectBtnArrowUp = buttonRect[i++]; |
|
292 iRectBtnArrowDown = buttonRect[i++]; |
|
293 iRectBtnArrowLeft = buttonRect[i++]; |
|
294 iRectBtnArrowRight = buttonRect[i++]; |
|
295 buttonRect.Close(); |
|
296 |
|
297 // padding size of Btn |
|
298 iSizeBtnPadding = TSize(6, 6); |
|
299 |
|
300 // padding size of arrow button |
|
301 if(iIsLandscape) |
|
302 { |
|
303 iArrowPaddingSize = TSize(8,8); |
|
304 } |
|
305 else |
97 { |
306 { |
98 icflayoutcn = AknLayoutScalable_Avkon::fshwr2_icf_pane(1).LayoutLine(); |
307 iArrowPaddingSize = TSize(12,12); |
99 } |
308 } |
100 else |
309 } |
|
310 |
|
311 // --------------------------------------------------------------------------- |
|
312 // CPeninputFingerHwrArLafManager::RetrieveLafDataForHwrBox() |
|
313 // Retrieve the laf data for hwr writing area |
|
314 // --------------------------------------------------------------------------- |
|
315 // |
|
316 void CPeninputFingerHwrArLafManager::RetrieveLafDataForHwrBox() |
|
317 { |
|
318 TAknWindowLineLayout writingBoxPane; |
|
319 TAknLayoutRect boxRect; |
|
320 writingBoxPane = AknLayoutScalable_Avkon::fshwr2_hwr_syb_pane(1).LayoutLine(); |
|
321 boxRect.LayoutRect(iLayoutRect, writingBoxPane); |
|
322 iRectWritingBox = boxRect.Rect(); |
|
323 |
|
324 // need read laf data? |
|
325 iIndicatorRect.iTl = iRectWritingBox.iTl; |
|
326 iIndicatorRect.iTl = iIndicatorRect.iTl + TPoint(20,20); |
|
327 iIndicatorRect.SetSize(TSize(80,80)); |
|
328 } |
|
329 |
|
330 // --------------------------------------------------------------------------- |
|
331 // CPeninputFingerHwrArLafManager::RetrieveLafDataForSymbolTable() |
|
332 // Retrieve the laf data for symbol table area |
|
333 // --------------------------------------------------------------------------- |
|
334 // |
|
335 void CPeninputFingerHwrArLafManager::RetrieveLafDataForSymbolTable() |
|
336 { |
|
337 if(iIsLandscape) |
|
338 { |
|
339 RetrieveLandscapeLafDataForSymbolTable(); |
|
340 } |
|
341 else |
101 { |
342 { |
102 icflayoutcn = AknLayoutScalable_Avkon::fshwr2_icf_pane(0).LayoutLine(); |
343 RetrievePortraitLafDataForSymbolTable(); |
103 } |
344 } |
104 |
345 } |
105 icfrectcn.LayoutRect(fshwrRect.Rect(), icflayoutcn); |
346 |
106 |
347 // --------------------------------------------------------------------------- |
107 TAknLayoutScalableParameterLimits entryPaneVariety = |
348 // CPeninputFingerHwrArLafManager::RetrieveLandscapeLafDataForSymbolTable() |
108 AknLayoutScalable_Avkon::fshwr2_icf_pane_t1_ParamLimits(0); |
349 // Retrieve the landscape laf data for symbol table area |
109 TInt maxRow = entryPaneVariety.LastRow(); |
350 // --------------------------------------------------------------------------- |
110 |
351 // |
111 icflefttext = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 0).LayoutLine(); |
352 void CPeninputFingerHwrArLafManager::RetrieveLandscapeLafDataForSymbolTable() |
112 |
353 { |
113 icflefttext1 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 1).LayoutLine(); |
354 TAknLayoutScalableParameterLimits candiPaneVariety = AknLayoutScalable_Avkon::fshwr2_func_candi_pane_ParamLimits(2); |
114 icflefttext2 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 2).LayoutLine(); |
355 |
115 icflefttext3 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, maxRow).LayoutLine(); |
356 iSctpadRowCount = KLandscapeVirtualKeypadRow;//candiPaneVariety.LastRow(); |
116 iIcfTextLeftMarginCn = icflefttext.il; |
357 iSctpadColCount = KLandscapeVirtualKeypadCol;//candiPaneVariety.LastColumn() + 1; |
117 iIcfTextRightMarginCn = iIcfTextLeftMarginCn; |
358 |
118 |
359 // get the functional buttons laf data for symbol table |
119 TAknLayoutText ctxt, ctxt1, ctxt2, ctxt3; |
|
120 ctxt.LayoutText( icfrectcn.Rect(), icflefttext ); |
|
121 ctxt1.LayoutText( icfrectcn.Rect(), icflefttext1 ); |
|
122 ctxt2.LayoutText( icfrectcn.Rect(), icflefttext2 ); |
|
123 ctxt3.LayoutText( icfrectcn.Rect(), icflefttext3 ); |
|
124 |
|
125 iIcfTextTopMarginCn = ctxt.TextRect().iTl.iY - icfrectcn.Rect().iTl.iY; |
|
126 iIcfTextLineSpaceMarginCn = ctxt1.TextRect().iTl.iY - ctxt.TextRect().iBr.iY; |
|
127 iIcfTextBottomMarginCn = icfrectcn.Rect().iBr.iY - ctxt3.TextRect().iBr.iY |
|
128 - iIcfTextLineSpaceMarginCn; |
|
129 iIcfTextHeightCn = ctxt.TextRect().Height(); |
|
130 |
|
131 iIcfFont = const_cast<CFont*>(AknLayoutUtils::FontFromId(icflefttext.iFont, NULL)); |
|
132 |
|
133 iRectIcf = icfrectcn.Rect(); |
|
134 |
|
135 // candidate list |
360 // candidate list |
136 TAknWindowLineLayout candrowpane, candrowpane2, candlistpane, cellpane, candbgpane; |
361 TAknWindowLineLayout candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(2).LayoutLine(); |
137 TAknLayoutRect candpaneRect, candrowpaneRect, candrowpaneRect2, cellpaneRect1, cellpaneRect2; |
362 TAknLayoutRect candpaneRect; |
138 TAknLayoutRect cellpaneRect3, cellpaneRect; |
363 candpaneRect.LayoutRect( iLayoutRect, candlistpane ); |
139 |
364 iRectOfSymbolTable = candpaneRect.Rect(); |
140 if (iIsLandscape) |
365 |
141 { |
366 // get candidate row1 pane |
142 candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(1). |
367 TAknWindowLineLayout candRow1Pane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(1, 0, 0).LayoutLine(); |
143 LayoutLine(); |
368 TAknLayoutRect candrow1paneRect; |
144 } |
369 candrow1paneRect.LayoutRect( iRectOfSymbolTable, candRow1Pane ); |
145 else |
370 |
146 { |
371 iSymBtnRectArray.Reset(); |
147 candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(0). |
372 for(TInt i = 0; i < 2; i++) |
|
373 { |
|
374 // get candidate cell pane with row 0 and col i |
|
375 TAknWindowLineLayout cellPane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 0, i , 0 ). |
|
376 LayoutLine(); |
|
377 TAknLayoutRect cellPaneRect; |
|
378 cellPaneRect.LayoutRect( candrow1paneRect.Rect(), cellPane ); |
|
379 |
|
380 // get the candidate cell bg pane with row 0 and col i |
|
381 TAknWindowLineLayout candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1).LayoutLine(); |
|
382 TAknLayoutRect BgRect; |
|
383 BgRect.LayoutRect( cellPaneRect.Rect(), candbgpane ); |
|
384 iSymBtnRectArray.Append(BgRect.Rect()); |
|
385 } |
|
386 |
|
387 TInt xGap = iSymBtnRectArray[1].iTl.iX - iSymBtnRectArray[0].iBr.iX; |
|
388 TRect thirdBtn(iSymBtnRectArray[1]); |
|
389 thirdBtn.Move(TPoint(iSymBtnRectArray[1].Width(),0)); |
|
390 iSymBtnRectArray.Append(thirdBtn); |
|
391 |
|
392 TAknWindowLineLayout rowPane, key1bgpane, keypane; |
|
393 TAknLayoutRect rowRect, key1bgRect, keyRect; |
|
394 |
|
395 TAknWindowLineLayout row1Pane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(1, 0, 1).LayoutLine(); |
|
396 TAknLayoutRect row1Rect; |
|
397 row1Rect.LayoutRect(iRectOfSymbolTable,row1Pane); |
|
398 iRectSctpad.iTl = row1Rect.Rect().iTl; |
|
399 iRectSctpad.iBr = iRectOfSymbolTable.iBr; |
|
400 |
|
401 keypane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3, 0 , 0 ). |
|
402 LayoutLine(); |
|
403 keyRect.LayoutRect(row1Rect.Rect(), keypane); |
|
404 |
|
405 key1bgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); |
|
406 key1bgRect.LayoutRect(keyRect.Rect(), key1bgpane); |
|
407 |
|
408 keypane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3, 1 , 0 ). |
|
409 LayoutLine(); |
|
410 keyRect.LayoutRect(row1Rect.Rect(), keypane); |
|
411 |
|
412 TAknWindowLineLayout key2bgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); |
|
413 TAknLayoutRect key2bgRect; |
|
414 key2bgRect.LayoutRect(keyRect.Rect(), key2bgpane); |
|
415 |
|
416 TAknWindowLineLayout row2Pane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(1, 0, 2).LayoutLine(); |
|
417 TAknLayoutRect row2Rect; |
|
418 row2Rect.LayoutRect(iRectOfSymbolTable,row2Pane); |
|
419 |
|
420 keypane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3, 0 , 0 ).LayoutLine(); |
|
421 keyRect.LayoutRect(row2Rect.Rect(), keypane); |
|
422 |
|
423 TAknWindowLineLayout key3bgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); |
|
424 TAknLayoutRect key3bgRect; |
|
425 key3bgRect.LayoutRect(keyRect.Rect(), key3bgpane); |
|
426 |
|
427 TInt keyHorizontalGap = key2bgRect.Rect().iTl.iX - key1bgRect.Rect().iBr.iX; |
|
428 TInt keyVerticalGap = key3bgRect.Rect().iTl.iY - key1bgRect.Rect().iBr.iY; |
|
429 |
|
430 TRect cursorRect(key1bgRect.Rect()); |
|
431 TRect originRect(key1bgRect.Rect()); |
|
432 TInt rectHeight = cursorRect.Height(); |
|
433 TInt rectWidth = cursorRect.Width(); |
|
434 |
|
435 iSCTrectArray.Reset(); |
|
436 for(TInt i = 0; i < iSctpadRowCount; i++) |
|
437 { |
|
438 cursorRect = originRect; |
|
439 cursorRect.Move(0,i*(rectHeight+keyVerticalGap)); |
|
440 iSCTrectArray.Append(cursorRect); |
|
441 for(TInt j = 1; j < iSctpadColCount; j++) |
|
442 { |
|
443 cursorRect.Move((rectWidth+keyHorizontalGap),0); |
|
444 iSCTrectArray.Append(cursorRect); |
|
445 } |
|
446 } |
|
447 } |
|
448 |
|
449 // --------------------------------------------------------------------------- |
|
450 // CPeninputFingerHwrArLafManager::RetrievePortraitLafDataForSymbolTable() |
|
451 // Retrieve the portrait laf data for symbol table area |
|
452 // --------------------------------------------------------------------------- |
|
453 // |
|
454 void CPeninputFingerHwrArLafManager::RetrievePortraitLafDataForSymbolTable() |
|
455 { |
|
456 // get the functional buttons laf data for symbol table |
|
457 // candidate list |
|
458 TAknWindowLineLayout candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(1).LayoutLine(); |
|
459 |
|
460 TAknLayoutRect candpaneRect; |
|
461 candpaneRect.LayoutRect( iLayoutRect, candlistpane ); |
|
462 TRect rect = candpaneRect.Rect(); |
|
463 |
|
464 // get candidate row2 pane |
|
465 TAknWindowLineLayout candRow2Pane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 1). |
148 LayoutLine(); |
466 LayoutLine(); |
149 } |
467 TAknLayoutRect candrow2paneRect; |
150 candpaneRect.LayoutRect( fshwrRect.Rect(), candlistpane ); |
468 candrow2paneRect.LayoutRect( rect, candRow2Pane ); |
151 rect = candpaneRect.Rect(); |
469 iRectOfSymbolTable.iTl = candrow2paneRect.Rect().iTl; |
152 candrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 1). |
470 |
153 LayoutLine(); |
471 iSymBtnRectArray.Reset(); |
154 candrowpaneRect.LayoutRect( rect, candrowpane ); |
472 for(TInt i = 0; i < KSymButtonNum; i++) |
155 |
473 { |
156 candrowpane2 = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 2). |
474 // get candidate cell pane with row 0 and col i |
157 LayoutLine(); |
475 TAknWindowLineLayout cellPaneRow = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1, i , 0 ). |
158 candrowpaneRect2.LayoutRect( rect, candrowpane2 ); |
476 LayoutLine(); |
159 |
477 TAknLayoutRect cellPaneRect; |
160 |
478 cellPaneRect.LayoutRect( candrow2paneRect.Rect(), cellPaneRow ); |
161 cellpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3 , 0 , 0 ). |
479 |
162 LayoutLine(); |
480 // get the candidate cell bg pane with row 0 and col i |
163 cellpaneRect.LayoutRect( candrowpaneRect.Rect(), cellpane ); |
481 TAknWindowLineLayout candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1).LayoutLine(); |
164 |
482 TAknLayoutRect BgRect; |
165 candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); |
483 BgRect.LayoutRect( cellPaneRect.Rect(), candbgpane ); |
166 cellpaneRect1.LayoutRect( cellpaneRect.Rect(), candbgpane ); |
484 iSymBtnRectArray.Append(BgRect.Rect()); |
167 |
485 } |
168 cellpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3 , 1 , 0 ). |
486 |
169 LayoutLine(); |
487 // get the virtual key rects |
170 cellpaneRect.LayoutRect( candrowpaneRect.Rect(), cellpane ); |
488 TAknWindowLineLayout writingBoxPane; |
171 |
489 TAknLayoutRect boxRect; |
172 candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); |
490 writingBoxPane = AknLayoutScalable_Avkon::fshwr2_hwr_syb_pane(0).LayoutLine(); |
173 cellpaneRect2.LayoutRect( cellpaneRect.Rect(), candbgpane ); |
491 boxRect.LayoutRect(iLayoutRect, writingBoxPane); |
174 |
492 iRectSctpad = boxRect.Rect(); |
175 |
493 |
176 |
494 TAknWindowLineLayout keypane, keybgpane; |
177 cellpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3 , 0 , 1 ). |
495 TAknLayoutRect keyRect, keybgRect; |
178 LayoutLine(); |
|
179 cellpaneRect.LayoutRect( candrowpaneRect2.Rect(), cellpane ); |
|
180 |
|
181 candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); |
|
182 cellpaneRect3.LayoutRect( cellpaneRect.Rect(), candbgpane ); |
|
183 |
|
184 |
|
185 iCandsHorizontalMargin = cellpaneRect2.Rect().iTl.iX - cellpaneRect1.Rect().iBr.iX; |
|
186 iCandsVerticalMargin = cellpaneRect3.Rect().iTl.iY - cellpaneRect1.Rect().iBr.iY; |
|
187 |
|
188 iCandsUnitWidth = cellpaneRect1.Rect().Width(); |
|
189 iCandsUnitHeight = cellpaneRect1.Rect().Height() ; |
|
190 |
|
191 iCandsNaviHeight = cellpaneRect1.Rect().Height(); |
|
192 iCandidateLTPos = candrowpaneRect.Rect().iTl; |
|
193 iPredictiveLTPos = candrowpaneRect2.Rect().iTl; |
|
194 |
|
195 TAknTextLineLayout candstxtlayout = |
|
196 AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane_t1(3).LayoutLine(); |
|
197 TAknLayoutText candstxt; |
|
198 candstxt.LayoutText( cellpaneRect1.Rect(), candstxtlayout ); |
|
199 iCandsFont = const_cast<CFont*>( AknLayoutUtils::FontFromId( candstxtlayout.iFont, NULL ) ); |
|
200 iCandsTextMargin = candstxt.TextRect().iTl.iX - cellpaneRect1.Rect().iTl.iX; |
|
201 |
|
202 |
|
203 TAknWindowLineLayout btnrowpane, btnpane, btnbgpane; |
|
204 TAknLayoutRect btnrowRect, btnRect, btnbgRect; |
|
205 |
|
206 // Get the first row rect ************************************************* |
|
207 btnrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 0). |
|
208 LayoutLine(); |
|
209 btnrowRect.LayoutRect(candpaneRect.Rect(), btnrowpane); |
|
210 // Close Button |
|
211 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 0 , 0 ). |
|
212 LayoutLine(); |
|
213 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
214 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). |
|
215 LayoutLine(); |
|
216 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
217 iRectBtnClose = btnbgRect.Rect(); |
|
218 |
|
219 // Range Button with mark |
|
220 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 1 , 0 ). |
|
221 LayoutLine(); |
|
222 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
223 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). |
|
224 LayoutLine(); |
|
225 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
226 iRectBtnRangeChn = btnbgRect.Rect(); |
|
227 iRectBtnRangeEng = iRectBtnRangeChn; |
|
228 iRectBtnRangeNum = iRectBtnRangeEng; |
|
229 |
|
230 // SCT button |
|
231 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 2 , 0 ). |
|
232 LayoutLine(); |
|
233 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
234 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). |
|
235 LayoutLine(); |
|
236 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
237 iRectBtnRangeSmb = btnbgRect.Rect(); |
|
238 |
|
239 // Backspace button |
|
240 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 3 , 0 ). |
|
241 LayoutLine(); |
|
242 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
243 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). |
|
244 LayoutLine(); |
|
245 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
246 iRectBtnBackspace = btnbgRect.Rect(); |
|
247 |
|
248 // Get the second row rect ************************************************** |
|
249 btnrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 1). |
|
250 LayoutLine(); |
|
251 btnrowRect.LayoutRect(candpaneRect.Rect(), btnrowpane); |
|
252 |
|
253 // Option button |
|
254 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 0 , 0 ). |
|
255 LayoutLine(); |
|
256 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
257 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). |
|
258 LayoutLine(); |
|
259 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
260 iRectBtnOption = btnbgRect.Rect(); |
|
261 |
|
262 // Switch mode button |
|
263 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 1 , 0 ). |
|
264 LayoutLine(); |
|
265 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
266 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). |
|
267 LayoutLine(); |
|
268 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
269 |
|
270 // Arrow up button |
|
271 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 2 , 0 ). |
|
272 LayoutLine(); |
|
273 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
274 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). |
|
275 LayoutLine(); |
|
276 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
277 iRectBtnArrowUp = btnbgRect.Rect(); |
|
278 iRectBtnSctPage = iRectBtnArrowUp; |
|
279 |
|
280 |
|
281 // Get the third row rect ************************************************** |
|
282 btnrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 2). |
|
283 LayoutLine(); |
|
284 btnrowRect.LayoutRect(candpaneRect.Rect(), btnrowpane); |
|
285 |
|
286 // Arrow left button |
|
287 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 0 , 0 ). |
|
288 LayoutLine(); |
|
289 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
290 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). |
|
291 LayoutLine(); |
|
292 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
293 iRectBtnArrowLeft = btnbgRect.Rect(); |
|
294 |
|
295 // Arrow right button |
|
296 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 1 , 0 ). |
|
297 LayoutLine(); |
|
298 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
299 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). |
|
300 LayoutLine(); |
|
301 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
302 iRectBtnArrowRight = btnbgRect.Rect(); |
|
303 |
|
304 // Arrow down button |
|
305 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 2 , 0 ). |
|
306 LayoutLine(); |
|
307 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
308 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). |
|
309 LayoutLine(); |
|
310 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
311 iRectBtnArrowDown = btnbgRect.Rect(); |
|
312 |
|
313 // Space button |
|
314 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 0 , 0 , 0 ). |
|
315 LayoutLine(); |
|
316 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
317 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(0). |
|
318 LayoutLine(); |
|
319 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
320 |
|
321 |
|
322 |
|
323 // Enter button |
|
324 btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 0 , 1 , 0 ). |
|
325 LayoutLine(); |
|
326 btnRect.LayoutRect(btnrowRect.Rect(), btnpane); |
|
327 btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(0). |
|
328 LayoutLine(); |
|
329 btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); |
|
330 |
|
331 iRectEnter = btnbgRect.Rect(); |
|
332 |
|
333 |
|
334 // Writing box |
|
335 TAknWindowLineLayout writingboxpane; |
|
336 TAknLayoutRect boxRect; |
|
337 writingboxpane = AknLayoutScalable_Avkon::fshwr2_hwr_syb_pane(0).LayoutLine(); |
|
338 boxRect.LayoutRect(fshwrRect.Rect(), writingboxpane); |
|
339 iRectWritingBox = boxRect.Rect(); |
|
340 iRectNumpad = iRectWritingBox; |
|
341 iRectSctpad = iRectWritingBox; |
|
342 |
|
343 // virtual key size |
|
344 TAknWindowLineLayout keypane, keybgpane; |
|
345 TAknLayoutRect keyRect, keybgRect; |
|
346 |
496 |
347 TAknLayoutScalableParameterLimits sctPaneVariety = |
497 TAknLayoutScalableParameterLimits sctPaneVariety = |
348 AknLayoutScalable_Avkon::cell_fshwr2_syb_pane_ParamLimits(0); |
498 AknLayoutScalable_Avkon::cell_fshwr2_syb_pane_ParamLimits(0); |
349 |
499 |
350 iSctpadRowCount = sctPaneVariety.LastRow() + 1; |
500 iSctpadRowCount = sctPaneVariety.LastRow() + 1; |
351 iSctpadColCount = sctPaneVariety.LastColumn() + 1; |
501 iSctpadColCount = sctPaneVariety.LastColumn() + 1; |
352 |
502 |
353 iSizeBtnPadding = TSize(6, 6); |
503 iSCTrectArray.Reset(); |
354 |
504 for(TInt i = 0; i < iSctpadRowCount; i++) |
355 iSCTrectArray.Reset(); |
505 { |
356 for(TInt i = 0; i < iSctpadRowCount; i++) |
506 for ( TInt j = 0; j < iSctpadColCount; j++ ) |
357 { |
507 { |
358 for ( TInt j = 0; j < iSctpadColCount; j++ ) |
508 keypane = AknLayoutScalable_Avkon::cell_fshwr2_syb_pane(0, j, i).LayoutLine(); |
359 { |
509 keyRect.LayoutRect(iRectSctpad, keypane); |
360 keypane = AknLayoutScalable_Avkon::cell_fshwr2_syb_pane(0, j, i).LayoutLine(); |
510 keybgpane = AknLayoutScalable_Avkon::cell_fshwr2_syb_bg_pane(0).LayoutLine(); |
361 keyRect.LayoutRect(boxRect.Rect(), keypane); |
511 keybgRect.LayoutRect(keyRect.Rect(), keybgpane); |
362 keybgpane = AknLayoutScalable_Avkon::cell_fshwr2_syb_bg_pane(0).LayoutLine(); |
512 iSCTrectArray.Append( keybgRect.Rect()); |
363 keybgRect.LayoutRect(keyRect.Rect(), keybgpane); |
513 } |
364 iSCTrectArray.Append( keybgRect.Rect()); |
514 } |
365 } |
515 iSizeSctpadCell = keybgRect.Rect().Size(); |
366 } |
516 |
367 iSizeNumpadCell = keybgRect.Rect().Size(); |
517 // calculate the symbol table rect |
368 iSizeSctpadCell = iSizeNumpadCell; |
518 iRectOfSymbolTable.iBr = iRectSctpad.iBr; |
369 |
519 } |
370 // preview popup window |
520 |
|
521 // --------------------------------------------------------------------------- |
|
522 // CPeninputFingerHwrArLafManager::RetrieveLafDataForPreviewBubble() |
|
523 // Retrieve the laf data for preview bubble |
|
524 // --------------------------------------------------------------------------- |
|
525 // |
|
526 void CPeninputFingerHwrArLafManager::RetrieveLafDataForPreviewBubble() |
|
527 { |
|
528 // preview popup window |
371 TAknWindowLineLayout previewWnd, previewWndInner; |
529 TAknWindowLineLayout previewWnd, previewWndInner; |
372 TAknLayoutRect previewWndRect, previewWndInnerRect; |
530 TAknLayoutRect previewWndRect, previewWndInnerRect; |
373 TAknLayoutText previewWndText; |
531 TAknLayoutText previewWndText; |
374 previewWnd = AknLayoutScalable_Avkon::popup_fep_char_preview_window(0).LayoutLine(); |
532 previewWnd = AknLayoutScalable_Avkon::popup_fep_char_preview_window(0).LayoutLine(); |
375 previewWndRect.LayoutRect( TRect(0,0,50,50), previewWnd ); |
533 previewWndRect.LayoutRect( TRect(0,0,50,50), previewWnd ); |