/*
* Event.h
* Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL++2000
#pragma once
#include <sol\Object.h>
#include <sol\Dimension.h>
namespace SOL {
class Event :public Object {
UINT message;
WPARAM wParam;
LPARAM lParam;
void* data;
long result; // result value of event-handler
public:
Event(UINT message1, WPARAM wParam1, LPARAM lParam1)
{
message = message1;
wParam = wParam1;
lParam = lParam1;
result = NULL;
}
public:
HWND getChild()
{
if(message == WM_NOTIFY)
return ((NMHDR*)lParam)->hwndFrom;
else
return (HWND)lParam;
}
public:
UINT getControlId()
{
if(message == WM_NOTIFY)
return ((NMHDR*)lParam)->idFrom;
else
return LOWORD(wParam);
}
public:
UINT getNotification()
{
if(message == WM_NOTIFY)
return ((NMHDR*)lParam)->code;
else
return HIWORD(wParam);
}
public:
BOOL isMenuSelected()
{
BOOL rc = FALSE;
// if lParam == 0, then menu or accelarator
if (lParam == 0) {
if(HIWORD(wParam) == 0) {
// menu selected;
rc = TRUE;
}
}
return rc;
}
public:
BOOL fromAccelerator()
{
BOOL rc = FALSE;
// if lParam == 0, then menu or accelerator
if (lParam == 0) {
if(HIWORD(wParam) == 1) {
rc = TRUE;
}
}
return rc;
}
//2009/11/01
WORD getMenuId() { return LOWORD(wParam); }
UINT getMessage() { return message; }
WPARAM getWParam() { return wParam; }
LPARAM getLParam() { return lParam; }
void* getData() { return data; }
void getMousePosition(int& x, int& y) {
x = LOWORD(lParam);
y = HIWORD(lParam);
}
void getMousePosition(POINT* pt) {
pt->x = LOWORD(lParam);
pt->y = HIWORD(lParam);
}
void getSize(int& w, int& h) {
w = LOWORD(lParam);
h = HIWORD(lParam);
}
void getSize(Dimension& d) {
d.set(LOWORD(lParam), HIWORD(lParam));
}
void setData(void* data1) { data = data1; }
long getResult() { return result; }
void setResult(long val) { result = val; }
};
}
|