Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a266f59
commit c0d29a8
Showing
2 changed files
with
109 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,7 +22,7 @@ | |
moc_*.cpp | ||
moc_*.h | ||
qrc_*.cpp | ||
ui_*.h | ||
#ui_*.h | ||
#Makefile* | ||
*build-* | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
// Copyright (c) 2010 Satoshi Nakamoto | ||
// Copyright (c) 2012 The Bitcoin developers | ||
// Distributed under the MIT/X11 software license, see the accompanying | ||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
|
||
#ifndef BITCOIN_UI_INTERFACE_H | ||
#define BITCOIN_UI_INTERFACE_H | ||
|
||
#include <boost/signals2/last_value.hpp> | ||
#include <boost/signals2/signal.hpp> | ||
|
||
#include <string> | ||
|
||
#include <stdint.h> | ||
|
||
class CBasicKeyStore; | ||
class CWallet; | ||
class uint256; | ||
|
||
/** General change type (added, updated, removed). */ | ||
enum ChangeType | ||
{ | ||
CT_NEW, | ||
CT_UPDATED, | ||
CT_DELETED | ||
}; | ||
|
||
/** Signals for UI communication. */ | ||
class CClientUIInterface | ||
{ | ||
public: | ||
/** Flags for CClientUIInterface::ThreadSafeMessageBox */ | ||
enum MessageBoxFlags | ||
{ | ||
YES = 0x00000002, | ||
OK = 0x00000004, | ||
NO = 0x00000008, | ||
YES_NO = (YES|NO), | ||
CANCEL = 0x00000010, | ||
APPLY = 0x00000020, | ||
CLOSE = 0x00000040, | ||
OK_DEFAULT = 0x00000000, | ||
YES_DEFAULT = 0x00000000, | ||
NO_DEFAULT = 0x00000080, | ||
CANCEL_DEFAULT = 0x80000000, | ||
ICON_EXCLAMATION = 0x00000100, | ||
ICON_HAND = 0x00000200, | ||
ICON_WARNING = ICON_EXCLAMATION, | ||
ICON_ERROR = ICON_HAND, | ||
ICON_QUESTION = 0x00000400, | ||
ICON_INFORMATION = 0x00000800, | ||
ICON_STOP = ICON_HAND, | ||
ICON_ASTERISK = ICON_INFORMATION, | ||
ICON_MASK = (0x00000100|0x00000200|0x00000400|0x00000800), | ||
FORWARD = 0x00001000, | ||
BACKWARD = 0x00002000, | ||
RESET = 0x00004000, | ||
HELP = 0x00008000, | ||
MORE = 0x00010000, | ||
SETUP = 0x00020000, | ||
// Force blocking, modal message box dialog (not just OS notification) | ||
MODAL = 0x00040000 | ||
}; | ||
|
||
/** Show message box. */ | ||
boost::signals2::signal<void (const std::string& message, const std::string& caption, int style)> ThreadSafeMessageBox; | ||
|
||
/** Ask the user whether they want to pay a fee or not. */ | ||
boost::signals2::signal<bool (int64_t nFeeRequired, const std::string& strCaption), boost::signals2::last_value<bool> > ThreadSafeAskFee; | ||
|
||
/** Handle a URL passed at the command line. */ | ||
boost::signals2::signal<void (const std::string& strURI)> ThreadSafeHandleURI; | ||
|
||
/** Progress message during initialization. */ | ||
boost::signals2::signal<void (const std::string &message)> InitMessage; | ||
|
||
/** Initiate client shutdown. */ | ||
boost::signals2::signal<void ()> QueueShutdown; | ||
|
||
/** Translate a message to the native language of the user. */ | ||
boost::signals2::signal<std::string (const char* psz)> Translate; | ||
|
||
/** Block chain changed. */ | ||
boost::signals2::signal<void ()> NotifyBlocksChanged; | ||
|
||
/** Number of network connections changed. */ | ||
boost::signals2::signal<void (int newNumConnections)> NotifyNumConnectionsChanged; | ||
|
||
/** | ||
* New, updated or cancelled alert. | ||
* @note called with lock cs_mapAlerts held. | ||
*/ | ||
boost::signals2::signal<void (const uint256 &hash, ChangeType status)> NotifyAlertChanged; | ||
}; | ||
|
||
extern CClientUIInterface uiInterface; | ||
|
||
/** | ||
* Translation function: Call Translate signal on UI interface, which returns a boost::optional result. | ||
* If no translation slot is registered, nothing is returned, and simply return the input. | ||
*/ | ||
inline std::string _(const char* psz) | ||
{ | ||
boost::optional<std::string> rv = uiInterface.Translate(psz); | ||
return rv ? (*rv) : psz; | ||
} | ||
|
||
#endif |