HWND GetRulerWnd() { return GetRulerWndAlt(); // BR: will take care of any localization issues }
static bool ContinuousActionInit (bool init, int cmd, BR_ContinuousAction* action) { static accelerator_register_t s_accelerator = { ContinuousActionTranslateAccel, TRUE, NULL }; bool initSuccessful = true; if (init) { GetConfig("tooltips", g_tooltips); g_actionInProgress = action; if (g_actionInProgress) { if (g_actionInProgress->Init) initSuccessful = g_actionInProgress->Init(true); } else initSuccessful = false; if (initSuccessful) { if (g_actionInProgress->SetMouseCursor || g_actionInProgress->SetTooltip) { SetConfig("tooltips", SetBit(SetBit(SetBit(g_tooltips, 0), 1), 2)); if (!g_arrangeWndProc && GetArrangeWnd()) { if (g_actionInProgress->SetTooltip) { WDL_FastString tooltip = g_actionInProgress->SetTooltip(BR_ContinuousAction::ARRANGE); if (tooltip.GetLength()) { POINT p; GetCursorPos(&p); SetTooltip(tooltip.Get(), &p); } } g_arrangeWndProc = (WNDPROC)SetWindowLongPtr(GetArrangeWnd(), GWLP_WNDPROC, (LONG_PTR)ArrangeWndProc); if (g_actionInProgress->SetMouseCursor && g_actionInProgress->SetMouseCursor(BR_ContinuousAction::ARRANGE)) SendMessage(GetArrangeWnd(), WM_SETCURSOR, (WPARAM)GetArrangeWnd(), 0); InvalidateRect(GetArrangeWnd(), NULL, TRUE); // kill existing native tooltip, if any } if (!g_rulerWndProc && GetRulerWndAlt()) { if (g_actionInProgress->SetTooltip) { WDL_FastString tooltip = g_actionInProgress->SetTooltip(BR_ContinuousAction::RULER); if (tooltip.GetLength()) { POINT p; GetCursorPos(&p); SetTooltip(tooltip.Get(), &p); } } g_rulerWndProc = (WNDPROC)SetWindowLongPtr(GetRulerWndAlt(), GWLP_WNDPROC, (LONG_PTR)RulerWndProc); if (g_actionInProgress->SetMouseCursor && g_actionInProgress->SetMouseCursor(BR_ContinuousAction::RULER)) SendMessage(GetRulerWndAlt(), WM_SETCURSOR, (WPARAM)GetRulerWndAlt(), 0); InvalidateRect(GetRulerWndAlt(), NULL, TRUE); } } plugin_register("accelerator", &s_accelerator); plugin_register("timer", (void*)ContinuousActionTimer); } else { g_actionInProgress = NULL; } } else { SetConfig("tooltips", g_tooltips); if (g_arrangeWndProc && GetArrangeWnd()) { SetWindowLongPtr(GetArrangeWnd(), GWLP_WNDPROC, (LONG_PTR)g_arrangeWndProc); SendMessage(GetArrangeWnd(), WM_SETCURSOR, (WPARAM)GetArrangeWnd(), 0); InvalidateRect(GetArrangeWnd(), NULL, FALSE); g_arrangeWndProc = NULL; } if (g_rulerWndProc && GetRulerWndAlt()) { SetWindowLongPtr(GetRulerWndAlt(), GWLP_WNDPROC, (LONG_PTR)g_rulerWndProc); SendMessage(GetRulerWndAlt(), WM_SETCURSOR, (WPARAM)GetRulerWndAlt(), 0); InvalidateRect(GetRulerWndAlt(), NULL, FALSE); g_rulerWndProc = NULL; } SetTooltip(NULL, NULL); plugin_register("-accelerator", &s_accelerator); plugin_register("-timer", (void*)ContinuousActionTimer); if (g_actionInProgress->Init) g_actionInProgress->Init(false); g_actionInProgress = NULL; } return initSuccessful; }