git / moonbite-core / src/qt/modaloverlay.h · raw
// Copyright (c) 2016-2019 The Bitcoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#ifndef BITCOIN_QT_MODALOVERLAY_H#define BITCOIN_QT_MODALOVERLAY_H#include <QDateTime>#include <QPropertyAnimation>#include <QWidget>//! The required delta of headers to the estimated number of available headers until we show the IBD progressstatic constexpr int HEADER_HEIGHT_DELTA_SYNC = 24;namespace Ui { class ModalOverlay;}/** Modal overlay to display information about the chain-sync state */class ModalOverlay : public QWidget{ Q_OBJECTpublic: explicit ModalOverlay(bool enable_wallet, QWidget *parent); ~ModalOverlay(); void tipUpdate(int count, const QDateTime& blockDate, double nVerificationProgress); void setKnownBestHeight(int count, const QDateTime& blockDate); // will show or hide the modal layer void showHide(bool hide = false, bool userRequested = false); bool isLayerVisible() const { return layerIsVisible; }public Q_SLOTS: void toggleVisibility(); void closeClicked();Q_SIGNALS: void triggered(bool hidden);protected: bool eventFilter(QObject * obj, QEvent * ev) override; bool event(QEvent* ev) override;private: Ui::ModalOverlay *ui; int bestHeaderHeight; //best known height (based on the headers) QDateTime bestHeaderDate; QVector<QPair<qint64, double> > blockProcessTime; bool layerIsVisible; bool userClosed; QPropertyAnimation m_animation; void UpdateHeaderSyncLabel();};#endif // BITCOIN_QT_MODALOVERLAY_H