SOL9 2.0 Class: Event

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * 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; }
};

}



Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.