]> Git Repo - VerusCoin.git/blob - src/qt/bitcoinamountfield.h
Auto merge of #2100 - str4d:2074-rpc, r=arcalinea
[VerusCoin.git] / src / qt / bitcoinamountfield.h
1 // Copyright (c) 2011-2013 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 "amount.h"
9
10 #include <QWidget>
11
12 class AmountSpinBox;
13
14 QT_BEGIN_NAMESPACE
15 class QValueComboBox;
16 QT_END_NAMESPACE
17
18 /** Widget for entering bitcoin amounts.
19   */
20 class BitcoinAmountField: public QWidget
21 {
22     Q_OBJECT
23
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)
27
28 public:
29     explicit BitcoinAmountField(QWidget *parent = 0);
30
31     CAmount value(bool *value=0) const;
32     void setValue(const CAmount& value);
33
34     /** Set single step in satoshis **/
35     void setSingleStep(const CAmount& step);
36
37     /** Make read-only **/
38     void setReadOnly(bool fReadOnly);
39
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. */
43     bool validate();
44
45     /** Change unit used to display amount. */
46     void setDisplayUnit(int unit);
47
48     /** Make field empty and ready for new input. */
49     void clear();
50
51     /** Enable/Disable. */
52     void setEnabled(bool fEnabled);
53
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.
56     */
57     QWidget *setupTabChain(QWidget *prev);
58
59 Q_SIGNALS:
60     void valueChanged();
61
62 protected:
63     /** Intercept focus-in event and ',' key presses */
64     bool eventFilter(QObject *object, QEvent *event);
65
66 private:
67     AmountSpinBox *amount;
68     QValueComboBox *unit;
69
70 private Q_SLOTS:
71     void unitChanged(int idx);
72
73 };
74
75 #endif // BITCOIN_QT_BITCOINAMOUNTFIELD_H
This page took 0.032646 seconds and 4 git commands to generate.