]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/init.h
Applied #14000 (wxRichTextXMLHandler interface fixes)
[wxWidgets.git] / interface / wx / init.h
index 499dbe1eed9235ebc54479ad1122d98ee9aebd9a..163e5f7252770473919b7ef8d898a332b441d605 100644 (file)
@@ -3,10 +3,45 @@
 // Purpose:     interface of global functions
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-/** @ingroup group_funcmacro_appinitterm */
+
+/**
+    @class wxInitializer
+
+    Create an object of this class on the stack to initialize/cleanup the library
+    automatically.
+
+    @library{wxbase}
+    @category{appmanagement}
+
+    @see wxGLContext
+*/
+class wxInitializer
+{
+public:
+    /**
+        Initializes the library.
+        Calls wxInitialize().
+    */
+    wxInitializer(int argc = 0, wxChar **argv = NULL);
+
+    /**
+        Has the initialization been successful? (explicit test)
+    */
+    bool IsOk() const;
+
+    /**
+        This dtor only does clean up if we initialized the library properly.
+        Calls wxUninitialize().
+    */
+    ~wxInitializer();
+};
+
+
+
+/** @addtogroup group_funcmacro_appinitterm */
 //@{
 
 /**
@@ -35,6 +70,8 @@ bool wxEntryStart(int& argc, wxChar** argv);
     @note Under Windows CE platform, and only there, the type of @a pCmdLine is
     @c wchar_t *, otherwise it is @c char *, even in Unicode build.
 
+    @onlyfor{wxmsw}
+
     @header{wx/init.h}
 */
 bool wxEntryStart(HINSTANCE hInstance,
@@ -49,5 +86,27 @@ bool wxEntryStart(HINSTANCE hInstance,
 */
 void wxEntryCleanup();
 
+/**
+    Initialize the library (may be called as many times as needed, but each
+    call to wxInitialize() must be matched by wxUninitialize()).
+
+    With this function you may avoid wxDECLARE_APP() and wxIMPLEMENT_APP() macros
+    and use wxInitialize() and wxUninitialize() dynamically in the
+    program startup and termination.
+
+    @header{wx/init.h}
+*/
+bool wxInitialize(int argc = 0, wxChar **argv = NULL);
+
+/**
+    Clean up; the library can't be used any more after the last call to
+    wxUninitialize().
+
+    See wxInitialize() for more info.
+
+    @header{wx/init.h}
+*/
+void wxUninitialize();
+
 //@}