2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: apptrait.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxAppTraits
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
2010-07-13 09:29:13 -04:00
|
|
|
// Licence: wxWindows licence
|
2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxAppTraits
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-24 18:17:25 -04:00
|
|
|
The wxAppTraits class defines various configurable aspects of a wxApp.
|
|
|
|
You can access it using wxApp::GetTraits() function and you can create your
|
|
|
|
own wxAppTraits overriding the wxApp::CreateTraits() function.
|
|
|
|
|
|
|
|
Note that wxAppTraits is an abstract class since it contains many
|
|
|
|
pure virtual functions.
|
|
|
|
In fact, by default, wxWidgets creates a @c wxConsoleAppTraits object for
|
|
|
|
console applications (i.e. those applications linked against wxBase library
|
|
|
|
only - see the @ref page_libs page) and a @c wxGUIAppTraits object for GUI
|
2008-03-08 08:52:38 -05:00
|
|
|
applications.
|
2008-03-24 18:17:25 -04:00
|
|
|
Both these classes are derived by wxAppTraits and represent concrete
|
|
|
|
implementation of the wxAppTraits interface.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxbase}
|
2009-02-20 06:34:52 -05:00
|
|
|
@category{cfg}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-12 18:18:27 -04:00
|
|
|
@see @ref overview_app, wxApp
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-08 09:43:31 -05:00
|
|
|
class wxAppTraits
|
2008-03-08 08:52:38 -05:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Called by wxWidgets to create the default configuration object for the
|
2008-03-12 18:18:27 -04:00
|
|
|
application. The default version creates a registry-based wxRegConfig
|
|
|
|
class under MSW and wxFileConfig under all other platforms.
|
|
|
|
|
|
|
|
The wxApp::GetAppName and wxApp::GetVendorName methods are used to
|
|
|
|
determine the registry key or file name.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
virtual wxConfigBase* CreateConfig();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-11-17 04:59:33 -05:00
|
|
|
Used by wxWidgets to create the main event loop used by wxApp::OnRun().
|
|
|
|
|
|
|
|
The default implementation of this method in wxGUIAppTraits returns the
|
|
|
|
usual platform-specific GUI event loop. The version in wxConsoleAppTraits
|
|
|
|
returns a console-specific event loop which can be used to handle timer
|
|
|
|
and socket events in console programs under Unix and MSW or @NULL under
|
|
|
|
the other platforms where console event loops are not supported yet.
|
|
|
|
*/
|
|
|
|
virtual wxEventLoopBase *CreateEventLoop() = 0;
|
|
|
|
|
|
|
|
/**
|
2008-03-08 08:52:38 -05:00
|
|
|
Creates the global font mapper object used for encodings/charset mapping.
|
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual wxFontMapper* CreateFontMapper() = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-20 19:45:15 -04:00
|
|
|
Creates a wxLog class for the application to use for logging errors.
|
|
|
|
The default implementation returns a new wxLogGui class.
|
|
|
|
|
|
|
|
@see wxLog
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual wxLog* CreateLogTarget() = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Creates the global object used for printing out messages.
|
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual wxMessageOutput* CreateMessageOutput() = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-12 18:18:27 -04:00
|
|
|
Returns the renderer to use for drawing the generic controls (return
|
|
|
|
value may be @NULL in which case the default renderer for the current
|
|
|
|
platform is used); this is used in GUI mode only and always returns @NULL
|
|
|
|
in console.
|
|
|
|
|
|
|
|
@note the returned pointer needs to be deleted by the caller.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual wxRendererNative* CreateRenderer() = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
This method returns the name of the desktop environment currently
|
|
|
|
running in a Unix desktop. Currently only "KDE" or "GNOME" are
|
|
|
|
supported and the code uses the X11 session protocol vendor name
|
|
|
|
to figure out, which desktop environment is running. The method
|
|
|
|
returns an empty string otherwise and on all other platforms.
|
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual wxString GetDesktopEnvironment() const = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the wxStandardPaths object for the application.
|
2008-03-12 18:18:27 -04:00
|
|
|
It's normally the same for wxBase and wxGUI except in the case of wxMac
|
|
|
|
and wxCocoa.
|
2008-03-23 21:02:55 -04:00
|
|
|
|
2008-12-29 09:14:39 -05:00
|
|
|
@note
|
|
|
|
The returned reference is to a @c wxStandardPathsBase class but you
|
|
|
|
can consider it to be equivalent to wxStandardPaths (which is documented).
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2011-10-04 03:45:08 -04:00
|
|
|
virtual wxStandardPaths& GetStandardPaths();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the wxWidgets port ID used by the running program and eventually
|
2015-06-24 00:54:34 -04:00
|
|
|
fills the given pointers with the values of the major, minor, and micro
|
|
|
|
digits of the native toolkit currently used.
|
2008-03-12 18:18:27 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
The version numbers returned are thus detected at run-time and not compile-time
|
|
|
|
(except when this is not possible e.g. wxMotif).
|
2008-03-12 18:18:27 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
E.g. if your program is using wxGTK port this function will return wxPORT_GTK
|
2008-03-12 18:18:27 -04:00
|
|
|
and put in given pointers the versions of the GTK library in use.
|
2008-03-08 08:52:38 -05:00
|
|
|
See wxPlatformInfo for more details.
|
2015-06-24 00:54:34 -04:00
|
|
|
|
|
|
|
If a micro version is not available it will have a value of 0.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2015-06-24 00:54:34 -04:00
|
|
|
virtual wxPortId GetToolkitVersion(int* major = NULL,
|
|
|
|
int* minor = NULL,
|
|
|
|
int* micro = NULL) const = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns @true if @c fprintf(stderr) goes somewhere, @false otherwise.
|
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual bool HasStderr() = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-12 18:18:27 -04:00
|
|
|
Returns @true if the library was built as wxUniversal.
|
|
|
|
Always returns @false for wxBase-only apps.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual bool IsUsingUniversalWidgets() const = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Shows the assert dialog with the specified message in GUI mode or just prints
|
|
|
|
the string to stderr in console mode.
|
|
|
|
Returns @true to suppress subsequent asserts, @false to continue as before.
|
|
|
|
*/
|
2008-03-24 18:17:25 -04:00
|
|
|
virtual bool ShowAssertDialog(const wxString& msg) = 0;
|
2021-03-07 14:50:30 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Shows a message box with the given text and title if possible.
|
|
|
|
|
|
|
|
In some ports, e.g. wxMSW, a message box will always be shown, while in
|
|
|
|
the other ones it will be only done if the GUI is available (e.g. X11
|
|
|
|
display was successfully opened for X11-based ports) and the function
|
|
|
|
simply returns @false without doing anything otherwise.
|
|
|
|
|
|
|
|
This function is safe in the sense that it can always be called, even
|
|
|
|
before creating wxApp, similarly to wxSafeShowMessage() which is
|
|
|
|
implemented by calling this function and then logging the message to
|
|
|
|
standard error stream if it returned @false.
|
|
|
|
|
|
|
|
@since 3.1.5
|
|
|
|
|
|
|
|
@param text
|
|
|
|
The text to show to the user.
|
|
|
|
@param title
|
|
|
|
The title of the message box shown to the user.
|
|
|
|
@return @true if the message box was shown or @false otherwise.
|
|
|
|
*/
|
|
|
|
virtual bool SafeMessageBox(const wxString& text, const wxString& title) = 0;
|
2021-04-07 08:37:16 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
Helper function mostly useful for derived classes ShowAssertDialog()
|
|
|
|
implementation.
|
|
|
|
|
|
|
|
Returns the stack frame as a plain (and possibly empty) wxString.
|
|
|
|
|
|
|
|
This function is only available when @c wxUSE_STACKWALKER is 1.
|
|
|
|
|
|
|
|
@since 3.1.5
|
|
|
|
*/
|
|
|
|
virtual wxString GetAssertStackTrace();
|
2008-03-08 08:52:38 -05:00
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|