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