mirror of
https://github.com/zodiacon/WFPExplorer
synced 2026-06-08 18:39:31 +00:00
112 lines
5.8 KiB
C++
112 lines
5.8 KiB
C++
#pragma once
|
|
|
|
#include <WFPEngine.h>
|
|
#include <OwnerDrawnMenu.h>
|
|
#include <CustomTabView.h>
|
|
#include "Interfaces.h"
|
|
#include <Theme.h>
|
|
|
|
class CMainFrame :
|
|
public CFrameWindowImpl<CMainFrame>,
|
|
public CAutoUpdateUI<CMainFrame>,
|
|
public COwnerDrawnMenu<CMainFrame>,
|
|
public CMessageFilter,
|
|
public IMainFrame,
|
|
public CIdleHandler {
|
|
public:
|
|
DECLARE_FRAME_WND_CLASS(L"WFPExplorerMainWndClass", IDR_MAINFRAME)
|
|
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
virtual BOOL OnIdle();
|
|
|
|
BEGIN_MSG_MAP(CMainFrame)
|
|
COMMAND_TABVIEW_HANDLER(m_Tabs, 1)
|
|
COMMAND_ID_HANDLER(ID_VIEW_FILTERS, OnViewFilters)
|
|
COMMAND_ID_HANDLER(ID_VIEW_SESSIONS, OnViewSessions)
|
|
COMMAND_ID_HANDLER(ID_VIEW_PROVIDERS, OnViewProviders)
|
|
COMMAND_ID_HANDLER(ID_VIEW_LAYERS, OnViewLayers)
|
|
COMMAND_ID_HANDLER(ID_VIEW_SUBLAYERS, OnViewSublayers)
|
|
COMMAND_ID_HANDLER(ID_VIEW_CALLOUTS, OnViewCallouts)
|
|
COMMAND_ID_HANDLER(ID_VIEW_PROVIDERCONTEXTS, OnViewProviderContexts)
|
|
COMMAND_ID_HANDLER(ID_VIEW_STATUS_BAR, OnViewStatusBar)
|
|
COMMAND_ID_HANDLER(ID_VIEW_HIERARCHY, OnViewHierarchy)
|
|
COMMAND_ID_HANDLER(ID_VIEW_NETWORKEVENTS, OnViewNetEvents)
|
|
MESSAGE_HANDLER(CFindReplaceDialog::GetFindReplaceMsg(), OnFind)
|
|
COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
|
|
NOTIFY_CODE_HANDLER(TBVN_PAGEACTIVATED, OnPageActivated)
|
|
COMMAND_ID_HANDLER(ID_OPTIONS_ALWAYSONTOP, OnAlwaysOnTop)
|
|
COMMAND_ID_HANDLER(ID_WINDOW_CLOSE, OnWindowClose)
|
|
COMMAND_ID_HANDLER(ID_WINDOW_CLOSE_ALL, OnWindowCloseAll)
|
|
COMMAND_RANGE_HANDLER(ID_WINDOW_TABFIRST, ID_WINDOW_TABLAST, OnWindowActivate)
|
|
MESSAGE_HANDLER(WM_WINDOW_MENU_BUILT, OnRebuildWindowMenu)
|
|
MESSAGE_HANDLER(WM_MENUSELECT, [](auto, auto, auto, auto) { return 0; })
|
|
COMMAND_ID_HANDLER(ID_OPTIONS_DARKMODE, OnToggleDarkMode)
|
|
MESSAGE_HANDLER(WM_CREATE, OnCreate)
|
|
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
|
MESSAGE_HANDLER(WM_SHOWWINDOW, OnShowWindow)
|
|
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
|
|
COMMAND_ID_HANDLER(ID_EDIT_FIND, OnEditFind)
|
|
COMMAND_ID_HANDLER(ID_APP_EXIT, OnFileExit)
|
|
COMMAND_ID_HANDLER(ID_NEW_FILTER, OnNewFilter)
|
|
COMMAND_ID_HANDLER(ID_NEW_PROVIDER, OnNewProvider)
|
|
COMMAND_ID_HANDLER(ID_NEW_SUBLAYER, OnNewSubLayer)
|
|
CHAIN_MSG_MAP(CAutoUpdateUI<CMainFrame>)
|
|
CHAIN_MSG_MAP(COwnerDrawnMenu<CMainFrame>)
|
|
CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>)
|
|
END_MSG_MAP()
|
|
|
|
// Handler prototypes (uncomment arguments if needed):
|
|
// LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
|
// LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
|
|
// LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
|
|
|
|
private:
|
|
void SetStatusText(int index, PCWSTR text) override;
|
|
CUpdateUIBase& UI() override;
|
|
HFONT GetMonoFont() const override;
|
|
bool TrackPopupMenu(HMENU hMenu, DWORD flags, int x, int y, HWND hWnd = nullptr) override;
|
|
CFindReplaceDialog* GetFindDialog() const override;
|
|
void InitDarkTheme() const;
|
|
|
|
void InitMenu();
|
|
void UpdateUI();
|
|
void SetAlwaysOnTop(bool ontop);
|
|
|
|
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
|
|
LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
|
|
LRESULT OnEraseBkgnd(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
|
|
LRESULT OnShowWindow(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
|
|
LRESULT OnRebuildWindowMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
|
|
LRESULT OnFileExit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewSessions(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewFilters(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewProviders(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewProviderContexts(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewLayers(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewNetEvents(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewHierarchy(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewSublayers(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewCallouts(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnViewStatusBar(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnWindowClose(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnWindowCloseAll(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnWindowActivate(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnPageActivated(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/);
|
|
LRESULT OnAlwaysOnTop(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnEditFind(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnFind(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
|
|
LRESULT OnToggleDarkMode(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnNewProvider(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnNewFilter(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
LRESULT OnNewSubLayer(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
|
|
|
WFPEngine m_Engine;
|
|
CFont m_MonoFont;
|
|
CCustomTabView m_Tabs;
|
|
CMultiPaneStatusBarCtrl m_StatusBar;
|
|
CFindReplaceDialog* m_pFindDlg{ nullptr };
|
|
CString m_SearchText;
|
|
inline static Theme s_DarkTheme;
|
|
};
|