This commit is contained in:
@@ -103,12 +103,13 @@ namespace ReWindow
|
||||
class MouseButtonDownEvent : public MouseEvent {
|
||||
public:
|
||||
MouseButton Button;
|
||||
MouseButtonDownEvent(MouseButton Button) : MouseEvent() {}
|
||||
explicit MouseButtonDownEvent(MouseButton Button) : MouseEvent() {}
|
||||
};
|
||||
|
||||
class MouseButtonUpEvent : public MouseEvent {
|
||||
public:
|
||||
MouseButton Button;
|
||||
explicit MouseButtonUpEvent(MouseButton Button) : MouseEvent() {}
|
||||
};
|
||||
|
||||
class WindowResizeRequestEvent : public RWindowEvent
|
||||
|
2
main.cpp
2
main.cpp
@@ -2,9 +2,11 @@
|
||||
#include <rewindow/types/window.h>
|
||||
#include <jlog/jlog.hpp>
|
||||
|
||||
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Windows :/
|
||||
#if _WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <GL/gl.h>
|
||||
|
||||
|
||||
|
@@ -6,7 +6,7 @@ using namespace ReWindow;
|
||||
|
||||
bool fullscreenmode = false;
|
||||
bool open = false;
|
||||
HINSTANCE hInstance = GetModuleHandle(NULL);
|
||||
HINSTANCE hInstance = GetModuleHandle(nullptr);
|
||||
HWND hwnd;
|
||||
HDC hdc;
|
||||
HGLRC glContext;
|
||||
@@ -98,31 +98,102 @@ LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
case WM_DESTROY:
|
||||
exit(0);
|
||||
case WM_SIZE:
|
||||
break;
|
||||
case WM_KEYDOWN: {
|
||||
auto key = GetKeyFromWindowsScancode((WindowsScancode) wParam);
|
||||
//Key repeat fix.
|
||||
if (!pKeyboard->PressedKeys[key]) {
|
||||
eWindow->OnKeyDownEvent(key);
|
||||
eWindow->OnKeyDown(key);
|
||||
eWindow->pressKey(key);
|
||||
}
|
||||
break;
|
||||
case WM_KEYDOWN: {
|
||||
auto key = GetKeyFromWindowsScancode((WindowsScancode) wParam);
|
||||
//Key repeat fix.
|
||||
if (!pKeyboard->PressedKeys[key]) {
|
||||
eWindow->OnKeyDownEvent(key);
|
||||
eWindow->OnKeyDown(key);
|
||||
eWindow->pressKey(key);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case WM_KEYUP: {
|
||||
auto key = GetKeyFromWindowsScancode((WindowsScancode) wParam);
|
||||
eWindow->OnKeyUpEvent(key);
|
||||
eWindow->OnKeyUp(key);
|
||||
eWindow->liftKey(key);
|
||||
break;
|
||||
auto key = GetKeyFromWindowsScancode((WindowsScancode) wParam);
|
||||
eWindow->OnKeyUpEvent(key);
|
||||
eWindow->OnKeyUp(key);
|
||||
eWindow->liftKey(key);
|
||||
break;
|
||||
}
|
||||
case WM_LBUTTONDOWN:
|
||||
|
||||
//Mouse Buttons.
|
||||
case WM_MOUSEWHEEL: {
|
||||
//If the wheel delta is positive, That's MWheelUp, Negative is MWheelDown.
|
||||
int wheel_delta = GET_WHEEL_DELTA_WPARAM(wParam);
|
||||
if (wheel_delta > 0)
|
||||
eWindow->OnMouseButtonDownEvent(MouseButtons::MWheelUp),
|
||||
eWindow->OnMouseButtonDown(MouseButtons::MWheelUp),
|
||||
eWindow->OnMouseButtonUpEvent(MouseButtons::MWheelUp),
|
||||
eWindow->OnMouseButtonUp(MouseButtons::MWheelUp);
|
||||
|
||||
else
|
||||
eWindow->OnMouseButtonDownEvent(MouseButtons::MWheelDown),
|
||||
eWindow->OnMouseButtonDown(MouseButtons::MWheelDown),
|
||||
eWindow->OnMouseButtonUpEvent(MouseButtons::MWheelDown),
|
||||
eWindow->OnMouseButtonUp(MouseButtons::MWheelDown);
|
||||
break;
|
||||
case WM_LBUTTONUP:
|
||||
}
|
||||
|
||||
case WM_LBUTTONDOWN: {
|
||||
eWindow->OnMouseButtonDownEvent(MouseButtons::Left);
|
||||
eWindow->OnMouseButtonDown(MouseButtons::Left);
|
||||
break;
|
||||
case WM_MOUSEMOVE:
|
||||
}
|
||||
case WM_LBUTTONUP: {
|
||||
eWindow->OnMouseButtonUpEvent(MouseButtons::Left);
|
||||
eWindow->OnMouseButtonUp(MouseButtons::Left);
|
||||
break;
|
||||
}
|
||||
case WM_RBUTTONDOWN: {
|
||||
eWindow->OnMouseButtonDownEvent(MouseButtons::Right);
|
||||
eWindow->OnMouseButtonDown(MouseButtons::Right);
|
||||
break;
|
||||
}
|
||||
case WM_RBUTTONUP: {
|
||||
eWindow->OnMouseButtonUpEvent(MouseButtons::Right);
|
||||
eWindow->OnMouseButtonUp(MouseButtons::Right);
|
||||
break;
|
||||
}
|
||||
case WM_MBUTTONDOWN: {
|
||||
eWindow->OnMouseButtonDownEvent(MouseButtons::Middle);
|
||||
eWindow->OnMouseButtonDown(MouseButtons::Middle);
|
||||
break;
|
||||
}
|
||||
case WM_MBUTTONUP: {
|
||||
eWindow->OnMouseButtonUpEvent(MouseButtons::Middle);
|
||||
eWindow->OnMouseButtonUp(MouseButtons::Middle);
|
||||
break;
|
||||
}
|
||||
case WM_XBUTTONDOWN: {
|
||||
WORD button = GET_XBUTTON_WPARAM(wParam);
|
||||
|
||||
if (button == XBUTTON1)
|
||||
eWindow->OnMouseButtonDownEvent(MouseButtons::Mouse4),
|
||||
eWindow->OnMouseButtonDown(MouseButtons::Mouse4);
|
||||
|
||||
if (button == XBUTTON2)
|
||||
eWindow->OnMouseButtonDownEvent(MouseButtons::Mouse5),
|
||||
eWindow->OnMouseButtonDown(MouseButtons::Mouse5);
|
||||
break;
|
||||
}
|
||||
case WM_XBUTTONUP: {
|
||||
WORD button = GET_XBUTTON_WPARAM(wParam);
|
||||
|
||||
if (button == XBUTTON1)
|
||||
eWindow->OnMouseButtonUpEvent(MouseButtons::Mouse4),
|
||||
eWindow->OnMouseButtonUp(MouseButtons::Mouse4);
|
||||
|
||||
if (button == XBUTTON2)
|
||||
eWindow->OnMouseButtonUpEvent(MouseButtons::Mouse5),
|
||||
eWindow->OnMouseButtonUp(MouseButtons::Mouse5);
|
||||
break;
|
||||
}
|
||||
case WM_MOUSEMOVE:
|
||||
//This is the same as "Motion Notify" in the X Window System.
|
||||
break;
|
||||
}
|
||||
|
||||
if (pKeyboard != nullptr && cKeyboard != nullptr)
|
||||
pKeyboard = cKeyboard;
|
||||
|
||||
|
@@ -29,7 +29,7 @@ bool Key::operator<(const Key &rhs) const {
|
||||
|
||||
|
||||
Key GetKeyFromX11Scancode(X11Scancode code) {
|
||||
for (auto& key : Key::GetKeyboard())
|
||||
for (const auto& key : Key::GetKeyboard())
|
||||
if (key.x11ScanCode == code)
|
||||
return key;
|
||||
std::cout << "Unavaliable Scancode: " + std::to_string((int)code) << std::endl;
|
||||
|
Reference in New Issue
Block a user