Files
triangles_v5/src/ui_interface.h
T
sami7777 03073bd597 Rename src/signal.h to src/util_signal.h
Avoids collision with the POSIX <signal.h> system header. Pure
mechanical include-path update — no behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 18:01:53 -07:00

104 lines
3.2 KiB
C++

// 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 TRIANGLES_UI_INTERFACE_H
#define TRIANGLES_UI_INTERFACE_H
#include "util_signal.h"
#include <optional>
#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. */
CSignal<void(const std::string& message, const std::string& caption, int style)> ThreadSafeMessageBox;
/** Ask the user whether they want to pay a fee or not. */
CSignal<bool(int64_t nFeeRequired, const std::string& strCaption)> ThreadSafeAskFee;
/** Handle a URL passed at the command line. */
CSignal<void(const std::string& strURI)> ThreadSafeHandleURI;
/** Progress message during initialization. */
CSignal<void(const std::string& message)> InitMessage;
/** Initiate client shutdown. */
CSignal<void()> QueueShutdown;
/** Translate a message to the native language of the user. */
CSignal<std::string(const char* psz)> Translate;
/** Block chain changed. */
CSignal<void()> NotifyBlocksChanged;
/** Number of network connections changed. */
CSignal<void(int newNumConnections)> NotifyNumConnectionsChanged;
};
extern CClientUIInterface uiInterface;
/**
* Translation function: Call Translate signal on UI interface, which returns
* an std::optional. If no translation slot is registered, fall back to the
* untranslated input.
*/
inline std::string _(const char* psz)
{
std::optional<std::string> rv = uiInterface.Translate(psz);
return rv ? *rv : psz;
}
#endif