Batch #9361 by secret: 0 byte-identical, 1 confirmed by peer review. - fn_09608 UIHairStyleButton::UIHairStyleButton: logic confirmed by peer review Peer-reviewed-by: gordaoprogramas, Montyla, Toshiro Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
97 lines
2.7 KiB
C++
97 lines
2.7 KiB
C++
#ifndef RAGNAROK_SOURCE_UI_LISTS_UILISTBOX_H
|
|
#define RAGNAROK_SOURCE_UI_LISTS_UILISTBOX_H
|
|
|
|
#include "UI/Window/UIWindow.h"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
struct FrameFocus;
|
|
class ResourceMgr;
|
|
class UIScrollBar;
|
|
class WindowManagerWindows;
|
|
|
|
struct UIListBoxContext {
|
|
FrameFocus& capture;
|
|
ResourceMgr& resources;
|
|
FontCache& fonts;
|
|
const TextLocale& locale;
|
|
const unsigned short& codePage;
|
|
WindowManagerWindows& windows;
|
|
};
|
|
|
|
class UIListBox : public UIWindow {
|
|
public:
|
|
UIListBox();
|
|
__declspec(noinline) UIListBox(UIWindowContext& windows, UIListBoxContext& list);
|
|
~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 Slot28(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();
|
|
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<std::string> 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;
|
|
|
|
protected:
|
|
UIListBoxContext* m_listContext;
|
|
};
|
|
|
|
class UIServerListBox : public UIListBox {
|
|
public:
|
|
UIServerListBox();
|
|
|
|
/* 00DC */ int unknown_00DC;
|
|
/* 00E0 */ int unknown_00E0;
|
|
};
|
|
|
|
class UIListBox2 : public UIListBox {
|
|
public:
|
|
UIListBox2(UIWindowContext& windows, UIListBoxContext& list);
|
|
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) == 220);
|
|
static_assert(offsetof(UIServerListBox, unknown_00DC) == 0xDC);
|
|
static_assert(offsetof(UIServerListBox, unknown_00E0) == 0xE0);
|
|
#endif
|
|
|
|
#endif
|