rodecomp/Source/UI/Buttons/UITextButton.h
ragnarok-clanker ffbeee0f2a Maintenance: Forced maintainer submission (resubmission of 14678 after td sync to 8deac7a3; replaces 14460 and 14473). Native-run fix
Batch #14681 by ragnarok-clanker: forced by an admin (6 lower score(s), 70 changed function(s)); checked with 555 compiled unit(s), including every includer of Source/Client/Mode/CLoginMode.h, Source/Client/Session.h, Source/Contents/Actors/GameActor.h, Source/Contents/Actors/GrannyGameActor.h, Source/Contents/Actors/Pc.h, Source/Contents/Actors/RenderObject.h, Source/Contents/EffectResourceSwitcher.h, Source/Contents/Effects/CartCannon.h, Source/Contents/Effects/EZ2STREffectEx.h, Source/Contents/Effects/EffectActor.h, Source/Contents/Effects/MonsterSkillEffects.h, Source/Contents/Effects/RagEffect.h, Source/Contents/Effects/RectUpEffect.h, Source/Contents/Ground/GroundGeometry.h, Source/Network/Connection/Connection.h, Source/Resource/Audio/WaveResource.h, Source/Resource/Bitmap/BitmapResource.h, Source/Resource/EZeffectResource.h, Source/Resource/EmblemResource.h, Source/Resource/GifResource.h, Source/Resource/ImfResource.h, Source/Resource/Models/AnimatedModelResource.h, Source/Resource/Models/GrannyModelResource.h, Source/Resource/Models/ModelResource.h, Source/Resource/PaletteResource.h, Source/Resource/RmaResource.h, Source/Resource/Sprites/ActionResource.h, Source/Resource/Sprites/SpriteResource.h, Source/Resource/World/GroundResource.h, Source/Resource/World/TerrainResource.h, Source/Resource/World/WorldResource.h, Source/UI/Buttons/UIBmpRadioBtn.h, Source/UI/Buttons/UITextButton.h, Source/UI/Item/UIItemPurchaseWnd.h, Source/UI/Item/UIItemSellWnd.h, Source/UI/Item/UIItemSellWnd2.h, Source/UI/Item/UIItemStoreWnd.h, Source/UI/Item/UIItemWnd.h, Source/UI/Item/UIParaItemShopWnd.h, Source/UI/Items/UIItemRepairWnd.h, Source/UI/Items/UIMakeTargetListWnd.h, Source/UI/Items/UIMakeTargetProcessWnd.h, Source/UI/Items/UIWeaponRefineWnd.h, Source/UI/Rodex/UIRodexInboxWnd.h, Source/UI/Shop/UIMerchantItemShopWnd.h, Source/UI/Shop/UIMerchantMirrorItemWnd.h, Source/UI/Shop/UIMerchantShopMakeWnd.h, Source/UI/StylingShop/UIStylingShopWnd.h, Source/UI/UIChangeMaterialWnd.h, Source/UI/UIIngredientInfoWnd.h, Source/UI/UIItemReformWnd.h, Source/UI/UILapineScrollBar.h, Source/UI/Window/UIHotKeyWnd.h, Source/UI/Window/UINewSelectCharWnd.h.
2026-11-07 14:05:21 +00:00

67 lines
2 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_BUTTONS_UITEXTBUTTON_H
#define RAGNAROK_SOURCE_UI_BUTTONS_UITEXTBUTTON_H
#include "UI/Buttons/UIButton.h"
#include <cstddef>
#include <string>
#include <vector>
class UITextButton : public UIButton {
friend class UITextViewer;
friend class UIPetEvolutionWnd;
friend class UIMessageBox;
friend class UIEditCtrl3;
friend class UIAchTracingWnd;
friend class UIAchSummaryWnd;
friend class CCreateLineInfo;
friend class UISerachStoreInfoWnd;
friend class UISeekPartyListWnd;
friend class UIRodexInboxWnd;
friend class UIChatHisBox;
public:
friend void OpenTextButtonLink(UITextButton* button);
friend void ShowTextButtonTip(UITextButton* button);
friend void ShowTextButtonItem(UITextButton* button);
friend void RequestTextButtonService(UITextButton* button);
friend void OpenTextButtonNavigation(UITextButton* button);
__declspec(noinline) UITextButton();
~UITextButton() override;
void Paint() override;
void Slot27(int x, int y) override;
void Slot28(int x, int y) override;
void Slot31(int x, int y) override;
void Slot32(int x, int y) override;
void Slot33(int x, int y) override;
void Slot35(int value) override;
void Configure(const char* text, std::uint32_t color, int family, int height, unsigned char outline, unsigned char underline);
void ResizeToText();
void ResizeToTextClipped(int width, int height);
void CenterIn(int width, int height);
const std::string& GetLine(std::size_t index) const;
int GetLinesCount() const;
protected:
/* 00B4 */ std::uint32_t m_color;
/* 00B8 */ std::uint32_t m_normalColor;
/* 00BC */ std::uint32_t m_hoverColor;
/* 00C0 */ std::uint32_t m_outlineColor;
/* 00C4 */ unsigned char m_outline;
/* 00C5 */ unsigned char m_underline;
/* 00C8 */ int m_height;
/* 00CC */ int m_family;
/* 00D0 */ int m_value;
/* 00D4 */ std::string m_text;
/* 00EC */ std::vector<std::string> m_lines;
};
extern std::string g_emptyString;
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(UITextButton) == 0xF8);
#endif
#endif