#ifndef RAGNAROK_SOURCE_UI_LISTS_UILISTBOX_H #define RAGNAROK_SOURCE_UI_LISTS_UILISTBOX_H #include "UI/Window/UIWindow.h" #include #include class ResourceMgr; class UIColorTransBalloonText; class UIScrollBar; #include "UI/Window/WindowManagerWindows.h" class UIListBox : public UIWindow { public: __declspec(noinline) UIListBox(); ~UIListBox() override; void Resize(int width, int height) override; void Slot15(int width, int height) override; void Paint() override; void Slot25(int x, int y) override; void Slot26(int x, int y) override; void Slot32(int x, int y) override; void Slot35(int value) override; int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override; virtual void Configure(int x, int y, int width, int height, unsigned char transparent); virtual void AddLine(const char* text); virtual void Clear(); virtual void Refresh(); __declspec(noinline) int LineAt(int x, int y) const; int LineCount() const; bool CopyText(char* buffer, int length); int TextLength(); /* 007C */ int backgroundRed; /* 0080 */ int backgroundGreen; /* 0084 */ int backgroundBlue; /* 0088 */ std::vector lines; /* 0094 */ int selected; /* 0098 */ int topLine; /* 009C */ int horizontalOffset; /* 00A0 */ int contentWidth; /* 00A4 */ int verticalOverflow; /* 00A8 */ int bottomMargin; /* 00AC */ UIScrollBar* verticalBar; /* 00B0 */ UIScrollBar* horizontalBar; /* 00B4 */ int transparent; /* 00B8 */ int lineHeight; /* 00BC */ int unknown_00BC; /* 00C0 */ std::uint32_t selectionColor; /* 00C4 */ unsigned char selectable; /* 00C8 */ std::uint32_t textColor; /* 00CC */ unsigned char centerVertically; /* 00D0 */ int textInset; }; class UIServerListBox : public UIListBox { public: UIServerListBox(); void Slot28(int x, int y) override; /* 00D4 */ std::vector balloonTexts; /* 00E0 */ UIColorTransBalloonText* balloon; }; class UIListBox2 : public UIListBox { public: UIListBox2(); void Paint() override; /* 00D4 */ int fontFamily; /* 00D8 */ int fontHeight; /* 00DC */ unsigned char bold; /* 00DD */ unsigned char italic; }; #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(UIListBox) == 0xD4); static_assert(offsetof(UIServerListBox, balloonTexts) == 0xD4); static_assert(offsetof(UIServerListBox, balloon) == 0xE0); static_assert(sizeof(UIServerListBox) == 0xE4); #endif #endif