class WXDLLIMPEXP_FWD_BASE wxMessageOutput;
class WXDLLIMPEXP_FWD_BASE wxObject;
class WXDLLIMPEXP_FWD_CORE wxRendererNative;
-class WXDLLIMPEXP_FWD_BASE wxStandardPathsBase;
+class WXDLLIMPEXP_FWD_BASE wxStandardPaths;
class WXDLLIMPEXP_FWD_BASE wxString;
class WXDLLIMPEXP_FWD_BASE wxTimer;
class WXDLLIMPEXP_FWD_BASE wxTimerImpl;
-class GSocketManager;
+class wxSocketManager;
// ----------------------------------------------------------------------------
// wxStandardPaths object is normally the same for wxBase and wxGUI
// except in the case of wxMac and wxCocoa
- virtual wxStandardPathsBase& GetStandardPaths();
+ virtual wxStandardPaths& GetStandardPaths();
#if wxUSE_INTL
// called during wxApp initialization to set the locale to correspond to
// functions abstracting differences between GUI and console modes
// ------------------------------------------------------------------------
-#ifdef __WXDEBUG__
// show the assert dialog with the specified message in GUI or just print
// the string to stderr in console mode
//
//
// return true to suppress subsequent asserts, false to continue as before
virtual bool ShowAssertDialog(const wxString& msg) = 0;
-#endif // __WXDEBUG__
// return true if fprintf(stderr) goes somewhere, false otherwise
virtual bool HasStderr() = 0;
- // managing "pending delete" list: in GUI mode we can't immediately delete
- // some objects because there may be unprocessed events for them and so we
- // only do it during the next idle loop iteration while this is, of course,
- // unnecessary in wxBase, so we have a few functions to abstract these
- // operations
-
- // add the object to the pending delete list in GUI, delete it immediately
- // in wxBase
- virtual void ScheduleForDestroy(wxObject *object) = 0;
-
- // remove this object from the pending delete list in GUI, do nothing in
- // wxBase
- virtual void RemoveFromPendingDelete(wxObject *object) = 0;
-
#if wxUSE_SOCKETS
+ // this function is used by wxNet library to set the default socket manager
+ // to use: doing it like this allows us to keep all socket-related code in
+ // wxNet instead of having to pull it in wxBase itself as we'd have to do
+ // if we really implemented wxSocketManager here
+ //
+ // we don't take ownership of this pointer, it should have a lifetime
+ // greater than that of any socket (e.g. be a pointer to a static object)
+ static void SetDefaultSocketManager(wxSocketManager *manager)
+ {
+ ms_manager = manager;
+ }
+
// return socket manager: this is usually different for console and GUI
// applications (although some ports use the same implementation for both)
- virtual GSocketManager *GetSocketManager() = 0;
+ virtual wxSocketManager *GetSocketManager() { return ms_manager; }
#endif
// create a new, port specific, instance of the event loop used by wxApp
protected:
-#if wxUSE_STACKWALKER && defined( __WXDEBUG__ )
+#if wxUSE_STACKWALKER
// utility function: returns the stack frame as a plain wxString
virtual wxString GetAssertStackTrace();
#endif
+
+private:
+ static wxSocketManager *ms_manager;
};
// ----------------------------------------------------------------------------
#endif // wxUSE_FONTMAP
virtual wxRendererNative *CreateRenderer();
-#ifdef __WXDEBUG__
virtual bool ShowAssertDialog(const wxString& msg);
-#endif // __WXDEBUG__
virtual bool HasStderr();
- virtual void ScheduleForDestroy(wxObject *object);
- virtual void RemoveFromPendingDelete(wxObject *object);
-
// the GetToolkitVersion for console application is always the same
virtual wxPortId GetToolkitVersion(int *verMaj = NULL, int *verMin = NULL) const
{
#endif // wxUSE_FONTMAP
virtual wxRendererNative *CreateRenderer();
-#ifdef __WXDEBUG__
virtual bool ShowAssertDialog(const wxString& msg);
-#endif // __WXDEBUG__
virtual bool HasStderr();
- virtual void ScheduleForDestroy(wxObject *object);
- virtual void RemoveFromPendingDelete(wxObject *object);
-
virtual bool IsUsingUniversalWidgets() const
{
#ifdef __WXUNIVERSAL__