Annotation of mstools/samples/sdktools/perfmon/command.c, revision 1.1

1.1     ! root        1: /*
        !             2: ==============================================================================
        !             3: 
        !             4:   Application:
        !             5: 
        !             6:             Microsoft Windows NT (TM) Performance Monitor
        !             7: 
        !             8:   File:
        !             9:             Command.c -- PerfmonCommand routine and helpers.
        !            10: 
        !            11:             This file contains the PerfmonCommand routine, which handles
        !            12:             all of the user's menu selections.
        !            13: 
        !            14:   Copyright 1992-1993, Microsoft Corporation. All Rights Reserved.
        !            15:             Microsoft Confidential.
        !            16: ==============================================================================
        !            17: */
        !            18: 
        !            19: 
        !            20: //==========================================================================//
        !            21: //                                  Includes                                //
        !            22: //==========================================================================//
        !            23: 
        !            24: 
        !            25: #include "stdio.h"
        !            26: #include "perfmon.h"
        !            27: #include "command.h"    // External declarations for this file
        !            28: #include <shellapi.h>   // for ShellAbout
        !            29: 
        !            30: #include "addlog.h"     // for AddLog
        !            31: #include "alert.h"      // for CurrentAlertLine
        !            32: #include "bookmark.h"   // for AddBookmark
        !            33: #include "cderr.h"
        !            34: #include "datasrc.h"    // for DisplayDataSourceOptions
        !            35: #include "dialogs.h"
        !            36: #include "dispoptn.h"   // for DisplayDisplayOptions
        !            37: #include "fileopen.h"   // for FileOpen
        !            38: #include "grafdata.h"   // for ChartDeleteLine ClearGraphDisplay
        !            39: #include "grafdisp.h"   // for ToggleGraphRefresh
        !            40: #include "init.h"       // for PerfmonClose
        !            41: #include "legend.h"
        !            42: #include "log.h"        // for LogTimer
        !            43: #include "logoptns.h"
        !            44: #include "playback.h"
        !            45: #include "print.h"      // for PrintChart, for now
        !            46: #include "report.h"     // for CurrentReportLine
        !            47: #include "rptoptns.h"   // for DisplayReportOptions
        !            48: #include "status.h"     // for StatusUpdateIcons
        !            49: #include "timefrm.h"    // for SetTimeframe
        !            50: #include "toolbar.h"    // for ToolbarDepressButton
        !            51: #include "utils.h"
        !            52: #include "perfmops.h"   // for SaveWorkspace
        !            53: 
        !            54: int static deltax ;
        !            55: int static deltay ;
        !            56: 
        !            57: #define ABOUT_TIMER_ID 10
        !            58: 
        !            59: int FAR WINAPI AboutDlgProc (HWND hDlg, 
        !            60:                              unsigned iMessage, 
        !            61:                              WPARAM wParam, 
        !            62:                              LPARAM lParam)
        !            63:    {
        !            64:    BOOL           bHandled ;
        !            65: 
        !            66:    bHandled = TRUE ;
        !            67:    switch (iMessage)
        !            68:       {
        !            69:       case WM_INITDIALOG:
        !            70:          deltax = 0 ;
        !            71:          deltay = 0 ;
        !            72:          dwCurrentDlgID = 0 ;
        !            73:          SetTimer(hDlg, ABOUT_TIMER_ID, 1000, NULL) ;
        !            74:          WindowCenter (hDlg) ;
        !            75:          return (TRUE) ;
        !            76: 
        !            77:       case WM_TIMER:
        !            78:          deltax += 2 ;
        !            79:          if (deltax > 60)
        !            80:             deltax = 0 ;
        !            81: 
        !            82:          deltay += 5 ;
        !            83:          if (deltay > 60)
        !            84:             deltay = 0 ;
        !            85: 
        !            86:          WindowInvalidate (DialogControl (hDlg, 524)) ;
        !            87:          break ;
        !            88: 
        !            89:       case WM_DRAWITEM:
        !            90:          {
        !            91:          int xPos, yPos ;
        !            92:          LPDRAWITEMSTRUCT lpItem ;
        !            93: 
        !            94:          lpItem = (LPDRAWITEMSTRUCT) lParam ;
        !            95:          xPos = lpItem->rcItem.left + deltax ;
        !            96:          yPos = lpItem->rcItem.top + deltay ;
        !            97:          DrawIcon (lpItem->hDC, xPos, yPos, hIcon) ;
        !            98:          }
        !            99:          break ;
        !           100: 
        !           101:       case WM_CLOSE:
        !           102:          dwCurrentDlgID = 0 ;
        !           103:          KillTimer (hDlg, ABOUT_TIMER_ID) ;
        !           104:          EndDialog (hDlg, 1) ;
        !           105:          break ;
        !           106: 
        !           107:       case WM_COMMAND:
        !           108:          switch(wParam)
        !           109:             {
        !           110:             case IDD_OK:
        !           111:                dwCurrentDlgID = 0 ;
        !           112:                EndDialog (hDlg, 1) ;
        !           113:                break ;
        !           114: 
        !           115:             default:
        !           116:                bHandled = FALSE ;
        !           117:                break;
        !           118:             }
        !           119:          break;
        !           120: 
        !           121: 
        !           122:       default:
        !           123:             bHandled = FALSE ;
        !           124:          break ;            
        !           125:       }  // switch
        !           126: 
        !           127:    return (bHandled) ;
        !           128:    }  // AboutDlgProc
        !           129: 
        !           130: 
        !           131: //==========================================================================//
        !           132: //                              Local Functions                             //
        !           133: //==========================================================================//
        !           134: 
        !           135: 
        !           136: void ChangeView (HWND hWnd,
        !           137:                  int iNewView)
        !           138:    {  // ChangeView
        !           139:    HMENU hMenu = GetMenu (hWnd) ;
        !           140:    BOOL  bViewChart, bViewAlert, bViewLog, bViewReport ;
        !           141: 
        !           142: #ifdef ADVANCED_PERFMON
        !           143:    iPerfmonView = iNewView ;
        !           144:    bViewChart = bViewAlert = bViewLog = bViewReport = FALSE;
        !           145: 
        !           146:    switch (iNewView)
        !           147:       {
        !           148:       case IDM_VIEWCHART:
        !           149:          bViewChart = TRUE ;
        !           150:          break ;
        !           151: 
        !           152:       case IDM_VIEWALERT:
        !           153:          bViewAlert = TRUE ;
        !           154:          break ;
        !           155: 
        !           156:       case IDM_VIEWLOG:
        !           157:          bViewLog = TRUE ;
        !           158:          break ;
        !           159: 
        !           160:       case IDM_VIEWREPORT:
        !           161:          bViewReport = TRUE ;
        !           162:          break ;
        !           163:       }
        !           164: 
        !           165:    WindowShow (hWndGraph, bViewChart) ;
        !           166:    WindowShow (hWndAlert, bViewAlert) ;
        !           167:    WindowShow (hWndLog, bViewLog) ;
        !           168:    WindowShow (hWndReport, bViewReport) ;
        !           169: 
        !           170:    if (hMenu)
        !           171:       {
        !           172:       MenuCheck (hMenu, IDM_VIEWCHART, bViewChart) ;
        !           173:       MenuCheck (hMenu, IDM_VIEWALERT, bViewAlert) ;
        !           174:       MenuCheck (hMenu, IDM_VIEWLOG, bViewLog) ;
        !           175:       MenuCheck (hMenu, IDM_VIEWREPORT, bViewReport) ;
        !           176:       }
        !           177: 
        !           178:    ToolbarDepressButton (hWndToolbar, ChartTool, bViewChart) ;
        !           179:    ToolbarDepressButton (hWndToolbar, AlertTool, bViewAlert) ;
        !           180:    ToolbarDepressButton (hWndToolbar, LogTool, bViewLog) ;
        !           181:    ToolbarDepressButton (hWndToolbar, ReportTool, bViewReport) ;
        !           182: #else
        !           183:    // only Chart view in Perfmon Lite
        !           184:    iPerfmonView = IDM_VIEWCHART ;
        !           185:    WindowShow (hWndGraph, TRUE) ;
        !           186: #endif
        !           187: 
        !           188:    DrawMenuBar(hWnd) ;
        !           189:    StatusLineReady (hWndStatus) ;
        !           190:    }  // ChangeView
        !           191: 
        !           192: 
        !           193: //==========================================================================//
        !           194: //                              Message Handlers                            //
        !           195: //==========================================================================//
        !           196: 
        !           197: 
        !           198: void ViewChart (HWND hWnd)
        !           199:    {
        !           200:    if (Options.bMenubar)
        !           201:       SetMenu (hWnd, hMenuChart) ;
        !           202:    ChangeView (hWnd, IDM_VIEWCHART) ;
        !           203:    }
        !           204: 
        !           205: 
        !           206: void ViewAlert (HWND hWnd)
        !           207:    {
        !           208:    iUnviewedAlerts = 0 ;
        !           209:    StatusUpdateIcons (hWndStatus) ;
        !           210:    if (Options.bMenubar)
        !           211:       SetMenu (hWnd, hMenuAlert) ;
        !           212:    ChangeView (hWnd, IDM_VIEWALERT) ;
        !           213:    }
        !           214: 
        !           215: 
        !           216: void ViewLog (HWND hWnd)
        !           217:    {
        !           218:    if (Options.bMenubar)
        !           219:       SetMenu (hWnd, hMenuLog) ;
        !           220:    ChangeView (hWnd, IDM_VIEWLOG) ;
        !           221:    }
        !           222: 
        !           223: 
        !           224: void ViewReport (HWND hWnd)
        !           225:    {
        !           226:    if (Options.bMenubar)
        !           227:       SetMenu (hWnd, hMenuReport) ;
        !           228:    ChangeView (hWnd, IDM_VIEWREPORT) ;
        !           229:    }
        !           230: 
        !           231: 
        !           232: #ifdef KEEP_MANUALREFRESH
        !           233: void ToggleRefresh (HWND hWnd)
        !           234:    {
        !           235:    BOOL           bRefresh ;
        !           236: 
        !           237:    switch (iPerfmonView)
        !           238:       {
        !           239:       case IDM_VIEWCHART:
        !           240:          bRefresh = ToggleGraphRefresh (hWndGraph) ;
        !           241:          break ;
        !           242: 
        !           243:       case IDM_VIEWALERT:
        !           244:          bRefresh = ToggleAlertRefresh (hWndAlert) ;
        !           245:          break ;
        !           246: 
        !           247:       case IDM_VIEWLOG:
        !           248:          bRefresh = ToggleLogRefresh (hWndLog) ;
        !           249:          break ;
        !           250: 
        !           251:       case IDM_VIEWREPORT:
        !           252:          bRefresh = ToggleReportRefresh (hWndReport) ;
        !           253:          break ;
        !           254:       }  // switch
        !           255: 
        !           256:    MenuCheck (GetMenu (hWnd), IDM_OPTIONSMANUALREFRESH, bRefresh) ;
        !           257:    }  // ToggleRefresh
        !           258: #endif
        !           259: 
        !           260: 
        !           261: //==========================================================================//
        !           262: //                             Exported Functions                           //
        !           263: //==========================================================================//
        !           264: 
        !           265: 
        !           266: BOOL PerfmonCommand (HWND hWnd,
        !           267:                      WPARAM wParam,
        !           268:                      LPARAM lParam)
        !           269: /*
        !           270:    Effect:        Respond to the user's menu selection, found in wParam.
        !           271:                   In particular, branch to the appropriate OnXXX function
        !           272:                   to perform the action associated with each command.
        !           273: 
        !           274:    Called By:     MainWndProc (perfmon.c), in response to a WM_COMMAND
        !           275:                   message.
        !           276: */
        !           277:    {  // PerfmonCommand
        !           278:    PLINESTRUCT    pLine ;
        !           279:    BOOL           bPrepareMenu = TRUE ;
        !           280: 
        !           281:    switch (LOWORD (wParam))
        !           282:       {
        !           283: 
        !           284:       //=============================//
        !           285:       // Toolbar Commands            //
        !           286:       //=============================//
        !           287: 
        !           288:       case IDM_TOOLBARADD:
        !           289:          bPrepareMenu = FALSE ;
        !           290:          
        !           291:          switch (iPerfmonView)
        !           292:             {
        !           293:             case IDM_VIEWCHART:
        !           294:                SendMessage (hWnd, WM_COMMAND, IDM_EDITADDCHART, lParam) ;
        !           295:                break ;
        !           296: 
        !           297:             case IDM_VIEWALERT:
        !           298:                SendMessage (hWnd, WM_COMMAND, IDM_EDITADDALERT, lParam) ;
        !           299:                break ;
        !           300: 
        !           301:             case IDM_VIEWLOG:
        !           302:                SendMessage (hWnd, WM_COMMAND, IDM_EDITADDLOG, lParam) ;
        !           303:                break ;
        !           304: 
        !           305:             case IDM_VIEWREPORT:
        !           306:                SendMessage (hWnd, WM_COMMAND, IDM_EDITADDREPORT, lParam) ;
        !           307:                break ;
        !           308:             }  // switch
        !           309:          break ;
        !           310: 
        !           311: 
        !           312:       case IDM_TOOLBARMODIFY:
        !           313:          bPrepareMenu = FALSE ;
        !           314:          
        !           315:          switch (iPerfmonView)
        !           316:             {  // switch
        !           317:             case IDM_VIEWCHART:
        !           318:                SendMessage (hWnd, WM_COMMAND, IDM_EDITMODIFYCHART, lParam) ;
        !           319:                break ;
        !           320: 
        !           321:             case IDM_VIEWALERT:
        !           322:                SendMessage (hWnd, WM_COMMAND, IDM_EDITMODIFYALERT, lParam) ;
        !           323:                break ;
        !           324: 
        !           325:             case IDM_VIEWREPORT:
        !           326:                SendMessage (hWnd, WM_COMMAND, IDM_EDITMODIFYREPORT, lParam) ;
        !           327:                break ;
        !           328:             }  // switch
        !           329:          break ;
        !           330: 
        !           331: 
        !           332:       case IDM_TOOLBARDELETE:
        !           333:          bPrepareMenu = FALSE ;
        !           334:          
        !           335:          switch (iPerfmonView)
        !           336:             {
        !           337:             case IDM_VIEWCHART:
        !           338:                SendMessage (hWnd, WM_COMMAND, IDM_EDITDELETECHART, lParam) ;
        !           339:                break ;
        !           340: 
        !           341:             case IDM_VIEWALERT:
        !           342:                SendMessage (hWnd, WM_COMMAND, IDM_EDITDELETEALERT, lParam) ;
        !           343:                break ;
        !           344: 
        !           345:             case IDM_VIEWLOG:
        !           346:                SendMessage (hWnd, WM_COMMAND, IDM_EDITDELETELOG, lParam) ;
        !           347:                break ;
        !           348: 
        !           349:             case IDM_VIEWREPORT:
        !           350:                SendMessage (hWnd, WM_COMMAND, IDM_EDITDELETEREPORT, lParam) ;
        !           351:                break ;
        !           352:             }  // switch
        !           353:          break ;
        !           354: 
        !           355: 
        !           356:       case IDM_TOOLBARREFRESH:
        !           357:          bPrepareMenu = FALSE ;
        !           358:          
        !           359:          switch (iPerfmonView)
        !           360:             {
        !           361:             case IDM_VIEWCHART:
        !           362:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSREFRESHNOWCHART, lParam) ;
        !           363:                break ;
        !           364: 
        !           365:             case IDM_VIEWALERT:
        !           366:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSREFRESHNOWALERT, lParam) ;
        !           367:                break ;
        !           368: 
        !           369:             case IDM_VIEWLOG:
        !           370:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSREFRESHNOWLOG, lParam) ;
        !           371:                break ;
        !           372: 
        !           373:             case IDM_VIEWREPORT:
        !           374:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSREFRESHNOWREPORT, lParam) ;
        !           375:                break ;
        !           376:             }  // switch
        !           377:          break ;
        !           378: 
        !           379: 
        !           380:       case IDM_TOOLBAROPTIONS:
        !           381:          bPrepareMenu = FALSE ;
        !           382: 
        !           383:          switch (iPerfmonView)
        !           384:             {  // switch
        !           385:             case IDM_VIEWCHART:
        !           386:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSCHART, lParam) ;
        !           387:                break ;
        !           388: 
        !           389:             case IDM_VIEWALERT:
        !           390:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSALERT, lParam) ;
        !           391:                break ;
        !           392: 
        !           393:             case IDM_VIEWLOG:
        !           394:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSLOG, lParam) ;
        !           395:                break ;
        !           396: 
        !           397:             case IDM_VIEWREPORT:
        !           398:                SendMessage (hWnd, WM_COMMAND, IDM_OPTIONSREPORT, lParam) ;
        !           399:                break ;
        !           400:             }  // switch
        !           401:          break ;
        !           402: 
        !           403: 
        !           404:       //=============================//
        !           405:       // "File" Commands             //
        !           406:       //=============================//
        !           407: 
        !           408: 
        !           409:       case IDM_FILENEWCHART:
        !           410:          if (QuerySaveChart (hWnd, pGraphs))
        !           411:             ResetGraphView (hWndGraph) ;
        !           412:          break ;
        !           413: 
        !           414: 
        !           415:       case IDM_FILENEWALERT:
        !           416:          if (QuerySaveAlert (hWnd, hWndAlert))
        !           417:             ResetAlertView (hWndAlert) ;
        !           418:          break ;
        !           419: 
        !           420:       case IDM_FILENEWLOG:
        !           421:          ResetLogView (hWndLog) ;
        !           422:          break ;
        !           423: 
        !           424:       case IDM_FILENEWREPORT:
        !           425:          ResetReportView (hWndReport) ;
        !           426:          break ;
        !           427: 
        !           428:       case IDM_FILEOPENCHART:
        !           429:          FileOpen (hWndGraph, IDS_CHARTFILE, NULL) ;
        !           430:          break ;
        !           431: 
        !           432:       case IDM_FILEOPENALERT:
        !           433:          FileOpen (hWndAlert, IDS_ALERTFILE, NULL) ;
        !           434:          break ;
        !           435: 
        !           436:       case IDM_FILEOPENLOG:
        !           437:          FileOpen (hWndLog, IDS_LOGFILE, NULL) ;
        !           438:          break ;
        !           439: 
        !           440:       case IDM_FILEOPENREPORT:
        !           441:          FileOpen (hWndReport, IDS_REPORTFILE, NULL) ;
        !           442:          break ;
        !           443: 
        !           444:       case IDM_FILESAVECHART:
        !           445:       case IDM_FILESAVEASCHART:
        !           446:          bPrepareMenu = FALSE ;
        !           447:          SaveChart (hWndGraph, 0,
        !           448:             (LOWORD (wParam) == IDM_FILESAVEASCHART) ? TRUE : FALSE) ;
        !           449:          break;
        !           450: 
        !           451:       case IDM_FILESAVEALERT:
        !           452:       case IDM_FILESAVEASALERT:
        !           453:          bPrepareMenu = FALSE ;
        !           454:          SaveAlert (hWndAlert, 0,
        !           455:             (LOWORD (wParam) == IDM_FILESAVEASALERT) ? TRUE : FALSE) ;
        !           456:          break ;
        !           457: 
        !           458:       case IDM_FILESAVELOG:
        !           459:       case IDM_FILESAVEASLOG:
        !           460:          bPrepareMenu = FALSE ;
        !           461:          SaveLog (hWndLog, 0, 
        !           462:             (LOWORD (wParam) == IDM_FILESAVEASLOG) ? TRUE : FALSE) ;
        !           463:          break ;
        !           464: 
        !           465:       case IDM_FILESAVEREPORT:
        !           466:       case IDM_FILESAVEASREPORT:
        !           467:          bPrepareMenu = FALSE ;
        !           468:          SaveReport (hWndReport, 0,  
        !           469:             (LOWORD (wParam) == IDM_FILESAVEASREPORT) ? TRUE : FALSE) ;
        !           470:          break ;
        !           471: 
        !           472: 
        !           473:       case IDM_FILESAVEWORKSPACE:
        !           474:          bPrepareMenu = FALSE ;
        !           475:          SaveWorkspace () ; 
        !           476:          break ;
        !           477: 
        !           478:       case IDM_FILEEXPORTCHART:
        !           479:          bPrepareMenu = FALSE ;
        !           480:          ExportChart () ;
        !           481:          break ;
        !           482: 
        !           483:       case IDM_FILEEXPORTALERT:
        !           484:          bPrepareMenu = FALSE ;
        !           485:          ExportAlert () ;
        !           486:          break ;
        !           487: 
        !           488:       case IDM_FILEEXPORTLOG:
        !           489:          bPrepareMenu = FALSE ;
        !           490:          ExportLog () ;
        !           491:          break ;
        !           492: 
        !           493:       case IDM_FILEEXPORTREPORT:
        !           494:          bPrepareMenu = FALSE ;
        !           495:          ExportReport () ;
        !           496:          break ;
        !           497: 
        !           498: 
        !           499: #ifdef KEEP_PRINT
        !           500:       case IDM_FILEPRINTCHART:
        !           501:           PrintChart (hWnd, pGraphs) ;
        !           502:           break ;
        !           503: 
        !           504: 
        !           505:       case IDM_FILEPRINTREPORT:
        !           506:          PrintReport (hWnd, hWndReport) ;
        !           507:          break ;
        !           508: #endif
        !           509: 
        !           510:       case IDM_FILEEXIT:
        !           511:          PerfmonClose (hWnd) ;
        !           512:          bPrepareMenu = FALSE ;
        !           513:          break ;
        !           514: 
        !           515: 
        !           516:       //=============================//
        !           517:       // "Edit" Commands             //
        !           518:       //=============================//
        !           519: 
        !           520: 
        !           521:       case IDM_EDITADDCHART:
        !           522:          AddChart (hWnd) ;
        !           523:          break;
        !           524: 
        !           525:       case IDM_EDITADDALERT:
        !           526:          AddAlert (hWnd) ;
        !           527:          break;
        !           528: 
        !           529:       case IDM_EDITADDLOG:
        !           530:          AddLog (hWnd) ;
        !           531:          break ;
        !           532: 
        !           533:       case IDM_EDITADDREPORT:
        !           534:          AddReport (hWnd) ;
        !           535:          break ;
        !           536: 
        !           537:       case IDM_EDITCLEARCHART :
        !           538:          ClearGraphDisplay (pGraphs) ;
        !           539:          break ;
        !           540: 
        !           541:       case IDM_EDITCLEARALERT:
        !           542:          ClearAlertDisplay (hWndAlert) ;
        !           543:          break ;
        !           544: 
        !           545:       case IDM_EDITCLEARREPORT:
        !           546:          ClearReportDisplay (hWndReport) ;
        !           547:          break ;
        !           548: 
        !           549:       case IDM_EDITDELETECHART:
        !           550:          pLine = CurrentGraphLine (hWndGraph) ;
        !           551:          if (pLine)
        !           552:             ChartDeleteLine(pGraphs, pLine) ;
        !           553:          break ;
        !           554: 
        !           555:       case IDM_EDITDELETEALERT:
        !           556:          pLine = CurrentAlertLine (hWndAlert) ;
        !           557:          if (pLine)
        !           558:             AlertDeleteLine (hWndAlert, pLine) ;
        !           559:          break ;
        !           560:       
        !           561:       case IDM_EDITDELETELOG:
        !           562:          LogDeleteEntry (hWndLog) ;
        !           563:          break ;
        !           564: 
        !           565:       case IDM_EDITDELETEREPORT:
        !           566:          pLine = CurrentReportLine (hWndReport) ;
        !           567:          if (pLine)
        !           568:             ReportDeleteLine (hWndReport, pLine) ;
        !           569:          break ;
        !           570: 
        !           571:       case IDM_EDITMODIFYCHART:
        !           572:          EditChart (hWnd) ;
        !           573:          break ;
        !           574: 
        !           575:       case IDM_EDITMODIFYALERT:
        !           576:          EditAlert (hWnd) ;
        !           577:          break ;
        !           578: 
        !           579:       case IDM_EDITTIMEWINDOW:
        !           580:          if (PlayingBackLog())
        !           581:             {
        !           582:             SetTimeframe (hWnd) ;
        !           583:             }
        !           584:          break ;
        !           585: 
        !           586: 
        !           587:       //=============================//
        !           588:       // "View" Commands             //
        !           589:       //=============================//
        !           590: 
        !           591: 
        !           592:       case IDM_VIEWCHART:
        !           593:          if (iPerfmonView != IDM_VIEWCHART)
        !           594:             {
        !           595:             ViewChart (hWnd) ;
        !           596:             }
        !           597:          else
        !           598:             {
        !           599:             bPrepareMenu = FALSE ;
        !           600:             ToolbarDepressButton (hWndToolbar, ChartTool, TRUE) ;
        !           601:             }
        !           602:          break ;
        !           603: 
        !           604:       case IDM_VIEWALERT:
        !           605:          if (iPerfmonView != IDM_VIEWALERT)
        !           606:             {
        !           607:             ViewAlert (hWnd) ;
        !           608:             }
        !           609:          else
        !           610:             {
        !           611:             bPrepareMenu = FALSE ;
        !           612:             ToolbarDepressButton (hWndToolbar, AlertTool, TRUE) ;
        !           613:             }
        !           614:          break ;
        !           615: 
        !           616:       case IDM_VIEWLOG:
        !           617:          if (iPerfmonView != IDM_VIEWLOG)
        !           618:             {
        !           619:             ViewLog (hWnd) ;
        !           620:             }
        !           621:          else
        !           622:             {
        !           623:             bPrepareMenu = FALSE ;
        !           624:             ToolbarDepressButton (hWndToolbar, LogTool, TRUE) ;
        !           625:             }
        !           626:          break ;
        !           627: 
        !           628:       case IDM_VIEWREPORT:
        !           629:          if (iPerfmonView != IDM_VIEWREPORT)
        !           630:             {
        !           631:             ViewReport (hWnd) ;
        !           632:             }
        !           633:          else
        !           634:             {
        !           635:             bPrepareMenu = FALSE ;
        !           636:             ToolbarDepressButton (hWndToolbar, ReportTool, TRUE) ;
        !           637:             }
        !           638:          break ;
        !           639: 
        !           640: 
        !           641:       //=============================//
        !           642:       // "Options" Commands          //
        !           643:       //=============================//
        !           644: 
        !           645: 
        !           646:       case IDM_OPTIONSCHART:
        !           647:            DialogBox(hInstance, idDlgChartOptions, hWnd,
        !           648:                                (DLGPROC)GraphOptionDlg);
        !           649:            break;
        !           650: 
        !           651:       case IDM_OPTIONSALERT:
        !           652:          DisplayAlertOptions (hWnd, hWndAlert) ;
        !           653:           break;
        !           654: 
        !           655:       case IDM_OPTIONSLOG:
        !           656:          DisplayLogOptions (hWnd, hWndLog) ;
        !           657:          break ;
        !           658: 
        !           659:       case IDM_OPTIONSREPORT:
        !           660:          if (PlayingBackLog ())
        !           661:             MessageBeep (0) ;
        !           662:          else
        !           663:             DisplayReportOptions (hWnd, hWndReport) ;
        !           664:          break ;
        !           665: 
        !           666:        case IDM_OPTIONSBOOKMARK:
        !           667:          bPrepareMenu = FALSE ;
        !           668:          AddBookmark (hWnd) ;
        !           669:          break;
        !           670: 
        !           671: #ifdef KEEP_DISPLAY_OPTION
        !           672:       case IDM_OPTIONSDISPLAY:
        !           673:          DisplayDisplayOptions (hWnd) ;
        !           674:          break ;
        !           675: #endif
        !           676: 
        !           677:       case IDM_OPTIONSDISPLAYMENU:
        !           678:          // ShowPerfmonMenu will update Options.bMenubar..
        !           679:          ShowPerfmonMenu (!Options.bMenubar) ;
        !           680:          break ;
        !           681: 
        !           682:       case IDM_OPTIONSDISPLAYTOOL:
        !           683:          Options.bToolbar = !Options.bToolbar ;
        !           684:          SizePerfmonComponents () ;
        !           685:          break ;
        !           686: 
        !           687:       case IDM_OPTIONSDISPLAYSTATUS:
        !           688:          Options.bStatusbar = !Options.bStatusbar ;
        !           689:          SizePerfmonComponents () ;
        !           690:          break ;
        !           691: 
        !           692:       case IDM_OPTIONSDISPLAYONTOP:
        !           693:          Options.bAlwaysOnTop = !Options.bAlwaysOnTop ;
        !           694:          WindowSetTopmost (hWndMain, Options.bAlwaysOnTop) ;
        !           695:          break ;
        !           696: 
        !           697:       case IDM_OPTIONSDATASOURCE:
        !           698:          DisplayDataSourceOptions (hWnd) ;
        !           699:          break ;
        !           700: 
        !           701: #ifdef KEEP_MANUALREFRESH
        !           702:       case IDM_OPTIONSMANUALREFRESH:
        !           703:          bPrepareMenu = FALSE ;
        !           704:          if (PlayingBackLog())
        !           705:             MessageBeep(0) ;
        !           706:          else
        !           707:             ToggleRefresh (hWnd) ;
        !           708:          break ;
        !           709: #endif
        !           710: 
        !           711:       case IDM_OPTIONSREFRESHNOWCHART:
        !           712:          bPrepareMenu = FALSE ;
        !           713:          if (PlayingBackLog())
        !           714:             MessageBeep(0) ;
        !           715:          else
        !           716:             GraphTimer (hWndGraph, TRUE) ;
        !           717:          break ;
        !           718: 
        !           719:       case IDM_OPTIONSREFRESHNOWALERT:
        !           720:          bPrepareMenu = FALSE ;
        !           721:          if (PlayingBackLog())
        !           722:             MessageBeep(0) ;
        !           723:          else
        !           724:             AlertTimer (hWndAlert, TRUE) ;
        !           725:          break ;
        !           726: 
        !           727:       case IDM_OPTIONSREFRESHNOWLOG:
        !           728:          bPrepareMenu = FALSE ;
        !           729:          if (PlayingBackLog())
        !           730:             MessageBeep(0) ;
        !           731:          else
        !           732:             LogTimer (hWndLog, TRUE) ;
        !           733:          break ;
        !           734: 
        !           735:       case IDM_OPTIONSREFRESHNOWREPORT:
        !           736:          bPrepareMenu = FALSE ;
        !           737:          if (PlayingBackLog())
        !           738:             MessageBeep(0) ;
        !           739:          else
        !           740:             ReportTimer (hWndLog, TRUE) ;
        !           741:          break ;
        !           742: 
        !           743:       //=============================//
        !           744:       // "Help" Commands             //
        !           745:       //=============================//
        !           746: 
        !           747: 
        !           748:       case IDM_HELPABOUT:
        !           749:          {
        !           750:          TCHAR          szApplication [WindowCaptionLen] ;
        !           751: 
        !           752:          bPrepareMenu = FALSE ;
        !           753: 
        !           754:          if (GetKeyState(VK_SHIFT) < 0 && GetKeyState(VK_CONTROL) < 0)
        !           755:             {
        !           756:             DialogBox (hInstance, idDlgAbout, hWndMain, AboutDlgProc) ;
        !           757:             }
        !           758:          else
        !           759:             {
        !           760:             StringLoad (IDS_APPNAME, szApplication) ;
        !           761:             ShellAbout (hWnd, szApplication, NULL, hIcon) ;
        !           762:             }
        !           763:          }
        !           764:          break ;
        !           765: 
        !           766:       //======================================//
        !           767:       //  Generic messages from ACCELERATORS  // 
        !           768:       //======================================//
        !           769:       case IDM_FILEOPENFILE:
        !           770:          bPrepareMenu = FALSE ;
        !           771:          switch (iPerfmonView)
        !           772:             {  // switch
        !           773:             case IDM_VIEWCHART:
        !           774:                SendMessage (hWnd, WM_COMMAND, IDM_FILEOPENCHART, lParam) ;
        !           775:                break ;
        !           776: 
        !           777:             case IDM_VIEWALERT:
        !           778:                SendMessage (hWnd, WM_COMMAND, IDM_FILEOPENALERT, lParam) ;
        !           779:                break ;
        !           780: 
        !           781:             case IDM_VIEWLOG:
        !           782:                SendMessage (hWnd, WM_COMMAND, IDM_FILEOPENLOG, lParam) ;
        !           783:                break ;
        !           784: 
        !           785:             case IDM_VIEWREPORT:
        !           786:                SendMessage (hWnd, WM_COMMAND, IDM_FILEOPENREPORT, lParam) ;
        !           787:                break ;
        !           788:             }  // switch
        !           789:          break ;
        !           790: 
        !           791:       case IDM_FILESAVEFILE:
        !           792:          bPrepareMenu = FALSE ;
        !           793:          switch (iPerfmonView)
        !           794:             {  // switch
        !           795:             case IDM_VIEWCHART:
        !           796:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVECHART, lParam) ;
        !           797:                break ;
        !           798: 
        !           799:             case IDM_VIEWALERT:
        !           800:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVEALERT, lParam) ;
        !           801:                break ;
        !           802: 
        !           803:             case IDM_VIEWLOG:
        !           804:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVELOG, lParam) ;
        !           805:                break ;
        !           806: 
        !           807:             case IDM_VIEWREPORT:
        !           808:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVEREPORT, lParam) ;
        !           809:                break ;
        !           810:             }  // switch
        !           811:          break ;
        !           812: 
        !           813:       case IDM_FILESAVEASFILE:
        !           814:          bPrepareMenu = FALSE ;
        !           815:          switch (iPerfmonView)
        !           816:             {  // switch
        !           817:             case IDM_VIEWCHART:
        !           818:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVEASCHART, lParam) ;
        !           819:                break ;
        !           820: 
        !           821:             case IDM_VIEWALERT:
        !           822:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVEASALERT, lParam) ;
        !           823:                break ;
        !           824: 
        !           825:             case IDM_VIEWLOG:
        !           826:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVEASLOG, lParam) ;
        !           827:                break ;
        !           828: 
        !           829:             case IDM_VIEWREPORT:
        !           830:                SendMessage (hWnd, WM_COMMAND, IDM_FILESAVEASREPORT, lParam) ;
        !           831:                break ;
        !           832:             }  // switch
        !           833:          break ;
        !           834: 
        !           835:       case IDM_CHARTHIGHLIGHTON:
        !           836:          bPrepareMenu = FALSE ;
        !           837:          if (iPerfmonView == IDM_VIEWCHART)
        !           838:             {
        !           839:             ChartHighlight () ;
        !           840:             }
        !           841:          break ;
        !           842: 
        !           843:       case IDM_TOOLBARID:
        !           844:          // msg from the toolbar control
        !           845:          bPrepareMenu = FALSE ;
        !           846:          OnToolbarHit (wParam, lParam) ;
        !           847:          break ;
        !           848: 
        !           849:       case IDM_HELPCONTENTS:
        !           850:          {
        !           851:          TCHAR NullStr [2] ;
        !           852: 
        !           853:          NullStr[0] = TEXT('\0') ;
        !           854:          bPrepareMenu = FALSE ;
        !           855:          WinHelp (hWndMain, pszHelpFile, HELP_INDEX, (DWORD)(NullStr)) ;
        !           856:          }
        !           857:          break ;
        !           858: 
        !           859:       case IDM_HELPSEARCH:
        !           860:          {
        !           861:          TCHAR NullStr [2] ;
        !           862: 
        !           863:          NullStr[0] = TEXT('\0') ;
        !           864:          bPrepareMenu = FALSE ;
        !           865:          WinHelp (hWndMain, pszHelpFile, HELP_PARTIALKEY, (DWORD)(NullStr)) ;
        !           866:          }
        !           867:          break ;
        !           868: 
        !           869:       case IDM_HELPHELP:
        !           870:          {
        !           871:          TCHAR NullStr [2] ;
        !           872: 
        !           873:          NullStr[0] = TEXT('\0') ;
        !           874:          bPrepareMenu = FALSE ;
        !           875:          WinHelp (hWndMain, pszHelpFile, HELP_HELPONHELP, (DWORD)(NullStr)) ;
        !           876:          }
        !           877:          break ;
        !           878: 
        !           879:       default:
        !           880:          return (FALSE) ;
        !           881:       }  // switch
        !           882: 
        !           883:    if (bPrepareMenu)
        !           884:       {
        !           885:       PrepareMenu (GetMenu (hWnd)) ;
        !           886:       }
        !           887: 
        !           888:    return (TRUE) ;
        !           889:    }  // PerfmonCommand
        !           890: 
        !           891: 
        !           892: 
        !           893: void PrepareMenu (HMENU hMenu)
        !           894:    {  // PrepareMenu
        !           895:    BOOL           bPlayingLog ;
        !           896:    BOOL           bCurrentLine ;
        !           897:    BOOL           bManualRefresh ;
        !           898:    BOOL           bLogCollecting ;
        !           899:    BOOL           bRefresh ;
        !           900: 
        !           901:    // hMenu is NULL when the menu bar display option is off.
        !           902:    // In that case, we still have to enable/disable all tool buttons
        !           903:    // So, I have commented out the next 2 lines...
        !           904: //   if (!hMenu)
        !           905: //      return ;
        !           906: 
        !           907:    bLogCollecting = LogCollecting (hWndLog) ;
        !           908:    bPlayingLog = PlayingBackLog () ;
        !           909: 
        !           910:    switch (iPerfmonView)
        !           911:       {
        !           912:       case IDM_VIEWCHART:
        !           913:          bCurrentLine = (CurrentGraphLine (hWndGraph) != NULL) ;
        !           914:          bRefresh = GraphRefresh (hWndGraph) ;
        !           915:          bManualRefresh = !bPlayingLog && bCurrentLine ;
        !           916:          if (hMenu)
        !           917:             {
        !           918:             MenuCheck (hMenu, IDM_VIEWCHART, TRUE) ;
        !           919:             MenuEnableItem (hMenu, IDM_FILEEXPORTCHART, bCurrentLine) ;
        !           920:             MenuEnableItem (hMenu, IDM_EDITMODIFYCHART, bCurrentLine) ;
        !           921:             MenuEnableItem (hMenu, IDM_EDITDELETECHART, bCurrentLine) ;
        !           922:             MenuEnableItem (hMenu, IDM_OPTIONSREFRESHNOWCHART, bManualRefresh) ;
        !           923:             MenuEnableItem (hMenu, IDM_EDITCLEARCHART, !bPlayingLog && bCurrentLine) ;
        !           924:             }
        !           925:          break ;
        !           926: 
        !           927:       case IDM_VIEWALERT:
        !           928:          bCurrentLine = (CurrentAlertLine (hWndAlert) != NULL) ;
        !           929:          bRefresh = AlertRefresh (hWndAlert) ;
        !           930:          bManualRefresh = !bPlayingLog && bCurrentLine ;
        !           931:          if (hMenu)
        !           932:             {
        !           933:             MenuCheck (hMenu, IDM_VIEWALERT, TRUE) ;
        !           934:             MenuEnableItem (hMenu, IDM_FILEEXPORTALERT, bCurrentLine) ;
        !           935:             MenuEnableItem (hMenu, IDM_EDITMODIFYALERT, bCurrentLine) ;
        !           936:             MenuEnableItem (hMenu, IDM_EDITDELETEALERT, bCurrentLine) ;
        !           937:             MenuEnableItem (hMenu, IDM_EDITCLEARALERT, !bPlayingLog && bCurrentLine) ;
        !           938:             MenuEnableItem (hMenu, IDM_OPTIONSREFRESHNOWALERT, bManualRefresh) ;
        !           939:             }
        !           940:          break ;
        !           941: 
        !           942:       case IDM_VIEWLOG:
        !           943:          bCurrentLine = AnyLogLine() ;
        !           944:          bRefresh = LogRefresh (hWndLog) ;
        !           945:          bManualRefresh = !bPlayingLog && bLogCollecting ;
        !           946:          if (hMenu)
        !           947:             {
        !           948:             MenuCheck (hMenu, IDM_VIEWLOG, TRUE) ;
        !           949:             MenuEnableItem (hMenu, IDM_FILEEXPORTLOG, bCurrentLine) ;
        !           950:             MenuEnableItem (hMenu, IDM_EDITDELETELOG, bCurrentLine) ;
        !           951:             MenuEnableItem (hMenu, IDM_OPTIONSREFRESHNOWLOG , bManualRefresh) ;
        !           952:             }
        !           953:          break ;
        !           954: 
        !           955:       case IDM_VIEWREPORT:
        !           956:          bCurrentLine = (CurrentReportLine (hWndReport) != NULL) ;
        !           957:          bRefresh = ReportRefresh (hWndReport) ;
        !           958:          bManualRefresh = !bPlayingLog && bCurrentLine ;
        !           959:          if (hMenu)
        !           960:             {
        !           961:             MenuCheck (hMenu, IDM_VIEWREPORT, TRUE) ;
        !           962:             MenuEnableItem (hMenu, IDM_FILEEXPORTREPORT, bCurrentLine) ;
        !           963:             MenuEnableItem (hMenu, IDM_EDITMODIFYREPORT, FALSE) ;
        !           964:             MenuEnableItem (hMenu, IDM_EDITDELETEREPORT, bCurrentLine) ;
        !           965:             MenuEnableItem (hMenu, IDM_EDITCLEARREPORT, !bPlayingLog && bCurrentLine) ;
        !           966:             MenuEnableItem (hMenu, IDM_OPTIONSREFRESHNOWREPORT, bManualRefresh) ;
        !           967:             }
        !           968:          break ;
        !           969:       }  // switch
        !           970: 
        !           971: 
        !           972:    ToolbarEnableButton (hWndToolbar, EditTool, 
        !           973:                         bCurrentLine &&
        !           974:                         (iPerfmonView != IDM_VIEWREPORT &&
        !           975:                          iPerfmonView != IDM_VIEWLOG)) ;
        !           976: 
        !           977:    ToolbarEnableButton (hWndToolbar, DeleteTool, bCurrentLine) ;
        !           978:                   
        !           979:    ToolbarEnableButton (hWndToolbar, RefreshTool, bManualRefresh) ;
        !           980: 
        !           981:    // None of the alert or report options make sense when playing back a log.
        !           982: #if 0
        !           983:    ToolbarEnableButton (hWndToolbar,
        !           984:                         OptionsTool,
        !           985:                         !bPlayingLog ||
        !           986:                         (iPerfmonView != IDM_VIEWREPORT &&
        !           987:                          iPerfmonView != IDM_VIEWALERT)) ;
        !           988: #endif
        !           989:    ToolbarEnableButton (hWndToolbar,
        !           990:                         OptionsTool,
        !           991:                         !bPlayingLog ||
        !           992:                         iPerfmonView != IDM_VIEWREPORT) ;
        !           993: 
        !           994:    ToolbarEnableButton (hWndToolbar, BookmarkTool, bLogCollecting) ;
        !           995:    
        !           996: 
        !           997:    if (hMenu)
        !           998:       {
        !           999:       MenuEnableItem (hMenu, IDM_EDITTIMEWINDOW, bPlayingLog) ;
        !          1000:       MenuEnableItem (hMenu, IDM_OPTIONSREPORT, !bPlayingLog) ;
        !          1001:       MenuEnableItem (hMenu, IDM_OPTIONSBOOKMARK, bLogCollecting) ;
        !          1002: 
        !          1003:       // check/uncheck all the display options
        !          1004:       MenuCheck (hMenu, IDM_OPTIONSDISPLAYMENU, Options.bMenubar) ;
        !          1005:       MenuCheck (hMenu, IDM_OPTIONSDISPLAYTOOL, Options.bToolbar) ;
        !          1006:       MenuCheck (hMenu, IDM_OPTIONSDISPLAYSTATUS, Options.bStatusbar) ;
        !          1007:       MenuCheck (hMenu, IDM_OPTIONSDISPLAYONTOP, Options.bAlwaysOnTop) ;
        !          1008:       }
        !          1009:    }  // PrepareMenu
        !          1010: 
        !          1011: 
        !          1012: 
        !          1013: 
        !          1014: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.