Changeset 1080 for trunk/dll/notebook.c


Ignore:
Timestamp:
Jul 19, 2008, 11:55:14 PM (17 years ago)
Author:
John Small
Message:

Ticket 197: Support accelerator keys in setting dialogs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/notebook.c

    r1065 r1080  
    3636                all the details view settings (both the global variables and those in the
    3737                DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS.
     38  19 Jul 08 JBS Ticket 197: Support accelerator keys in setting dialogs.
    3839
    3940***********************************************************************/
     
    7677    WinEnableWindow(WinWindowFromID(hwnd, CFGA_FIND), FALSE);
    7778    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     79    break;
     80
     81  case WM_HELP:
     82    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     83    break;
     84
     85  case WM_CHAR:
     86    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     87      switch (CHARMSG(&msg)->vkey) {
     88        case VK_F3:
     89        case VK_ENTER:
     90        case VK_NEWLINE:
     91          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     92          return 0;
     93          break;
     94        case VK_ESC:
     95          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     96          return 0;
     97          break;
     98        case VK_F1:
     99          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     100          return 0;
     101          break;
     102      }
     103    }
    78104    break;
    79105
     
    278304MRESULT EXPENTRY CfgSDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    279305{
     306
    280307  switch (msg) {
    281308  case WM_INITDLG:
     
    285312                      MPFROMLONG(FILESTOGET_MAX), MPFROMLONG(FILESTOGET_MIN));
    286313    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     314    break;
     315
     316  case WM_HELP:
     317    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     318    break;
     319
     320  case WM_CHAR:
     321    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     322      switch (CHARMSG(&msg)->vkey) {
     323        case VK_F3:
     324        case VK_ENTER:
     325        case VK_NEWLINE:
     326          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     327          return 0;
     328          break;
     329        case VK_ESC:
     330          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     331          return 0;
     332          break;
     333        case VK_F1:
     334          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     335          return 0;
     336          break;
     337      }
     338    }
    287339    break;
    288340
     
    388440MRESULT EXPENTRY CfgVDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    389441{
     442
    390443  switch (msg) {
    391444  case WM_INITDLG:
     
    400453    WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), FALSE);
    401454    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     455    break;
     456
     457  case WM_HELP:
     458    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     459    break;
     460
     461  case WM_CHAR:
     462    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     463      switch (CHARMSG(&msg)->vkey) {
     464        case VK_F3:
     465        case VK_ENTER:
     466        case VK_NEWLINE:
     467          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     468          return 0;
     469          break;
     470        case VK_ESC:
     471          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     472          return 0;
     473          break;
     474        case VK_F1:
     475          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     476          return 0;
     477          break;
     478      }
     479    }
    402480    break;
    403481
     
    577655    WinEnableWindow(WinWindowFromID(hwnd, CFGH_FIND), FALSE);
    578656    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     657    break;
     658
     659  case WM_HELP:
     660    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     661    break;
     662
     663  case WM_CHAR:
     664    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     665      switch (CHARMSG(&msg)->vkey) {
     666        case VK_F3:
     667        case VK_ENTER:
     668        case VK_NEWLINE:
     669          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     670          return 0;
     671          break;
     672        case VK_ESC:
     673          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     674          return 0;
     675          break;
     676        case VK_F1:
     677          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     678          return 0;
     679          break;
     680      }
     681    }
    579682    break;
    580683
     
    781884    return 0;
    782885
     886  case WM_HELP:
     887    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     888    break;
     889
     890  case WM_CHAR:
     891    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     892      switch (CHARMSG(&msg)->vkey) {
     893        case VK_F3:
     894        case VK_ENTER:
     895        case VK_NEWLINE:
     896          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     897          return 0;
     898          break;
     899        case VK_ESC:
     900          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     901          return 0;
     902          break;
     903        case VK_F1:
     904          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     905          return 0;
     906          break;
     907      }
     908    }
     909    break;
     910
    783911  case WM_COMMAND:
    784912    switch (SHORT1FROMMP(mp1)) {
     
    828956                      EM_SETTEXTLIMIT, MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
    829957    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     958    break;
     959
     960  case WM_HELP:
     961    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     962    break;
     963
     964  case WM_CHAR:
     965    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     966      switch (CHARMSG(&msg)->vkey) {
     967        case VK_F3:
     968        case VK_ENTER:
     969        case VK_NEWLINE:
     970          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     971          return 0;
     972          break;
     973        case VK_ESC:
     974          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     975          return 0;
     976          break;
     977        case VK_F1:
     978          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     979          return 0;
     980          break;
     981      }
     982    }
    830983    break;
    831984
     
    10311184    return 0;
    10321185
     1186  case WM_HELP:
     1187    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     1188    break;
     1189
     1190  case WM_CHAR:
     1191    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     1192      switch (CHARMSG(&msg)->vkey) {
     1193        case VK_F3:
     1194        case VK_ENTER:
     1195        case VK_NEWLINE:
     1196          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     1197          return 0;
     1198          break;
     1199        case VK_ESC:
     1200          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     1201          return 0;
     1202          break;
     1203        case VK_F1:
     1204          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     1205          return 0;
     1206          break;
     1207      }
     1208    }
     1209    break;
     1210
    10331211  case WM_COMMAND:
    10341212    switch (SHORT1FROMMP(mp1)) {
     
    10981276                      MPFROMLONG(CMDLNLNGTH_MAX), MPFROMLONG(CMDLNLNGTH_MIN));
    10991277    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     1278    break;
     1279
     1280  case WM_HELP:
     1281    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     1282    break;
     1283
     1284  case WM_CHAR:
     1285    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     1286      switch (CHARMSG(&msg)->vkey) {
     1287        case VK_F3:
     1288        case VK_ENTER:
     1289        case VK_NEWLINE:
     1290          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     1291          return 0;
     1292          break;
     1293        case VK_ESC:
     1294          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     1295          return 0;
     1296          break;
     1297        case VK_F1:
     1298          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     1299          return 0;
     1300          break;
     1301      }
     1302    }
    11001303    break;
    11011304
     
    12551458    break;
    12561459
     1460  case WM_HELP:
     1461    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     1462    break;
     1463
     1464  case WM_CHAR:
     1465    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     1466      switch (CHARMSG(&msg)->vkey) {
     1467        case VK_F3:
     1468        case VK_ENTER:
     1469        case VK_NEWLINE:
     1470          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     1471          return 0;
     1472          break;
     1473        case VK_ESC:
     1474          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     1475          return 0;
     1476          break;
     1477        case VK_F1:
     1478          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     1479          return 0;
     1480          break;
     1481      }
     1482    }
     1483    break;
     1484
    12571485  case UM_UNDO:
    12581486    WinSetDlgItemText(hwnd, CFGC_COMPARE, compare);
     
    13741602MRESULT EXPENTRY CfgDDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    13751603{
     1604
    13761605  switch (msg) {
    13771606  case WM_INITDLG:
     
    13931622    WinCheckButton(hwnd, CFGD_NOFOLDMENU, fNoFoldMenu);
    13941623    return 0;
     1624
     1625  case WM_HELP:
     1626    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     1627    break;
     1628
     1629  case WM_CHAR:
     1630    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     1631      switch (CHARMSG(&msg)->vkey) {
     1632        case VK_F3:
     1633        case VK_ENTER:
     1634        case VK_NEWLINE:
     1635          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     1636          return 0;
     1637          break;
     1638        case VK_ESC:
     1639          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     1640          return 0;
     1641          break;
     1642        case VK_F1:
     1643          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     1644          return 0;
     1645          break;
     1646      }
     1647    }
     1648    break;
    13951649
    13961650  case WM_COMMAND:
     
    14761730  case WM_INITDLG:
    14771731    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     1732    break;
     1733
     1734  case WM_HELP:
     1735    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     1736    break;
     1737
     1738  case WM_CHAR:
     1739    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     1740      switch (CHARMSG(&msg)->vkey) {
     1741        case VK_F3:
     1742        case VK_ENTER:
     1743        case VK_NEWLINE:
     1744          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     1745          return 0;
     1746          break;
     1747        case VK_ESC:
     1748          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     1749          return 0;
     1750          break;
     1751        case VK_F1:
     1752          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     1753          return 0;
     1754          break;
     1755      }
     1756    }
    14781757    break;
    14791758
     
    17011980                      EM_SETTEXTLIMIT, MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
    17021981    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     1982    break;
     1983
     1984  case WM_HELP:
     1985    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     1986    break;
     1987
     1988  case WM_CHAR:
     1989    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     1990      switch (CHARMSG(&msg)->vkey) {
     1991        case VK_F3:
     1992        case VK_ENTER:
     1993        case VK_NEWLINE:
     1994          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     1995          return 0;
     1996          break;
     1997        case VK_ESC:
     1998          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     1999          return 0;
     2000          break;
     2001        case VK_F1:
     2002          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     2003          return 0;
     2004          break;
     2005      }
     2006    }
    17032007    break;
    17042008
     
    18922196    break;
    18932197
     2198  case WM_HELP:
     2199    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     2200    break;
     2201
     2202  case WM_CHAR:
     2203    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     2204      switch (CHARMSG(&msg)->vkey) {
     2205        case VK_F3:
     2206        case VK_ENTER:
     2207        case VK_NEWLINE:
     2208          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     2209          return 0;
     2210          break;
     2211        case VK_ESC:
     2212          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     2213          return 0;
     2214          break;
     2215        case VK_F1:
     2216          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     2217          return 0;
     2218          break;
     2219      }
     2220    }
     2221    break;
     2222
    18942223  case UM_UNDO:
    18952224    WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
     
    20172346                      MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
    20182347    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     2348    break;
     2349
     2350  case WM_HELP:
     2351    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     2352    break;
     2353
     2354  case WM_CHAR:
     2355    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     2356      switch (CHARMSG(&msg)->vkey) {
     2357        case VK_F3:
     2358        case VK_ENTER:
     2359        case VK_NEWLINE:
     2360          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     2361          return 0;
     2362          break;
     2363        case VK_ESC:
     2364          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     2365          return 0;
     2366          break;
     2367        case VK_F1:
     2368          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     2369          return 0;
     2370          break;
     2371      }
     2372    }
    20192373    break;
    20202374
     
    22272581    break;
    22282582
     2583  case WM_HELP:
     2584    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     2585    break;
     2586
     2587  case WM_CHAR:
     2588    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     2589      switch (CHARMSG(&msg)->vkey) {
     2590        case VK_F3:
     2591        case VK_ENTER:
     2592        case VK_NEWLINE:
     2593          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     2594          return 0;
     2595          break;
     2596        case VK_ESC:
     2597          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     2598          return 0;
     2599          break;
     2600        case VK_F1:
     2601          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     2602          return 0;
     2603          break;
     2604      }
     2605    }
     2606    break;
     2607
    22292608  case UM_UNDO:
    22302609    WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
     
    23452724  switch (msg) {
    23462725  case WM_INITDLG:
     2726    break;
     2727
     2728  case WM_HELP:
     2729    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     2730    break;
     2731
     2732  case WM_CHAR:
     2733    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     2734      switch (CHARMSG(&msg)->vkey) {
     2735        case VK_F3:
     2736        case VK_ENTER:
     2737        case VK_NEWLINE:
     2738          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     2739          return 0;
     2740          break;
     2741        case VK_ESC:
     2742          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     2743          return 0;
     2744          break;
     2745        case VK_F1:
     2746          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     2747          return 0;
     2748          break;
     2749      }
     2750    }
    23472751    break;
    23482752
     
    30483452  ULONG ulPageId;
    30493453  UINT uPageIndex;
     3454  HAB hab;
     3455  static HACCEL haccelCfg = NULLHANDLE;
    30503456
    30513457  switch (msg) {
     
    30533459    hwndNotebook = hwnd;
    30543460    uPageIndex = 0;
     3461    hab = WinQueryAnchorBlock(hwnd);
     3462    if (haccelCfg == NULLHANDLE) {
     3463      haccelCfg = WinLoadAccelTable(hab, FM3ModHandle, CFG_FRAME);
     3464      if (haccelCfg == NULLHANDLE)
     3465        Win_Error(hwndNotebook, HWND_DESKTOP, pszSrcFile, __LINE__, "WinLoadAccelTable");
     3466    }
     3467    if (haccelCfg != NULLHANDLE) {
     3468      if (!WinSetAccelTable(hab, haccelCfg, hwndNotebook))
     3469        Win_Error(hwndNotebook, HWND_DESKTOP, pszSrcFile, __LINE__, "WinSetAccelTable");
     3470      // else
     3471        // DbgMsg(pszSrcFile, __LINE__, "WinSetAccelTable MAIN_DRIVELIST %x %x", hwndFrame, haccelDriveList);
     3472    }
    30553473
    30563474    // If generic call, try to find conditional cascade default
     
    31323550                          MPFROMLONG(np[x].ulPageId),
    31333551                          MPFROMP(GetPString(np[x].ulTitle + 1)));
     3552                       
    31343553        if (LONGFROMMP(mp2) == np[x].usMenuId)
    31353554          uPageIndex = x;               // Remember selected page
     
    31733592    WinSetActiveWindow(HWND_DESKTOP, hwnd);
    31743593    return 0;
     3594
     3595  case WM_HELP:
     3596    PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
     3597    break;
     3598
     3599  case WM_CHAR:
     3600    if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
     3601      switch (CHARMSG(&msg)->vkey) {
     3602        case VK_F3:
     3603        case VK_ENTER:
     3604        case VK_NEWLINE:
     3605          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
     3606          return 0;
     3607          break;
     3608        case VK_ESC:
     3609          PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
     3610          return 0;
     3611          break;
     3612        case VK_F1:
     3613          PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
     3614          return 0;
     3615          break;
     3616      }
     3617    }
     3618    break;
    31753619
    31763620  case WM_COMMAND:
Note: See TracChangeset for help on using the changeset viewer.