]> git.saurik.com Git - wxWidgets.git/blob - interface/apptrait.h
Switch on build breakage email notifications.
[wxWidgets.git] / interface / apptrait.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: apptrait.h
3 // Purpose: interface of wxAppTraits
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
8
9 /**
10 @class wxAppTraits
11 @wxheader{apptrait.h}
12
13 The @b wxAppTraits class defines various configurable aspects of a wxApp.
14 You can access it using wxApp::GetTraits function and you can create your
15 own wxAppTraits overriding the wxApp::CreateTraits function.
16
17 By default, wxWidgets creates a @c wxConsoleAppTraits object for console
18 applications (i.e. those applications linked against wxBase library only -
19 see the @ref page_libs page) and a @c wxGUIAppTraits object for GUI
20 applications.
21
22 @library{wxbase}
23 @category{appmanagement}
24
25 @see @ref overview_app, wxApp
26 */
27 class wxAppTraits
28 {
29 public:
30 /**
31 Called by wxWidgets to create the default configuration object for the
32 application. The default version creates a registry-based wxRegConfig
33 class under MSW and wxFileConfig under all other platforms.
34
35 The wxApp::GetAppName and wxApp::GetVendorName methods are used to
36 determine the registry key or file name.
37 */
38 virtual wxConfigBase* CreateConfig();
39
40 /**
41 Creates the global font mapper object used for encodings/charset mapping.
42 */
43 virtual wxFontMapper* CreateFontMapper();
44
45 /**
46 Creates the default log target for the application.
47 */
48 virtual wxLog* CreateLogTarget();
49
50 /**
51 Creates the global object used for printing out messages.
52 */
53 virtual wxMessageOutput* CreateMessageOutput();
54
55 /**
56 Returns the renderer to use for drawing the generic controls (return
57 value may be @NULL in which case the default renderer for the current
58 platform is used); this is used in GUI mode only and always returns @NULL
59 in console.
60
61 @note the returned pointer needs to be deleted by the caller.
62 */
63 virtual wxRendererNative* CreateRenderer();
64
65 /**
66 This method returns the name of the desktop environment currently
67 running in a Unix desktop. Currently only "KDE" or "GNOME" are
68 supported and the code uses the X11 session protocol vendor name
69 to figure out, which desktop environment is running. The method
70 returns an empty string otherwise and on all other platforms.
71 */
72 virtual wxString GetDesktopEnvironment() const;
73
74 /**
75 Returns the wxStandardPaths object for the application.
76 It's normally the same for wxBase and wxGUI except in the case of wxMac
77 and wxCocoa.
78 */
79 virtual wxStandardPaths GetStandardPaths();
80
81 /**
82 Returns the wxWidgets port ID used by the running program and eventually
83 fills the given pointers with the values of the major and minor digits
84 of the native toolkit currently used.
85
86 The version numbers returned are thus detected at run-time and not compile-time
87 (except when this is not possible e.g. wxMotif).
88
89 E.g. if your program is using wxGTK port this function will return wxPORT_GTK
90 and put in given pointers the versions of the GTK library in use.
91 See wxPlatformInfo for more details.
92 */
93 virtual wxPortId GetToolkitVersion(int* major = NULL,
94 int* minor = NULL);
95
96 /**
97 Returns @true if @c fprintf(stderr) goes somewhere, @false otherwise.
98 */
99 virtual bool HasStderr();
100
101 /**
102 Returns @true if the library was built as wxUniversal.
103 Always returns @false for wxBase-only apps.
104 */
105 bool IsUsingUniversalWidgets() const;
106
107 /**
108 Shows the assert dialog with the specified message in GUI mode or just prints
109 the string to stderr in console mode.
110 Returns @true to suppress subsequent asserts, @false to continue as before.
111 */
112 virtual bool ShowAssertDialog(const wxString& msg);
113 };
114