rodecomp/Source/UI/Window/WindowMouseHit.h
ragnarok-clanker d6bc9836d7 Maintenance: [forced, admin decision] Collapse the WindowManagerWindows adapter into UIWindowMgr, stage 1 of 2 (project decision: por
Batch #10019 by ragnarok-clanker: forced by an admin (23 lower score(s), 187 changed function(s)); checked with 447 compiled unit(s), including every includer of Source/Client/Input/Language.h, Source/Client/Mode/ModeDragState.h, Source/Contents/Async/AsyncWorkMgr.h, Source/Contents/Emblems/EmblemCache.h, Source/Contents/Party/AdventurerAgencyMgr.h, Source/Contents/Party/AgencyRequestContext.h, Source/Contents/Party/ChangePartyMasterAsyncWork.h, Source/Contents/Party/LoadMyPartyAsyncWork.h, Source/Contents/Party/LoadPartyInfoAsyncWork.h, Source/Contents/Party/LoadPartyListAsyncWork.h, Source/Contents/Party/PartyInvitation.h, Source/Contents/Party/RegisterPartyAsyncWork.h, Source/Contents/Party/StopRecruitingAsyncWork.h, Source/Contents/Skills/PlayerSkillBundle.h, Source/Contents/UserData/CharacterConfigLoad.h, Source/Network/Packets/PartyJoinPacket.h, Source/UI/Chat/ChatSuggestions.h, Source/UI/Dialogs/UIWaitDBSaveWnd.h, Source/UI/Edit/UIEditCtrl.h, Source/UI/Lists/UIListBox.h, Source/UI/Party/UIRequestJoinPartyMgr.h, Source/UI/Shortcuts/NormalItemSlotLoad.h, Source/UI/Shortcuts/ShortcutDetails.h, Source/UI/Shortcuts/ShortcutPress.h, Source/UI/UIBasicCtrl.h, Source/UI/UIStaticItem.h, Source/UI/Window/FrameFocus.h, Source/UI/Window/UIFrameWnd.h, Source/UI/Window/UIVideoWnd.h, Source/UI/Window/WindowManagerWindows.h, Source/UI/Window/WindowMouseHit.h, Source/UI/Window/WindowOrdering.h.
2026-11-02 14:09:20 +00:00

63 lines
1.3 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_WINDOW_WINDOWMOUSEHIT_H
#define RAGNAROK_SOURCE_UI_WINDOW_WINDOWMOUSEHIT_H
#include <array>
#include <cstdint>
#include <deque>
#include <list>
#include <map>
class UIWindow;
class CMouse;
struct WindowOrdering;
#include "UI/Window/WindowManagerWindows.h"
struct WindowDropDown;
struct WindowMouseHit {
std::list<UIWindow*>& rendered;
std::map<int, UIWindow*>& overlays;
std::uint32_t& previous;
std::uint32_t& current;
UIWindow* FindUid(std::uint32_t uid);
UIWindow* HitTest(int x, int y);
};
struct WindowMouseCapture {
UIWindow*& capture;
WindowOrdering& ordering;
const CMouse& mouse;
const int& previousX;
const int& previousY;
const int& doubleClickGate;
const int& alternateDoubleClickGate;
bool Dispatch();
};
struct WindowMouseUncaptured {
WindowMouseHit& hit;
WindowOrdering& ordering;
WindowDropDown& dropdown;
WindowManagerWindows& windows;
const std::deque<UIWindow*>& modal;
const CMouse& mouse;
const int& previousX;
const int& previousY;
const int& doubleClickGate;
const int& alternateDoubleClickGate;
UIWindow*& pressedRoot;
UIWindow* const& dismiss26;
UIWindow* const& dismiss260;
UIWindow*& hover;
std::array<UIWindow**, 7> refresh;
const int& refreshGate;
int Dispatch();
};
extern int g_alternateDoubleClickGate;
extern int g_mouseRefreshGate;
#endif