mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-22 14:13:57 -06:00
120 lines
3.2 KiB
C++
120 lines
3.2 KiB
C++
#ifndef slic3r_MsgDialog_hpp_
|
|
#define slic3r_MsgDialog_hpp_
|
|
|
|
#include <string>
|
|
#include <unordered_map>
|
|
|
|
#include <wx/dialog.h>
|
|
#include <wx/font.h>
|
|
#include <wx/bitmap.h>
|
|
#include <wx/msgdlg.h>
|
|
|
|
class wxBoxSizer;
|
|
class wxCheckBox;
|
|
class wxStaticBitmap;
|
|
|
|
namespace Slic3r {
|
|
|
|
namespace GUI {
|
|
|
|
|
|
// A message / query dialog with a bitmap on the left and any content on the right
|
|
// with buttons underneath.
|
|
struct MsgDialog : wxDialog
|
|
{
|
|
MsgDialog(MsgDialog &&) = delete;
|
|
MsgDialog(const MsgDialog &) = delete;
|
|
MsgDialog &operator=(MsgDialog &&) = delete;
|
|
MsgDialog &operator=(const MsgDialog &) = delete;
|
|
virtual ~MsgDialog() = default;
|
|
|
|
// TODO: refactor with CreateStdDialogButtonSizer usage
|
|
|
|
protected:
|
|
enum {
|
|
CONTENT_WIDTH = 70,//50,
|
|
CONTENT_MAX_HEIGHT = 60,
|
|
BORDER = 30,
|
|
VERT_SPACING = 15,
|
|
HORIZ_SPACING = 5,
|
|
};
|
|
|
|
// button_id is an id of a button that can be added by default, use wxID_NONE to disable
|
|
MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id = wxID_OK, wxBitmap bitmap = wxNullBitmap);
|
|
|
|
void add_btn(wxWindowID btn_id, bool set_focus = false);
|
|
|
|
wxFont boldfont;
|
|
wxBoxSizer *content_sizer;
|
|
wxBoxSizer *btn_sizer;
|
|
wxStaticBitmap *logo;
|
|
};
|
|
|
|
|
|
// Generic error dialog, used for displaying exceptions
|
|
class ErrorDialog : public MsgDialog
|
|
{
|
|
public:
|
|
// If monospaced_font is true, the error message is displayed using html <code><pre></pre></code> tags,
|
|
// so that the code formatting will be preserved. This is useful for reporting errors from the placeholder parser.
|
|
ErrorDialog(wxWindow *parent, const wxString &msg, bool courier_font);
|
|
ErrorDialog(ErrorDialog &&) = delete;
|
|
ErrorDialog(const ErrorDialog &) = delete;
|
|
ErrorDialog &operator=(ErrorDialog &&) = delete;
|
|
ErrorDialog &operator=(const ErrorDialog &) = delete;
|
|
virtual ~ErrorDialog() = default;
|
|
|
|
private:
|
|
wxString msg;
|
|
};
|
|
|
|
|
|
// Generic warning dialog, used for displaying exceptions
|
|
class WarningDialog : public MsgDialog
|
|
{
|
|
public:
|
|
WarningDialog( wxWindow *parent,
|
|
const wxString& message,
|
|
const wxString& caption = wxEmptyString,
|
|
long style = wxOK);
|
|
WarningDialog(WarningDialog&&) = delete;
|
|
WarningDialog(const WarningDialog&) = delete;
|
|
WarningDialog &operator=(WarningDialog&&) = delete;
|
|
WarningDialog &operator=(const WarningDialog&) = delete;
|
|
virtual ~WarningDialog() = default;
|
|
};
|
|
|
|
#ifdef _WIN32
|
|
// Generic message dialog, used intead of wxMessageDialog
|
|
class MessageDialog : public MsgDialog
|
|
{
|
|
public:
|
|
MessageDialog( wxWindow *parent,
|
|
const wxString& message,
|
|
const wxString& caption = wxEmptyString,
|
|
long style = wxOK);
|
|
MessageDialog(MessageDialog&&) = delete;
|
|
MessageDialog(const MessageDialog&) = delete;
|
|
MessageDialog &operator=(MessageDialog&&) = delete;
|
|
MessageDialog &operator=(const MessageDialog&) = delete;
|
|
virtual ~MessageDialog() = default;
|
|
};
|
|
#else
|
|
// just a wrapper to wxMessageBox to use the same code on all platforms
|
|
class MessageDialog : public wxMessageDialog
|
|
{
|
|
public:
|
|
MessageDialog(wxWindow* parent,
|
|
const wxString& message,
|
|
const wxString& caption = wxEmptyString,
|
|
long style = wxOK)
|
|
: wxMessageDialog(parent, message, caption, style) {}
|
|
~MessageDialog() {}
|
|
};
|
|
#endif
|
|
|
|
|
|
}
|
|
}
|
|
|
|
#endif
|