You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.0 KiB

// Copyright (c) 2011-2015 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or
#include "amount.h"
#include <QWidget>
class AmountSpinBox;
class QValueComboBox;
/** Widget for entering bitcoin amounts.
class BitcoinAmountField: public QWidget
// ugly hack: for some unknown reason CAmount (instead of qint64) does not work here as expected
// discussion:
Q_PROPERTY(qint64 value READ value WRITE setValue NOTIFY valueChanged USER true)
explicit BitcoinAmountField(QWidget *parent = 0);
CAmount value(bool *value=0) const;
void setValue(const CAmount& value);
/** Set single step in satoshis **/
void setSingleStep(const CAmount& step);
/** Make read-only **/
void setReadOnly(bool fReadOnly);
/** Mark current value as invalid in UI. */
void setValid(bool valid);
/** Perform input validation, mark field as invalid if entered value is not valid. */
bool validate();
/** Change unit used to display amount. */
void setDisplayUnit(int unit);
/** Make field empty and ready for new input. */
void clear();
/** Enable/Disable. */
void setEnabled(bool fEnabled);
/** Qt messes up the tab chain by default in some cases (issue,
in these cases we have to set it up manually.
QWidget *setupTabChain(QWidget *prev);
void valueChanged();
/** Intercept focus-in event and ',' key presses */
bool eventFilter(QObject *object, QEvent *event);
AmountSpinBox *amount;
QValueComboBox *unit;
private Q_SLOTS:
void unitChanged(int idx);