1 // Copyright (c) 2011-2015 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.
5 #ifndef BITCOIN_QT_BITCOINAMOUNTFIELD_H
6 #define BITCOIN_QT_BITCOINAMOUNTFIELD_H
18 /** Widget for entering bitcoin amounts.
20 class BitcoinAmountField
: public QWidget
24 // ugly hack: for some unknown reason CAmount (instead of qint64) does not work here as expected
25 // discussion: https://github.com/bitcoin/bitcoin/pull/5117
26 Q_PROPERTY(qint64 value READ value WRITE setValue NOTIFY valueChanged USER
true)
29 explicit BitcoinAmountField(QWidget
*parent
= 0);
31 CAmount
value(bool *value
=0) const;
32 void setValue(const CAmount
& value
);
34 /** Set single step in satoshis **/
35 void setSingleStep(const CAmount
& step
);
37 /** Make read-only **/
38 void setReadOnly(bool fReadOnly
);
40 /** Mark current value as invalid in UI. */
41 void setValid(bool valid
);
42 /** Perform input validation, mark field as invalid if entered value is not valid. */
45 /** Change unit used to display amount. */
46 void setDisplayUnit(int unit
);
48 /** Make field empty and ready for new input. */
51 /** Enable/Disable. */
52 void setEnabled(bool fEnabled
);
54 /** Qt messes up the tab chain by default in some cases (issue https://bugreports.qt-project.org/browse/QTBUG-10907),
55 in these cases we have to set it up manually.
57 QWidget
*setupTabChain(QWidget
*prev
);
63 /** Intercept focus-in event and ',' key presses */
64 bool eventFilter(QObject
*object
, QEvent
*event
);
67 AmountSpinBox
*amount
;
71 void unitChanged(int idx
);
75 #endif // BITCOIN_QT_BITCOINAMOUNTFIELD_H