This commit is contained in:
sunsets
2023-06-26 18:42:10 +08:00
parent d918a96f24
commit afe5c54367
7 changed files with 210 additions and 0 deletions

View File

@@ -18,6 +18,8 @@ set(SLIC3R_GUI_SOURCES
GUI/BitmapCache.hpp
GUI/Widgets/StateColor.cpp
GUI/Widgets/StateColor.hpp
GUI/Widgets/WebView.cpp
GUI/Widgets/WebView.hpp
GUI/ConfigSnapshotDialog.cpp
GUI/ConfigSnapshotDialog.hpp
GUI/3DScene.cpp
@@ -173,6 +175,8 @@ set(SLIC3R_GUI_SOURCES
Config/Snapshot.hpp
GUI/PrinterWebView.cpp
GUI/PrinterWebView.hpp
GUI/GuideWebView.cpp
GUI/GuideWebView.hpp
Config/Version.cpp
Config/Version.hpp
Utils/ASCIIFolding.cpp

View File

@@ -0,0 +1,88 @@
#include "GuideWebView.hpp"
#include "I18N.hpp"
#include "slic3r/GUI/wxExtensions.hpp"
#include "slic3r/GUI/GUI_App.hpp"
#include "slic3r/GUI/MainFrame.hpp"
#include "libslic3r_version.h"
#include <wx/sizer.h>
#include <wx/toolbar.h>
#include <wx/textdlg.h>
#include <slic3r/GUI/Widgets/WebView.hpp>
namespace pt = boost::property_tree;
namespace Slic3r {
namespace GUI {
GuideWebView::GuideWebView(wxWindow *parent)
: wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize)
{
wxBoxSizer* topsizer = new wxBoxSizer(wxVERTICAL);
// Create the webview
m_browser = WebView::CreateWebView(this, "");
if (m_browser == nullptr) {
wxLogError("Could not init m_browser");
return;
}
SetSizer(topsizer);
topsizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1));
//Log backend information
//if (wxGetApp().get_mode() == comDevelop) {
//wxLogMessage(wxWebView::GetBackendVersionInfo().ToString());
//wxLogMessage("Backend: %s Version: %s", m_browser->GetClassInfo()->GetClassName(),
// wxWebView::GetBackendVersionInfo().ToString());
//wxLogMessage("User Agent: %s", m_browser->GetUserAgent());
//}
//Zoom
m_zoomFactor = 100;
//Connect the idle events
Bind(wxEVT_CLOSE_WINDOW, &GuideWebView::OnClose, this);
}
GuideWebView::~GuideWebView()
{
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " Start";
SetEvtHandlerEnabled(false);
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " End";
}
void GuideWebView::load_url(wxString& url)
{
// this->Show();
// this->Raise();
if (m_browser == nullptr)
return;
m_browser->LoadURL(url);
//m_browser->SetFocus();
UpdateState();
}
/**
* Method that retrieves the current state from the web control and updates the
* GUI the reflect this current state.
*/
void GuideWebView::UpdateState() {
// SetTitle(m_browser->GetCurrentTitle());
}
void GuideWebView::OnClose(wxCloseEvent& evt)
{
this->Hide();
}
} // GUI
} // Slic3r

View File

@@ -0,0 +1,53 @@
#ifndef slic3r_GuideWebView_hpp_
#define slic3r_GuideWebView_hpp_
#include "wx/artprov.h"
#include "wx/cmdline.h"
#include "wx/notifmsg.h"
#include "wx/settings.h"
#include "wx/webview.h"
#if wxUSE_WEBVIEW_EDGE
#include "wx/msw/webview_edge.h"
#endif
#include "wx/webviewarchivehandler.h"
#include "wx/webviewfshandler.h"
#include "wx/numdlg.h"
#include "wx/infobar.h"
#include "wx/filesys.h"
#include "wx/fs_arc.h"
#include "wx/fs_mem.h"
#include "wx/stdpaths.h"
#include <wx/panel.h>
#include <wx/tbarbase.h>
#include "wx/textctrl.h"
#include <wx/timer.h>
namespace Slic3r {
namespace GUI {
class GuideWebView : public wxPanel {
public:
GuideWebView(wxWindow *parent);
virtual ~GuideWebView();
void load_url(wxString& url);
void UpdateState();
void OnClose(wxCloseEvent& evt);
private:
wxWebView* m_browser;
long m_zoomFactor;
// DECLARE_EVENT_TABLE()
};
} // GUI
} // Slic3r
#endif /* slic3r_Tab_hpp_ */