X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..83e8b44cc0bf8a2a8f162c67162f9ed68accd15f:/src/gtk/gsockgtk.cpp?ds=sidebyside diff --git a/src/gtk/gsockgtk.cpp b/src/gtk/gsockgtk.cpp index 0115e520db..390b19982e 100644 --- a/src/gtk/gsockgtk.cpp +++ b/src/gtk/gsockgtk.cpp @@ -1,12 +1,13 @@ /* ------------------------------------------------------------------------- * Project: GSocket (Generic Socket) for WX - * Name: gsockgtk.c + * Name: src/gtk/gsockgtk.cpp * Purpose: GSocket: GTK part * Licence: The wxWindows licence * CVSID: $Id$ * ------------------------------------------------------------------------- */ -#include "wx/setup.h" +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" #if wxUSE_SOCKETS @@ -21,6 +22,8 @@ #include "wx/unix/gsockunx.h" +extern "C" { +static void _GSocket_GDK_Input(gpointer data, gint source, GdkInputCondition condition) @@ -28,21 +31,25 @@ void _GSocket_GDK_Input(gpointer data, GSocket *socket = (GSocket *)data; if (condition & GDK_INPUT_READ) - socket->m_functions->Detected_Read(socket); + socket->Detected_Read(); if (condition & GDK_INPUT_WRITE) - socket->m_functions->Detected_Write(socket); + socket->Detected_Write(); } +} + +bool GSocketGUIFunctionsTableConcrete::CanUseEventLoop() +{ return true; } -int _GSocket_GUI_Init(void) +bool GSocketGUIFunctionsTableConcrete::OnInit(void) { return 1; } -void _GSocket_GUI_Cleanup(void) +void GSocketGUIFunctionsTableConcrete::OnExit(void) { } - -int _GSocket_GUI_Init_Socket(GSocket *socket) + +bool GSocketGUIFunctionsTableConcrete::Init_Socket(GSocket *socket) { gint *m_id; @@ -55,12 +62,12 @@ int _GSocket_GUI_Init_Socket(GSocket *socket) return TRUE; } -void _GSocket_GUI_Destroy_Socket(GSocket *socket) +void GSocketGUIFunctionsTableConcrete::Destroy_Socket(GSocket *socket) { free(socket->m_gui_dependent); } -void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) +void GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket *socket, GSocketEvent event) { gint *m_id = (gint *)(socket->m_gui_dependent); int c; @@ -86,7 +93,7 @@ void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) (gpointer)socket); } -void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) +void GSocketGUIFunctionsTableConcrete::Uninstall_Callback(GSocket *socket, GSocketEvent event) { gint *m_id = (gint *)(socket->m_gui_dependent); int c; @@ -103,21 +110,22 @@ void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) } if (m_id[c] != -1) + { gdk_input_remove(m_id[c]); - - m_id[c] = -1; + m_id[c] = -1; + } } -void _GSocket_Enable_Events(GSocket *socket) +void GSocketGUIFunctionsTableConcrete::Enable_Events(GSocket *socket) { - _GSocket_Install_Callback(socket, GSOCK_INPUT); - _GSocket_Install_Callback(socket, GSOCK_OUTPUT); + Install_Callback(socket, GSOCK_INPUT); + Install_Callback(socket, GSOCK_OUTPUT); } -void _GSocket_Disable_Events(GSocket *socket) +void GSocketGUIFunctionsTableConcrete::Disable_Events(GSocket *socket) { - _GSocket_Uninstall_Callback(socket, GSOCK_INPUT); - _GSocket_Uninstall_Callback(socket, GSOCK_OUTPUT); + Uninstall_Callback(socket, GSOCK_INPUT); + Uninstall_Callback(socket, GSOCK_OUTPUT); } #else /* !wxUSE_SOCKETS */