| 678 | } |
| 679 | |
| 680 | void CMainFrame::InitEtwToolBar(CToolBarCtrl& tb, int size) { |
| 681 | CImageList tbImages; |
| 682 | tbImages.Create(size, size, ILC_COLOR32, 8, 4); |
| 683 | tb.SetImageList(tbImages); |
| 684 | |
| 685 | struct { |
| 686 | UINT id; |
| 687 | int image; |
| 688 | int style = BTNS_BUTTON; |
| 689 | }buttons[] = { |
| 690 | { ID_MONITOR_START,IDI_PLAY}, |
| 691 | { ID_MONITOR_PAUSE, IDI_PAUSE }, |
| 692 | { ID_MONITOR_STOP, IDI_STOP }, |
| 693 | { 0 }, |
| 694 | { ID_VIEW_AUTOSCROLL, IDI_SCROLL }, |
| 695 | { 0 }, |
| 696 | { ID_MONITOR_CLEARALL, IDI_CANCEL }, |
| 697 | { 0 }, |
| 698 | { ID_CONFIGURE_EVENTS, IDI_TOOLS }, |
| 699 | { ID_CONFIGURE_FILTERS, IDI_FILTER }, |
| 700 | { 0 }, |
| 701 | { ID_EVENT_CALLSTACK, IDI_STACK }, |
| 702 | { ID_EVENT_PROPERTIES, IDI_PROPERTIES }, |
| 703 | }; |
| 704 | |
| 705 | for (auto& b : buttons) { |
| 706 | if (b.id == 0) |
| 707 | tb.AddSeparator(0); |
| 708 | else { |
| 709 | int image = tbImages.AddIcon(AtlLoadIconImage(b.image, 0, size, size)); |
| 710 | BYTE fsState = TBSTATE_ENABLED; |
| 711 | |
| 712 | if (b.id == ID_MONITOR_START) { |
| 713 | if (m_tm.IsRunning()) { |
| 714 | fsState = TBSTATE_INDETERMINATE; |
| 715 | } |
| 716 | } |
| 717 | else if (b.id == ID_MONITOR_PAUSE) { |
| 718 | if (m_tm.IsPaused()||!m_tm.IsRunning()) { |
| 719 | fsState = TBSTATE_INDETERMINATE; |
| 720 | } |
| 721 | } |
| 722 | else if(b.id == ID_MONITOR_STOP) { |
| 723 | if (!m_tm.IsRunning()) { |
| 724 | fsState = TBSTATE_INDETERMINATE; |
| 725 | } |
| 726 | } |
| 727 | tb.AddButton(b.id, b.style, fsState, image, nullptr, 0); |
| 728 | } |
| 729 | } |
| 730 | } |
| 731 | |
| 732 | void CMainFrame::ClearToolBarButtons(CToolBarCtrl& tb) |
| 733 | { |