]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/unix/apptrait.h
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / include / wx / unix / apptrait.h
... / ...
CommitLineData
1///////////////////////////////////////////////////////////////////////////////
2// Name: wx/unix/apptrait.h
3// Purpose: standard implementations of wxAppTraits for Unix
4// Author: Vadim Zeitlin
5// Modified by:
6// Created: 23.06.2003
7// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
8// Licence: wxWindows licence
9///////////////////////////////////////////////////////////////////////////////
10
11#ifndef _WX_UNIX_APPTRAIT_H_
12#define _WX_UNIX_APPTRAIT_H_
13
14// ----------------------------------------------------------------------------
15// wxGUI/ConsoleAppTraits: must derive from wxAppTraits, not wxAppTraitsBase
16// ----------------------------------------------------------------------------
17
18class WXDLLIMPEXP_BASE wxConsoleAppTraits : public wxConsoleAppTraitsBase
19{
20public:
21#if wxUSE_CONSOLE_EVENTLOOP
22 virtual wxEventLoopBase *CreateEventLoop();
23#endif // wxUSE_CONSOLE_EVENTLOOP
24#if wxUSE_TIMER
25 virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
26#endif
27};
28
29#if wxUSE_GUI
30
31// GTK+ and Motif integrate sockets and child processes monitoring directly in
32// their main loop, the other Unix ports do it at wxEventLoop level and so use
33// the non-GUI traits and don't need anything here
34//
35// TODO: Should we use XtAddInput() for wxX11 too? Or, vice versa, if there is
36// no advantage in doing this compared to the generic way currently used
37// by wxX11, should we continue to use GTK/Motif-specific stuff?
38#if defined(__WXGTK__) || defined(__WXMOTIF__)
39 #define wxHAS_GUI_FDIOMANAGER
40 #define wxHAS_GUI_PROCESS_CALLBACKS
41#endif // ports using wxFDIOManager
42
43#if defined(__WXMAC__)
44 #define wxHAS_GUI_PROCESS_CALLBACKS
45 #define wxHAS_GUI_SOCKET_MANAGER
46#endif
47
48class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase
49{
50public:
51 virtual wxEventLoopBase *CreateEventLoop();
52 virtual int WaitForChild(wxExecuteData& execData);
53#if wxUSE_TIMER
54 virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
55#endif
56#if wxUSE_THREADS && defined(__WXGTK20__)
57 virtual void MutexGuiEnter();
58 virtual void MutexGuiLeave();
59#endif
60
61#if (defined(__WXMAC__) || defined(__WXCOCOA__)) && wxUSE_STDPATHS
62 virtual wxStandardPaths& GetStandardPaths();
63#endif
64 virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const;
65
66#ifdef __WXGTK20__
67 virtual wxString GetDesktopEnvironment() const;
68 virtual wxString GetStandardCmdLineOptions(wxArrayString& names,
69 wxArrayString& desc) const;
70#endif // __WXGTK20____
71
72#if defined(__WXGTK20__)
73 virtual bool ShowAssertDialog(const wxString& msg);
74#endif
75
76#if wxUSE_SOCKETS
77
78#ifdef wxHAS_GUI_SOCKET_MANAGER
79 virtual wxSocketManager *GetSocketManager();
80#endif
81
82#ifdef wxHAS_GUI_FDIOMANAGER
83 virtual wxFDIOManager *GetFDIOManager();
84#endif
85
86#endif // wxUSE_SOCKETS
87
88 virtual wxEventLoopSourcesManagerBase* GetEventLoopSourcesManager();
89};
90
91#endif // wxUSE_GUI
92
93#endif // _WX_UNIX_APPTRAIT_H_
94