rodecomp/Source/UI/Edit/UIEditCtrl.h
ragnarok-clanker f464cd3f17 Decompile 41 functions in Source/Client/Input/InputCharset.cpp, Source/Client/Input/InputCharset.h, ...
Batch #1607 by ragnarok-clanker: 0 byte-identical, 41 confirmed by peer review.

- fn_11718 DrawItemIconById: logic confirmed by peer review
- fn_11719 DrawItemSlotBackground: logic confirmed by peer review
- fn_11721 UICntWnd::DrawBorder: logic confirmed by peer review
- fn_11760 UIBank_NewWnd::Paint: logic confirmed by peer review
- fn_11761 UIChatRoomWnd::Paint: logic confirmed by peer review
- fn_11767 UIMerInfoWnd::Paint: logic confirmed by peer review
- fn_12085 UIWindow::DrawPanelBackground: logic confirmed by peer review
- fn_12086 UIWindow::DrawPanelBackgroundAt: logic confirmed by peer review
- fn_12088 UIWindow::DrawButtonBar: logic confirmed by peer review
- fn_12089 UIWindow::DrawButtonBarAt: logic confirmed by peer review
- fn_12098 UIWindow::DrawTitleBar: logic confirmed by peer review
- fn_12099 UIWindow::DrawTitleBarAt: logic confirmed by peer review
- fn_12120 UIWindow::LoadStyledBitmap: logic confirmed by peer review
- fn_12219 UIDisconnectedServerMsgWnd::Paint: logic confirmed by peer review
- fn_12233 UINoticeConfirmWnd::Paint: logic confirmed by peer review
- fn_12245 UIQuitWnd::Paint: logic confirmed by peer review
- fn_12246 UIRestartWnd::Paint: logic confirmed by peer review
- fn_12258 UIWaitWnd::Paint: logic confirmed by peer review
- fn_14470 CUIFrameWnd::RefreshSkinColors: logic confirmed by peer review
- fn_14471 CUIFrameWnd::Paint: logic confirmed by peer review
- fn_14472 CUIFrameWnd::SetSkinColors: logic confirmed by peer review
- fn_14635 CUIControl::LoadBitmapResource: logic confirmed by peer review
- fn_17781 InputCharset::Prefix: logic confirmed by peer review
- fn_17788 InputCharset::ServiceName: logic confirmed by peer review
- fn_17847 FadeOutMode: logic confirmed by peer review
- fn_18378 Resolve: logic confirmed by peer review
- fn_02111 RendererDX7Operations::SaveLogo: logic confirmed by peer review
- fn_09446 UICashEmotionPack::Paint: logic confirmed by peer review
- fn_09453 UICashEmotionPack::SetSaleBadge: logic confirmed by peer review
- fn_09483 UICashEmotionPiece::Paint: logic confirmed by peer review
- fn_45445 CSkinMgr::CSkinMgr: logic confirmed by peer review
- fn_09681 CSkinMgr::~CSkinMgr: logic confirmed by peer review
- fn_09683 CSkinMgr::Prepare: logic confirmed by peer review
- fn_09684 SkinPaletteColor: logic confirmed by peer review
- fn_09685 SkinPaletteChannels: logic confirmed by peer review
- fn_09686 CSkinMgr::Name: logic confirmed by peer review
- fn_09687 CSkinMgr::Prefix: logic confirmed by peer review
- fn_09688 CSkinMgr::Name: logic confirmed by peer review
- fn_09690 CSkinMgr::Selected: logic confirmed by peer review
- fn_10758 UIEditCtrl::DrawSelectionAt: logic confirmed by peer review
- fn_10759 UIEditCtrl::DrawSelection: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
Adds to the build: Source/Contents/SkinMgr.cpp
2026-10-28 19:13:07 +00:00

