Changeset 2 for trunk/common.c


Ignore:
Timestamp:
Oct 26, 2012, 12:07:29 AM (12 years ago)
Author:
Andy Willis
Message:

2.61

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/common.c

    r1 r2  
    163163{ MENUITEM mi={0},mi1={0};
    164164  POINTL ptl;
    165   SHORT sItemId,sItemNum,sLastId,k;
     165  SHORT sItemId,sItemNum,sLastId;
    166166  UCHAR ucBuf[64];
    167167  HWND hwndSubmenu;
     
    171171    sItemId = SHORT1FROMMR(WinSendMsg(plswData->hwndMenu,MM_ITEMIDFROMPOSITION,
    172172                                      MPFROMSHORT(sItemNum-1),0));
    173     sItemNum = SHORT1FROMMR(WinSendMsg(plswData->hwndMenu,MM_DELETEITEM,
     173    sItemNum = SHORT1FROMMR(WinSendMsg(plswData->hwndMenu,
     174                                       sItemId==CMD_XCENTERSUBMENU?MM_REMOVEITEM:MM_DELETEITEM,
    174175                                       MPFROM2SHORT(sItemId,FALSE),0));
    175176  }
     
    249250    WinSendMsg(plswData->hwndMenu, MM_INSERTITEM, MPFROMP(&mi), MPFROMP(ucBuf));
    250251  }
     252#else
     253  WinSetPresParam(plswData->pWidget->hwndContextMenu,PP_FONTNAMESIZE,7,"8.Helv");
     254
     255  if (bTaskBar && iMenuAtItem >= 0) {
     256  // now set the old context menu as submenu;
     257    WinSendMsg(plswData->hwndMenu, MM_INSERTITEM, MPFROMP(&mi1), MPFROMP(ucBuf));
     258
     259    mi.afAttribute = mi.hItem = 0;
     260    mi.afStyle = MIS_TEXT | MIS_SUBMENU;
     261    mi.id = CMD_XCENTERSUBMENU;
     262    mi.hwndSubMenu = plswData->pWidget->hwndContextMenu;
     263    WinLoadString(plswData->hab,plswData->hmodRes,STRID_XCENTERSUBMENU,sizeof(ucBuf),ucBuf);
     264    sItemId = SHORT1FROMMR(WinSendMsg(plswData->hwndMenu, MM_INSERTITEM, MPFROMP(&mi),MPFROMP(ucBuf)));
     265  }
    251266#endif
    252267
     268  WinQueryPointerPos(HWND_DESKTOP,&ptl);
    253269#ifdef XWORKPLACE
    254 // now copy the old context menu as submenu;
    255 // this code adapted from XCenter winlist widget
    256   if (bTaskBar) {
    257     if (iMenuAtItem >= 0) {
    258       WinSendMsg(plswData->hwndMenu, MM_INSERTITEM, MPFROMP(&mi1), MPFROMP(ucBuf));
    259 
    260       hwndSubmenu = WinCreateMenu(plswData->hwndMenu, NULL);
    261 
    262 //      WinSetWindowUShort(hwndSubmenu,QWS_ID,CMD_XCENTERSUBMENU);
    263 
    264       mi.afAttribute = mi.hItem = 0;
    265       mi.afStyle = MIS_TEXT | MIS_SUBMENU;
    266       mi.id = CMD_XCENTERSUBMENU;
    267       mi.hwndSubMenu = hwndSubmenu;
    268 
    269       WinLoadString(plswData->hab,plswData->hmodRes,STRID_XCENTERSUBMENU,sizeof(ucBuf),ucBuf);
    270 
    271       sItemId = SHORT1FROMMR(WinSendMsg(plswData->hwndMenu, MM_INSERTITEM, MPFROMP(&mi),MPFROMP(ucBuf)));
    272     } else
    273       sItemId = 0;
    274 
    275     if (sItemId != MIT_MEMERROR && sItemId != MIT_ERROR) {
    276       sItemNum = SHORT1FROMMR(WinSendMsg(plswData->pWidget->hwndContextMenu,
    277                                          MM_QUERYITEMCOUNT, 0, 0));
    278 
    279       // loop through all entries in the original menu
    280       for (k = 0; k < sItemNum; k++) {
    281         sItemId = SHORT1FROMMR(WinSendMsg(plswData->pWidget->hwndContextMenu,
    282                                MM_ITEMIDFROMPOSITION, MPFROMSHORT(k), 0));
    283       // get this menu item into mi buffer
    284         WinSendMsg(plswData->pWidget->hwndContextMenu, MM_QUERYITEM,
    285                    MPFROM2SHORT(sItemId, FALSE), MPFROMP(&mi));
    286         if (mi.id==ID_CRMI_PROPERTIES) mi.id = CMD_SHOWSETTINGS;
    287       // query text of this menu entry into our buffer
    288         WinSendMsg(plswData->pWidget->hwndContextMenu, MM_QUERYITEMTEXT,
    289                    MPFROM2SHORT(sItemId, sizeof(ucBuf)-1), MPFROMP(ucBuf));
    290       // add this entry to our new menu
    291         mi.iPosition = MIT_END;
    292         WinSendMsg(iMenuAtItem < 0 ? plswData->hwndMenu : hwndSubmenu,
    293                    MM_INSERTITEM, MPFROMP(&mi), MPFROMP(ucBuf));
    294       }
    295     }
    296   }
     270  WinPopupMenu(HWND_DESKTOP, bTaskBar?plswData->hwndTaskBarClient:plswData->hwndPopClient,
     271               (iMenuAtItem<0&&bTaskBar)?plswData->pWidget->hwndContextMenu:plswData->hwndMenu,
     272               ptl.x, ptl.y,0, PU_HCONSTRAIN | PU_VCONSTRAIN | PU_MOUSEBUTTON1 | PU_MOUSEBUTTON2 | PU_KEYBOARD);
     273#else
     274  WinPopupMenu(HWND_DESKTOP, bTaskBar?plswData->hwndTaskBarClient:plswData->hwndPopClient,plswData->hwndMenu,
     275               ptl.x, ptl.y,0, PU_HCONSTRAIN | PU_VCONSTRAIN | PU_MOUSEBUTTON1 | PU_MOUSEBUTTON2 | PU_KEYBOARD);
    297276#endif
    298 
    299   WinQueryPointerPos(HWND_DESKTOP,&ptl);
    300   WinPopupMenu(HWND_DESKTOP, bTaskBar?plswData->hwndTaskBarClient:plswData->hwndPopClient, plswData->hwndMenu, ptl.x, ptl.y,
    301                0, PU_HCONSTRAIN | PU_VCONSTRAIN | PU_MOUSEBUTTON1 | PU_MOUSEBUTTON2 | PU_KEYBOARD);
    302277}
    303278
Note: See TracChangeset for help on using the changeset viewer.