33 :
DPIFrame(
nullptr, wxID_ANY,
_L(
"3D Models"), wxDefaultPosition, wxDefaultSize, wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER)
34 {
37
38 wxBoxSizer* m_sizer_main = new wxBoxSizer(wxVERTICAL);
39
40 auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
41 m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
42 m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
43
47
48
49 wxBoxSizer* m_sizer_web_control = new wxBoxSizer(wxHORIZONTAL);
50
51 auto m_control_back =
new ScalableButton(
m_web_control_panel, wxID_ANY,
"mall_control_back", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER,
true);
52 m_control_back->SetBackgroundColour(*wxWHITE);
53 m_control_back->SetSize(wxSize(FromDIP(25), FromDIP(30)));
54 m_control_back->SetMinSize(wxSize(FromDIP(25), FromDIP(30)));
55 m_control_back->SetMaxSize(wxSize(FromDIP(25), FromDIP(30)));
56
58 m_control_back->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCursor(wxCURSOR_HAND));});
59 m_control_back->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCursor(wxCURSOR_ARROW));});
60
61
62 auto m_control_forward =
new ScalableButton(
m_web_control_panel, wxID_ANY,
"mall_control_forward", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER,
true);
63 m_control_forward->SetBackgroundColour(*wxWHITE);
64 m_control_forward->SetSize(wxSize(FromDIP(25), FromDIP(30)));
65 m_control_forward->SetMinSize(wxSize(FromDIP(25), FromDIP(30)));
66 m_control_forward->SetMaxSize(wxSize(FromDIP(25), FromDIP(30)));
67
69 m_control_forward->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCursor(wxCURSOR_HAND)); });
70 m_control_forward->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCursor(wxCURSOR_ARROW)); });
71
72 auto m_control_refresh =
new ScalableButton(
m_web_control_panel, wxID_ANY,
"mall_control_refresh", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER,
true);
73 m_control_refresh->SetBackgroundColour(*wxWHITE);
74 m_control_refresh->SetSize(wxSize(FromDIP(25), FromDIP(30)));
75 m_control_refresh->SetMinSize(wxSize(FromDIP(25), FromDIP(30)));
76 m_control_refresh->SetMaxSize(wxSize(FromDIP(25), FromDIP(30)));
78 m_control_refresh->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCursor(wxCURSOR_HAND)); });
79 m_control_refresh->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCursor(wxCURSOR_ARROW)); });
80
81#ifdef __APPLE__
82
83 m_control_back->SetToolTip(
_L(
"Click to return") +
"(" + u8
"\u2318+" +
_L(
"Left Arrow") +
")");
84 m_control_forward->SetToolTip(
_L(
"Click to continue") +
"(" + u8
"\u2318+" +
_L(
"Right Arrow") +
")");
85#else
86
87 m_control_back->SetToolTip(
_L(
"Click to return") +
"(" +
_L(
"Alt+") +
_L(
"Left Arrow") +
")");
88 m_control_forward->SetToolTip(
_L(
"Click to continue") +
"(" +
_L(
"Alt+") +
_L(
"Right Arrow") +
")");
89#endif
90
91 m_control_refresh->SetToolTip(
_L(
"Refresh"));
92
93
94
95
96
97
98 m_sizer_web_control->Add( m_control_back, 0, wxALIGN_CENTER | wxLEFT, FromDIP(26) );
99 m_sizer_web_control->Add(m_control_forward, 0, wxALIGN_CENTER | wxLEFT, FromDIP(26));
100 m_sizer_web_control->Add(m_control_refresh, 0, wxALIGN_CENTER | wxLEFT, FromDIP(26));
101
102
103
107
110 wxLogError("Could not init m_browser");
111 return;
112 }
113
117
119 m_sizer_main->Add(
m_browser, 1, wxEXPAND, 0);
120 SetSizer(m_sizer_main);
121 Layout();
122 Fit();
123
124 Centre(wxBOTH);
126
127 Bind(wxEVT_CLOSE_WINDOW, [this](auto& e) {
128 this->Hide();
129 });
130 }
#define MODEL_MALL_PAGE_SIZE
Definition ModelMall.hpp:44
#define MODEL_MALL_PAGE_CONTROL_SIZE
Definition ModelMall.hpp:45
#define MODEL_MALL_PAGE_WEB_SIZE
Definition ModelMall.hpp:46
#define _L(s)
Definition OBJ.cpp:34
void on_refresh(wxMouseEvent &evt)
Definition ModelMall.cpp:171
wxWebView * m_browser
Definition ModelMall.hpp:68
void OnScriptMessage(wxWebViewEvent &evt)
Definition ModelMall.cpp:137
void on_forward(wxMouseEvent &evt)
Definition ModelMall.cpp:185
void on_back(wxMouseEvent &evt)
Definition ModelMall.cpp:178
wxPanel * m_web_control_panel
Definition ModelMall.hpp:67
void on_show(wxShowEvent &event)
Definition ModelMall.cpp:159
static wxWebView * CreateWebView(wxWindow *parent, wxString const &url)
Definition WebView.cpp:313
DPIAware< wxFrame > DPIFrame
Definition GUI_Utils.hpp:298