call OnExec() taking wxString argument from OnExecute() by default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -59,12 +59,59 @@ wxConnectionBase::wxConnectionBase(const wxConnectionBase& copy)
|
||||
}
|
||||
|
||||
|
||||
wxConnectionBase::~wxConnectionBase(void)
|
||||
wxConnectionBase::~wxConnectionBase()
|
||||
{
|
||||
if ( m_deletebufferwhendone && m_buffer )
|
||||
if ( m_deletebufferwhendone )
|
||||
delete m_buffer;
|
||||
}
|
||||
|
||||
/* static */
|
||||
wxString wxConnectionBase::GetTextFromData(const void* data,
|
||||
size_t size,
|
||||
wxIPCFormat fmt)
|
||||
{
|
||||
wxString s;
|
||||
switch ( fmt )
|
||||
{
|
||||
case wxIPC_TEXT:
|
||||
// normally the string should be NUL-terminated and size should
|
||||
// include the total size of the buffer, including NUL -- but don't
|
||||
// crash (by trying to access (size_t)-1 bytes) if it doesn't
|
||||
if ( size )
|
||||
size--;
|
||||
|
||||
s = wxString(wx_static_cast(const char *, data), size);
|
||||
break;
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
// TODO: we should handle both wxIPC_UTF16TEXT and wxIPC_UTF32TEXT here
|
||||
// for inter-platform IPC
|
||||
case wxIPC_UNICODETEXT:
|
||||
wxASSERT_MSG( !(size % sizeof(wchar_t)), "invalid buffer size" );
|
||||
if ( size )
|
||||
{
|
||||
size /= sizeof(wchar_t);
|
||||
size--;
|
||||
}
|
||||
|
||||
s = wxString(wx_static_cast(const wchar_t *, data), size);
|
||||
break;
|
||||
|
||||
case wxIPC_UTF8TEXT:
|
||||
if ( size )
|
||||
size--;
|
||||
|
||||
s = wxString::FromUTF8(wx_static_cast(const char *, data), size);
|
||||
break;
|
||||
#endif // wxUSE_UNICODE
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "non-string IPC format in GetTextFromData()" );
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
void *wxConnectionBase::GetBufferAtLeast( size_t bytes )
|
||||
{
|
||||
if ( m_buffersize >= bytes )
|
||||
|
||||
Reference in New Issue
Block a user