#include <wx/wxprec.h>
#include <wx/wx.h>
#include "../include/wxdragon.h"
#include <wx/notifmsg.h>
#include <wx/generic/notifmsg.h>
WXD_EXPORTED wxd_NotificationMessage_t*
wxd_NotificationMessage_Create(const char* title, const char* message, wxd_Window_t* parent,
int flags)
{
wxString wxTitle = WXD_STR_TO_WX_STRING_UTF8_NULL_OK(title);
wxString wxMessage = WXD_STR_TO_WX_STRING_UTF8_NULL_OK(message);
wxWindow* wxParent = parent ? reinterpret_cast<wxWindow*>(parent) : nullptr;
#ifdef __WXMSW__
wxGenericNotificationMessage* instance =
new wxGenericNotificationMessage(wxTitle, wxMessage, wxParent, flags);
#else
wxNotificationMessage* instance =
new wxNotificationMessage(wxTitle, wxMessage, wxParent, flags);
#endif
return reinterpret_cast<wxd_NotificationMessage_t*>(instance);
}
WXD_EXPORTED void
wxd_NotificationMessage_Destroy(wxd_NotificationMessage_t* self)
{
if (self) {
delete reinterpret_cast<wxNotificationMessage*>(self);
}
}
WXD_EXPORTED bool
wxd_NotificationMessage_Show(wxd_NotificationMessage_t* self, int timeout)
{
if (!self)
return false;
return reinterpret_cast<wxNotificationMessage*>(self)->Show(timeout);
}
WXD_EXPORTED bool
wxd_NotificationMessage_Close(wxd_NotificationMessage_t* self)
{
if (!self)
return false;
return reinterpret_cast<wxNotificationMessage*>(self)->Close();
}
WXD_EXPORTED void
wxd_NotificationMessage_SetTitle(wxd_NotificationMessage_t* self, const char* title)
{
if (!self)
return;
wxString wxTitle = WXD_STR_TO_WX_STRING_UTF8_NULL_OK(title);
reinterpret_cast<wxNotificationMessage*>(self)->SetTitle(wxTitle);
}
WXD_EXPORTED void
wxd_NotificationMessage_SetMessage(wxd_NotificationMessage_t* self, const char* message)
{
if (!self)
return;
wxString wxMessage = WXD_STR_TO_WX_STRING_UTF8_NULL_OK(message);
reinterpret_cast<wxNotificationMessage*>(self)->SetMessage(wxMessage);
}
WXD_EXPORTED void
wxd_NotificationMessage_SetFlags(wxd_NotificationMessage_t* self, int flags)
{
if (!self)
return;
reinterpret_cast<wxNotificationMessage*>(self)->SetFlags(flags);
}
WXD_EXPORTED void
wxd_NotificationMessage_SetParent(wxd_NotificationMessage_t* self, wxd_Window_t* parent)
{
if (!self)
return;
wxWindow* wxParent = parent ? reinterpret_cast<wxWindow*>(parent) : nullptr;
reinterpret_cast<wxNotificationMessage*>(self)->SetParent(wxParent);
}
WXD_EXPORTED bool
wxd_NotificationMessage_AddAction(wxd_NotificationMessage_t* self, wxd_Id actionid,
const char* label)
{
if (!self)
return false;
wxString wxLabel = WXD_STR_TO_WX_STRING_UTF8_NULL_OK(label);
return reinterpret_cast<wxNotificationMessage*>(self)->AddAction(actionid, wxLabel);
}