140 lines
4.1 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_EDIT_UIEDITCTRL_H
#define RAGNAROK_SOURCE_UI_EDIT_UIEDITCTRL_H
#include "UI/Window/UIWindow.h"
#include <string>
struct InputFocus;
struct TextInputBuffer;
struct InputCharset;
struct UIButtonContext;
struct BitmapImage;
class WindowManagerWindows;
class NavigationDestination;
class UINaviLinkButton;
struct UIEditContext {
InputFocus& focus;
TextInputBuffer& input;
unsigned char& password;
const InputCharset& charset;
UIButtonContext& buttons;
WindowManagerWindows& windows;
NavigationDestination& navigation;
const BitmapImage& colorChip;
const int& candidateCursor;
UIWindow* const& candidateWindow;
UIWindow* const& readingWindow;
UIWindow* const& otherChatInput;
const bool& linkInputRestricted;
UIWindow* const& permittedLinkInput;
const int& screenWidth;
const int& screenHeight;
};
class UIEditCtrl : public UIWindow {
public:
UIEditCtrl(UIWindowContext& windows, UIEditContext& edit);
~UIEditCtrl() override;
bool Slot05() override;
void Paint() override;
void Slot23() override;
void Slot24(int retained) override;
void Slot25(int x, int y) override;
void Slot28(int x, int y) override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
int Slot46() override;
virtual void SetText(const char* value);
virtual void SelectAll();
virtual void PaintText();
virtual void Synchronize();
virtual void Trim();
int Length() const;
const char* Text();
void Background(int red, int green, int blue);
void TextColor(std::uint32_t primary, std::uint32_t secondary);
void UpdateLinks();
void DrawSelectionAt(int x, int y, int width);
void DrawSelection(int x, int width);
void MoveCandidateWindow(int x);
void MoveReadingWindow(int x);
/* 007C */ int anchor;
/* 0080 */ int cursor;
/* 0084 */ int mask;
/* 0088 */ int maximum;
/* 008C */ int flat;
/* 0090 */ int red;
/* 0094 */ int green;
/* 0098 */ int blue;
/* 009C */ int borderRed;
/* 00A0 */ int borderGreen;
/* 00A4 */ int borderBlue;
/* 00A8 */ std::uint32_t textColor;
/* 00AC */ std::uint32_t secondColor;
/* 00B0 */ int firstVisible;
/* 00B4 */ int textY;
/* 00B8 */ int invalidatesParent;
/* 00BC */ std::string tooltip;
/* 00D4 */ unsigned char disabled;
/* 00D8 */ std::string text;
/* 00F0 */ int unknown_00F0;
/* 00F4 */ int topPadding;
/* 00F8 */ unsigned char preserveInput;
/* 00FC */ std::list<UIWindow*> links;
/* 0104 */ std::string linkedText;
protected:
UIEditContext* m_edit;
void PaintTextWithPolicy(bool alternate, const std::string* placeholder, std::uint32_t placeholderColor, bool placeholderEnabled);
private:
bool RemoveInvalidLink(std::list<UIWindow*>::iterator& entry);
void SnapLinkSelection(std::size_t prefix, std::size_t bytes);
void InsertLink(const char* value);
};
class UIEditCtrlWheel : public UIEditCtrl {
public:
UIEditCtrlWheel(UIWindowContext& windows, UIEditContext& edit);
~UIEditCtrlWheel() override;
void Slot35(int value) override;
};
class UIEditCtrl2 : public UIEditCtrl {
public:
UIEditCtrl2(UIWindowContext& windows, UIEditContext& edit);
~UIEditCtrl2() override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
};
class UIEditCtrl4 : public UIEditCtrl {
public:
UIEditCtrl4(UIWindowContext& windows, UIEditContext& edit);
~UIEditCtrl4() override;
void Slot23() override;
void PaintText() override;
/* 011C */ std::uint32_t placeholderColor;
/* 0120 */ std::string placeholder;
/* 0138 */ unsigned char placeholderEnabled;
};
class UIEditCtrl5 : public UIEditCtrl4 {
public:
UIEditCtrl5(UIWindowContext& windows, UIEditContext& edit);
~UIEditCtrl5() override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(UIEditCtrl) == 292);
static_assert(sizeof(UIEditCtrlWheel) == 292);
static_assert(sizeof(UIEditCtrl2) == 292);
static_assert(sizeof(UIEditCtrl4) == 324);
static_assert(sizeof(UIEditCtrl5) == 324);
#endif
#endif