Changeset 953 for trunk/dll/arccnrs.c


Ignore:
Timestamp:
Feb 16, 2008, 3:15:16 AM (18 years ago)
Author:
Steven Levine
Message:

Rework code and resources to support settings menu conditional cascade
Optimize last settings menu save/restore

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/arccnrs.c

    r946 r953  
    5151  10 Jan 08 SHL Sync with CfgDlgProc mods
    5252  10 Feb 08 GKY Implement bubble help for bitmap menu items
     53  15 Feb 08 SHL Sync with settings menu rework
    5354
    5455***********************************************************************/
     
    7980#include "errutil.h"                    // Dos_Error...
    8081#include "strutil.h"                    // GetPString
     82#include "notebook.h"                   // CfgDlgProc
    8183#include "fm3dll.h"
    8284
     
    26272629        break;
    26282630
    2629       case IDM_NOTEBOOK:
     2631      case IDM_ARCHIVERSETTINGS:
    26302632        if (!ParentIsDesktop(dcd->hwndParent, dcd->hwndParent))
    26312633          PostMsg(dcd->hwndParent, msg, MPFROMLONG(IDM_ARCHIVERSETTINGS), mp2);
     
    33003302    case WM_MOUSEMOVE: {
    33013303      if (fOtherHelp) {
    3302         RECTL rectl;
    3303         SHORT i, sCurrentMenuitem;
    3304         SHORT MenuItems = 10;
    3305         SHORT asMenuIDs[10] = {IDM_VIEW,
    3306               IDM_DELETE,
    3307               IDM_EXEC,
    3308               IDM_EXTRACT,
    3309               IDM_TEST,
    3310               IDM_VIRUSSCAN,
    3311               IDM_RESCAN,
    3312               IDM_WALKDIR,
    3313               IDM_FILTER,
    3314               0};
    3315         char *szHelpString = NULL;
    3316 
    3317 
    3318         for (i=0; i<MenuItems; i++) {
    3319           sCurrentMenuitem = asMenuIDs[i];
    3320           oldMenuProc(hwnd,MM_QUERYITEMRECT,
    3321                       MPFROM2SHORT(asMenuIDs[i], FALSE),
    3322                       &rectl);
    3323 
    3324         if (MOUSEMSG(&msg)->x > rectl.xLeft &&
    3325             MOUSEMSG(&msg)->x < rectl.xRight &&
    3326             MOUSEMSG(&msg)->y > rectl.yBottom &&
    3327             MOUSEMSG(&msg)->y < rectl.yTop)
    3328            break;
    3329         }                      // for
    3330 
    3331 
    3332         switch (sCurrentMenuitem) {
    3333         case 0:
    3334            break;
    3335         case IDM_VIEW:
    3336            szHelpString = GetPString(IDS_ARCCNRVIEWMENUHELP);
    3337            break;
    3338         case IDM_DELETE:
    3339            szHelpString = GetPString(IDS_ARCCNRDELETEMENUHELP);
    3340            break;
    3341         case IDM_EXEC:
    3342            szHelpString = GetPString(IDS_ARCCNREXECMENUHELP);
    3343            break;
    3344         case IDM_EXTRACT:
    3345            szHelpString = GetPString(IDS_ARCCNREXTRACTMENUHELP);
    3346            break;
    3347         case IDM_TEST:
    3348            szHelpString = GetPString(IDS_ARCCNRTESTMENUHELP);
    3349            break;
    3350         case IDM_VIRUSSCAN:
    3351            szHelpString = GetPString(IDS_ARCCNRVIRUSMENUHELP);
    3352            break;
    3353         case IDM_RESCAN:
    3354            szHelpString = GetPString(IDS_ARCCNRRESCANMENUHELP);
    3355            break;
    3356         case IDM_WALKDIR:
    3357            szHelpString = GetPString(IDS_ARCCNRWALKDIRMENUHELP);
    3358            break;
    3359         case IDM_FILTER:
    3360            szHelpString = GetPString(IDS_ARCCNRFILTERMENUHELP);
    3361            break;
    3362         default:
    3363            break;
    3364         }
    3365 
    3366         if (sLastMenuitem != sCurrentMenuitem && szHelpString) {
    3367           sLastMenuitem = sCurrentMenuitem;
    3368           MakeBubble(hwnd, TRUE, szHelpString);
    3369         }
    3370         else if (hwndBubble && !sCurrentMenuitem){
    3371           sLastMenuitem = sCurrentMenuitem;
    3372           WinDestroyWindow(hwndBubble);
    3373         }
     3304        RECTL rectl;
     3305        SHORT i, sCurrentMenuitem;
     3306        SHORT MenuItems = 10;
     3307        SHORT asMenuIDs[10] = {IDM_VIEW,
     3308              IDM_DELETE,
     3309              IDM_EXEC,
     3310              IDM_EXTRACT,
     3311              IDM_TEST,
     3312              IDM_VIRUSSCAN,
     3313              IDM_RESCAN,
     3314              IDM_WALKDIR,
     3315              IDM_FILTER,
     3316              0};
     3317        char *szHelpString = NULL;
     3318
     3319
     3320        for (i=0; i<MenuItems; i++) {
     3321          sCurrentMenuitem = asMenuIDs[i];
     3322          oldMenuProc(hwnd,MM_QUERYITEMRECT,
     3323                      MPFROM2SHORT(asMenuIDs[i], FALSE),
     3324                      &rectl);
     3325
     3326        if (MOUSEMSG(&msg)->x > rectl.xLeft &&
     3327            MOUSEMSG(&msg)->x < rectl.xRight &&
     3328            MOUSEMSG(&msg)->y > rectl.yBottom &&
     3329            MOUSEMSG(&msg)->y < rectl.yTop)
     3330           break;
     3331        }                      // for
     3332
     3333
     3334        switch (sCurrentMenuitem) {
     3335        case 0:
     3336           break;
     3337        case IDM_VIEW:
     3338           szHelpString = GetPString(IDS_ARCCNRVIEWMENUHELP);
     3339           break;
     3340        case IDM_DELETE:
     3341           szHelpString = GetPString(IDS_ARCCNRDELETEMENUHELP);
     3342           break;
     3343        case IDM_EXEC:
     3344           szHelpString = GetPString(IDS_ARCCNREXECMENUHELP);
     3345           break;
     3346        case IDM_EXTRACT:
     3347           szHelpString = GetPString(IDS_ARCCNREXTRACTMENUHELP);
     3348           break;
     3349        case IDM_TEST:
     3350           szHelpString = GetPString(IDS_ARCCNRTESTMENUHELP);
     3351           break;
     3352        case IDM_VIRUSSCAN:
     3353           szHelpString = GetPString(IDS_ARCCNRVIRUSMENUHELP);
     3354           break;
     3355        case IDM_RESCAN:
     3356           szHelpString = GetPString(IDS_ARCCNRRESCANMENUHELP);
     3357           break;
     3358        case IDM_WALKDIR:
     3359           szHelpString = GetPString(IDS_ARCCNRWALKDIRMENUHELP);
     3360           break;
     3361        case IDM_FILTER:
     3362           szHelpString = GetPString(IDS_ARCCNRFILTERMENUHELP);
     3363           break;
     3364        default:
     3365           break;
     3366        }
     3367
     3368        if (sLastMenuitem != sCurrentMenuitem && szHelpString) {
     3369          sLastMenuitem = sCurrentMenuitem;
     3370          MakeBubble(hwnd, TRUE, szHelpString);
     3371        }
     3372        else if (hwndBubble && !sCurrentMenuitem){
     3373          sLastMenuitem = sCurrentMenuitem;
     3374          WinDestroyWindow(hwndBubble);
     3375        }
    33743376      }
    33753377    }
     
    35523554          if (!PostMsg(dcd->hwndCnr, UM_SETUP, MPVOID, MPVOID))
    35533555            WinSendMsg(dcd->hwndCnr, UM_SETUP, MPVOID, MPVOID);
    3554           if (FrameFlags & FCF_MENU) {
    3555             PFNWP oldmenuproc;
    3556             HWND hwndMenu = WinWindowFromID(hwndFrame, FID_MENU);
     3556          if (FrameFlags & FCF_MENU) {
     3557            PFNWP oldmenuproc;
     3558            HWND hwndMenu = WinWindowFromID(hwndFrame, FID_MENU);
    35573559
    35583560            oldmenuproc = WinSubclassWindow(hwndMenu, (PFNWP) ArcCnrMenuProc);
Note: See TracChangeset for help on using the changeset viewer.