Changeset 1411 for trunk/dll/arccnrs.c
- Timestamp:
- Mar 29, 2009, 10:33:07 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/arccnrs.c
r1402 r1411 75 75 08 Mar 09 GKY Additional strings move to PCSZs in init.c 76 76 08 Mar 09 GKY Removed variable aurguments from docopyf and unlinkf (not used) 77 12 Mar 09 SHL Use common SearchContainer 77 78 78 79 ***********************************************************************/ … … 2244 2245 shiftstate = (SHORT1FROMMP(mp1) & (KC_SHIFT | KC_ALT | KC_CTRL)); 2245 2246 if (SHORT1FROMMP(mp1) & KC_KEYUP) 2246 return (MRESULT) 2247 return (MRESULT)TRUE; 2247 2248 if (SHORT1FROMMP(mp1) & KC_VIRTUALKEY) { 2248 2249 switch (SHORT2FROMMP(mp2)) { … … 2252 2253 } 2253 2254 } 2254 if (shiftstate || fNoSearch) 2255 break; 2256 if (SHORT1FROMMP(mp1) & KC_CHAR) { 2257 2258 ULONG thistime, len; 2259 SEARCHSTRING srch; 2260 PCNRITEM pci; 2261 2262 if (!dcd) 2263 break; 2264 switch (SHORT1FROMMP(mp2)) { 2265 case '\x1b': 2266 case '\r': 2267 case '\n': 2268 dcd->lasttime = 0; 2269 *dcd->szCommonName = 0; 2270 break; 2271 default: 2272 thistime = WinQueryMsgTime(WinQueryAnchorBlock(hwnd)); 2273 if (thistime > dcd->lasttime + 1250) 2274 *dcd->szCommonName = 0; 2275 dcd->lasttime = thistime; 2276 if (SHORT1FROMMP(mp2) == ' ' && !*dcd->szCommonName) 2277 break; 2278 KbdRetry: 2279 len = strlen(dcd->szCommonName); 2280 if (len >= CCHMAXPATH - 1) { 2281 *dcd->szCommonName = 0; 2282 len = 0; 2283 } 2284 dcd->szCommonName[len] = toupper(SHORT1FROMMP(mp2)); 2285 dcd->szCommonName[len + 1] = 0; 2286 memset(&srch, 0, sizeof(SEARCHSTRING)); 2287 srch.cb = (ULONG) sizeof(SEARCHSTRING); 2288 srch.pszSearch = dcd->szCommonName; 2289 srch.fsPrefix = TRUE; 2290 srch.fsCaseSensitive = FALSE; 2291 srch.usView = CV_ICON; 2292 pci = WinSendMsg(hwnd, 2293 CM_SEARCHSTRING, 2294 MPFROMP(&srch), MPFROMLONG(CMA_FIRST)); 2295 if (pci && (INT) pci != -1) { 2296 2297 USHORT attrib = CRA_CURSORED; 2298 2299 2300 /* make found item current item */ 2301 if (!stricmp(pci->pszFileName, dcd->szCommonName)) 2302 attrib |= CRA_SELECTED; 2303 WinSendMsg(hwnd, 2304 CM_SETRECORDEMPHASIS, 2305 MPFROMP(pci), MPFROM2SHORT(TRUE, attrib)); 2306 /* make sure that record shows in viewport */ 2307 ShowCnrRecord(hwnd, (PMINIRECORDCORE) pci); 2308 return (MRESULT) TRUE; 2309 } 2310 else { 2311 if (SHORT1FROMMP(mp2) == ' ') { 2312 dcd->szCommonName[len] = 0; 2313 break; 2314 } 2315 *dcd->szCommonName = 0; 2316 dcd->lasttime = 0; 2317 if (len) // retry as first letter if no match 2318 goto KbdRetry; 2319 } 2320 break; 2321 } 2322 } 2323 break; 2255 2256 if (SearchContainer(hwnd, msg, mp1, mp2)) 2257 return (MRESULT)TRUE; // Avoid default handler 2258 break; // Let default handler see key too 2324 2259 2325 2260 case WM_MOUSEMOVE:
Note:
See TracChangeset
for help on using the changeset viewer.