X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a0b4c98b8aed2e0006d75adc158f526018650dba..723aa01a832bf97a43f9cb5c0850e82b4998cd7d:/include/wx/dialup.h diff --git a/include/wx/dialup.h b/include/wx/dialup.h index f10166db30..f907c7ac23 100644 --- a/include/wx/dialup.h +++ b/include/wx/dialup.h @@ -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,18 +9,20 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_NET_H -#define _WX_NET_H +#ifndef _WX_DIALUP_H +#define _WX_DIALUP_H #if wxUSE_DIALUP_MANAGER +#include "wx/event.h" + // ---------------------------------------------------------------------------- -// constants +// misc // ---------------------------------------------------------------------------- -extern const wxChar *wxEmptyString; +class WXDLLIMPEXP_FWD_BASE wxArrayString; -#define WXDIALUP_MANAGER_DEFAULT_BEACONHOST _T("www.yahoo.com") +#define WXDIALUP_MANAGER_DEFAULT_BEACONHOST wxT("www.yahoo.com") // ---------------------------------------------------------------------------- // A class which groups functions dealing with connecting to the network from a @@ -41,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 @@ -50,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; @@ -61,22 +63,31 @@ public: // operations // ---------- + // fills the array with the names of all possible values for the first + // parameter to Dial() on this machine and returns their number (may be 0) + virtual size_t GetISPNames(wxArrayString& names) const = 0; + // dial the given ISP, use username and password to authentificate // - // 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 no nameOfISP is given, the function will select the default one + // + // 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 // 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; @@ -86,7 +97,15 @@ public: // online status // ------------- - // returns TRUE if the computer is connected to the network: under Windows, + // 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 + // guaranteed to be correct, so it's better to ask user for + // 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, // 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; @@ -95,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 // -------------------------------- @@ -106,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 @@ -125,16 +144,21 @@ public: // Sets the commands to start up the network and to hang up again. Used by // the Unix implementations only. virtual void - SetConnectCommand(const wxString& commandDial = _T("/usr/bin/pon"), - const wxString& commandHangup = _T("/usr/bin/poff")) = 0; + SetConnectCommand(const wxString& commandDial = wxT("/usr/bin/pon"), + const wxString& commandHangup = wxT("/usr/bin/poff")) = 0; }; // ---------------------------------------------------------------------------- -// 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) @@ -147,19 +171,31 @@ public: bool IsConnectedEvent() const { return GetEventType() == wxEVT_DIALUP_CONNECTED; } - // does this event come from wxDialUpManager::Dial() or from some extrenal + // does this event come from wxDialUpManager::Dial() or from some external // 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: + wxDECLARE_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