2010-01-23 19:44:49 +00:00
|
|
|
/**********************************************************************
|
|
|
|
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
|
|
|
|
ErrorDialog.h
|
|
|
|
|
|
|
|
Jimmy Johnson
|
2010-02-13 18:24:57 +00:00
|
|
|
James Crook
|
2010-01-23 19:44:49 +00:00
|
|
|
|
|
|
|
**********************************************************************/
|
|
|
|
|
|
|
|
#ifndef __AUDACITY_ERRORDIALOG__
|
|
|
|
#define __AUDACITY_ERRORDIALOG__
|
|
|
|
|
|
|
|
#include "../Audacity.h"
|
|
|
|
#include <wx/defs.h>
|
2017-09-06 21:39:33 +00:00
|
|
|
#include <wx/msgdlg.h>
|
2010-01-23 19:44:49 +00:00
|
|
|
#include <wx/window.h>
|
2017-09-06 21:39:33 +00:00
|
|
|
#include "LinkingHtmlWindow.h"
|
2016-07-10 21:10:50 +00:00
|
|
|
#include "wxPanelWrapper.h"
|
2010-01-23 19:44:49 +00:00
|
|
|
|
2011-04-02 13:03:02 +00:00
|
|
|
class AudacityProject;
|
|
|
|
|
2016-07-10 21:10:50 +00:00
|
|
|
class ErrorDialog /* not final */ : public wxDialogWrapper
|
2014-06-06 21:34:36 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
// constructors and destructors
|
|
|
|
ErrorDialog(wxWindow *parent,
|
|
|
|
const wxString & dlogTitle,
|
|
|
|
const wxString & message,
|
2017-08-25 12:54:37 +00:00
|
|
|
const wxString & helpPage,
|
2014-06-06 21:34:36 +00:00
|
|
|
const bool Close = true, const bool modal = true);
|
|
|
|
|
|
|
|
virtual ~ErrorDialog(){}
|
|
|
|
|
|
|
|
private:
|
2017-08-25 12:54:37 +00:00
|
|
|
wxString dhelpPage;
|
2014-06-06 21:34:36 +00:00
|
|
|
bool dClose;
|
|
|
|
bool dModal;
|
|
|
|
|
|
|
|
void OnOk( wxCommandEvent &event );
|
|
|
|
void OnHelp( wxCommandEvent &event );
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
|
|
};
|
|
|
|
|
|
|
|
// Helper class to make browser "simulate" a modal dialog
|
2016-06-20 18:02:44 +00:00
|
|
|
class HtmlTextHelpDialog final : public BrowserDialog
|
2014-06-06 21:34:36 +00:00
|
|
|
{
|
|
|
|
public:
|
2016-06-20 18:02:44 +00:00
|
|
|
HtmlTextHelpDialog(wxWindow *pParent, const wxString &title)
|
|
|
|
: BrowserDialog{ pParent, title }
|
2014-06-06 21:34:36 +00:00
|
|
|
{
|
2015-06-30 16:25:32 +00:00
|
|
|
#if !wxCHECK_VERSION(3, 0, 0)
|
2014-06-06 21:34:36 +00:00
|
|
|
MakeModal( true );
|
2015-05-16 20:40:29 +00:00
|
|
|
#endif
|
2014-06-06 21:34:36 +00:00
|
|
|
}
|
|
|
|
virtual ~HtmlTextHelpDialog()
|
|
|
|
{
|
2015-06-30 16:25:32 +00:00
|
|
|
#if !wxCHECK_VERSION(3, 0, 0)
|
2014-06-06 21:34:36 +00:00
|
|
|
MakeModal( false );
|
2015-05-16 20:40:29 +00:00
|
|
|
#endif
|
2014-06-06 21:34:36 +00:00
|
|
|
// On Windows, for some odd reason, the Audacity window will be sent to
|
|
|
|
// the back. So, make sure that doesn't happen.
|
|
|
|
GetParent()->Raise();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2010-01-23 19:44:49 +00:00
|
|
|
/// Displays an error dialog with a button that offers help
|
|
|
|
void ShowErrorDialog(wxWindow *parent,
|
|
|
|
const wxString &dlogTitle,
|
2014-06-03 20:30:19 +00:00
|
|
|
const wxString &message,
|
2017-08-25 12:54:37 +00:00
|
|
|
const wxString &helpPage,
|
2010-12-11 22:32:07 +00:00
|
|
|
bool Close = true);
|
2010-02-13 18:24:57 +00:00
|
|
|
|
2011-03-01 01:29:03 +00:00
|
|
|
/// Displays a modeless error dialog with a button that offers help
|
|
|
|
void ShowModelessErrorDialog(wxWindow *parent,
|
|
|
|
const wxString &dlogTitle,
|
2014-06-03 20:30:19 +00:00
|
|
|
const wxString &message,
|
2017-08-25 12:54:37 +00:00
|
|
|
const wxString &helpPage,
|
2011-03-01 01:29:03 +00:00
|
|
|
bool Close = true);
|
|
|
|
|
2011-03-23 01:01:17 +00:00
|
|
|
/// Displays a custom modeless error dialog for aliased file errors
|
2011-04-02 13:03:02 +00:00
|
|
|
void ShowAliasMissingDialog(AudacityProject *parent,
|
2011-03-23 01:01:17 +00:00
|
|
|
const wxString &dlogTitle,
|
2014-06-03 20:30:19 +00:00
|
|
|
const wxString &message,
|
2017-08-25 12:54:37 +00:00
|
|
|
const wxString &helpPage,
|
2011-03-23 01:01:17 +00:00
|
|
|
const bool Close = true);
|
|
|
|
|
2017-09-06 21:39:33 +00:00
|
|
|
extern wxString AudacityMessageBoxCaptionStr();
|
|
|
|
|
|
|
|
// Do not use wxMessageBox!! Its default window title does not translate!
|
|
|
|
inline int AudacityMessageBox(const wxString& message,
|
|
|
|
const wxString& caption = AudacityMessageBoxCaptionStr(),
|
|
|
|
long style = wxOK | wxCENTRE,
|
|
|
|
wxWindow *parent = NULL,
|
|
|
|
int x = wxDefaultCoord, int y = wxDefaultCoord)
|
|
|
|
{
|
|
|
|
return ::wxMessageBox(message, caption, style, parent, x, y);
|
|
|
|
}
|
|
|
|
|
2017-10-12 15:49:57 +00:00
|
|
|
// Similarly wrap wxTextEntryDialog, to prohibit the default,
|
|
|
|
// unlocalized caption
|
|
|
|
#include <wx/textdlg.h>
|
|
|
|
|
|
|
|
class AudacityTextEntryDialog : public wxTabTraversalWrapper< wxTextEntryDialog >
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
AudacityTextEntryDialog(
|
|
|
|
wxWindow *parent,
|
|
|
|
const wxString& message,
|
|
|
|
const wxString& caption, // don't use = wxGetTextFromUserPromptStr,
|
|
|
|
const wxString& value = wxEmptyString,
|
|
|
|
long style = wxTextEntryDialogStyle,
|
|
|
|
const wxPoint& pos = wxDefaultPosition)
|
|
|
|
: wxTabTraversalWrapper< wxTextEntryDialog>
|
2018-01-02 17:01:00 +00:00
|
|
|
( parent, message, caption, value, style, pos )
|
2017-10-12 15:49:57 +00:00
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
2017-10-12 16:21:52 +00:00
|
|
|
// Similarly wrap wxMessageDialog, to prohibit the default,
|
|
|
|
// unlocalized caption
|
|
|
|
class AudacityMessageDialog : public wxTabTraversalWrapper< wxMessageDialog >
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
AudacityMessageDialog(
|
|
|
|
wxWindow *parent,
|
|
|
|
const wxString& message,
|
|
|
|
const wxString& caption, // don't use = wxMessageBoxCaptionStr,
|
|
|
|
long style = wxOK|wxCENTRE,
|
|
|
|
const wxPoint& pos = wxDefaultPosition)
|
|
|
|
: wxTabTraversalWrapper< wxMessageDialog>
|
2018-01-02 17:01:00 +00:00
|
|
|
( parent, message, caption, style, pos )
|
2017-10-12 16:21:52 +00:00
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
2010-01-23 19:44:49 +00:00
|
|
|
#endif // __AUDACITY_ERRORDIALOG__
|