code integration
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
#include "wxBusEvent.h"
|
||||
|
||||
wxDEFINE_EVENT(wx_BUSEVENT_MESSAGE, wxBusEvent);
|
||||
//--------------------------------------------------------------
|
||||
/* Constructor */
|
||||
wxBusEvent::wxBusEvent(message_t message, const int id)
|
||||
: wxCommandEvent(wx_BUSEVENT_MESSAGE, id)
|
||||
, m_message(std::move(message))
|
||||
{
|
||||
// Nothing to do here
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
/* Clone method for wxWidgets event system */
|
||||
wxEvent *wxBusEvent::Clone() const
|
||||
{
|
||||
auto *clonedEvent = new wxBusEvent(m_message, GetId());
|
||||
clonedEvent->SetEventObject(GetEventObject()); // Copy the event object
|
||||
return clonedEvent;
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
/* Get the message type ID */
|
||||
wxBusEvent::MessageTypeID wxBusEvent::getMessageTypeID() const
|
||||
{
|
||||
return m_message ? m_message->getMessageTypeID() : 0; // Return 0 if message is null
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
/* Get the message data */
|
||||
wxBusEvent::message_t wxBusEvent::getMessage() const
|
||||
{
|
||||
return m_message;
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include <sdi_toolBox/desktop/eventBus/defs.h>
|
||||
#include <sdi_toolBox/desktop/eventBus/message.h>
|
||||
#include <wx/wx.h>
|
||||
|
||||
//--------------------------------------------------------------
|
||||
class wxBusEvent : public wxCommandEvent
|
||||
{
|
||||
using MessageTypeID = sdi_toolBox::desktop::eventBus::MessageTypeID;
|
||||
using message_t = std::shared_ptr<sdi_toolBox::desktop::eventBus::Message>;
|
||||
|
||||
public:
|
||||
wxBusEvent() = delete; // Default constructor
|
||||
virtual ~wxBusEvent() = default; // Default destructor
|
||||
wxBusEvent(const wxBusEvent &other) = default; // Copy constructor
|
||||
wxBusEvent(wxBusEvent &&other) noexcept = default; // Move constructor
|
||||
wxBusEvent &operator=(const wxBusEvent &other) = delete; // Copy assignment
|
||||
wxBusEvent &operator=(wxBusEvent &&other) noexcept = delete; // Move assignment
|
||||
|
||||
explicit wxBusEvent(message_t message, int id = wxID_ANY); // Constructor
|
||||
|
||||
[[nodiscard]] wxEvent *Clone() const override; // Clone method for wxWidgets event system
|
||||
|
||||
// Data management
|
||||
[[nodiscard]] MessageTypeID getMessageTypeID() const; // Get the message type ID
|
||||
[[nodiscard]] message_t getMessage() const; // Get the message data
|
||||
|
||||
protected:
|
||||
message_t m_message;
|
||||
};
|
||||
//--------------------------------------------------------------
|
||||
wxDECLARE_EVENT(wx_BUSEVENT_MESSAGE, wxBusEvent);
|
||||
Reference in New Issue
Block a user