summaryrefslogtreecommitdiff
path: root/ui/msg_popup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ui/msg_popup.cpp')
-rw-r--r--ui/msg_popup.cpp225
1 files changed, 129 insertions, 96 deletions
diff --git a/ui/msg_popup.cpp b/ui/msg_popup.cpp
index 142d2e9e..09bf24c9 100644
--- a/ui/msg_popup.cpp
+++ b/ui/msg_popup.cpp
@@ -9,179 +9,191 @@
#include <wx+/mouse_move_dlg.h>
#include "gui_generated.h"
-
using namespace zen;
-class ErrorDlg : public ErrorDlgGenerated
+class ErrorDlg : public MessageDlgGenerated
{
public:
ErrorDlg(wxWindow* parent,
int activeButtons,
const wxString& messageText,
+ const wxString& caption, //optional
bool* ignoreNextErrors);
private:
- void OnClose(wxCloseEvent& event);
- void OnIgnore(wxCommandEvent& event);
- void OnRetry(wxCommandEvent& event);
- void OnAbort(wxCommandEvent& event);
+ void OnClose (wxCloseEvent& event) { EndModal(ReturnErrorDlg::BUTTON_CANCEL); }
+ void OnCancel(wxCommandEvent& event) { EndModal(ReturnErrorDlg::BUTTON_CANCEL); }
+ void OnButton1(wxCommandEvent& event);
+ void OnButton2(wxCommandEvent& event);
bool* ignoreErrors;
+ wxButton& buttonIgnore; //
+ wxButton& buttonRetry; // map generic controls
+ wxCheckBox& checkBoxIgnoreErrors; //
};
-ErrorDlg::ErrorDlg(wxWindow* parent, const int activeButtons, const wxString& messageText, bool* ignoreNextErrors) :
- ErrorDlgGenerated(parent),
- ignoreErrors(ignoreNextErrors)
+ErrorDlg::ErrorDlg(wxWindow* parent, int activeButtons, const wxString& messageText, const wxString& caption, bool* ignoreNextErrors) :
+ MessageDlgGenerated(parent),
+ ignoreErrors(ignoreNextErrors),
+ buttonIgnore(*m_buttonCustom1),
+ buttonRetry (*m_buttonCustom2),
+ checkBoxIgnoreErrors(*m_checkBoxCustom)
{
#ifdef FFS_WIN
new zen::MouseMoveWindow(*this); //allow moving main dialog by clicking (nearly) anywhere...; ownership passed to "this"
#endif
- m_bitmap10->SetBitmap(GlobalResources::getImage(L"error"));
- m_textCtrl8->SetValue(messageText);
+ SetTitle(!caption.empty() ? caption : _("Error"));
+ m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"error"));
+ m_textCtrlMessage->SetValue(messageText);
+ checkBoxIgnoreErrors.SetLabel(_("Ignore further errors"));
+ buttonIgnore.SetLabel(_("&Ignore"));
+ buttonRetry .SetLabel(_("&Retry"));
+ buttonIgnore.SetId(wxID_IGNORE);
+ buttonRetry .SetId(wxID_RETRY);
if (ignoreNextErrors)
- m_checkBoxIgnoreErrors->SetValue(*ignoreNextErrors);
+ checkBoxIgnoreErrors.SetValue(*ignoreNextErrors);
else
- m_checkBoxIgnoreErrors->Hide();
+ checkBoxIgnoreErrors.Hide();
if (~activeButtons & ReturnErrorDlg::BUTTON_IGNORE)
{
- m_buttonIgnore->Hide();
- m_checkBoxIgnoreErrors->Hide();
+ buttonIgnore.Hide();
+ checkBoxIgnoreErrors.Hide();
}
if (~activeButtons & ReturnErrorDlg::BUTTON_RETRY)
- m_buttonRetry->Hide();
+ buttonRetry.Hide();
- if (~activeButtons & ReturnErrorDlg::BUTTON_ABORT)
- m_buttonAbort->Hide();
+ if (~activeButtons & ReturnErrorDlg::BUTTON_CANCEL)
+ m_buttonCancel->Hide();
//set button focus precedence
if (activeButtons & ReturnErrorDlg::BUTTON_RETRY)
- m_buttonRetry->SetFocus();
+ buttonRetry.SetFocus();
else if (activeButtons & ReturnErrorDlg::BUTTON_IGNORE)
- m_buttonIgnore->SetFocus();
- else if (activeButtons & ReturnErrorDlg::BUTTON_ABORT)
- m_buttonAbort->SetFocus();
+ buttonIgnore.SetFocus();
+ else if (activeButtons & ReturnErrorDlg::BUTTON_CANCEL)
+ m_buttonCancel->SetFocus();
Fit(); //child-element widths have changed: image was set
}
-void ErrorDlg::OnClose(wxCloseEvent& event)
-{
- EndModal(ReturnErrorDlg::BUTTON_ABORT);
-}
-
-
-void ErrorDlg::OnIgnore(wxCommandEvent& event)
+void ErrorDlg::OnButton1(wxCommandEvent& event) //ignore
{
- if (ignoreErrors) *ignoreErrors = m_checkBoxIgnoreErrors->GetValue();
+ if (ignoreErrors)
+ *ignoreErrors = checkBoxIgnoreErrors.GetValue();
EndModal(ReturnErrorDlg::BUTTON_IGNORE);
}
-void ErrorDlg::OnRetry(wxCommandEvent& event)
+void ErrorDlg::OnButton2(wxCommandEvent& event) //retry
{
- if (ignoreErrors) *ignoreErrors = m_checkBoxIgnoreErrors->GetValue();
+ if (ignoreErrors)
+ *ignoreErrors = checkBoxIgnoreErrors.GetValue();
EndModal(ReturnErrorDlg::BUTTON_RETRY);
}
-void ErrorDlg::OnAbort(wxCommandEvent& event)
+ReturnErrorDlg::ButtonPressed zen::showErrorDlg(wxWindow* parent, int activeButtons, const wxString& messageText, bool* ignoreNextErrors)
{
- if (ignoreErrors) *ignoreErrors = m_checkBoxIgnoreErrors->GetValue();
- EndModal(ReturnErrorDlg::BUTTON_ABORT);
+ ErrorDlg errorDlg(parent, activeButtons, messageText, wxString(), ignoreNextErrors);
+ errorDlg.Raise();
+ return static_cast<ReturnErrorDlg::ButtonPressed>(errorDlg.ShowModal());
}
+//########################################################################################
-ReturnErrorDlg::ButtonPressed zen::showErrorDlg(wxWindow* parent, int activeButtons, const wxString& messageText, bool* ignoreNextErrors)
+ReturnFatalErrorDlg::ButtonPressed zen::showFatalErrorDlg(wxWindow* parent, int activeButtons, const wxString& messageText, bool* ignoreNextErrors)
{
- ErrorDlg errorDlg(parent, activeButtons, messageText, ignoreNextErrors);
+ ErrorDlg errorDlg(parent, activeButtons, messageText, _("Fatal Error"), ignoreNextErrors);
errorDlg.Raise();
- return static_cast<ReturnErrorDlg::ButtonPressed>(errorDlg.ShowModal());
+ return static_cast<ReturnFatalErrorDlg::ButtonPressed>(errorDlg.ShowModal());
}
-//########################################################################################
+//########################################################################################
-class WarningDlg : public WarningDlgGenerated
+class WarningDlg : public MessageDlgGenerated
{
public:
WarningDlg(wxWindow* parent, int activeButtons, const wxString& messageText, bool& dontShowAgain);
private:
- void OnClose(wxCloseEvent& event);
- void OnIgnore(wxCommandEvent& event);
- void OnSwitch(wxCommandEvent& event);
- void OnAbort(wxCommandEvent& event);
+ void OnClose (wxCloseEvent& event) { EndModal(ReturnWarningDlg::BUTTON_CANCEL); }
+ void OnCancel(wxCommandEvent& event) { EndModal(ReturnWarningDlg::BUTTON_CANCEL); }
+ void OnButton1(wxCommandEvent& event);
+ void OnButton2(wxCommandEvent& event);
+
bool& dontShowAgain;
+ wxButton& buttonIgnore; //
+ wxButton& buttonSwitch; // map generic controls
+ wxCheckBox& checkBoxDontShowAgain; //
};
WarningDlg::WarningDlg(wxWindow* parent, int activeButtons, const wxString& messageText, bool& dontShowDlgAgain) :
- WarningDlgGenerated(parent),
- dontShowAgain(dontShowDlgAgain)
+ MessageDlgGenerated(parent),
+ dontShowAgain(dontShowDlgAgain),
+ buttonIgnore(*m_buttonCustom1),
+ buttonSwitch(*m_buttonCustom2),
+ checkBoxDontShowAgain(*m_checkBoxCustom)
+
{
#ifdef FFS_WIN
new zen::MouseMoveWindow(*this); //allow moving main dialog by clicking (nearly) anywhere...; ownership passed to "this"
#endif
- m_bitmap10->SetBitmap(GlobalResources::getImage(L"warning"));
- m_textCtrl8->SetValue(messageText);
- m_checkBoxDontShowAgain->SetValue(dontShowAgain);
+ SetTitle(_("Warning"));
+ m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"warning"));
+ m_textCtrlMessage->SetValue(messageText);
+ checkBoxDontShowAgain.SetLabel(_("Do not show this dialog again"));
+ buttonIgnore.SetLabel(_("&Ignore"));
+ buttonSwitch.SetLabel(_("&Switch"));
+ buttonIgnore.SetId(wxID_IGNORE);
+ buttonSwitch.SetId(wxID_MORE);
+
+ checkBoxDontShowAgain.SetValue(dontShowAgain);
if (~activeButtons & ReturnWarningDlg::BUTTON_IGNORE)
{
- m_buttonIgnore->Hide();
- m_checkBoxDontShowAgain->Hide();
+ buttonIgnore.Hide();
+ checkBoxDontShowAgain.Hide();
}
if (~activeButtons & ReturnWarningDlg::BUTTON_SWITCH)
- m_buttonSwitch->Hide();
+ buttonSwitch.Hide();
- if (~activeButtons & ReturnWarningDlg::BUTTON_ABORT)
- m_buttonAbort->Hide();
+ if (~activeButtons & ReturnWarningDlg::BUTTON_CANCEL)
+ m_buttonCancel->Hide();
//set button focus precedence
if (activeButtons & ReturnWarningDlg::BUTTON_IGNORE)
- m_buttonIgnore->SetFocus();
- else if (activeButtons & ReturnWarningDlg::BUTTON_ABORT)
- m_buttonAbort->SetFocus();
+ buttonIgnore.SetFocus();
+ else if (activeButtons & ReturnWarningDlg::BUTTON_CANCEL)
+ m_buttonCancel->SetFocus();
Fit(); //child-element widths have changed: image was set
}
-void WarningDlg::OnClose(wxCloseEvent& event)
-{
- EndModal(ReturnWarningDlg::BUTTON_ABORT);
-}
-
-
-void WarningDlg::OnIgnore(wxCommandEvent& event)
+void WarningDlg::OnButton1(wxCommandEvent& event) //ignore
{
- dontShowAgain = m_checkBoxDontShowAgain->GetValue();
+ dontShowAgain = checkBoxDontShowAgain.GetValue();
EndModal(ReturnWarningDlg::BUTTON_IGNORE);
}
-void WarningDlg::OnSwitch(wxCommandEvent& event)
+void WarningDlg::OnButton2(wxCommandEvent& event) //switch
{
- dontShowAgain = m_checkBoxDontShowAgain->GetValue();
+ dontShowAgain = checkBoxDontShowAgain.GetValue();
EndModal(ReturnWarningDlg::BUTTON_SWITCH);
}
-void WarningDlg::OnAbort(wxCommandEvent& event)
-{
- dontShowAgain = m_checkBoxDontShowAgain->GetValue();
- EndModal(ReturnWarningDlg::BUTTON_ABORT);
-}
-
-
ReturnWarningDlg::ButtonPressed zen::showWarningDlg(wxWindow* parent, int activeButtons, const wxString& messageText, bool& dontShowAgain)
{
WarningDlg warningDlg(parent, activeButtons, messageText, dontShowAgain);
@@ -191,77 +203,98 @@ ReturnWarningDlg::ButtonPressed zen::showWarningDlg(wxWindow* parent, int active
//########################################################################################
-class QuestionDlg : public QuestionDlgGenerated
+class QuestionDlg : public MessageDlgGenerated
{
public:
- QuestionDlg(wxWindow* parent, int activeButtons, const wxString& messageText, CheckBox* checkbox);
+ QuestionDlg(wxWindow* parent, int activeButtons, const wxString& messageText, const wxString& caption, const wxString& labelYes, const wxString& labelNo, CheckBox* checkbox);
private:
void OnClose (wxCloseEvent& event) { EndModal(ReturnQuestionDlg::BUTTON_CANCEL); }
void OnCancel(wxCommandEvent& event) { EndModal(ReturnQuestionDlg::BUTTON_CANCEL); }
- void OnYes(wxCommandEvent& event);
- void OnNo (wxCommandEvent& event);
+ void OnButton1(wxCommandEvent& event);
+ void OnButton2(wxCommandEvent& event);
CheckBox* checkbox_; //optional
+ wxButton& buttonYes; // map generic controls
+ wxButton& buttonNo; //
};
-QuestionDlg::QuestionDlg(wxWindow* parent, int activeButtons, const wxString& messageText, CheckBox* checkbox) :
- QuestionDlgGenerated(parent),
- checkbox_(checkbox)
+QuestionDlg::QuestionDlg(wxWindow* parent,
+ int activeButtons,
+ const wxString& messageText,
+ const wxString& caption, //optional
+ const wxString& labelYes,
+ const wxString& labelNo,
+ CheckBox* checkbox) :
+ MessageDlgGenerated(parent),
+ checkbox_(checkbox),
+ buttonYes(*m_buttonCustom1),
+ buttonNo (*m_buttonCustom2)
{
#ifdef FFS_WIN
new zen::MouseMoveWindow(*this); //allow moving main dialog by clicking (nearly) anywhere...; ownership passed to "this"
#endif
- m_bitmap10->SetBitmap(GlobalResources::getImage(L"question"));
- m_textCtrl8->SetValue(messageText);
+ SetTitle(!caption.empty()? caption : _("Question"));
+ m_bitmapMsgType->SetBitmap(GlobalResources::getImage(L"question"));
+ m_textCtrlMessage->SetValue(messageText);
+ buttonYes.SetLabel(!labelYes.empty() ? labelYes : _("&Yes"));
+ buttonNo .SetLabel(!labelNo .empty() ? labelNo : _("&No"));
+ buttonYes.SetId(wxID_YES);
+ buttonNo .SetId(wxID_NO);
if (checkbox_)
{
- m_checkBox->SetValue(checkbox_->value_);
- m_checkBox->SetLabel(checkbox_->label_);
+ m_checkBoxCustom->SetValue(checkbox_->value_);
+ m_checkBoxCustom->SetLabel(checkbox_->label_);
}
else
- m_checkBox->Hide();
+ m_checkBoxCustom->Hide();
if (~activeButtons & ReturnQuestionDlg::BUTTON_YES)
- m_buttonYes->Hide();
+ buttonYes.Hide();
if (~activeButtons & ReturnQuestionDlg::BUTTON_NO)
- m_buttonNo->Hide();
+ buttonNo.Hide();
if (~activeButtons & ReturnQuestionDlg::BUTTON_CANCEL)
m_buttonCancel->Hide();
//set button focus precedence
if (activeButtons & ReturnQuestionDlg::BUTTON_YES)
- m_buttonYes->SetFocus();
+ buttonYes.SetFocus();
else if (activeButtons & ReturnQuestionDlg::BUTTON_CANCEL)
m_buttonCancel->SetFocus();
else if (activeButtons & ReturnQuestionDlg::BUTTON_NO)
- m_buttonNo->SetFocus();
+ buttonNo.SetFocus();
Fit(); //child-element widths have changed: image was set
}
-void QuestionDlg::OnYes(wxCommandEvent& event)
+void QuestionDlg::OnButton1(wxCommandEvent& event) //yes
{
if (checkbox_)
- checkbox_->value_ = m_checkBox->GetValue();
+ checkbox_->value_ = m_checkBoxCustom->GetValue();
EndModal(ReturnQuestionDlg::BUTTON_YES);
}
-void QuestionDlg::OnNo(wxCommandEvent& event)
+void QuestionDlg::OnButton2(wxCommandEvent& event) //no
{
if (checkbox_)
- checkbox_->value_ = m_checkBox->GetValue();
+ checkbox_->value_ = m_checkBoxCustom->GetValue();
EndModal(ReturnQuestionDlg::BUTTON_NO);
}
-ReturnQuestionDlg::ButtonPressed zen::showQuestionDlg(wxWindow* parent, int activeButtons, const wxString& messageText, CheckBox* checkbox)
+
+ReturnQuestionDlg::ButtonPressed zen::showQuestionDlg(wxWindow* parent,
+ int activeButtons,
+ const wxString& messageText,
+ const wxString& caption, //optional
+ const wxString& labelYes, const wxString& labelNo,
+ CheckBox* checkbox)
{
- QuestionDlg qtnDlg(parent, activeButtons, messageText, checkbox);
+ QuestionDlg qtnDlg(parent, activeButtons, messageText, caption, labelYes, labelNo, checkbox);
qtnDlg.Raise();
return static_cast<ReturnQuestionDlg::ButtonPressed>(qtnDlg.ShowModal());
}
bgstack15