Welcome to mirror list, hosted at ThFree Co, Russian Federation.

MsgDialog.cpp « GUI « slic3r « src - github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 58679ed9ebabdce13e751ff5f4ee1d289e020e75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include "MsgDialog.hpp"

#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/button.h>
#include <wx/statbmp.h>
#include <wx/scrolwin.h>

#include "libslic3r/libslic3r.h"
#include "libslic3r/Utils.hpp"
#include "GUI.hpp"
#include "ConfigWizard.hpp"

namespace Slic3r {
namespace GUI {


MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id) :
	MsgDialog(parent, title, headline, wxBitmap(from_u8(Slic3r::var("Slic3r_192px.png")), wxBITMAP_TYPE_PNG), button_id)
{}

MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxBitmap bitmap, wxWindowID button_id) :
	wxDialog(parent, wxID_ANY, title),
	boldfont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)),
	content_sizer(new wxBoxSizer(wxVERTICAL)),
	btn_sizer(new wxBoxSizer(wxHORIZONTAL))
{
	boldfont.SetWeight(wxFONTWEIGHT_BOLD);

	auto *topsizer = new wxBoxSizer(wxHORIZONTAL);
	auto *rightsizer = new wxBoxSizer(wxVERTICAL);

	auto *headtext = new wxStaticText(this, wxID_ANY, headline);
	headtext->SetFont(boldfont);
	headtext->Wrap(CONTENT_WIDTH);
	rightsizer->Add(headtext);
	rightsizer->AddSpacer(VERT_SPACING);

	rightsizer->Add(content_sizer, 1, wxEXPAND);

	if (button_id != wxID_NONE) {
		auto *button = new wxButton(this, button_id);
		button->SetFocus();
		btn_sizer->Add(button);
	}

	rightsizer->Add(btn_sizer, 0, wxALIGN_CENTRE_HORIZONTAL);

	auto *logo = new wxStaticBitmap(this, wxID_ANY, std::move(bitmap));

	topsizer->Add(logo, 0, wxALL, BORDER);
	topsizer->Add(rightsizer, 1, wxALL | wxEXPAND, BORDER);

	SetSizerAndFit(topsizer);
}

MsgDialog::~MsgDialog() {}


// ErrorDialog

ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg) :
	MsgDialog(parent, _(L("Slic3r error")), _(L("Slic3r has encountered an error")), wxBitmap(from_u8(Slic3r::var("Slic3r_192px_grayscale.png")), wxBITMAP_TYPE_PNG))
{
	auto *panel = new wxScrolledWindow(this);
	auto *p_sizer = new wxBoxSizer(wxVERTICAL);
	panel->SetSizer(p_sizer);

	auto *text = new wxStaticText(panel, wxID_ANY, msg);
	text->Wrap(CONTENT_WIDTH);
	p_sizer->Add(text, 1, wxEXPAND);

	panel->SetMinSize(wxSize(CONTENT_WIDTH, 0));
	panel->SetScrollRate(0, 5);

	content_sizer->Add(panel, 1, wxEXPAND);

	SetMaxSize(wxSize(-1, CONTENT_MAX_HEIGHT));
	Fit();
}

ErrorDialog::~ErrorDialog() {}



}
}