]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dialup.h
using subclass as impl ptr, common code in macro because mix-in are not possible...
[wxWidgets.git] / include / wx / dialup.h
index cfd3dd802ba8ec9649044a89d001e446b569cadf..85587ae57c614ecdafd3cf60a94f75af29c2e263 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/dialup.h
-// Purpose:     Network related wxWindows classes and functions
+// Purpose:     Network related wxWidgets classes and functions
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     07.07.99
@@ -9,22 +9,18 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_NET_H
-#define _WX_NET_H
-
-#ifdef __GNUG__
-    #pragma interface "dialup.h"
-#endif
+#ifndef _WX_DIALUP_H
+#define _WX_DIALUP_H
 
 #if wxUSE_DIALUP_MANAGER
 
+#include "wx/event.h"
+
 // ----------------------------------------------------------------------------
 // misc
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxArrayString;
-
-extern const wxChar *wxEmptyString;
+class WXDLLIMPEXP_FWD_BASE wxArrayString;
 
 #define WXDIALUP_MANAGER_DEFAULT_BEACONHOST  wxT("www.yahoo.com")
 
@@ -47,7 +43,7 @@ extern const wxChar *wxEmptyString;
  *    main thread?
  */
 
-class WXDLLEXPORT wxDialUpManager
+class WXDLLIMPEXP_CORE wxDialUpManager
 {
 public:
     // this function should create and return the object of the
@@ -56,7 +52,7 @@ public:
     static wxDialUpManager *Create();
 
     // could the dialup manager be initialized correctly? If this function
-    // returns FALSE, no other functions will work neither, so it's a good idea
+    // returns false, no other functions will work neither, so it's a good idea
     // to call this function and check its result before calling any other
     // wxDialUpManager methods
     virtual bool IsOk() const = 0;
@@ -78,20 +74,20 @@ public:
     // if no username/password are given, the function will try to do without
     // them, but will ask the user if really needed
     //
-    // if async parameter is FALSE, the function waits until the end of dialing
-    // and returns TRUE upon successful completion.
-    // if async is TRUE, the function only initiates the connection and returns
+    // if async parameter is false, the function waits until the end of dialing
+    // and returns true upon successful completion.
+    // if async is true, the function only initiates the connection and returns
     // immediately - the result is reported via events (an event is sent
     // anyhow, but if dialing failed it will be a DISCONNECTED one)
     virtual bool Dial(const wxString& nameOfISP = wxEmptyString,
                       const wxString& username = wxEmptyString,
                       const wxString& password = wxEmptyString,
-                      bool async = TRUE) = 0;
+                      bool async = true) = 0;
 
-    // returns TRUE if (async) dialing is in progress
+    // returns true if (async) dialing is in progress
     virtual bool IsDialing() const = 0;
 
-    // cancel dialing the number initiated with Dial(async = TRUE)
+    // cancel dialing the number initiated with Dial(async = true)
     // NB: this won't result in DISCONNECTED event being sent
     virtual bool CancelDialing() = 0;
 
@@ -101,7 +97,7 @@ public:
     // online status
     // -------------
 
-    // returns TRUE if the computer has a permanent network connection (i.e. is
+    // returns true if the computer has a permanent network connection (i.e. is
     // on a LAN) and so there is no need to use Dial() function to go online
     //
     // NB: this functions tries to guess the result and it is not always
@@ -109,7 +105,7 @@ public:
     //     confirmation or give him a possibility to override it
     virtual bool IsAlwaysOnline() const = 0;
 
-    // returns TRUE if the computer is connected to the network: under Windows,
+    // returns true if the computer is connected to the network: under Windows,
     // this just means that a RAS connection exists, under Unix we check that
     // the "well-known host" (as specified by SetWellKnownHost) is reachable
     virtual bool IsOnline() const = 0;
@@ -118,7 +114,7 @@ public:
     // so, in general, the user should be allowed to override it. This function
     // allows to forcefully set the online status - whatever our internal
     // algorithm may think about it.
-    virtual void SetOnlineStatus(bool isOnline = TRUE) = 0;
+    virtual void SetOnlineStatus(bool isOnline = true) = 0;
 
     // set misc wxDialUpManager options
     // --------------------------------
@@ -129,7 +125,7 @@ public:
     // Windows, the notification about the change of connection status is
     // instantenous.
     //
-    // Returns FALSE if couldn't set up automatic check for online status.
+    // Returns false if couldn't set up automatic check for online status.
     virtual bool EnableAutoCheckOnlineStatus(size_t nSeconds = 60) = 0;
 
     // disable automatic check for connection status change - notice that the
@@ -153,11 +149,16 @@ public:
 };
 
 // ----------------------------------------------------------------------------
-// DIALUP events processing
+// wxDialUpManager events
 // ----------------------------------------------------------------------------
 
+class WXDLLIMPEXP_FWD_CORE wxDialUpEvent;
+
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIALUP_CONNECTED, wxDialUpEvent )
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIALUP_DISCONNECTED, wxDialUpEvent )
+
 // the event class for the dialup events
-class WXDLLEXPORT wxDialUpEvent : public wxEvent
+class WXDLLIMPEXP_CORE wxDialUpEvent : public wxEvent
 {
 public:
     wxDialUpEvent(bool isConnected, bool isOwnEvent) : wxEvent(isOwnEvent)
@@ -174,16 +175,27 @@ public:
     // process (i.e. does it result from our own attempt to establish the
     // connection)?
     bool IsOwnEvent() const { return m_id != 0; }
+
+    // implement the base class pure virtual
+    virtual wxEvent *Clone() const { return new wxDialUpEvent(*this); }
+
+private:
+    DECLARE_NO_ASSIGN_CLASS(wxDialUpEvent)
 };
 
 // the type of dialup event handler function
-typedef void (wxObject::*wxDialUpEventFunction)(wxDialUpEvent&);
+typedef void (wxEvtHandler::*wxDialUpEventFunction)(wxDialUpEvent&);
+
+#define wxDialUpEventHandler(func) \
+    wxEVENT_HANDLER_CAST(wxDialUpEventFunction, func)
 
 // macros to catch dialup events
-#define EVT_DIALUP_CONNECTED(func) { wxEVT_DIALUP_CONNECTED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxDialUpEventFunction) & func, NULL},
-#define EVT_DIALUP_DISCONNECTED(func) { wxEVT_DIALUP_DISCONNECTED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxDialUpEventFunction) & func, NULL},
+#define EVT_DIALUP_CONNECTED(func) \
+    wx__DECLARE_EVT0(wxEVT_DIALUP_CONNECTED, wxDialUpEventHandler(func))
+#define EVT_DIALUP_DISCONNECTED(func) \
+    wx__DECLARE_EVT0(wxEVT_DIALUP_DISCONNECTED, wxDialUpEventHandler(func))
 
 
 #endif // wxUSE_DIALUP_MANAGER
 
-#endif // _WX_NET_H
+#endif // _WX_DIALUP_H