%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name:        apptraits.tex
%% Purpose:     wxAppTraits
%% Author:      Francesco Montorsi
%% Modified by:
%% Created:     5-7-2006
%% RCS-ID:      $Id$
%% Copyright:   (c) wxWidgets Team
%% License:     wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{\class{wxAppTraits}}\label{wxapptraits}

The {\bf wxAppTraits} class defines various configurable aspects of a \helpref{wxApp}{wxapp}.
You can access it using \helpref{wxApp::GetTraits}{wxappgettraits} function and you can
create your own \helpref{wxAppTraits}{wxapptraits} overriding the
\helpref{wxApp::CreateTraits}{wxappcreatetraits} function.

By default, wxWidgets creates a {\tt wxConsoleAppTraits} object for console applications
(i.e. those applications linked against wxBase library only - see the
\helpref{Libraries list}{librarieslist} page) and a {\tt wxGUIAppTraits} object for GUI
applications.

\wxheading{Derived from}

None

\wxheading{Include files}

<wx/apptrait.h>

\wxheading{Library}

\helpref{wxBase}{librarieslist}

\wxheading{See also}

\helpref{wxApp overview}{wxappoverview}, \helpref{wxApp}{wxapp}

\latexignore{\rtfignore{\wxheading{Members}}}


\membersection{wxAppTraits::CreateConfig}\label{wxapptraitscreateconfig}

\func{virtual wxConfigBase *}{CreateConfig}{\void}

Called by wxWidgets to create the default configuration object for the
application. The default version creates a registry-based 
\helpref{wxRegConfig}{wxconfigbase} class under MSW and 
\helpref{wxFileConfig}{wxfileconfig} under all other platforms. The 
\helpref{wxApp}{wxapp} \helpref{GetAppName()}{wxappgetappname} and 
\helpref{GetVendorName()}{wxappgetvendorname} methods are used to determine the
registry key or file name.


\membersection{wxAppTraits::CreateFontMapper}\label{wxapptraitscreatefontmapper}

\func{virtual wxFontMapper *}{CreateFontMapper}{\void}

Creates the global font mapper object used for encodings/charset mapping.



\membersection{wxAppTraits::CreateLogTarget}\label{wxapptraitscreatelogtarget}

\func{virtual wxLog *}{CreateLogTarget}{\void}

Creates the default log target for the application.


\membersection{wxAppTraits::CreateMessageOutput}\label{wxapptraitscreatemessageoutput}

\func{virtual wxMessageOutput *}{CreateMessageOutput}{\void}

Creates the global object used for printing out messages.


\membersection{wxAppTraits::CreateRenderer}\label{wxapptraitscreaterenderer}

\func{virtual wxRendererNative *}{CreateRenderer}{\void}

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: returned pointer will be deleted by the caller.

\membersection{wxAppTraits::GetDesktopEnvironment}\label{wxapptraitsgetdesktopenvironment}

\constfunc{virtual wxString}{GetDesktopEnvironment}{\void}

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.

\membersection{wxAppTraits::GetStandardPaths}\label{wxapptraitsgetstandardpaths}

\func{virtual wxStandardPaths \&}{GetStandardPaths}{\void}

Returns the wxStandardPaths object for the application.
It's normally the same for wxBase and wxGUI except in the case of wxMac and wxCocoa.

\membersection{wxAppTraits::GetToolkitVersion}\label{wxapptraitsgettoolkitversion}

\func{virtual wxPortId}{GetToolkitVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}}

Returns the wxWidgets port ID used by the running program and eventually
fills the given pointers with the values of the major and minor digits
of the native toolkit currently used.
The version numbers returned are thus detected at run-time and not compile-time
(except when this is not possible e.g. wxMotif).

E.g. if your program is using wxGTK port this function will return wxPORT\_GTK and
put in given pointers the versions of the GTK library in use.

See \helpref{wxPlatformInfo}{wxplatforminfo} for more details.


\membersection{wxAppTraits::HasStderr}\label{wxapptraitshasstderr}

\func{virtual bool}{HasStderr}{\void}

Returns \true if {\tt fprintf(stderr)} goes somewhere, \false otherwise.


\membersection{wxAppTraits::IsUsingUniversalWidgets}\label{wxapptraitsisusinguniversalwidgets}

\constfunc{bool}{IsUsingUniversalWidgets}{\void}

Returns \true if the library was built as wxUniversal. Always returns
\false for wxBase-only apps.


\membersection{wxAppTraits::ShowAssertDialog}\label{wxapptraitsshowassertdialog}

\func{virtual bool}{ShowAssertDialog}{\param{const wxString \&}{ msg}}

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.

