Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
bitcoinamountfield.h
Go to the documentation of this file.
1// Copyright (c) 2011-present The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5#ifndef BITCOIN_QT_BITCOINAMOUNTFIELD_H
6#define BITCOIN_QT_BITCOINAMOUNTFIELD_H
7
8#include <consensus/amount.h>
9#include <qt/bitcoinunits.h>
10
11#include <QWidget>
12
13class AmountSpinBox;
14
16class QValueComboBox;
18
21class BitcoinAmountField: public QWidget
22{
24
25 // ugly hack: for some unknown reason CAmount (instead of qint64) does not work here as expected
26 // discussion: https://github.com/bitcoin/bitcoin/pull/5117
28
29public:
30 explicit BitcoinAmountField(QWidget *parent = nullptr);
31
32 CAmount value(bool *value=nullptr) const;
33 void setValue(const CAmount& value);
34
36 void SetAllowEmpty(bool allow);
37
39 void SetMinValue(const CAmount& value);
40
42 void SetMaxValue(const CAmount& value);
43
45 void setSingleStep(const CAmount& step);
46
48 void setReadOnly(bool fReadOnly);
49
51 void setValid(bool valid);
53 bool validate();
54
57
59 void clear();
60
62 void setEnabled(bool fEnabled);
63
67 QWidget *setupTabChain(QWidget *prev);
68
71
72protected:
74 bool eventFilter(QObject *object, QEvent *event) override;
75
76private:
79
80private Q_SLOTS:
81 void unitChanged(int idx);
82
83};
84
85#endif // BITCOIN_QT_BITCOINAMOUNTFIELD_H
int64_t CAmount
Amount in satoshis (Can be negative)
Definition amount.h:12
QSpinBox that uses fixed-point numbers internally and uses our own formatting/parsing functions.
Widget for entering bitcoin amounts.
AmountSpinBox * amount
void setEnabled(bool fEnabled)
Enable/Disable.
QValueComboBox * unit
void setDisplayUnit(BitcoinUnit new_unit)
Change unit used to display amount.
void SetMaxValue(const CAmount &value)
Set the maximum value in satoshis.
void setSingleStep(const CAmount &step)
Set single step in satoshis.
void SetMinValue(const CAmount &value)
Set the minimum value in satoshis.
bool eventFilter(QObject *object, QEvent *event) override
Intercept focus-in event and ',' key presses.
void setReadOnly(bool fReadOnly)
Make read-only.
BitcoinAmountField(QWidget *parent=nullptr)
void clear()
Make field empty and ready for new input.
bool validate()
Perform input validation, mark field as invalid if entered value is not valid.
QWidget * setupTabChain(QWidget *prev)
Qt messes up the tab chain by default in some cases (issue https://bugreports.qt-project....
void setValid(bool valid)
Mark current value as invalid in UI.
void setValue(const CAmount &value)
void SetAllowEmpty(bool allow)
If allow empty is set to false the field will be set to the minimum allowed value if left empty.
Unit
Bitcoin units.
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.
Definition time.h:73