diff --git a/resources/web/qidi/css/dark.css b/resources/web/qidi/css/dark.css new file mode 100644 index 0000000..a5f041e --- /dev/null +++ b/resources/web/qidi/css/dark.css @@ -0,0 +1,25 @@ +body { + background-color:#4c4c54; + font-family: Arial, sans-serif; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; +} + +.container { + text-align: center; + padding: 30px; + border-radius: 10px; + background-color: #272727; + box-shadow: 0 4px 6px rgba(39, 39, 39, 0.1); +} + +h1 { + color: #ffffff; +} + +p { + color: #ffffff; +} \ No newline at end of file diff --git a/resources/web/qidi/css/home.css b/resources/web/qidi/css/home.css new file mode 100644 index 0000000..3f4cc4e --- /dev/null +++ b/resources/web/qidi/css/home.css @@ -0,0 +1,18 @@ +body +{ + background-color:#eeeeee; + font-family: Arial, sans-serif; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; +} + +.container { + text-align: center; + padding: 30px; + border-radius: 10px; + background-color: #ffffff; + box-shadow: 0 4px 6px rgba(39, 39, 39, 0.1); +} \ No newline at end of file diff --git a/resources/web/qidi/missing_connection.html b/resources/web/qidi/missing_connection.html new file mode 100644 index 0000000..a66ea45 --- /dev/null +++ b/resources/web/qidi/missing_connection.html @@ -0,0 +1,22 @@ + + + + + +Printer Connection Required + + + + + + + + + +
+

Printer Connection

+

Please set up your printer connection to view the device.

+ Printer connection setup demonstration +
+ + diff --git a/resources/web/qidi/setup_connection.gif b/resources/web/qidi/setup_connection.gif new file mode 100644 index 0000000..3e28ac8 Binary files /dev/null and b/resources/web/qidi/setup_connection.gif differ diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index d0db2aa..7873d90 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -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 diff --git a/src/slic3r/GUI/GuideWebView.cpp b/src/slic3r/GUI/GuideWebView.cpp new file mode 100644 index 0000000..24e3f2b --- /dev/null +++ b/src/slic3r/GUI/GuideWebView.cpp @@ -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 +#include +#include + +#include + +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 diff --git a/src/slic3r/GUI/GuideWebView.hpp b/src/slic3r/GUI/GuideWebView.hpp new file mode 100644 index 0000000..d233051 --- /dev/null +++ b/src/slic3r/GUI/GuideWebView.hpp @@ -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 +#include +#include "wx/textctrl.h" +#include + + +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_ */