]> git.saurik.com Git - wxWidgets.git/blob - include/wx/unix/apptrait.h
Add lambda-friendly wxDialog::ShowWindowModalThenDo().
[wxWidgets.git] / include / wx / unix / apptrait.h
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
18 class WXDLLIMPEXP_BASE wxConsoleAppTraits : public wxConsoleAppTraitsBase
19 {
20 public:
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
48 class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase
49 {
50 public:
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