/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "base/flags.h" namespace Ui { class InputField; inline constexpr auto kNanosInOne = 1'000'000'000LL; struct FormattedTonAmount { QString wholeString; QString separator; QString nanoString; QString full; }; enum class TonFormatFlag { Signed = 0x01, Rounded = 0x02, Simple = 0x04, }; constexpr bool is_flag_type(TonFormatFlag) { return true; }; using TonFormatFlags = base::flags; [[nodiscard]] FormattedTonAmount FormatTonAmount( int64 amount, TonFormatFlags flags = TonFormatFlags()); [[nodiscard]] std::optional ParseTonAmountString( const QString &amount); [[nodiscard]] QString TonAmountSeparator(); [[nodiscard]] not_null CreateTonAmountInput( not_null parent, rpl::producer placeholder, int64 amount = 0); } // namespace Ui