Changeset 942 for trunk/dll/arccnrs.c


Ignore:
Timestamp:
Feb 10, 2008, 7:38:02 PM (18 years ago)
Author:
Gregg Young
Message:

Impliment bubble help for bitmap menu items in the collector and arc container. (Ticket #7)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/arccnrs.c

    r917 r942  
    32903290}
    32913291
     3292MRESULT EXPENTRY ArcCnrMenuProc(HWND hwnd, ULONG msg, MPARAM mp1,
     3293                                     MPARAM mp2)
     3294{
     3295  PFNWP oldMenuProc = WinQueryWindowPtr(hwnd, QWL_USER);
     3296  static short  sLastMenuitem;
     3297
     3298  switch (msg) {
     3299    case WM_MOUSEMOVE: {
     3300      if (fOtherHelp) {
     3301        RECTL rectl;
     3302        SHORT i, sCurrentMenuitem;
     3303        SHORT MenuItems = 10;
     3304        SHORT asMenuIDs[10] = {IDM_VIEW,
     3305              IDM_DELETE,
     3306              IDM_EXEC,
     3307              IDM_EXTRACT,
     3308              IDM_TEST,
     3309              IDM_VIRUSSCAN,
     3310              IDM_RESCAN,
     3311              IDM_WALKDIR,
     3312              IDM_FILTER,
     3313              0};
     3314        char *szHelpString = NULL;
     3315
     3316
     3317        for (i=0; i<MenuItems; i++) {
     3318          sCurrentMenuitem = asMenuIDs[i];
     3319          oldMenuProc(hwnd,MM_QUERYITEMRECT,
     3320                      MPFROM2SHORT(asMenuIDs[i], FALSE),
     3321                      &rectl);
     3322
     3323        if (MOUSEMSG(&msg)->x > rectl.xLeft &&
     3324            MOUSEMSG(&msg)->x < rectl.xRight &&
     3325            MOUSEMSG(&msg)->y > rectl.yBottom &&
     3326            MOUSEMSG(&msg)->y < rectl.yTop)
     3327           break;
     3328        }                      // for
     3329
     3330
     3331         switch (sCurrentMenuitem) {
     3332         case 0:
     3333           break;
     3334         case IDM_VIEW:
     3335           szHelpString = GetPString(IDS_ARCCNRVIEWMENUHELP);
     3336           break;
     3337         case IDM_DELETE:
     3338           szHelpString = GetPString(IDS_ARCCNRDELETEMENUHELP);
     3339           break;
     3340         case IDM_EXEC:
     3341           szHelpString = GetPString(IDS_ARCCNREXECMENUHELP);
     3342           break;
     3343         case IDM_EXTRACT:
     3344           szHelpString = GetPString(IDS_ARCCNREXTRACTMENUHELP);
     3345           break;
     3346         case IDM_TEST:
     3347           szHelpString = GetPString(IDS_ARCCNRTESTMENUHELP);
     3348           break;
     3349         case IDM_VIRUSSCAN:
     3350           szHelpString = GetPString(IDS_ARCCNRVIRUSMENUHELP);
     3351           break;
     3352         case IDM_RESCAN:
     3353           szHelpString = GetPString(IDS_ARCCNRRESCANMENUHELP);
     3354           break;
     3355         case IDM_WALKDIR:
     3356           szHelpString = GetPString(IDS_ARCCNRWALKDIRMENUHELP);
     3357           break;
     3358         case IDM_FILTER:
     3359           szHelpString = GetPString(IDS_ARCCNRFILTERMENUHELP);
     3360           break;
     3361         default:
     3362           break;
     3363         }
     3364
     3365        if (sLastMenuitem != sCurrentMenuitem && szHelpString) {
     3366          sLastMenuitem = sCurrentMenuitem;
     3367          MakeBubble(hwnd, TRUE, szHelpString);
     3368        }
     3369        else if (hwndBubble && !sCurrentMenuitem){
     3370          sLastMenuitem = sCurrentMenuitem;
     3371          WinDestroyWindow(hwndBubble);
     3372        }
     3373      }
     3374    }
     3375  }
     3376    return oldMenuProc(hwnd, msg, mp1, mp2);
     3377}
     3378
    32923379HWND StartArcCnr(HWND hwndParent, HWND hwndCaller, CHAR * arcname, INT flags,
    32933380                 ARC_TYPE * sinfo)
     
    34643551          if (!PostMsg(dcd->hwndCnr, UM_SETUP, MPVOID, MPVOID))
    34653552            WinSendMsg(dcd->hwndCnr, UM_SETUP, MPVOID, MPVOID);
    3466           if (FrameFlags & FCF_MENU) {
     3553          if (FrameFlags & FCF_MENU) {
     3554            PFNWP oldmenuproc;
     3555            HWND hwndMenu = WinWindowFromID(hwndFrame, FID_MENU);
     3556
     3557            oldmenuproc = WinSubclassWindow(hwndMenu, (PFNWP) ArcCnrMenuProc);
     3558            WinSetWindowPtr(hwndMenu, QWL_USER, (PVOID) oldmenuproc);
    34673559            if (!fToolbar) {
    3468               HWND hwndMenu = WinWindowFromID(hwndFrame, FID_MENU);
    34693560
    34703561              if (hwndMenu) {
Note: See TracChangeset for help on using the changeset viewer.