X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..c0da0dbabf2d3cf8e1a76a2c82608822d15d0625:/src/gtk/gsockgtk.cpp diff --git a/src/gtk/gsockgtk.cpp b/src/gtk/gsockgtk.cpp index d7f4657741..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 wxWidgets licence + * 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 */