]> Git Repo - VerusCoin.git/blob - src/ui_interface.h
Remove debug outs
[VerusCoin.git] / src / ui_interface.h
1 // Copyright (c) 2010 Satoshi Nakamoto
2 // Copyright (c) 2012 The Bitcoin Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or https://www.opensource.org/licenses/mit-license.php .
5
6 #ifndef BITCOIN_UI_INTERFACE_H
7 #define BITCOIN_UI_INTERFACE_H
8
9 #include <stdint.h>
10 #include <string>
11
12 #include <boost/signals2/last_value.hpp>
13 #include <boost/signals2/signal.hpp>
14
15 class CBasicKeyStore;
16 class CWallet;
17 class uint256;
18
19 /** General change type (added, updated, removed). */
20 enum ChangeType
21 {
22     CT_NEW,
23     CT_UPDATED,
24     CT_DELETED
25 };
26
27 /** Signals for UI communication. */
28 class CClientUIInterface
29 {
30 public:
31     /** Flags for CClientUIInterface::ThreadSafeMessageBox */
32     enum MessageBoxFlags
33     {
34         ICON_INFORMATION    = 0,
35         ICON_WARNING        = (1U << 0),
36         ICON_ERROR          = (1U << 1),
37         /**
38          * Mask of all available icons in CClientUIInterface::MessageBoxFlags
39          * This needs to be updated, when icons are changed there!
40          */
41         ICON_MASK = (ICON_INFORMATION | ICON_WARNING | ICON_ERROR),
42
43         /** These values are taken from qmessagebox.h "enum StandardButton" to be directly usable */
44         BTN_OK      = 0x00000400U, // QMessageBox::Ok
45         BTN_YES     = 0x00004000U, // QMessageBox::Yes
46         BTN_NO      = 0x00010000U, // QMessageBox::No
47         BTN_ABORT   = 0x00040000U, // QMessageBox::Abort
48         BTN_RETRY   = 0x00080000U, // QMessageBox::Retry
49         BTN_IGNORE  = 0x00100000U, // QMessageBox::Ignore
50         BTN_CLOSE   = 0x00200000U, // QMessageBox::Close
51         BTN_CANCEL  = 0x00400000U, // QMessageBox::Cancel
52         BTN_DISCARD = 0x00800000U, // QMessageBox::Discard
53         BTN_HELP    = 0x01000000U, // QMessageBox::Help
54         BTN_APPLY   = 0x02000000U, // QMessageBox::Apply
55         BTN_RESET   = 0x04000000U, // QMessageBox::Reset
56         /**
57          * Mask of all available buttons in CClientUIInterface::MessageBoxFlags
58          * This needs to be updated, when buttons are changed there!
59          */
60         BTN_MASK = (BTN_OK | BTN_YES | BTN_NO | BTN_ABORT | BTN_RETRY | BTN_IGNORE |
61                     BTN_CLOSE | BTN_CANCEL | BTN_DISCARD | BTN_HELP | BTN_APPLY | BTN_RESET),
62
63         /** Force blocking, modal message box dialog (not just OS notification) */
64         MODAL               = 0x10000000U,
65
66         /** Do not print contents of message to debug log */
67         SECURE              = 0x40000000U,
68
69         /** Predefined combinations for certain default usage cases */
70         MSG_INFORMATION = ICON_INFORMATION,
71         MSG_WARNING = (ICON_WARNING | BTN_OK | MODAL),
72         MSG_ERROR = (ICON_ERROR | BTN_OK | MODAL)
73     };
74
75     /** Show message box. */
76     boost::signals2::signal<bool (const std::string& message, const std::string& caption, unsigned int style), boost::signals2::last_value<bool> > ThreadSafeMessageBox;
77
78     /** If possible, ask the user a question. If not, falls back to ThreadSafeMessageBox(noninteractive_message, caption, style) and returns false. */
79     boost::signals2::signal<bool (const std::string& message, const std::string& noninteractive_message, const std::string& caption, unsigned int style), boost::signals2::last_value<bool> > ThreadSafeQuestion;
80
81     /** Progress message during initialization. */
82     boost::signals2::signal<void (const std::string &message)> InitMessage;
83
84     /** Number of network connections changed. */
85     boost::signals2::signal<void (int newNumConnections)> NotifyNumConnectionsChanged;
86
87     /**
88      * New, updated or cancelled alert.
89      * @note called with lock cs_mapAlerts held.
90      */
91     boost::signals2::signal<void (const uint256 &hash, ChangeType status)> NotifyAlertChanged;
92
93     /** A wallet has been loaded. */
94     boost::signals2::signal<void (CWallet* wallet)> LoadWallet;
95
96     /** Show progress e.g. for verifychain */
97     boost::signals2::signal<void (const std::string &title, int nProgress)> ShowProgress;
98
99     /** New block has been accepted */
100     boost::signals2::signal<void (const uint256& hash)> NotifyBlockTip;
101 };
102
103 extern CClientUIInterface uiInterface;
104
105 #endif // BITCOIN_UI_INTERFACE_H
This page took 0.028273 seconds and 4 git commands to generate.