#pragma once #include "data/wallet_state.h" #include #include namespace dragonx { namespace ui { struct AddressListInput { const AddressInfo* info = nullptr; bool isZ = false; bool hidden = false; bool favorite = false; bool mining = false; std::string label; std::string icon; int sortOrder = -1; }; struct AddressListRow { const AddressInfo* info = nullptr; bool isZ = false; bool hidden = false; bool favorite = false; bool mining = false; std::string label; std::string icon; int sortOrder = -1; }; struct AddressRowRect { float x = 0.0f; float y = 0.0f; float width = 0.0f; float height = 0.0f; }; struct AddressRowLayout { float contentStartX = 0.0f; float contentStartY = 0.0f; float labelX = 0.0f; float contentRight = 0.0f; float buttonSize = 0.0f; AddressRowRect favoriteButton; AddressRowRect visibilityButton; }; bool AddressListMatchesFilter(const AddressListInput& input, const std::string& filter); std::vector BuildAddressListRows(const std::vector& inputs, const std::string& filter, bool hideZeroBalances, bool showHidden); AddressRowLayout ComputeAddressRowLayout(float rowX, float rowY, float rowWidth, float rowHeight, float rowPadLeft, float rowIconSize, float spacingMd, float spacingSm, float spacingXs); std::string FormatAddressUsdValue(double balance, double priceUsd); } // namespace ui } // namespace dragonx