Audacity 3.2.0
wxPanelWrapper.h
Go to the documentation of this file.
1//
2// wxPanelWrapper.h
3// Audacity
4//
5// Created by Paul Licameli on 6/25/16.
6//
7//
8
9#ifndef __AUDACITY_WXPANEL_WRAPPER__
10#define __AUDACITY_WXPANEL_WRAPPER__
11
12#include <wx/panel.h> // to inherit
13#include <wx/dialog.h> // to inherit
14
15#include "Internat.h"
16
17#include "Identifier.h"
18
19WX_WRAPPERS_API void wxTabTraversalWrapperCharHook(wxKeyEvent &event);
20
21template <typename Base>
22class WX_WRAPPERS_API wxTabTraversalWrapper : public Base
23{
24public:
25 template <typename... Args>
26 wxTabTraversalWrapper(Args&&... args)
27 : Base( std::forward<Args>(args)... )
28 {
29 this->Bind(wxEVT_CHAR_HOOK, wxTabTraversalWrapperCharHook);
30 }
31
36
37};
38
39class WX_WRAPPERS_API wxPanelWrapper : public wxTabTraversalWrapper<wxPanel>
40{
41public:
42 // Constructors
44
46 wxWindow *parent,
47 wxWindowID winid = wxID_ANY,
48 const wxPoint& pos = wxDefaultPosition,
49 const wxSize& size = wxDefaultSize,
50 long style = wxTAB_TRAVERSAL | wxNO_BORDER,
51 // Important: default window name localizes!
52 const TranslatableString& name = XO("Panel"))
53 : wxTabTraversalWrapper<wxPanel> (
54 parent, winid, pos, size, style, name.Translation() )
55 {}
56
57 // Pseudo ctor
58 bool Create(
59 wxWindow *parent,
60 wxWindowID winid = wxID_ANY,
61 const wxPoint& pos = wxDefaultPosition,
62 const wxSize& size = wxDefaultSize,
63 long style = wxTAB_TRAVERSAL | wxNO_BORDER,
64 // Important: default window name localizes!
65 const TranslatableString& name = XO("Panel"))
66 {
68 parent, winid, pos, size, style, name.Translation()
69 );
70 }
71 // overload and hide the inherited functions that take naked wxString:
72 void SetLabel(const TranslatableString & label);
73 void SetName(const TranslatableString & name);
74 void SetToolTip(const TranslatableString &toolTip);
75 // Set the name to equal the label:
76 void SetName();
77};
78
79class WX_WRAPPERS_API wxDialogWrapper : public wxTabTraversalWrapper<wxDialog>
80{
81public:
82 // Constructors
84
85 // Constructor with no modal flag - the new convention.
87 wxWindow *parent, wxWindowID id,
89 const wxPoint& pos = wxDefaultPosition,
90 const wxSize& size = wxDefaultSize,
91 long style = wxDEFAULT_DIALOG_STYLE,
92 // Important: default window name localizes!
93 const TranslatableString& name = XO("Dialog"))
94 : wxTabTraversalWrapper<wxDialog>(
95 parent, id, title.Translation(), pos, size, style, name.Translation() )
96 {}
97
98 // Pseudo ctor
99 bool Create(
100 wxWindow *parent, wxWindowID id,
102 const wxPoint& pos = wxDefaultPosition,
103 const wxSize& size = wxDefaultSize,
104 long style = wxDEFAULT_DIALOG_STYLE,
105 // Important: default window name localizes!
106 const TranslatableString& name = XO("Dialog"))
107 {
109 parent, id, title.Translation(), pos, size, style, name.Translation()
110 );
111 }
112
113 // overload and hide the inherited functions that take naked wxString:
114 void SetTitle(const TranslatableString & title);
115 void SetLabel(const TranslatableString & title);
116 void SetName(const TranslatableString & title);
117 // Set the name to equal the title:
118 void SetName();
119};
120
121#include <wx/dirdlg.h> // to inherit
122
123class WX_WRAPPERS_API wxDirDialogWrapper
124 : public wxTabTraversalWrapper<wxDirDialog>
125{
126public:
127 // Constructor with no modal flag - the new convention.
129 wxWindow *parent,
130 const TranslatableString& message = XO("Select a directory"),
131 const wxString& defaultPath = {},
132 long style = wxDD_DEFAULT_STYLE,
133 const wxPoint& pos = wxDefaultPosition,
134 const wxSize& size = wxDefaultSize,
135 // Important: default window name localizes!
136 const TranslatableString& name = XO("Directory Dialog"))
138 parent, message.Translation(), defaultPath, style, pos, size,
139 name.Translation() )
140 {}
141
142 // Pseudo ctor
143 void Create(
144 wxWindow *parent,
145 const TranslatableString& message = XO("Select a directory"),
146 const wxString& defaultPath = {},
147 long style = wxDD_DEFAULT_STYLE,
148 const wxPoint& pos = wxDefaultPosition,
149 const wxSize& size = wxDefaultSize,
150 // Important: default window name localizes!
151 const TranslatableString& name = XO("Directory Dialog"))
152 {
154 parent, message.Translation(), defaultPath, style, pos, size,
155 name.Translation() );
156 }
157};
158
160#include "FileNames.h" // for FileTypes
161
162class WX_WRAPPERS_API FileDialogWrapper
163 : public wxTabTraversalWrapper<FileDialog>
164{
165public:
167
168 // Constructor with no modal flag - the new convention.
170 wxWindow *parent,
171 const TranslatableString& message,
172 const FilePath& defaultDir,
173 const FilePath& defaultFile,
174 const FileNames::FileTypes& fileTypes,
175 long style = wxFD_DEFAULT_STYLE,
176 const wxPoint& pos = wxDefaultPosition,
177 const wxSize& sz = wxDefaultSize,
178 // Important: default window name localizes!
179 const TranslatableString& name = XO("File Dialog"))
181 parent, message.Translation(), defaultDir, defaultFile,
182 FileNames::FormatWildcard( fileTypes ),
183 style, pos, sz, name.Translation() )
184 {}
185
186 // Pseudo ctor
187 void Create(
188 wxWindow *parent,
189 const TranslatableString& message,
190 const FilePath& defaultDir,
191 const FilePath& defaultFile,
192 const FileNames::FileTypes& fileTypes,
193 long style = wxFD_DEFAULT_STYLE,
194 const wxPoint& pos = wxDefaultPosition,
195 const wxSize& sz = wxDefaultSize,
196 // Important: default window name localizes!
197 const TranslatableString& name = XO("File Dialog"))
198 {
200 parent, message.Translation(), defaultDir, defaultFile,
201 FileNames::FormatWildcard( fileTypes ),
202 style, pos, sz, name.Translation()
203 );
204 }
205};
206
207#include <wx/msgdlg.h>
208
209/**************************************************************************/
213class WX_WRAPPERS_API AudacityMessageDialog
214 : public wxTabTraversalWrapper< wxMessageDialog >
215{
216public:
218 wxWindow *parent,
219 const TranslatableString &message,
220 const TranslatableString &caption, // don't use = wxMessageBoxCaptionStr,
221 long style = wxOK|wxCENTRE,
222 const wxPoint& pos = wxDefaultPosition)
223 : wxTabTraversalWrapper< wxMessageDialog>
224 ( parent, message.Translation(), caption.Translation(), style, pos )
225 {}
227};
228
229#endif
const TranslatableString name
Definition: Distortion.cpp:76
XO("Cut/Copy/Paste")
static const auto title
wxString FilePath
Definition: Project.h:21
TranslatableString label
Definition: TagsEditor.cpp:165
int id
Wrap wxMessageDialog so that caption IS translatable.
AudacityMessageDialog(wxWindow *parent, const TranslatableString &message, const TranslatableString &caption, long style=wxOK|wxCENTRE, const wxPoint &pos=wxDefaultPosition)
Dialog used to present platform specific "Save As" dialog with custom controls.
void Create(wxWindow *parent, const TranslatableString &message, const FilePath &defaultDir, const FilePath &defaultFile, const FileNames::FileTypes &fileTypes, long style=wxFD_DEFAULT_STYLE, const wxPoint &pos=wxDefaultPosition, const wxSize &sz=wxDefaultSize, const TranslatableString &name=XO("File Dialog"))
FileDialogWrapper(wxWindow *parent, const TranslatableString &message, const FilePath &defaultDir, const FilePath &defaultFile, const FileNames::FileTypes &fileTypes, long style=wxFD_DEFAULT_STYLE, const wxPoint &pos=wxDefaultPosition, const wxSize &sz=wxDefaultSize, const TranslatableString &name=XO("File Dialog"))
std::vector< FileType > FileTypes
Definition: FileNames.h:75
Holds a msgid for the translation catalog; may also bind format arguments.
wxString Translation() const
wxDialogWrapper(wxWindow *parent, wxWindowID id, const TranslatableString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const TranslatableString &name=XO("Dialog"))
bool Create(wxWindow *parent, wxWindowID id, const TranslatableString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const TranslatableString &name=XO("Dialog"))
void Create(wxWindow *parent, const TranslatableString &message=XO("Select a directory"), const wxString &defaultPath={}, long style=wxDD_DEFAULT_STYLE, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, const TranslatableString &name=XO("Directory Dialog"))
wxDirDialogWrapper(wxWindow *parent, const TranslatableString &message=XO("Select a directory"), const wxString &defaultPath={}, long style=wxDD_DEFAULT_STYLE, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, const TranslatableString &name=XO("Directory Dialog"))
wxPanelWrapper(wxWindow *parent, wxWindowID winid=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL|wxNO_BORDER, const TranslatableString &name=XO("Panel"))
bool Create(wxWindow *parent, wxWindowID winid=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL|wxNO_BORDER, const TranslatableString &name=XO("Panel"))
wxTabTraversalWrapper & operator=(wxTabTraversalWrapper &&)=delete
wxTabTraversalWrapper(wxTabTraversalWrapper &&)=delete
wxTabTraversalWrapper(Args &&... args)
wxTabTraversalWrapper(const wxTabTraversalWrapper &)=delete
wxTabTraversalWrapper & operator=(const wxTabTraversalWrapper &)=delete
FILES_API wxString FormatWildcard(const FileTypes &fileTypes)
STL namespace.
WX_WRAPPERS_API void wxTabTraversalWrapperCharHook(wxKeyEvent &event)