1034 TRect rect = aParentWndRect; |
1035 TRect rect = aParentWndRect; |
1035 rect.Move( - base.iX, - base.iY ); |
1036 rect.Move( - base.iX, - base.iY ); |
1036 aDataInfo.iClientRect = rect; |
1037 aDataInfo.iClientRect = rect; |
1037 aDataInfo.iQwtRect = aParentWndRect; |
1038 aDataInfo.iQwtRect = aParentWndRect; |
1038 |
1039 |
1039 TInt v1, v2; |
1040 TInt v1, v2, gridLayoutVariant; |
1040 switch ( aLayoutType ) |
1041 switch ( aLayoutType ) |
1041 { |
1042 { |
1042 case ELayout10x3: |
1043 case ELayout10x3: |
1043 { |
1044 { |
1044 v1 = 0; |
1045 v1 = 0; |
1045 v2 = 0; |
1046 v2 = 0; |
|
1047 gridLayoutVariant = 1; |
1046 break; |
1048 break; |
1047 } |
1049 } |
1048 case ELayout11x3: |
1050 case ELayout11x3: |
1049 { |
1051 { |
1050 v1 = 1; |
1052 v1 = 1; |
1051 v2 = 2; |
1053 v2 = 2; |
|
1054 gridLayoutVariant = 1; |
1052 break; |
1055 break; |
1053 } |
1056 } |
1054 case ELayout11x4: |
1057 case ELayout11x4: |
1055 { |
1058 { |
1056 v1 = 1; |
1059 v1 = 1; |
1057 v2 = 3; |
1060 v2 = 3; |
|
1061 gridLayoutVariant = 2; |
1058 break; |
1062 break; |
1059 } |
1063 } |
1060 default: |
1064 default: |
1061 { |
1065 { |
1062 v1 = 0; |
1066 v1 = 0; |
1063 v2 = 0; |
1067 v2 = 0; |
|
1068 gridLayoutVariant = 1; |
1064 } |
1069 } |
1065 } |
1070 } |
1066 |
1071 |
1067 // Bottom pane rect |
1072 // Landscape info is set if i) portrait FSQ feature is not enabled (landscape FSQ) |
1068 linelayout = AknLayoutScalable_Avkon::popup_fep_vkbss_window(0).LayoutLine(); |
1073 // or ii) portrait FSQ feature is enabled and the current orientation is landscape. |
1069 layoutrect.LayoutRect( aParentWndRect, linelayout ); |
1074 // Note: Feature Manager is fading out and CFeatureDiscovery is recommended to use. |
1070 rectBottomWin = layoutrect.Rect(); |
1075 TBool isPortraitFSQEnabled = EFalse; |
1071 |
1076 TRAP_IGNORE( isPortraitFSQEnabled = CFeatureDiscovery::IsFeatureSupportedL( |
1072 // ICF pane rect |
1077 KFeatureIdFfVirtualFullscrPortraitQwertyInput ) ); |
1073 linelayout = AknLayoutScalable_Avkon::popup_fep_vkb_icf_pane(0).LayoutLine(); |
1078 |
1074 layoutrect.LayoutRect( aParentWndRect, linelayout ); |
1079 if ( !isPortraitFSQEnabled || |
1075 rectICFpane = layoutrect.Rect(); |
1080 ( isPortraitFSQEnabled && Layout_Meta_Data::IsLandscapeOrientation() ) ) |
1076 |
1081 { |
1077 // ICF bg pane rect |
1082 // Bottom pane rect |
1078 linelayout = AknLayoutScalable_Avkon::bg_icf_pane(0).LayoutLine(); |
1083 linelayout = AknLayoutScalable_Avkon::popup_fep_vkbss_window(0).LayoutLine(); |
1079 layoutrect.LayoutRect( rectICFpane, linelayout ); |
1084 layoutrect.LayoutRect( aParentWndRect, linelayout ); |
1080 rectICFBg = layoutrect.Rect(); |
1085 rectBottomWin = layoutrect.Rect(); |
1081 |
1086 |
1082 // ICF area rect |
1087 // ICF pane rect |
1083 linelayout = AknLayoutScalable_Avkon::list_vkb_icf_pane(0).LayoutLine(); |
1088 linelayout = AknLayoutScalable_Avkon::popup_fep_vkb_icf_pane(0).LayoutLine(); |
1084 layoutrect.LayoutRect( rectICFBg, linelayout ); |
1089 layoutrect.LayoutRect( aParentWndRect, linelayout ); |
1085 rectICF = layoutrect.Rect(); |
1090 rectICFpane = layoutrect.Rect(); |
|
1091 |
|
1092 // ICF bg pane rect |
|
1093 linelayout = AknLayoutScalable_Avkon::bg_icf_pane(0).LayoutLine(); |
|
1094 layoutrect.LayoutRect( rectICFpane, linelayout ); |
|
1095 rectICFBg = layoutrect.Rect(); |
|
1096 |
|
1097 // ICF area rect |
|
1098 linelayout = AknLayoutScalable_Avkon::list_vkb_icf_pane(0).LayoutLine(); |
|
1099 layoutrect.LayoutRect( rectICFBg, linelayout ); |
|
1100 rectICF = layoutrect.Rect(); |
|
1101 } |
|
1102 // Portrait info is set if portrait FSQ feature is enabled the current orientation |
|
1103 // is portrait. |
|
1104 else |
|
1105 { |
|
1106 // Bottom pane rect |
|
1107 linelayout = AknLayoutScalable_Avkon::popup_fep_vkbss_window(gridLayoutVariant).LayoutLine(); |
|
1108 layoutrect.LayoutRect( aParentWndRect, linelayout ); |
|
1109 rectBottomWin = layoutrect.Rect(); |
|
1110 |
|
1111 // ICF pane rect |
|
1112 linelayout = AknLayoutScalable_Avkon::popup_fep_vkb_icf_pane(1).LayoutLine(); |
|
1113 layoutrect.LayoutRect( aParentWndRect, linelayout ); |
|
1114 rectICFpane = layoutrect.Rect(); |
|
1115 |
|
1116 // ICF bg pane rect |
|
1117 linelayout = AknLayoutScalable_Avkon::bg_icf_pane(1).LayoutLine(); |
|
1118 layoutrect.LayoutRect( rectICFpane, linelayout ); |
|
1119 rectICFBg = layoutrect.Rect(); |
|
1120 |
|
1121 // ICF area rect |
|
1122 linelayout = AknLayoutScalable_Avkon::list_vkb_icf_pane(1).LayoutLine(); |
|
1123 layoutrect.LayoutRect( rectICFBg, linelayout ); |
|
1124 rectICF = layoutrect.Rect(); |
|
1125 } |
1086 |
1126 |
1087 aDataInfo.iICF.iRect = rectICF; |
1127 aDataInfo.iICF.iRect = rectICF; |
1088 cellText = AknLayoutScalable_Avkon::list_vkb_icf_pane_t1(0, 0, 0).LayoutLine(); |
1128 cellText = AknLayoutScalable_Avkon::list_vkb_icf_pane_t1(0, 0, 0).LayoutLine(); |
1089 aDataInfo.iICF.iPromptTextFont = AknLayoutUtils::FontFromId(cellText.iFont, NULL); |
1129 aDataInfo.iICF.iPromptTextFont = AknLayoutUtils::FontFromId(cellText.iFont, NULL); |
1090 txt.LayoutText( rectICF, cellText ); |
1130 txt.LayoutText( rectICF, cellText ); |
1122 |
1162 |
1123 // keypad pane rect |
1163 // keypad pane rect |
1124 linelayout = AknLayoutScalable_Avkon::grid_vkbss_keypad_pane(v1).LayoutLine(); |
1164 linelayout = AknLayoutScalable_Avkon::grid_vkbss_keypad_pane(v1).LayoutLine(); |
1125 keypadRect.LayoutRect( rectBottomWin, linelayout ); |
1165 keypadRect.LayoutRect( rectBottomWin, linelayout ); |
1126 |
1166 |
1127 // key pane rect |
1167 if ( !isPortraitFSQEnabled || |
1128 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(v2).LayoutLine(); |
1168 ( isPortraitFSQEnabled && Layout_Meta_Data::IsLandscapeOrientation() ) ) |
1129 keypaneRect.LayoutRect( keypadRect.Rect(), linelayout ); |
1169 { |
1130 |
1170 // key pane rect |
1131 // key cell rect |
1171 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(v2).LayoutLine(); |
1132 linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(v2).LayoutLine(); |
1172 keypaneRect.LayoutRect( keypadRect.Rect(), linelayout ); |
1133 keycellRect.LayoutRect( keypaneRect.Rect(), linelayout ); |
1173 |
1134 |
1174 // key cell rect |
1135 // key label rect |
1175 linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(v2).LayoutLine(); |
1136 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(v2).LayoutLine(); |
1176 keycellRect.LayoutRect( keypaneRect.Rect(), linelayout ); |
1137 keylabelRect.LayoutRect( keypaneRect.Rect(), linelayout ); |
1177 |
1138 |
1178 // key label rect |
1139 // pic3pane rect |
1179 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(v2).LayoutLine(); |
1140 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane(v2).LayoutLine(); |
1180 keylabelRect.LayoutRect( keypaneRect.Rect(), linelayout ); |
1141 pic3paneRect.LayoutRect( keypaneRect.Rect(), linelayout ); |
1181 |
1142 |
1182 // pic3pane rect |
1143 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g1(0).LayoutLine(); |
1183 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane(v2).LayoutLine(); |
1144 layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); |
1184 pic3paneRect.LayoutRect( keypaneRect.Rect(), linelayout ); |
1145 pic3pLeftWidth = layoutrect.Rect().Width(); |
1185 |
1146 |
1186 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g1(0).LayoutLine(); |
1147 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g3(0).LayoutLine(); |
1187 layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); |
1148 layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); |
1188 pic3pLeftWidth = layoutrect.Rect().Width(); |
1149 pic3pRightWidth = layoutrect.Rect().Width(); |
1189 |
1150 |
1190 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g3(0).LayoutLine(); |
1151 TRect rectXPane = keypaneRect.Rect(); |
1191 layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); |
1152 rect = keycellRect.Rect(); |
1192 pic3pRightWidth = layoutrect.Rect().Width(); |
1153 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
1193 |
1154 TRect rectXBorder = rect; |
1194 TRect rectXPane = keypaneRect.Rect(); |
1155 rect = keylabelRect.Rect(); |
1195 rect = keycellRect.Rect(); |
1156 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
1196 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
1157 TRect rectXInner = rect; |
1197 TRect rectXBorder = rect; |
1158 rect = pic3paneRect.Rect(); |
1198 rect = keylabelRect.Rect(); |
1159 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
1199 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
1160 TRect rect3PicPane = rect; |
1200 TRect rectXInner = rect; |
1161 rectXPane.Move( - rectXPane.iTl ); |
1201 rect = pic3paneRect.Rect(); |
1162 |
1202 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
1163 rect = keypadRect.Rect(); |
1203 TRect rect3PicPane = rect; |
1164 rect.Move( - base.iX, - base.iY ); |
1204 rectXPane.Move( - rectXPane.iTl ); |
1165 TRect rectOfKeypad = rect; |
1205 |
1166 TRect rectOfButtons = rectOfKeypad; |
1206 rect = keypadRect.Rect(); |
1167 rectOfKeypad.iBr.iY -= keypaneRect.Rect().Height(); |
1207 rect.Move( - base.iX, - base.iY ); |
1168 rectOfButtons.iTl.iY += rectOfKeypad.Height(); |
1208 TRect rectOfKeypad = rect; |
1169 |
1209 TRect rectOfButtons = rectOfKeypad; |
1170 TInt spaceBtnWidth = rectOfButtons.Width() - rectXPane.Width() * 8; |
1210 rectOfKeypad.iBr.iY -= keypaneRect.Rect().Height(); |
1171 TInt dx = rectOfButtons.iTl.iX; |
1211 rectOfButtons.iTl.iY += rectOfKeypad.Height(); |
1172 TInt dy = rectOfButtons.iTl.iY; |
1212 |
1173 |
1213 TInt spaceBtnWidth = rectOfButtons.Width() - rectXPane.Width() * 8; |
1174 aDataInfo.iCloseButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1214 TInt dx = rectOfButtons.iTl.iX; |
1175 aDataInfo.iCloseButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1215 TInt dy = rectOfButtons.iTl.iY; |
1176 dx += rectXPane.Width(); |
1216 |
1177 |
1217 aDataInfo.iCloseButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1178 aDataInfo.iShiftButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1218 aDataInfo.iCloseButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1179 aDataInfo.iShiftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1219 dx += rectXPane.Width(); |
1180 dx += rectXPane.Width(); |
1220 |
1181 |
1221 aDataInfo.iShiftButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1182 aDataInfo.iMultiRangeButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1222 aDataInfo.iShiftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1183 aDataInfo.iMultiRangeButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1223 dx += rectXPane.Width(); |
1184 dx += rectXPane.Width(); |
1224 |
1185 |
1225 aDataInfo.iMultiRangeButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1186 aDataInfo.iLeftButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1226 aDataInfo.iMultiRangeButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1187 aDataInfo.iLeftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1227 dx += rectXPane.Width(); |
1188 dx += rectXPane.Width(); |
1228 |
1189 |
1229 aDataInfo.iLeftButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1190 TInt expand = spaceBtnWidth - rectXPane.Width(); |
1230 aDataInfo.iLeftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1191 aDataInfo.iSpaceButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1231 dx += rectXPane.Width(); |
1192 aDataInfo.iSpaceButton.iRect.Resize( expand, 0 ); |
1232 |
1193 aDataInfo.iSpaceButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1233 TInt expand = spaceBtnWidth - rectXPane.Width(); |
1194 aDataInfo.iSpaceButton.iInnerRect.Resize( expand, 0 ); |
1234 aDataInfo.iSpaceButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1195 aDataInfo.iSpaceButtonEx.iIconsFrameRect = OffsetRect( rect3PicPane, dx, dy ); |
1235 aDataInfo.iSpaceButton.iRect.Resize( expand, 0 ); |
1196 aDataInfo.iSpaceButtonEx.iIconsFrameRect.Resize( expand, 0 ); |
1236 aDataInfo.iSpaceButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1197 aDataInfo.iSpaceButtonEx.iMiddleIconRect = |
1237 aDataInfo.iSpaceButton.iInnerRect.Resize( expand, 0 ); |
1198 aDataInfo.iSpaceButtonEx.iIconsFrameRect; |
1238 aDataInfo.iSpaceButtonEx.iIconsFrameRect = OffsetRect( rect3PicPane, dx, dy ); |
1199 aDataInfo.iSpaceButtonEx.iMiddleIconRect.iTl.iX += pic3pLeftWidth; |
1239 aDataInfo.iSpaceButtonEx.iIconsFrameRect.Resize( expand, 0 ); |
1200 aDataInfo.iSpaceButtonEx.iMiddleIconRect.iBr.iX -= pic3pRightWidth; |
1240 aDataInfo.iSpaceButtonEx.iMiddleIconRect = |
1201 dx += spaceBtnWidth; |
1241 aDataInfo.iSpaceButtonEx.iIconsFrameRect; |
1202 |
1242 aDataInfo.iSpaceButtonEx.iMiddleIconRect.iTl.iX += pic3pLeftWidth; |
1203 aDataInfo.iRightButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1243 aDataInfo.iSpaceButtonEx.iMiddleIconRect.iBr.iX -= pic3pRightWidth; |
1204 aDataInfo.iRightButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1244 dx += spaceBtnWidth; |
1205 dx += rectXPane.Width(); |
1245 |
1206 |
1246 aDataInfo.iRightButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1207 aDataInfo.iOptionButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1247 aDataInfo.iRightButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1208 aDataInfo.iOptionButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1248 dx += rectXPane.Width(); |
1209 dx += rectXPane.Width(); |
1249 |
1210 |
1250 aDataInfo.iOptionButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1211 aDataInfo.iEnterButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1251 aDataInfo.iOptionButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1212 aDataInfo.iEnterButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1252 dx += rectXPane.Width(); |
1213 dx += rectXPane.Width(); |
1253 |
1214 |
1254 aDataInfo.iEnterButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1215 aDataInfo.iClearButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
1255 aDataInfo.iEnterButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1216 aDataInfo.iClearButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
1256 dx += rectXPane.Width(); |
|
1257 |
|
1258 aDataInfo.iClearButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1259 aDataInfo.iClearButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1260 } |
|
1261 else |
|
1262 { |
|
1263 TAknLayoutRect shiftRect, spaceRect, clearRect; |
|
1264 TAknLayoutRect bottomRowRect; |
|
1265 |
|
1266 // Second row of buttons (CLOSE, MULTIRANGE, LEFT, RIGHT, OPTIONS, ENTER) |
|
1267 // keypane v=15, keycell v=8, keylabel v=8 |
|
1268 |
|
1269 // key pane rect |
|
1270 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(15).LayoutLine(); |
|
1271 bottomRowRect.LayoutRect( keypadRect.Rect(), linelayout ); |
|
1272 |
|
1273 // key cell rect |
|
1274 linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(8).LayoutLine(); |
|
1275 keycellRect.LayoutRect( bottomRowRect.Rect(), linelayout ); |
|
1276 |
|
1277 // key label rect |
|
1278 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(8).LayoutLine(); |
|
1279 keylabelRect.LayoutRect( bottomRowRect.Rect(), linelayout ); |
|
1280 |
|
1281 TRect rectXPane = bottomRowRect.Rect(); |
|
1282 rect = keycellRect.Rect(); |
|
1283 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
|
1284 TRect rectXBorder = rect; |
|
1285 rect = keylabelRect.Rect(); |
|
1286 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
|
1287 TRect rectXInner = rect; |
|
1288 rectXPane.Move( - rectXPane.iTl ); |
|
1289 |
|
1290 rect = keypadRect.Rect(); |
|
1291 rect.Move( - base.iX, - base.iY ); |
|
1292 TRect rectOfKeypad = rect; |
|
1293 TRect rectOfButtons = rectOfKeypad; |
|
1294 rectOfKeypad.iBr.iY -= ( bottomRowRect.Rect().Height() ); |
|
1295 rectOfButtons.iTl.iY += rectOfKeypad.Height(); |
|
1296 |
|
1297 TInt dx = rectOfButtons.iTl.iX; |
|
1298 TInt dy = rectOfButtons.iTl.iY; |
|
1299 |
|
1300 // CLOSE (15) |
|
1301 aDataInfo.iCloseButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1302 aDataInfo.iCloseButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1303 dx += rectXPane.Width(); |
|
1304 |
|
1305 // MULTIRANGE (15) |
|
1306 aDataInfo.iMultiRangeButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1307 aDataInfo.iMultiRangeButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1308 dx += rectXPane.Width(); |
|
1309 |
|
1310 // LEFT (15) |
|
1311 aDataInfo.iLeftButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1312 aDataInfo.iLeftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1313 dx += rectXPane.Width(); |
|
1314 |
|
1315 // RIGHT (15) |
|
1316 aDataInfo.iRightButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1317 aDataInfo.iRightButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1318 dx += rectXPane.Width(); |
|
1319 |
|
1320 // OPTIONS (15) |
|
1321 aDataInfo.iOptionButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1322 aDataInfo.iOptionButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1323 dx += rectXPane.Width(); |
|
1324 |
|
1325 // ENTER (15) |
|
1326 aDataInfo.iEnterButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1327 aDataInfo.iEnterButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1328 |
|
1329 // First row of buttons (SHIFT, SPACE, CLEAR) |
|
1330 |
|
1331 // SHIFT (keypane v=4, keycell v=4, keylabel v=4) |
|
1332 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(4).LayoutLine(); |
|
1333 shiftRect.LayoutRect( keypadRect.Rect(), linelayout ); |
|
1334 |
|
1335 // key cell rect |
|
1336 linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(4).LayoutLine(); |
|
1337 keycellRect.LayoutRect( shiftRect.Rect(), linelayout ); |
|
1338 |
|
1339 // key label rect |
|
1340 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(4).LayoutLine(); |
|
1341 keylabelRect.LayoutRect( shiftRect.Rect(), linelayout ); |
|
1342 |
|
1343 rectXPane = shiftRect.Rect(); |
|
1344 rect = keycellRect.Rect(); |
|
1345 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
|
1346 rectXBorder = rect; |
|
1347 rect = keylabelRect.Rect(); |
|
1348 rect.Move( - rectXPane.iTl.iX, - rectXPane.iTl.iY ); |
|
1349 rectXInner = rect; |
|
1350 rectXPane.Move( - rectXPane.iTl ); |
|
1351 |
|
1352 // Update the height to account for the second row |
|
1353 rectOfButtons.iTl.iY -= shiftRect.Rect().Height(); |
|
1354 |
|
1355 dx = rectOfButtons.iTl.iX; |
|
1356 dy = rectOfButtons.iTl.iY; |
|
1357 |
|
1358 aDataInfo.iShiftButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1359 aDataInfo.iShiftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1360 dx += rectXPane.Width(); |
|
1361 |
|
1362 // SPACE (keypane v=8, keycell v=5, keylabel v=5, pic3pane v=5) |
|
1363 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(8).LayoutLine(); |
|
1364 spaceRect.LayoutRect( keypadRect.Rect(), linelayout ); |
|
1365 |
|
1366 // key cell rect |
|
1367 linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(5).LayoutLine(); |
|
1368 keycellRect.LayoutRect( spaceRect.Rect(), linelayout ); |
|
1369 |
|
1370 // key label rect |
|
1371 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(5).LayoutLine(); |
|
1372 keylabelRect.LayoutRect( spaceRect.Rect(), linelayout ); |
|
1373 |
|
1374 // pic3pane rect |
|
1375 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane(5).LayoutLine(); |
|
1376 pic3paneRect.LayoutRect( spaceRect.Rect(), linelayout ); |
|
1377 |
|
1378 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g1(0).LayoutLine(); |
|
1379 layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); |
|
1380 pic3pLeftWidth = layoutrect.Rect().Width(); |
|
1381 |
|
1382 linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g3(0).LayoutLine(); |
|
1383 layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); |
|
1384 pic3pRightWidth = layoutrect.Rect().Width(); |
|
1385 |
|
1386 TRect rectSpacePane = spaceRect.Rect(); |
|
1387 rect = keycellRect.Rect(); |
|
1388 rect.Move( - rectSpacePane.iTl.iX, - rectSpacePane.iTl.iY ); |
|
1389 TRect rectSpaceBorder = rect; |
|
1390 rect = keylabelRect.Rect(); |
|
1391 rect.Move( - rectSpacePane.iTl.iX, - rectSpacePane.iTl.iY ); |
|
1392 TRect rectSpaceInner = rect; |
|
1393 rect = pic3paneRect.Rect(); |
|
1394 rect.Move( - rectSpacePane.iTl.iX, - rectSpacePane.iTl.iY ); |
|
1395 TRect rect3PicPane = rect; |
|
1396 rectSpacePane.Move( - rectSpacePane.iTl ); |
|
1397 |
|
1398 aDataInfo.iSpaceButton.iRect = OffsetRect( rectSpaceBorder, dx, dy ); |
|
1399 aDataInfo.iSpaceButton.iInnerRect = OffsetRect( rectSpaceInner, dx, dy ); |
|
1400 aDataInfo.iSpaceButtonEx.iIconsFrameRect = OffsetRect( rect3PicPane, dx, dy ); |
|
1401 aDataInfo.iSpaceButtonEx.iMiddleIconRect = aDataInfo.iSpaceButtonEx.iIconsFrameRect; |
|
1402 aDataInfo.iSpaceButtonEx.iMiddleIconRect.iTl.iX += pic3pLeftWidth; |
|
1403 aDataInfo.iSpaceButtonEx.iMiddleIconRect.iBr.iX -= pic3pRightWidth; |
|
1404 dx += rectSpacePane.Width(); |
|
1405 |
|
1406 // CLEAR (keypane v=4, keycell v=4, keylabel v=4) |
|
1407 aDataInfo.iClearButton.iRect = OffsetRect( rectXBorder, dx, dy ); |
|
1408 aDataInfo.iClearButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); |
|
1409 } |
1217 |
1410 |
1218 // preview popup window |
1411 // preview popup window |
1219 TAknWindowLineLayout previewWnd, previewWndInner; |
1412 TAknWindowLineLayout previewWnd, previewWndInner; |
1220 TAknLayoutRect previewWndRect, previewWndInnerRect; |
1413 TAknLayoutRect previewWndRect, previewWndInnerRect; |
1221 previewWnd = AknLayoutScalable_Avkon::popup_fep_char_preview_window(aLayoutParam).LayoutLine(); |
1414 previewWnd = AknLayoutScalable_Avkon::popup_fep_char_preview_window(aLayoutParam).LayoutLine(); |
1781 // --------------------------------------------------------------------------- |
2104 // --------------------------------------------------------------------------- |
1782 // |
2105 // |
1783 TPeninputCandidateListLayoutData CPeninputLafDataFSQ:: |
2106 TPeninputCandidateListLayoutData CPeninputLafDataFSQ:: |
1784 ReadLafForCandidateList( const TRect& aRect ) |
2107 ReadLafForCandidateList( const TRect& aRect ) |
1785 { |
2108 { |
1786 // candidate list |
|
1787 TAknWindowLineLayout candidateList |
|
1788 = AknLayoutScalable_Apps::popup_vitu2_match_list_window( 3 ) |
|
1789 .LayoutLine(); |
|
1790 TAknLayoutRect candidateListRect; |
|
1791 candidateListRect.LayoutRect( aRect, candidateList ); |
|
1792 |
|
1793 // list pane, its parent is candidate list |
|
1794 TAknWindowLineLayout listpane |
|
1795 = AknLayoutScalable_Apps::list_vitu2_match_list_pane( 1 ) |
|
1796 .LayoutLine(); |
|
1797 TAknLayoutRect listpaneRect; |
2109 TAknLayoutRect listpaneRect; |
1798 listpaneRect.LayoutRect( candidateListRect.Rect(), listpane ); |
|
1799 |
|
1800 // scroll pane, its parent is candidate list |
|
1801 TAknWindowLineLayout scrollpane |
|
1802 = AknLayoutScalable_Apps::vitu2_page_scroll_pane( 1 ) |
|
1803 .LayoutLine(); |
|
1804 TAknLayoutRect scrollRect; |
2110 TAknLayoutRect scrollRect; |
1805 scrollRect.LayoutRect( candidateListRect.Rect(), scrollpane ); |
2111 TAknLayoutRect candidateListRect; |
|
2112 TAknWindowLineLayout listpane; |
|
2113 TAknWindowLineLayout scrollpane; |
|
2114 TAknWindowLineLayout candidateList; |
|
2115 |
|
2116 // If portrait FSQ feature is enabled. |
|
2117 TBool isPortraitFSQEnabled = EFalse; |
|
2118 TRAP_IGNORE( isPortraitFSQEnabled = CFeatureDiscovery::IsFeatureSupportedL( |
|
2119 KFeatureIdFfVirtualFullscrPortraitQwertyInput ) ); |
|
2120 |
|
2121 if ( isPortraitFSQEnabled ) |
|
2122 { |
|
2123 if ( Layout_Meta_Data::IsLandscapeOrientation() ) |
|
2124 { |
|
2125 // candidate list |
|
2126 candidateList = AknLayoutScalable_Apps::popup_vitu2_match_list_window( 3 ).LayoutLine(); |
|
2127 candidateListRect.LayoutRect( aRect, candidateList ); |
|
2128 |
|
2129 // list pane, its parent is candidate list |
|
2130 listpane = AknLayoutScalable_Apps::list_vitu2_match_list_pane( 1 ).LayoutLine(); |
|
2131 listpaneRect.LayoutRect( candidateListRect.Rect(), listpane ); |
|
2132 |
|
2133 // scroll pane, its parent is candidate list |
|
2134 scrollpane = AknLayoutScalable_Apps::vitu2_page_scroll_pane( 1 ).LayoutLine(); |
|
2135 scrollRect.LayoutRect( candidateListRect.Rect(), scrollpane ); |
|
2136 } |
|
2137 else |
|
2138 { |
|
2139 // candidate list |
|
2140 candidateList = AknLayoutScalable_Apps::popup_vitu2_match_list_window( 2 ).LayoutLine(); |
|
2141 candidateListRect.LayoutRect( aRect, candidateList ); |
|
2142 |
|
2143 // list pane, its parent is candidate list |
|
2144 listpane = AknLayoutScalable_Apps::list_vitu2_match_list_pane( 0 ).LayoutLine(); |
|
2145 listpaneRect.LayoutRect( candidateListRect.Rect(), listpane ); |
|
2146 |
|
2147 // scroll pane, its parent is candidate list |
|
2148 scrollpane = AknLayoutScalable_Apps::vitu2_page_scroll_pane( 0 ).LayoutLine(); |
|
2149 scrollRect.LayoutRect( candidateListRect.Rect(), scrollpane ); |
|
2150 } |
|
2151 } |
|
2152 else |
|
2153 { |
|
2154 // candidate list |
|
2155 candidateList = AknLayoutScalable_Apps::popup_vitu2_match_list_window( 3 ).LayoutLine(); |
|
2156 candidateListRect.LayoutRect( aRect, candidateList ); |
|
2157 |
|
2158 // list pane, its parent is candidate list |
|
2159 listpane = AknLayoutScalable_Apps::list_vitu2_match_list_pane( 1 ).LayoutLine(); |
|
2160 listpaneRect.LayoutRect( candidateListRect.Rect(), listpane ); |
|
2161 |
|
2162 // scroll pane, its parent is candidate list |
|
2163 scrollpane = AknLayoutScalable_Apps::vitu2_page_scroll_pane( 1 ).LayoutLine(); |
|
2164 scrollRect.LayoutRect( candidateListRect.Rect(), scrollpane ); |
|
2165 } |
1806 |
2166 |
1807 // Item pane, its parent is list pane |
2167 // Item pane, its parent is list pane |
1808 TAknWindowLineLayout itemPane |
2168 TAknWindowLineLayout itemPane |
1809 = AknLayoutScalable_Apps::list_vitu2_match_list_item_pane( 0, 0, 0 ) |
2169 = AknLayoutScalable_Apps::list_vitu2_match_list_item_pane( 0, 0, 0 ) |
1810 .LayoutLine(); |
2170 .LayoutLine(); |