X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9482617091b084d4ee006679a450176715d465e0..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/include/wx/init.h diff --git a/include/wx/init.h b/include/wx/init.h index f973e9b0f3..974a5a7266 100644 --- a/include/wx/init.h +++ b/include/wx/init.h @@ -1,35 +1,37 @@ /////////////////////////////////////////////////////////////////////////////// // Name: wx/init.h -// Purpose: wxWindows initialization and finalization functions +// Purpose: wxWidgets initialization and finalization functions // Author: Vadim Zeitlin // Modified by: // Created: 29.06.2003 // RCS-ID: $Id$ -// Copyright: (c) 2003 Vadim Zeitlin +// Copyright: (c) 2003 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_INIT_H_ #define _WX_INIT_H_ -#include "wx/wxchar.h" +#include "wx/defs.h" +#include "wx/chartype.h" // ---------------------------------------------------------------------------- // wxEntry helper functions which allow to have more fine grained control // ---------------------------------------------------------------------------- // do common initialization, return true if ok (in this case wxEntryCleanup -// must be called later), otherwise the program can't use wxWindows at all +// must be called later), otherwise the program can't use wxWidgets at all // // this function also creates wxTheApp as a side effect, if IMPLEMENT_APP // hadn't been used a dummy default application object is created // -// note that the parameters may be modified -extern bool WXDLLEXPORT wxEntryStart(int argc, wxChar **argv); +// note that the parameters may be modified, this is why we pass them by +// reference! +extern bool WXDLLIMPEXP_BASE wxEntryStart(int& argc, wxChar **argv); // free the resources allocated by the library in wxEntryStart() and shut it // down (wxEntryStart() may be called again afterwards if necessary) -extern void WXDLLEXPORT wxEntryCleanup(); +extern void WXDLLIMPEXP_BASE wxEntryCleanup(); // ---------------------------------------------------------------------------- @@ -41,30 +43,62 @@ extern void WXDLLEXPORT wxEntryCleanup(); // but this one always exists under all platforms // // returns the program exit code -extern int WXDLLEXPORT wxEntry(int argc, wxChar **argv); +extern int WXDLLIMPEXP_BASE wxEntry(int& argc, wxChar **argv); +// we overload wxEntry[Start]() to take "char **" pointers too +#if wxUSE_UNICODE + +extern bool WXDLLIMPEXP_BASE wxEntryStart(int& argc, char **argv); +extern int WXDLLIMPEXP_BASE wxEntry(int& argc, char **argv); + +#endif// wxUSE_UNICODE + +// Under Windows we define additional wxEntry() overloads with signature +// compatible with WinMain() and not the traditional main(). +#if wxUSE_GUI && defined(__WINDOWS__) + #include "wx/msw/init.h" +#endif // ---------------------------------------------------------------------------- // Using the library without (explicit) application object: you may avoid using -// DECLARE_APP and IMPLEMENT_APP macros and call the functions below instead at +// wxDECLARE_APP and wxIMPLEMENT_APP macros and call the functions below instead at // the program startup and termination // ---------------------------------------------------------------------------- // initialize the library (may be called as many times as needed, but each // call to wxInitialize() must be matched by wxUninitialize()) -extern bool WXDLLEXPORT wxInitialize(int argc = 0, wxChar **argv = NULL); +extern bool WXDLLIMPEXP_BASE wxInitialize(); +extern bool WXDLLIMPEXP_BASE wxInitialize(int argc, wxChar **argv); +#if wxUSE_UNICODE +extern bool WXDLLIMPEXP_BASE wxInitialize(int argc, char **argv); +#endif // clean up -- the library can't be used any more after the last call to // wxUninitialize() -extern void WXDLLEXPORT wxUninitialize(); +extern void WXDLLIMPEXP_BASE wxUninitialize(); // create an object of this class on stack to initialize/cleanup the library // automatically -class WXDLLEXPORT wxInitializer +class WXDLLIMPEXP_BASE wxInitializer { public: // initialize the library - wxInitializer() { m_ok = wxInitialize(); } + wxInitializer() + { + m_ok = wxInitialize(); + } + + wxInitializer(int argc, wxChar **argv) + { + m_ok = wxInitialize(argc, argv); + } + +#if wxUSE_UNICODE + wxInitializer(int argc, char **argv) + { + m_ok = wxInitialize(argc, argv); + } +#endif // wxUSE_UNICODE // has the initialization been successful? (explicit test) bool IsOk() const { return m_ok; }