35 lines
766 B
C
35 lines
766 B
C
|
#ifndef NULLSOFT_ML_WIRE_MESSAGEPROCESSOR_H
|
||
|
#define NULLSOFT_ML_WIRE_MESSAGEPROCESSOR_H
|
||
|
|
||
|
#include <api/application/api_messageprocessor.h>
|
||
|
#include "main.h"
|
||
|
#ifndef WM_FORWARDMSG
|
||
|
#define WM_FORWARDMSG 0x037F
|
||
|
#endif
|
||
|
|
||
|
class MessageProcessor : public api_messageprocessor
|
||
|
{
|
||
|
public:
|
||
|
bool ProcessMessage(MSG *msg)
|
||
|
{
|
||
|
|
||
|
if (msg->message < WM_KEYFIRST || msg->message > WM_KEYLAST)
|
||
|
return false;
|
||
|
|
||
|
HWND hWndCtl = ::GetFocus();
|
||
|
|
||
|
if (IsChild(browserHWND, hWndCtl))
|
||
|
{
|
||
|
// find a direct child of the dialog from the window that has focus
|
||
|
while(::GetParent(hWndCtl) != browserHWND)
|
||
|
hWndCtl = ::GetParent(hWndCtl);
|
||
|
|
||
|
if (activeBrowser->translateKey(*msg))
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
protected:
|
||
|
RECVS_DISPATCH;
|
||
|
};
|
||
|
#endif
|