From: Vadim Zeitlin Date: Fri, 1 Oct 1999 13:53:26 +0000 (+0000) Subject: renamed gsockmot.cpp to *.c X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d391a3451080638e6b1f2f24f92078d18c5ab9d8 renamed gsockmot.cpp to *.c git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/motif/private.h b/include/wx/motif/private.h index 4660979bae..23737aecba 100644 --- a/include/wx/motif/private.h +++ b/include/wx/motif/private.h @@ -110,5 +110,11 @@ private: // argument is of type "wxWindow *" #define GetWidget(w) ((Widget)(w)->GetHandle()) +// ---------------------------------------------------------------------------- +// accessors for C modules +// ---------------------------------------------------------------------------- + +extern "C" XtAppContext wxGetAppContext(); + #endif // _WX_PRIVATE_H_ diff --git a/src/motif/app.cpp b/src/motif/app.cpp index 72ab9cb7b2..fd96ab7e44 100644 --- a/src/motif/app.cpp +++ b/src/motif/app.cpp @@ -763,3 +763,12 @@ wxApp::GetStdIcon(int which) const return wxIcon(error_xpm); } } + +// ---------------------------------------------------------------------------- +// accessors for C modules +// ---------------------------------------------------------------------------- + +extern "C" XtAppContext wxGetAppContext() +{ + return (XtAppContext)wxTheApp->GetAppContext(); +} diff --git a/src/motif/gsockmot.c b/src/motif/gsockmot.c new file mode 100644 index 0000000000..797c3cff7b --- /dev/null +++ b/src/motif/gsockmot.c @@ -0,0 +1,120 @@ +/* ------------------------------------------------------------------------- + * Project: GSocket (Generic Socket) for WX + * Name: gsockmot.c + * Purpose: GSocket: Motif part + * CVSID: $Id$ + * ------------------------------------------------------------------------- */ + +#include "wx/setup.h" + +#if wxUSE_SOCKETS + +#include +#include +#include "wx/gsocket.h" +#include "wx/unix/gsockunx.h" + +extern XtAppContext wxGetAppContext(); + +static void _GSocket_Motif_Input(XtPointer data, int *fid, + XtInputId *id) +{ + GSocket *socket = (GSocket *)data; + + _GSocket_Detected_Read(socket); +} + +static void _GSocket_Motif_Output(XtPointer data, int *fid, + XtInputId *id) +{ + GSocket *socket = (GSocket *)data; + + _GSocket_Detected_Write(socket); +} + +void _GSocket_GUI_Init(GSocket *socket) +{ + int i; + int *m_id; + + socket->m_gui_dependent = (char *)malloc(sizeof(int)*2); + m_id = (int *)(socket->m_gui_dependent); + + m_id[0] = -1; + m_id[1] = -1; +} + +void _GSocket_GUI_Destroy(GSocket *socket) +{ + free(socket->m_gui_dependent); +} + +void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) +{ + int *m_id = (int *)(socket->m_gui_dependent); + int c; + + if (socket->m_fd == -1) + return; + + switch (event) + { + case GSOCK_LOST: /* fall-through */ + case GSOCK_INPUT: c = 0; break; + case GSOCK_OUTPUT: c = 1; break; + case GSOCK_CONNECTION: c = ((socket->m_server) ? 0 : 1); break; + default: return; + } + + if (m_id[c] != -1) + XtRemoveInput(m_id[c]); + + if (c == 0) + { + m_id[0] = XtAppAddInput(wxGetAppContext(), socket->m_fd, + (XtPointer *)XtInputReadMask, + (XtInputCallbackProc) _GSocket_Motif_Input, + (XtPointer) socket); + } + else + { + m_id[1] = XtAppAddInput(wxGetAppContext(), socket->m_fd, + (XtPointer *)XtInputWriteMask, + (XtInputCallbackProc) _GSocket_Motif_Output, + (XtPointer) socket); + } +} + +void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) +{ + int *m_id = (int *)(socket->m_gui_dependent); + int c; + + switch (event) + { + case GSOCK_LOST: /* fall-through */ + case GSOCK_INPUT: c = 0; break; + case GSOCK_OUTPUT: c = 1; break; + case GSOCK_CONNECTION: c = ((socket->m_server) ? 0 : 1); break; + default: return; + } + + if (m_id[c] != -1) + XtRemoveInput(m_id[c]); + + m_id[c] = -1; +} + +void _GSocket_Enable_Events(GSocket *socket) +{ + _GSocket_Install_Callback(socket, GSOCK_INPUT); + _GSocket_Install_Callback(socket, GSOCK_OUTPUT); +} + +void _GSocket_Disable_Events(GSocket *socket) +{ + _GSocket_Uninstall_Callback(socket, GSOCK_INPUT); + _GSocket_Uninstall_Callback(socket, GSOCK_OUTPUT); +} + +#endif /* wxUSE_SOCKETS */ diff --git a/src/motif/gsockmot.cpp b/src/motif/gsockmot.cpp deleted file mode 100644 index d7ed9ebf90..0000000000 --- a/src/motif/gsockmot.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// ------------------------------------------------------------------------- -// Project: GSocket (Generic Socket) for WX -// Name: gsockmot.cpp -// Purpose: GSocket: Motif part -// CVSID: $Id$ -// ------------------------------------------------------------------------- - -#include "wx/setup.h" - -#if wxUSE_SOCKETS - -#include -#include -#include "wx/gsocket.h" -#include "wx/app.h" -#include "wx/unix/gsockunx.h" - -#define wxAPP_CONTEXT ((XtAppContext)wxTheApp->GetAppContext()) - -static void _GSocket_Motif_Input(XtPointer data, int *fid, - XtInputId *id) -{ - GSocket *socket = (GSocket *)data; - - _GSocket_Detected_Read(socket); -} - -static void _GSocket_Motif_Output(XtPointer data, int *fid, - XtInputId *id) -{ - GSocket *socket = (GSocket *)data; - - _GSocket_Detected_Write(socket); -} - -void _GSocket_GUI_Init(GSocket *socket) -{ - int i; - int *m_id; - - socket->m_gui_dependent = (char *)malloc(sizeof(int)*2); - m_id = (int *)(socket->m_gui_dependent); - - m_id[0] = -1; - m_id[1] = -1; -} - -void _GSocket_GUI_Destroy(GSocket *socket) -{ - free(socket->m_gui_dependent); -} - -void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) -{ - int *m_id = (int *)(socket->m_gui_dependent); - int c; - - if (socket->m_fd == -1) - return; - - switch (event) - { - case GSOCK_LOST: /* fall-through */ - case GSOCK_INPUT: c = 0; break; - case GSOCK_OUTPUT: c = 1; break; - case GSOCK_CONNECTION: c = ((socket->m_server) ? 0 : 1); break; - default: return; - } - - if (m_id[c] != -1) - XtRemoveInput(m_id[c]); - - if (c == 0) - { - m_id[0] = XtAppAddInput(wxAPP_CONTEXT, socket->m_fd, - (XtPointer *)XtInputReadMask, - (XtInputCallbackProc) _GSocket_Motif_Input, - (XtPointer) socket); - } - else - { - m_id[1] = XtAppAddInput(wxAPP_CONTEXT, socket->m_fd, - (XtPointer *)XtInputWriteMask, - (XtInputCallbackProc) _GSocket_Motif_Output, - (XtPointer) socket); - } -} - -void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) -{ - int *m_id = (int *)(socket->m_gui_dependent); - int c; - - switch (event) - { - case GSOCK_LOST: /* fall-through */ - case GSOCK_INPUT: c = 0; break; - case GSOCK_OUTPUT: c = 1; break; - case GSOCK_CONNECTION: c = ((socket->m_server) ? 0 : 1); break; - default: return; - } - - if (m_id[c] != -1) - XtRemoveInput(m_id[c]); - - m_id[c] = -1; -} - -void _GSocket_Enable_Events(GSocket *socket) -{ - _GSocket_Install_Callback(socket, GSOCK_INPUT); - _GSocket_Install_Callback(socket, GSOCK_OUTPUT); -} - -void _GSocket_Disable_Events(GSocket *socket) -{ - _GSocket_Uninstall_Callback(socket, GSOCK_INPUT); - _GSocket_Uninstall_Callback(socket, GSOCK_OUTPUT); -} - -#endif // wxUSE_SOCKETS