1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#pragma once
#include "messages/FileSaveConfirmation.h"
namespace test
{
class FileSaveConfirmationHelper
{
private:
std::size_t _msgSubscription;
radiant::FileSaveConfirmation::Action _actionToTake;
bool _messageReceived;
public:
FileSaveConfirmationHelper(radiant::FileSaveConfirmation::Action actionToTake) :
_actionToTake(actionToTake),
_messageReceived(false)
{
// Subscribe to the event asking for the target path
_msgSubscription = GlobalRadiantCore().getMessageBus().addListener(
radiant::IMessage::Type::FileSaveConfirmation,
radiant::TypeListener<radiant::FileSaveConfirmation>(
[this](radiant::FileSaveConfirmation& msg)
{
_messageReceived = true;
msg.setAction(_actionToTake);
msg.setHandled(true);
}));
}
bool messageReceived() const
{
return _messageReceived;
}
~FileSaveConfirmationHelper()
{
GlobalRadiantCore().getMessageBus().removeListener(_msgSubscription);
}
};
}
|