home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / winnt / perfmon / toolbar.c < prev    next >
Text File  |  1994-11-23  |  6KB  |  178 lines

  1. //┌──────────────────────────────────────────────────────────────────────────┐
  2. //│                                 Includes                                 │
  3. //└──────────────────────────────────────────────────────────────────────────┘
  4.  
  5.  
  6. #include "perfmon.h"
  7. #include <commctrl.h>
  8. #include "toolbar.h"
  9. #include "status.h"     // for StatusLine & StatusLineReady
  10.  
  11. #ifdef ADVANCED_PERFMON
  12. TBBUTTON tbButtons[] = {
  13.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
  14.    { 0, IDM_VIEWCHART,        TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
  15.    { 1, IDM_VIEWALERT,        TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
  16.    { 2, IDM_VIEWLOG,          TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
  17.    { 3, IDM_VIEWREPORT,       TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
  18.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
  19.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
  20.    { 4, IDM_TOOLBARADD,       TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
  21.    { 5, IDM_TOOLBARMODIFY,    TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
  22.    { 6, IDM_TOOLBARDELETE,    TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
  23.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
  24.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
  25.    { 7, IDM_TOOLBARREFRESH,   TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
  26.    { 8, IDM_OPTIONSBOOKMARK,  TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
  27.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
  28.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
  29.    { 9, IDM_TOOLBAROPTIONS,   TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
  30. } ;
  31. #else
  32. TBBUTTON tbButtons[] = {
  33.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,      0 },
  34.    { 4, IDM_TOOLBARADD,       TBSTATE_ENABLED,   TBSTYLE_BUTTON,   0 },
  35.    { 5, IDM_TOOLBARMODIFY,    TBSTATE_ENABLED,   TBSTYLE_BUTTON,   0 },
  36.    { 6, IDM_TOOLBARDELETE,    TBSTATE_ENABLED,   TBSTYLE_BUTTON,   0 },
  37.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,      0 },
  38.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,      0 },
  39.    { 7, IDM_TOOLBARREFRESH,   TBSTATE_ENABLED,   TBSTYLE_BUTTON,   0 },
  40.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,      0 },
  41.    { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,      0 },
  42.    { 9, IDM_TOOLBAROPTIONS,   TBSTATE_ENABLED,   TBSTYLE_BUTTON,   0 },
  43. } ;
  44. #endif
  45.  
  46. #define TB_ENTRIES sizeof(tbButtons)/sizeof(tbButtons[0])
  47.  
  48. BOOL CreateToolbarWnd (HWND hWnd)
  49. {
  50.  
  51.    hWndToolbar = CreateToolbarEx (hWnd,
  52.       WS_CHILD | WS_BORDER | WS_VISIBLE,
  53.       IDM_TOOLBARID,
  54.       10,                  // number of tools inside the bitmap
  55.       hInstance,
  56.       idBitmapToolbar,     // bitmap resource ID (can't use MAKEINTRESOURCE)
  57.       tbButtons,
  58.       TB_ENTRIES,0,0,0,0,sizeof(TBBUTTON)) ;
  59.  
  60.    return (hWndToolbar ? TRUE : FALSE) ;
  61.  
  62. }  // ToolbarInitializeApplication
  63.  
  64. void ToolbarEnableButton (HWND hWndTB, int iButtonNum, BOOL bEnable)
  65. {
  66.    SendMessage (hWndTB, TB_ENABLEBUTTON, iButtonNum, (LONG)bEnable) ;
  67. }  // ToolbarEnableButton
  68.  
  69. void ToolbarDepressButton (HWND hWndTB, int iButtonNum, BOOL bDepress)
  70. {
  71.    if (iButtonNum >= IDM_TOOLBARADD && iButtonNum <= IDM_TOOLBARBOOKMARK)
  72.       {
  73.       // these buttons are push button and will not stay down after
  74.       // each hit
  75.       SendMessage (hWndTB, TB_PRESSBUTTON, iButtonNum, (LONG)bDepress) ;
  76.       }
  77.    else
  78.       {
  79.       // for the four view buttons, have to use CHECKBUTTON so they
  80.       // will stay down after selected.
  81.       SendMessage (hWndTB, TB_CHECKBUTTON, iButtonNum, (LONG)bDepress) ;
  82.       }
  83. }  // ToolbarDepressButton
  84.  
  85. void OnToolbarHit (WPARAM wParam, LPARAM lParam)
  86. {
  87.  
  88.    WORD  ToolbarHit ;
  89.  
  90.    if (HIWORD(wParam) == TBN_ENDDRAG)
  91.       {
  92.       StatusLineReady (hWndStatus) ;
  93.       }
  94.    else if (HIWORD(wParam) == TBN_BEGINDRAG)
  95.       {
  96.       ToolbarHit = LOWORD (lParam) ;
  97.  
  98.       if (ToolbarHit >= IDM_TOOLBARADD &&
  99.           ToolbarHit <= IDM_TOOLBARDELETE)
  100.          {
  101.          ToolbarHit -= IDM_TOOLBARADD ;
  102.  
  103.          switch (iPerfmonView)
  104.             {
  105.             case IDM_VIEWALERT:
  106.                ToolbarHit += IDM_EDITADDALERT ;
  107.                break ;
  108.  
  109.             case IDM_VIEWLOG:
  110.                ToolbarHit += IDM_EDITADDLOG ;
  111.                break ;
  112.  
  113.             case IDM_VIEWREPORT:
  114.                ToolbarHit += IDM_EDITADDREPORT ;
  115.                break ;
  116.  
  117.             case IDM_VIEWCHART:
  118.             default:
  119.                ToolbarHit += IDM_EDITADDCHART ;
  120.                break ;
  121.             }
  122.          }
  123.       else if (ToolbarHit == IDM_TOOLBARBOOKMARK)
  124.          {
  125.          ToolbarHit = IDM_OPTIONSBOOKMARK ;
  126.          }
  127.       else if (ToolbarHit == IDM_TOOLBARREFRESH)
  128.          {
  129.          switch (iPerfmonView)
  130.             {
  131.             case IDM_VIEWALERT:
  132.                ToolbarHit = IDM_OPTIONSREFRESHNOWALERT ;
  133.                break ;
  134.  
  135.             case IDM_VIEWLOG:
  136.                ToolbarHit = IDM_OPTIONSREFRESHNOWLOG ;
  137.                break ;
  138.  
  139.             case IDM_VIEWREPORT:
  140.                ToolbarHit = IDM_OPTIONSREFRESHNOWREPORT ;
  141.                break ;
  142.  
  143.             case IDM_VIEWCHART:
  144.             default:
  145.                ToolbarHit = IDM_OPTIONSREFRESHNOWCHART ;
  146.                break ;
  147.             }
  148.          }
  149.       else if (ToolbarHit == IDM_TOOLBAROPTIONS)
  150.          {
  151.          switch (iPerfmonView)
  152.             {
  153.             case IDM_VIEWALERT:
  154.                ToolbarHit = IDM_OPTIONSALERT ;
  155.                break ;
  156.  
  157.             case IDM_VIEWLOG:
  158.                ToolbarHit = IDM_OPTIONSLOG ;
  159.                break ;
  160.  
  161.             case IDM_VIEWREPORT:
  162.                ToolbarHit = IDM_OPTIONSREPORT ;
  163.                break ;
  164.  
  165.             case IDM_VIEWCHART:
  166.             default:
  167.                ToolbarHit = IDM_OPTIONSCHART ;
  168.                break ;
  169.             }
  170.          }
  171.  
  172.       StatusLine (hWndStatus, ToolbarHit) ;
  173.       }
  174. }  // OnToolBarHit
  175.  
  176.  
  177. 
  178.