/*
- Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2018-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#include "html_dialog.h"
#include "wx_util.h"
#include "lib/cross.h"
-#include "lib/warnings.h"
-#include <boost/filesystem.hpp>
-DCPOMATIC_DISABLE_WARNINGS
-#include <wx/wxhtml.h>
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
#include <wx/fs_mem.h>
-DCPOMATIC_ENABLE_WARNINGS
-#include <iostream>
+#include <wx/wxhtml.h>
+LIBDCP_ENABLE_WARNINGS
+#include <boost/filesystem.hpp>
+
#if BOOST_VERSION >= 106100
using namespace boost::placeholders;
#endif
-HTMLDialog::HTMLDialog (wxWindow* parent, wxString title, wxString html)
+
+HTMLDialog::HTMLDialog (wxWindow* parent, wxString title, wxString html, bool ok)
: wxDialog (parent, wxID_ANY, title)
{
- wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL);
+ auto sizer = new wxBoxSizer (wxVERTICAL);
wxFileSystem::AddHandler(new wxMemoryFSHandler);
/* Add some resources that are used by HTML passed into this dialog */
wxMemoryFSHandler::AddFile(
"me.jpg",
- wxBitmap(std_to_wx(boost::filesystem::path(shared_path() / "me.jpg").string()), wxBITMAP_TYPE_JPEG), wxBITMAP_TYPE_JPEG
+ wxBitmap(bitmap_path("me.jpg"), wxBITMAP_TYPE_JPEG), wxBITMAP_TYPE_JPEG
);
- wxHtmlWindow* h = new wxHtmlWindow (this);
+ auto h = new wxHtmlWindow (this);
h->SetPage (html);
sizer->Add (h, 1, wxEXPAND | wxALL, 6);
+ if (gui_is_dark()) {
+ h->SetHTMLBackgroundColour(*wxBLACK);
+ }
+
h->Bind (wxEVT_HTML_LINK_CLICKED, boost::bind(&HTMLDialog::link_clicked, this, _1));
SetSizer (sizer);
SetSize (800, -1);
/* Set height */
- SetSize (h->GetInternalRepresentation()->GetWidth(), h->GetInternalRepresentation()->GetHeight() + 64);
+ SetSize (h->GetInternalRepresentation()->GetWidth(), h->GetInternalRepresentation()->GetHeight() + 256);
+
+ if (ok) {
+ auto buttons = CreateSeparatedButtonSizer(wxOK);
+ if (buttons) {
+ sizer->Add(buttons, wxSizerFlags().Expand().DoubleBorder());
+ }
+ }
}
+
void
HTMLDialog::link_clicked (wxHtmlLinkEvent& ev)
{