|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.