+ /**
+ Set the application name to be used in the user-visible places such as window
+ titles. See GetAppDisplayName() for more about the differences between the
+ display name and name.
+ */
+ void SetAppDisplayName(const wxString& name);
+
+ /**
+ Sets the name of the application. This name should be used for file names,
+ configuration file entries and other internal strings. For the user-visible
+ strings, such as the window titles, the application display name set by
+ SetAppDisplayName() is used instead.
+
+ By default the application name is set to the name of its executable file.
+
+ @see GetAppName()
+ */
+ void SetAppName(const wxString& name);
+
+ /**
+ Sets the class name of the application. This may be used in a platform specific
+ manner to refer to the application.
+
+ @see GetClassName()
+ */
+ void SetClassName(const wxString& name);
+
+ /**
+ Allows external code to modify global ::wxTheApp, but you should really
+ know what you're doing if you call it.
+
+ @param app
+ Replacement for the global application object.
+
+ @see GetInstance()
+ */
+ static void SetInstance(wxAppConsole* app);
+
+ /**
+ Set the vendor name to be used in the user-visible places.
+ See GetVendorDisplayName() for more about the differences between the
+ display name and name.
+ */
+ void SetVendorDisplayName(const wxString& name);
+
+ /**
+ Sets the name of application's vendor. The name will be used
+ in registry access. A default name is set by wxWidgets.
+
+ @see GetVendorName()
+ */
+ void SetVendorName(const wxString& name);
+
+ /**
+ Yields control to pending messages in the windowing system.
+
+ This can be useful, for example, when a time-consuming process writes to a
+ text window. Without an occasional yield, the text window will not be updated
+ properly, and on systems with cooperative multitasking, such as Windows 3.1
+ other processes will not respond.
+
+ Caution should be exercised, however, since yielding may allow the
+ user to perform actions which are not compatible with the current task.
+ Disabling menu items or whole menus during processing can avoid unwanted
+ reentrance of code: see ::wxSafeYield for a better function.
+
+ Note that Yield() will not flush the message logs. This is intentional as
+ calling Yield() is usually done to quickly update the screen and popping up
+ a message box dialog may be undesirable. If you do wish to flush the log
+ messages immediately (otherwise it will be done during the next idle loop
+ iteration), call wxLog::FlushActive.
+
+ Calling Yield() recursively is normally an error and an assert failure is
+ raised in debug build if such situation is detected. However if the
+ @a onlyIfNeeded parameter is @true, the method will just silently
+ return @false instead.
+ */
+ virtual bool Yield(bool onlyIfNeeded = false);
+
+ /**
+ Number of command line arguments (after environment-specific processing).
+ */
+ int argc;
+
+ /**
+ Command line arguments (after environment-specific processing).
+
+ Under Windows and Linux/Unix, you should parse the command line
+ arguments and check for files to be opened when starting your
+ application. Under OS X, you need to override MacOpenFile()
+ since command line arguments are used differently there.
+
+ You may use the wxCmdLineParser to parse command line arguments.
+ */
+ wxChar** argv;
+};
+
+
+
+
+/**
+ @class wxApp
+ @wxheader{app.h}
+
+ The wxApp class represents the application itself. It is used to:
+
+ @li set and get application-wide properties;
+ @li implement the windowing system message or event loop;
+ @li initiate application processing via wxApp::OnInit;
+ @li allow default processing of events not handled by other
+ objects in the application.
+
+ You should use the macro IMPLEMENT_APP(appClass) in your application
+ implementation file to tell wxWidgets how to create an instance of your
+ application class.
+
+ Use DECLARE_APP(appClass) in a header file if you want the wxGetApp function
+ (which returns a reference to your application object) to be visible to other
+ files.
+
+ @library{wxbase}
+ @category{appmanagement}
+
+ @see @ref overview_app
+*/
+class wxApp : public wxAppConsole
+{
+public:
+ /**
+ Constructor. Called implicitly with a definition of a wxApp object.
+ */
+ wxApp();
+
+ /**
+ Destructor. Will be called implicitly on program exit if the wxApp
+ object is created on the stack.
+ */
+ virtual ~wxApp();
+
+ /**
+ Returns @true if the application will exit when the top-level frame is deleted.
+
+ @see SetExitOnFrameDelete()
+ */
+ bool GetExitOnFrameDelete() const;
+
+ /**
+ Returns @true if the application will use the best visual on systems that support
+ different visuals, @false otherwise.
+
+ @see SetUseBestVisual()
+ */
+ bool GetUseBestVisual() const;
+
+ /**
+ Returns a pointer to the top window.
+
+ @remarks If the top window hasn't been set using SetTopWindow(),
+ this function will find the first top-level window
+ (frame or dialog) and return that.
+
+ @see SetTopWindow()
+ */
+ virtual wxWindow* GetTopWindow() const;
+
+ /**
+ Returns @true if the application is active, i.e. if one of its windows is
+ currently in the foreground.
+
+ If this function returns @false and you need to attract users attention to
+ the application, you may use wxTopLevelWindow::RequestUserAttention to do it.
+ */
+ bool IsActive() const;
+