MCPcopy Create free account
hub / github.com/Zalafina/QKeyMapper / postMouseButton

Method postMouseButton

QKeyMapper/qkeymapper_worker.cpp:2342–2413  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2340}
2341
2342void QKeyMapper_Worker::postMouseButton(HWND hwnd, const QString &mousebutton, int keyupdown, const QPoint &mousepoint)
2343{
2344 UINT messageMouseButton;
2345 WPARAM wParam = 0;
2346 int x = 0;
2347 int y = 0;
2348
2349 if (mousepoint.x() >= 0 && mousepoint.y() >= 0) {
2350 x = mousepoint.x();
2351 y = mousepoint.y();
2352 }
2353 else {
2354 bool valid_point = true;
2355 POINT currentPos;
2356 if (!GetCursorPos(&currentPos)) {
2357#ifdef DEBUG_LOGOUT_ON
2358 qDebug() << "[postMouseButton]" << "GetCursorPos error! ->" << GetLastError();;
2359#endif
2360 valid_point = false;
2361 }
2362
2363 if (valid_point && !ScreenToClient(hwnd, &currentPos)) {
2364#ifdef DEBUG_LOGOUT_ON
2365 qDebug() << "[postMouseButton]" << "ScreenToClient error! hwnd:" << hwnd << ", currentPos.x:" << currentPos.x << ", currentPos.y:" << currentPos.y << ", GetLastError:" << GetLastError();
2366#endif
2367 valid_point = false;
2368 }
2369
2370 if (valid_point) {
2371 x = currentPos.x;
2372 y = currentPos.y;
2373 }
2374 }
2375 LPARAM lParam = MAKELPARAM(x, y);
2376
2377 if (mousebutton == "Mouse-L") {
2378 messageMouseButton = (keyupdown == KEY_DOWN) ? WM_LBUTTONDOWN : WM_LBUTTONUP;
2379 wParam = MK_LBUTTON;
2380 }
2381 else if (mousebutton == "Mouse-R") {
2382 messageMouseButton = (keyupdown == KEY_DOWN) ? WM_RBUTTONDOWN : WM_RBUTTONUP;
2383 wParam = MK_RBUTTON;
2384 }
2385 else if (mousebutton == "Mouse-M") {
2386 messageMouseButton = (keyupdown == KEY_DOWN) ? WM_MBUTTONDOWN : WM_MBUTTONUP;
2387 wParam = MK_MBUTTON;
2388 }
2389 else if (mousebutton == "Mouse-X1") {
2390 messageMouseButton = (keyupdown == KEY_DOWN) ? WM_XBUTTONDOWN : WM_XBUTTONUP;
2391 wParam = MAKEWPARAM(MK_XBUTTON1, XBUTTON1);
2392 }
2393 else if (mousebutton == "Mouse-X2") {
2394 messageMouseButton = (keyupdown == KEY_DOWN) ? WM_XBUTTONDOWN : WM_XBUTTONUP;
2395 wParam = MAKEWPARAM(MK_XBUTTON2, XBUTTON2);
2396 }
2397 else {
2398#ifdef DEBUG_LOGOUT_ON
2399 qDebug() << "[postMouseButton]" << "Invalid Mouse Button Name :" << mousebutton;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected