#ifndef slic3r_GUI_Widgets_WebViewHostDialog_hpp_ #define slic3r_GUI_Widgets_WebViewHostDialog_hpp_ #include #include #include #include #include #include namespace Slic3r { namespace GUI { // Shared shell for local HTML dialogs that communicate through window.wx.postMessage(). class WebViewHostDialog : public Slic3r::GUI::DPIDialog { public: WebViewHostDialog(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT(""), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxMAXIMIZE_BOX); ~WebViewHostDialog() override = default; bool create_webview(const std::string& resource_path, const wxString& title, const wxSize& dialog_size = wxSize(820, 660), const wxSize& min_size = wxSize(640, 640)); void load_url(const wxString& url); bool run_script(const wxString& script); void call_web_handler(const nlohmann::json& payload, const wxString& handler = wxT("HandleStudio")); // Wraps `markup` (an HTML fragment, usually a