]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/unix/gsockunx.h
wxGTK/Cygwin fix (patch 914565)
[wxWidgets.git] / include / wx / unix / gsockunx.h
index 19e210ae3c2dc6a80bd1371eddc8a87c8ede9b2e..2eba13f4ef3f61e033bd317bc1d8c9216553b76e 100644 (file)
@@ -75,9 +75,9 @@ protected:
     virtual void EventLoop_Install_Callback(GSocketEvent event) = 0;
     virtual void EventLoop_Uninstall_Callback(GSocketEvent event) = 0;
 public:
-//DFE: We can't protect these data member until the GUI code is updated
-//protected:
-#else //def wxUSE_GSOCKET_CPLUSPLUS
+    /* DFE: We can't protect these data member until the GUI code is updated */
+    /* protected: */
+#else /* def wxUSE_GSOCKET_CPLUSPLUS */
 
 #ifdef __cplusplus
 extern "C" {
@@ -85,7 +85,7 @@ extern "C" {
 /* Definition of GSocket */
 struct _GSocket
 {
-#endif //def wxUSE_GSOCKET_CPLUSPLUS
+#endif /* def wxUSE_GSOCKET_CPLUSPLUS */
   int m_fd;
   GAddress *m_local;
   GAddress *m_peer;
@@ -112,7 +112,31 @@ struct _GSocket
 #ifdef __cplusplus
 }
 #endif  /* __cplusplus */
-#endif //ndef wxUSE_GSOCKET_CPLUSPLUS
+#else
+/**************************************************************************/
+/* GSocketBSDGUIShim */
+class GSocketBSDGUIShim:public GSocketBSD
+{
+    friend void GSocket_SetGUIFunctions(struct GSocketGUIFunctionsTable *guifunc);
+public:
+    static inline bool GUI_Init();
+    static inline void GUI_Cleanup();
+    static inline bool UseGUI();
+    GSocketBSDGUIShim();
+    virtual ~GSocketBSDGUIShim();
+protected:
+    virtual void EventLoop_Enable_Events();
+    virtual void EventLoop_Disable_Events();
+    virtual void EventLoop_Install_Callback(GSocketEvent event);
+    virtual void EventLoop_Uninstall_Callback(GSocketEvent event);
+private:
+/* Table of GUI-related functions. We must call them indirectly because
+ * of wxBase and GUI separation: */
+
+    static struct GSocketGUIFunctionsTable *ms_gui_functions;
+};
+
+#endif /* ndef wxUSE_GSOCKET_CPLUSPLUS */
 
 #ifdef __cplusplus
 extern "C" {
@@ -132,7 +156,7 @@ struct _GAddress
 }
 #endif  /* __cplusplus */
 
-// Compatibility methods to support old C API (from gsocket.h)
+/* Compatibility methods to support old C API (from gsocket.h) */
 #ifdef wxUSE_GSOCKET_CPLUSPLUS
 inline void GSocket_Shutdown(GSocket *socket)
 {   socket->Shutdown(); }
@@ -168,7 +192,7 @@ inline void GSocket_SetCallback(GSocket *socket, GSocketEventFlags flags,
 inline void GSocket_UnsetCallback(GSocket *socket, GSocketEventFlags flags)
 {   socket->UnsetCallback(flags); }
 
-#endif //def wxUSE_GSOCKET_CPLUSPLUS
+#endif /* def wxUSE_GSOCKET_CPLUSPLUS */
 
 #ifdef __cplusplus
 extern "C" {
@@ -202,7 +226,7 @@ void _GSocket_Disable(GSocket *socket, GSocketEvent event);
 #ifndef wxUSE_GSOCKET_CPLUSPLUS
 void _GSocket_Detected_Read(GSocket *socket);
 void _GSocket_Detected_Write(GSocket *socket);
-#endif //ndef wxUSE_GSOCKET_CPLUSPLUS
+#endif /* ndef wxUSE_GSOCKET_CPLUSPLUS */
 
 /* GAddress */