home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ocl150a.zip / OCL / Samples / NextHand / Source / NextCommand.cpp < prev    next >
C/C++ Source or Header  |  1996-08-12  |  5KB  |  166 lines

  1. // NextCommand.cpp
  2. // Next like Toolbar
  3.  
  4. // $Header: W:/Projects/OCL/Samples/NextHand/Source/rcs/NextCommand.cpp 1.50 1996/08/11 23:48:43 B.STEIN Release $
  5.  
  6. #include "..\Source\NextHand.hpp"
  7.  
  8.  
  9. BOOL NextBar::OCommand(ULONG msg, MPARAM mp1, MPARAM mp2)
  10. {
  11.  switch(msg)
  12.   {
  13.     case WM_CREATE:
  14.       if (setup.floating)
  15.         floatTimer.setNotify(hwnd).start();
  16.       break;
  17.  
  18.     case WM_TOOLBAR_RESET:
  19.       resetToolBar();
  20.       break;
  21.  
  22.     case WM_CFG_CANCELED: {
  23.       pNextBarEvent actual = (pNextBarEvent) PVOIDFROMMP(mp1);
  24.       if (actual)
  25.          events.del(actual);
  26.       break; }
  27.  
  28.     case WM_SAVE_BUTTONS:
  29.       saveProfile();
  30.       resetToolBar();
  31.       break;
  32.  
  33.     case WM_CONTROL:
  34.       switch(SHORT1FROMMP(mp1))
  35.        {
  36.         case OBUTTONBAR_MOVEOVER:
  37.           selectedButton = SHORT2FROMMP(mp1);
  38.           break;
  39.  
  40.         case OBUTTONBAR_BUTTON2DOWN:
  41.           selectedButton = SHORT2FROMMP(mp1);
  42.           WinSendMsg(menu, MM_SETITEMATTR, MPFROM2SHORT(NHX_DEL_BUTTON, FALSE),
  43.                      MPFROM2SHORT(MIA_DISABLED, (selectedButton == NHX_MAIN) ? MIA_DISABLED : ~MIA_DISABLED));
  44.           WinSendMsg(menu, MM_SETITEMATTR, MPFROM2SHORT(NHX_CFG_BUTTON, FALSE),
  45.                      MPFROM2SHORT(MIA_DISABLED, (selectedButton == NHX_MAIN) ? MIA_DISABLED : ~MIA_DISABLED));
  46.           WinPopupMenu(frame, frame, menu, SHORT1FROMMP(mp2), SHORT2FROMMP(mp2), NHX_CFG_BUTTON,
  47.                      PU_NONE | PU_KEYBOARD | PU_MOUSEBUTTON1 |
  48.                      PU_POSITIONONITEM | PU_HCONSTRAIN | PU_VCONSTRAIN);
  49.           break;
  50.        }
  51.       break;
  52.  
  53.     case WM_TIMER:
  54.       if (setup.floating)
  55.         WinSetWindowPos(WinQueryWindow(hwnd,QW_PARENT), HWND_TOP, 0, 0, 0, 0, SWP_ZORDER);
  56.       break;
  57.  
  58.     case WM_COMMAND: {
  59.        ULONG command = SHORT1FROMMP(mp1);
  60.        pNextBarEvent actual = events.getItem(selectedButton - NHX_FIRST_BUTTON);
  61.  
  62.        switch(command)
  63.         {
  64.          case NHX_MAIN:
  65.             closeFolders(TRUE);
  66.             break;
  67.  
  68.          case NHX_INFOMNU: {
  69.             pNextBarInfoDlg  dlg = new NextBarInfoDlg;
  70.             dlg->createDlg();
  71.             break; }
  72.  
  73.          case NHX_FLOAT:
  74.             if (setup.floating) {
  75.                setup.floating = FALSE;
  76.                floatTimer.stop(); }
  77.             else {
  78.                setup.floating = TRUE;
  79.                floatTimer.setNotify(hwnd).start(); }
  80.             WinCheckMenuItem(menu, NHX_FLOAT, setup.floating);
  81.             break;
  82.  
  83.          case NHX_QUIT:
  84.             WinPostMsg(hwnd, WM_CLOSE, NULL, NULL);
  85.             break;
  86.  
  87.          case NHX_MOVE:
  88.             trackButtons();
  89.             break;
  90.  
  91.          case NHX_SENKRECHT:
  92.             setNewStyle(OButtonBar::up2down);
  93.             break;
  94.  
  95.          case NHX_WAAGERECHT:
  96.             setNewStyle(OButtonBar::left2right);
  97.             break;
  98.  
  99.          case NHX_NORMICONS:
  100.             setup.large = FALSE;
  101.             setNewStyle(setup.style);
  102.             break;
  103.  
  104.          case NHX_LARGEICONS:
  105.             setup.large = TRUE;
  106.             setNewStyle(setup.style);
  107.             break;
  108.  
  109.          case NHX_ADD_BUTTON: {
  110.             pNextBarEvent aNew = new NextBarEvent;
  111.             pNextBarDlg   dlg = new NextBarDlg(aNew, NULL, TRUE);
  112.  
  113.             events.addAfter(actual, aNew);
  114.             dlg->createDlg();
  115.             break; }
  116.  
  117.          case NHX_DEL_BUTTON:
  118.             events.del(actual);
  119.             resetToolBar();
  120.             break;
  121.  
  122.          case NHX_CFG_BUTTON: {
  123.             pOGraphicsButton button = nxButtons->buttons.getItem(selectedButton - NHX_FIRST_BUTTON + 1);
  124.             pNextBarDlg dlg = new NextBarDlg(actual, button, FALSE);
  125.             dlg->createDlg();
  126.             break; }
  127.  
  128.          case NHX_HELP:
  129.             helpRequest(PANEL_MAIN);
  130.             break;
  131.  
  132.          default:
  133.             if (actual)  
  134.               actual->startEvent();
  135.             break;
  136.          }
  137.        break; }
  138.  
  139.     case WM_SIZE:
  140.       if (nxButtons)
  141.         WinSetWindowPos(nxButtons->frame, HWND_TOP, 0, 0,
  142.             (setup.style == OButtonBar::left2right) ?  SHORT1FROMMP(mp2) : buttonSize,
  143.             (setup.style == OButtonBar::left2right) ?  buttonSize : SHORT2FROMMP(mp2),
  144.              SWP_MOVE | SWP_SIZE);
  145.       break;
  146.  
  147.     case WM_CLOSE:
  148.       WinQueryWindowPos(frame, &setup.position);
  149.       strcpy(setup.bubbleFont, nxButtons->bubbleHelpWin.pparms.Font); 
  150.       ini->write("NextHand", "NextInfo 1.5", &setup, sizeof(NextInfo));
  151.       ini->close();
  152.       hideFrame();
  153.       OApp::currentOApp->forceQuit();
  154.       break;
  155.  
  156.     default:
  157.        return(FALSE);
  158.    }
  159.  return(TRUE);
  160. }
  161.  
  162.  
  163.  
  164.  
  165. // end
  166.